Page
FCC COMPLIANCE STATEMENT
FOR AMERICAN USERS
Copyright© 1984 by Epson America, Inc
Torrance, California
Preface
PR#1
30 FOR D=1 TO 17: PRINT "ROW";D
would become:
39 FOR D=1 TO
LPRINT CHR$(27);CHR$(52)
10 LPRINT CHR$(27)"G";"DOUBLE-STRIKEPRINT
with:
10 LPRINT CHR$(27)"GDOUBLE-STRIKEPRINT
When the presence of one or more blank spaces in a program line is
SAMPLE STRING
Yˆ2
When we refer to an FX mode by name, we capitalize it:
Compressed Mode
Italic Mode
Pica Mode
FX Series Printer User’s Manual
Volume 1 Contents
Conventions Used in This Manual
List
Figures
2BASIC and the Printer
BASIC Communications
Character strings
BASIC print commands
ASCII and BASIC basics
Special Printing Features
International
Immediate-PrintMode (FX-80only)
Line Spacing and Line Feeds
Forms
Margins and Tabs
Margins and pitches
Right
Variable horizontal tabs
10 Introduction to Dot Graphics
12 Design Your Own Graphics
Planning
13 Plotter Graphics
14Symmetrical Graphics Patterns
15User-DefinedCharacters
Combining User-DefinedCharacters
Giant Letters: Double High and Double Wide
Business Application
999 REM: The End
List of Figures
Page
Page
Page
List of Tables
Introduction
•Program debugging mode (hexadecimal dump of codes received from the computer)
•Fast print speed-160characters per second-forrapid processing of documents
•2K print buffer for smooth operation
•Adjustable tractor unit for narrow forms
Inside the Printer
Inside This Manual
can
Page
Page
Page
Page
Programmer’s Easy Lesson
70FOR X=1 TO 11: READ D: LPRINT G-K@(D);:NEXT
90FOR X=1 TO N: LPRINT CHR$(95);: NEXT X: LPRINT E$"A"CHR$(6)
Page
Figure Easy-2.Ticket to success
Ticket Program Description
30 Uses the ESCape ":” sequence to copy the entire ROM character set into RAM
40 Designates RAM as the source for the active character set
50 Prepares the printer to redefine characters “0” through “:“
80 Turns on the Unidirectional Print Mode
120 Prints another line of borders
150 Produces two more border lines
and 2 produces the top of the
180 Prints the bottom half of the FX letters
190Turns OFF the codes, prints PRINTERS in Subscript, then prints a border
Page
Chapter
The FX Printers
Page
Page
Additional Supplies and Accessories
The following items may be purchased separately from your Epson dealer:
Printer cable or interface kit
Printer paper
Ribbon cartridge replacement
Printer Preparation
Note: The printer should be turned OFF during all set-upoperations
Paper separator
Covers
Manual-feedknob
DIP switches
Page
Figure 1-9.DIP switch location
Figure 2-20.DIP switch factory settings
Ribbon installation
Paper Loading
FX-80: built-intractor feed
Page
Figure 1-12.Printer readied for paper insertion
for
•Remove the center protective lid
Figure 1-13.Pin feeder adjustment
Figure 1-14.Loading the FX-80
FX-80and FX-100:friction feed
FX-80and FX-100:removable tractor unit (optional on the FX-80)
Figure 1-16.Tractor unit installation
Figure 1-17.Hook and stud
Figure 1-18. Adjusting the pin feeders
Top-of-formposition
Paper-thicknesslever
Starting Up
Figure 1-19.Top of form
Page
Control panel
The FX tests itself
Figure 1-22.Sample automatic test
BASIC and the Printer
Command
Computer
Character strings
BASIC print commands
Activating commands
Computer
10 LPRINT CHR$(193)
ASCII and BASIC basics
Control codes
ASCII code
Escape-CHR$(27)-andother CHR$ commands
20 LPRINT "ITALIC CHARACTER SET
Change Commands
Reset Code
Mode cancelling codes
DELete and CANcel
10 LPRINT CHR$(27)“4”
30 LPRINT CHR$(27)"5";
Now use RUN to make sure that both ESCape sequences work as before
You can also shorten your programs by storing the ESCape code in
Summary
control
Here are the DIP switches that we mentioned in this chapter:
Switch
Controls the beeper
printer spaces at the end of a print line
CHR$(7)
Print Pitches
Main columns
Intermediate positions
Pica and Elite Modes
PICA
PICA PITCH IS THE NORMAL PRINT WIDTH
Compressed Mode
2Ø LPRINT CHR$(15)"COMPRESSED MODE IS SET WITH CHR$(15)
3Ø LPRINT "IT WILL STAY ON UNTIL YOU CANCEL IT" 4Ø LPRINT CHR$(l8)"PICA AGAIN
Mode priorities
Expanded Mode
40 LPRINT "CONTINUOUSLY WITH ESCAPE W
50 LPRINT CHR$(27)"W"CHR$(0)
Figure 3-7.Pica and Expanded letters
Multiple print pitches on one line
LPRINT "YOU CAN MIX:
20 LPRINT "PICAP
LPRINT CHR$(20)CHR$(27)"M AND ELITEP
Page
Table 3-1. Summary of print pitches
Print Quality
Double-StrikeMode
Emphasized Mode
40 LPRINT CHR$(27)"GCOMBINED THEY CAN'T BE BEAT
Proportional Mode
"!!!!!PROPORTIONAL OFF
!!!!!PROPORTIONAL OFF
CHR$(112)“0”
Mixing Modes
the printer will prove that Double-Strikehas been turned on all the time
Add lines 30 and 50, and make some changes to line 70:
30 LPRINT CHR$(27)"G";
50 LPRINT "WHEN PROPORTIONAL GOES
70 LPRINT "!!!!!!!!!!!!!OFF, DOUBLE-STRIKECAN COME ON
!!!!!!!!!!!!PROPORTIONAL ON
WHEN PROPORTIONAL GOES
Type of mode
Mode name
Allows you to change the weight default from
Single-Striketo Emphasized
Here are the commands that we introduced in this chapter:
Page
Dress-UpModes and Master Select
Underline Mode
CHR$(27)"-"CHR$(1)or
CHR$(27)"-"CHR$(0)or
UNDERLINING IS SIMPLE TO TURN ON/OFF
30 LPRINT
Script Modes: Super and Sub
Italic Mode
Master Select
160 DATA 32,33,36,40,-1,-1,48,49,52,56,-1,-1
10 LPRINT CHR$(27)"-1"CHR$(27)"S0"CHR$(27)"4";
8 SNGL-STRIKE EMPHASIZED PICA
1 6 D O U B L E - S T R I K E P I C A
24DEL-STRIKE EMPHASIZED PICA
PICA
3 2 S I N G L E - S T R I K E E X P A N D E D P I C A
36 SINGLE-STRIKEEXPANDED COMPRESSED
4 0 S N G L
4 8 D O U B L E - S T R I K E E X P A N D E D P I C A
Master Select combinations
Page
Page
Here are the commands that we introduced in this chapter
CHR$(27) “-1”
CHR$(27)“-0”
CHR$(27)“S1”
Turns Underline Mode ON
Page
Special Printing Features
Overstrikes
50 LPRINT CHR$(18)"BACKSPACES" ' Compressed off
40)
30 LPRINT "BACKSPACE"CHR$(15);
Unidirectional Mode
20 LPRINT CHR$(27)"1"CHR$(27)"1"CHR$(40)
124)
CHR$(27)“U0”
40 FOR X=1 TO 10: LPRINT CHR$(27)"<"CHR$(124):
50 FOR X=1 TO 12: READ ARRAY(X): NEXT
DATA
READ C$: LPRINT C$CHR$(137)CHR$(14);
FOR X=1 TO 12: LPRINT CHR$(ARRAY(X))
100 NEXT X: LPRINT CHR$(27)"5": NEXT Y
Table 6-3.International characters in Italic typeface
Country
Switch
Switch
Half-SpeedMode
Immediate-PrintMode (FX-80only)
= Sweden
= Italy
= Spain
10 LPRINT CHR$(27)"i1
And RUN the program. Your FX-80responds to your typing-imme-diately
Here are this chapter’s commands:
CHR$(8)Causes a backspace
CHR$(27)“R”CHR$(n) Selects an international character set, where n = 0-8:
CHR$(27)“s1”
CHR$(27)“i0”
Turns Half-SpeedON; If your system can’t send lowercase letters, use CHR$(115)
Turns Half-SpeedOFF
Turns Immediate-PrintMode OFF
Page
Line Spacing and Line Feeds
Preset line spacing
Figure 7-1. Default line spacing
20 FOR X=0 to
30 LPRINT TAB(6*X)"STAIR STEPS" 40, NEXT
Variable line spacing
30 LPRINT TAB(X)"STAIR"CHR$(27)"A"CHR$(X+128)
30 LPRINT TAB(6*X)"STAIR"CHR$(27)"A"CHR$(0)
STEPS
Microscopic line spacing
One-time,immediate line feed
30 LPRINT
40 NEXT
Reverse feed (FX-80only)
Page
FEED
Table 7-1. Line-spacingcommands
Line
spacing Command
Forms Control
Form feed distance
Figure 8-1.Setting the top of form
LPRINT CHR$(12);
Not-so-standardforms
Figure 8-2. Two-inch form feed
10 LPRINT CHR$(27)"C"CHR$(2);
30 LPRINT "TWO-LINEFORM"CHR$(12);
Figure 8-3. Two-lineform feed
Skip command
10 LPRINT CHR$(27)"N"CHR$(6);
30 LPRINT "SIX-LINESKIP . . . LINE";X 40 NEXT
Figure 8-4shows the skip
Figure 8-4.Standard skip
DIP switch skip
10 LPRINT
20 INPUT "HIT RETURN WHEN READY",A
30 FOR X=1 TO
40 LPRINT "PRINTING WILL STOP BEFORE PAPER RUNS OUT
50 NEXT
CHR$(27)"9
Used in conjunction with CHR$(27)“8”
turns the paper-outsensor back ON
CHR$(27)“@”
setting
Page
Margins and Tabs
Left margin
Page
LPRINT CHR$(15)
Figure 9-3.Absolute left margin
margin
Right margin
Use a workable number to reset the right margin:
LPRINT CHR$(27)"Q"CHR$(22)
Then RUN the program
Figure 9-5.Right margin set correctly
Both margins
Horizontal tab usage
70 FOR J=1 TO
80 LPRINT H$;J;
90 NEXT J: LPRINT
Figure 9-7.Tabs with text and numbers
50 LPRINT H$;H$;"TOP";
Variable horizontal tabs
Vertical tab usage
Ordinary vertical tabs
Page
Figure 9-11.Text at tab stop
See that the tab stops are absolute by adding these two lines to your program:
25 LPRINT CHR$(27)"A"CHR$(4)
250 LPRINT CHR$(27)"@
Line 25 changes the line spacing from 12/72-inchto 4/72-inch;line
Vertical tab channels
CHR$(27)"b"CHR$(N)CHRR$(n1) . . . CHR$(nk)CHR$(0)
Figure 9-13.Printout of multipage channels
CHR$(11)
Page
Introduction to Dot Graphics
A final multiplication:
480 main columns
rows
Print Head
Figure 10-1.Pins numbered sequentially
Twelve-dotline spacing
Seven-dotline spacing
Figure 10-2.Dot pattern in two line spacings
Graphics Mode
Here is the format for entering Single-DensityGraphics Mode (60 dots per inch)
LPRINT CHR$(27)"K"CHR$(n 1) CHR$(n2);
CHR$(27)"K"CHR$(255)CHR$(7);
But on a Single-Densityprint line you can only fit 480 dots
Pin Labels
You might expect that the eight pins would be numbered 1 through
Figure 10-3. Pins labelled uniquely
Figure 10-4.Pin combinations
First Graphics Programs
Straight line
Large caret
Wave pattern
Page
FX-100
Varieties of Graphics Density
40 LPRINT A$;: FOR X=1 TO 100: LPRINT B$;: NEXT X 80 LPRINT CHR$(27)"@
Graphics and the Reset Code
Graphics and low ASCII codes
40LPRINT A$;: FOR X=1 TO 25: LPRINT B$;: NEXT
60LPRINT A$;: FOR X=1 TO 25: LPRINT B$;: NEXT
High-Speed Double-DensityGraphics Mode
Figure 11-1. High-Speed Double-Densitydots
30B$=CHR$(127)+CHR$(42)
Figure 11-2. No overlapping dots
Low-Speed Double-DensityGraphics Mode
50 LPRINT "PLOW-SPEED DOUBLE-DENSITYGRAPHICS
Quadruple-DensityGraphics Mode
More densities
20A$=CHR$(27)+"*"+CHR$(M)+CHR$(120)+CHR$(0)
60LPRINT A$;: FOR X=1 TO 60: LPRINT B$;: NEXT
Reassigning alternate graphics codes
Table 11-1.Graphics Modes
Modes
Alternate
Description
Mode Density
Head speed
(in./sec.)
Nine-PinGraphics Mode
Figure 11-5. Nine-pinusage
20A$=CHR$(27)+CHR$(94)+CHR$(0)+CHR$(60)+CHR$(0)
90 DATA 3,7,31,63,126,124,112,96,92,66,33,25,5,3
Repeated patterns
Repeated DATA numbers
90 DATA 8,28,62,93,28,28,28,28,28,28,93,62,28,8
90 DATA 8,28,62,93,-6,28,93,62,28,8
100 READ R: FOR J=1 TO -N
110 LPRINT CHR$(R);: NEXT J
120 X=X-N-1:GOT0
CHR$(27)”*“CHR$(m)CHR$(n1)CHR$(n2)
CHR$(27)“L”CHR!$(n 1)CHRS(n 2)
=n1+(256*n2), where n1 is 0 - 255 and n2 is
CHR$(27)“Z”CHR!$(n 1)CHR$(n2)
CHR$(27)“?s”CHR$(n)
CHRS(27)"^"CHR$(d)CHR$(n1)CHR$(n2)
Design Your Own Graphics
620 IF N>=$ THEN PRINT CHR$(N;: GOTO
650 LPRINT
Figure 12-1.STRATA layout
640 GOT0
GOT0
840 DATA 0,32,16,64,8,64,-15,8,32,72,16,32,64,-6
l00 LPRINT CHR$(27)"1
610 READ N: IF N=128 THEN
620 IF N>=0 THEN LPRINT CHR$(N);: GOT0
640 GOT0
Three-DimensionalProgram
Page
First version of 3D program
29 G$=CHR$(27)+"L"+CHR$(51)+CHR$(3): GOSUB
170 FOR Y=1 TO 819: LPRINT CHR$(l);: NEXT Y
180 LPRINT: NEXT X: RETURN
Now RUN the first trial:
180)repeats the routine to print the line three times
80 FOR X=1 TO L: LPRINT CHR$(l);: NEXT
40 LPRINT G$;
190 DATA 3,20,2,3,12,3,22,14,8,14,6,-1 and RUN it
The negative number at the end of line 190 signals the end of the print line
140 NEXT D: GOSUB
200 DATA 3,20,3,3,10,3,21,18,4,18,4,-1
290 DATA 3,3,25,3,0,3,25,3,12,3,2,3,12,3,3,-1
300 DATA 3,3,24,3,2,3,24,3,12,3,2,3,12,3,3,-1
310 DATA 3,3,23,3,4,3,23,3,12,3,2,3,12,3,3,-1
320 DATA 3,3,22,3,6,3,22,3,12,3,2,3,12,3,3,-1
FOR X=1 TO H: LPRINT CHR$(64);: NEXT
Page
110 FOR X=1 TO H: LPRINT CHR$(127);: NEXT
12-1l
Page
Plotter Graphics
that you
Figure 13-1. Computer memory as sketch pad
Figure 13-2. Array in memory and on paper
Figure 13-3. Ones and zeros become dots and blanks
COLUMN
Figure 13-4. Labelled cell
DIMension and arrays
Filling arrays
Figure 13-5. Plotting a circle
Circle Plotting
20 FOR R=1 TO N: FOR C=1 TO N
30D=SQR((R-11)^2+(C-11^2)
40 IF INT(D+.S)=10 THEN A(R,C)=1
Ones become dots
Pin firing sequences
Page
Higher resolution
130 LPRINT CHR$(27)"*"CHR$(1)CHR$(N)CHR$(0);
Figure 13-7.Divide and conquer
30D=SQR(R^2+C^2)
40 IF INT(D+.5)=20 THEN A(R,C)=1
130 LPRINT CHR$(27)"*"CHR$(5)CHR$(N)CHR$(0);
(11,11)
20
Reflections
130 LPRINT- CHR$(27)"*"CHR$(5)CHR$(2*N)CHR$(0);
130LPRINT CHR$(27) "*"CHR$(5)CHR$(2*N)CHR$(0);
Exploding galaxy
Big bang
130 LPRINT CHR$(27)"*"CHR$(0)CHR$(2*N)CHR$(0);
that
60 LPRINT CHR$(27)"*"CHR$(5)CHR$(N1)CHR$(N2);
Page
Symmetrical Graphics Patterns
50GOSUB
Table 14-1.Variables for SYMMETRY
Variable
Purpose
90IF N>MIN THEN
100NEXT J: PRINT
290 LPRINT CHR$(27)"2": END
300 FOR K=0 TO MAX-N
110 FOR K=1 TO C: LPRINT A(K);: NEXT K: LPRINT: LPRINT "C="C
190 P0=127-P:IF PASS=LAST THEN P0=P0+1-2^(7-R)
220 LPRINT CHR$(27)"*"CHR$(5)CHR$(N1)CHR$(N2);
PRINT: PRINT
CHR$(27)"1";
190P0=127-P:IF PASS=LAST THEN P0=P0+1-2^(7-R)
220LPRINT CHR$(27)"*"CHR$(5)CHR$(N1)CHR$(N2);
Figure 14-4. Symmetric pattern
Variations
300 FOR K=0 TO
Figure 14-5.Symmetric pattern
20 MAX=64: MIN=1: RE=1: N=1/2
40N=N*2
70N=N/2
Figure 14-6.Symmetric pattern
Page
Page
User-DefinedCharacters
Preparation
Character Definition
Characters are defined with the ESCape "&" command sequence. The format is:
LPRINT CHR$(27)"&"CHR$(r)CHR$(c1)CHR$(c2);
LPRINT CHR$(27)"&"CHR$(0)CHR$(65)CHR$(69);
Design
Dots into DATA
Attribute byte
Proportional print
Figure 15-5. Attribute byte conversions
The full 8-bitattribute byte, then, is composed of three parts:
1.Bit 7 determines which pins are used to print the character
2.Bits 4, 5, and 6 determine the starting column number
3.Bits 0, 1, 2, and 3 determine the ending column number
CHR$(27)"&
but before you print the user-definedE, make it more visible by adding:
170 LPRINT CHR$(27)"!8";
190 LPRINT CHR$(27)"!@
Here are the lines you’ve typed so far:
130 LPRINT CHR$(27)"&"CHR$(0)"EE";
180 LPRINT "EEEEE";
110 LPRINT CHR$(27)" :"CHR$(0)CHR$(0)CHR$(0);
1160 DATA 127,0,72,0,72,0,76,2,121,0,0: 'My R
and make these changes:
130 LPRINT CHR$(27)"&"CHR$(0)"rt";
140 FOR Y=1 TO 3: LPRINT CHR$(139);
Redefining Control Codes
LPRINT CHR$(27)"6
Let’s use this command to see how the ROM control codes can print. Add:
CHR$(27)"6
CHR$(27)"7
STOP
165 LPRINT CHR$(27)"6
165 LPRINT CHR$(27)"I1
Italy
1120 DATA 0,63,64,8,64,8,64,28,64,32,0: 'My F
1130 DATA 0,32,64,0,64,63,64,0,64,32,0: 'My T
Z$=CHR$(27)+"&"+CHR$(0)
LPRINT Z$"AZ";
LPRINT Z$CHR$(l28)CHR$(159);
STRATA
180, LPRINT “147646 12345678”
S T R A T A S O F T W A R E
Save the current program as STRATA
Page
Page
Combining User-DefinedCharacters
80FOR x=1 TO 11: READ N: LPRINT CHR$(N);: NEXT
Figure 16-1. Side-by-sidecharacters
Large Letters: Double High
Let’s stack two characters, one on top of the other, with these changes:
10 LPRINT CHR$(27)"1"CHR$(27)"U1";
100 LPRINT "A
110 LPRINT "B
Figure 16-2. Double high and wide character
PatternExample
50 FOR Y=0 TO 1: FOR Z=0 TO 1: A=L+128*Y+32*Z
FOR Y=0 TO 1: FOR X=1 TO LEN(A$)
80FOR X=1 TO 11: READ N: LPRINT CHR$(N);: NEXT
no space after the 0 and then press RETURN. The next prompt on the screen is:
ENTER A MASTER PRINT MODE NUMBER
Figure 16-4.Giant G
40 FOR W=1 TO 6: READ L: PRINT CHR$(L)
90 NEXT Z: NEXT Y: NEXT W
190'SPACE
200DATA
210DATA 0,0,0,0,0,0,0,0,0,0,0
220DATA 0,0,0,0,0,0,0,0,0,0,0
230DATA 0,0,0,0,0,0,0,0,0,0,0
Core Sets
100to 540. Now change:
60 LPRINT CHR$(27)"$"CHR$(0)"16";
70 FOR Y=1 TO 6: LPRINT CHR$(139);
90 NEXT Y
100'SIX
110 DATA 7,8,16,0,32,3,68,0,72,0,73
120 DATA 73,0,72,0,68,3,32,0,16,8,7
130 DATA 73,0,9,0,17,96,2,0,4,8,112
140 DATA 112,8,4,0,2,96,17,0,9,0,73
Line Graphics
130 LPRINT CHR$(27)"&"CHR$(0)"al";
899 ’ <<< LINE GRAPHICS AND SHADING
900 DATA 0,0,0,0,15,0,8,0,8,0,8: ' a
910 DATA 8,0,8,0,15,0,0,0,0,0,0: ' b
NAME PHONE
Business Applications
Change
10 FOR J=1 TO 3: FOR K=1 TO
20READ MAX(J,K)
30NEXT K: NEXT J
40DATA 12,18,23,28,36,34,28,27,30
60 D$=CHR$(27)+"J"+CHR$(11): C$=CHR$(27)+"F
200 LPRINT CHR$(60)CHR$(1);: H$=CHR$(137): Z=1
210 LPRINT H$;H$;" ABC CO. SALES: FIRST QUARTER 1995": LPRINT: LPRINT
800 FOR J=1 TO N: LPRINT A$;: NEXT J: RETURN
270 FOR M=1 TO 3: LPRINT H$;
100 LPRINT CHR$(27) "3"CHR$(10) CHR$(27)"U1";
110LPRINT CHR$(27) ":"CHR$(0)CHR$(0)CHR$(0);
130LPRINT CHR$(27)"&WR$(0)CHR$(94)CHR$(107);
190LPRINT CHR$(27)"D"CHR$(14)CHR$(19)CHR$(24)
210 LPRINT H$;H$; ABC CO. SALES: FIRST QUARTER 1995": LPRINT: LPRINT
;ELSE LPRINT
LPRINT H$;H$;B$;"k";H$;H$;H$;H$;"k
60 DAYS
90 DAYS
STRATA SOFTWARE
THANK YOU
110, 120, 150 and
Delete lines 10 to 90. Make small changes to four lines:
130 LPRINT CHR$(27)"&"CHR$(0) "at";
140 FOR Y=1 TO 20: LPRINT CHR$(139);
160 NEXT Y: LPRINT CHR$(27)"C"CHR$(66);: GOSUB
170 LPRINT CHR$(27)"!8";"mpsrpr mnopqrst"; CHR$(27)"!@";
230 LPRINT: GOSUB 700: LPRINT H$;"DATA TOWN, U.S.A. 01248": GOSUB
500 FOR K=1 TO 5: READ L$(K),M$(K),N$(K),R$(K):
LPRINT
1110 DATA 0,127,0,65,0,65,0,65,0,127,0: 'n
1120 DATA 0,63,64,8,64,8,64,28,64,32,0: 'o - F
1130 DATA 0,32,64,0,64,63,64,0,64,32,0: 'p - T
1150 DATA 0,7,8,16,36,64,36,16,8,7,0: 'r - A
1160 DATA 0,127,0,72,0,72,0,76,2,121,0: 's - R
STATEMENT breaks down into several large blocks of routines and data:
Lines
Routine
Prints the statement form
The box subroutine
999 REM: The End
INDEX
also
Page
Page
Page
Page
Page
left, 113-116
Page
16, 324
38
40