If you select super/subscript, the character box now has 16 (high) x 7
(wide) dot positions for draft characters, or 16 x 23 dot positions for LQ
characters. Each dot is represented by two adjacent solid blocks, occupying
its own position and the position to the right. This reflects the fact that the
printer still cannot print horizontally adjacent dots, but that even skipping
every other dot. the dots appear joined when printed.
The file created by this program contains the following printer com-
mands:
1. <ESC> “:” -co> <O>
< 0 > (standard mode) or < FS > “:‘* < 0 >
< 0 >
< 0 > (IBM mode) to copy the printer’s regular characters into
download memory. If you leave a download character undefined, the
regular character will be printed.
2. < ESC > “x” < 0 > or < ESC > “x” < 1 > to select draft or letter quality.
3. One <ESC> “8~” <O> <cc> <cc> <mO> <ml> <m2> cdl>
. . .
command for each character defined. <cc > is the character code,
< m0 > is the left hand space byte, <ml > is the character width byte,
and cm2 > is the right hand space byte. cdl > . . . are the <ml > x
3 bytes of dot data.
4. < ESC > “% i” to enable the printer to print the downloaded characters.
This program is coded in Microsoft BASIC for the IBM-PC.
The WIDTH 255 command in line 1050 means infinite line width and
prevents the computer from inserting unwanted line feeds in the character
data. Some versions of BASIC do not need the WIDTH command.
Check your BASIC manual and make any changes necessary.
1000 1”“~****.***““**“~****.****..**~*~**”***,***~”.*.***“~*~.*”,**”*.
1010 '
1020 '
DOWNLOAD CHARACTW GENERATOR FOR 24-WIRE PRINTER
1030 '
1040 I"*""".*.*""."*"**..*.~"""~"*.*~"*"**"*~*""*""*~****.~*""""*..*""
1050 WIDTH "LPT1:",255 :XEY OFF :CLS
1060 DIR A(126). A$(126), P$(126), DT(24.42) :E$=CHR$(27) :F$=CHRQ(28)
1070 SCQ(O)-"---------+---------+---------+---------+--,,
1080 SC$(l)-".-.......+.........+.........+.........+..~
1090 XEY l,CHR$(7) :XEY 2,CHR$(B) :XEY 3,CHR.$(9)
1100 XEY 4,CHR$(lO) :XEY 5,CHR$(ll) :XEY 6,CHR$(12)
1110 FOR I=33 TO 126 :A(I)=-1 :NEXT I
1120 I------ PRINT HWDING
---------__--------------------------------
1130 LOCATE 1,l :PRINT STRING$(25,62);
1140 PRINT " DOWNLOAD CHARACTER GENERATOR ":STRINGQ(25,60)
1150 I----------------------------------------------------------------
1160 LOCATE 3,l :PRINT "READ CHARACTRRS FROM EXISTING FILE?"
1170 SO$="Yes" :sl$="No"
:S=-1 :PX-4 :PY-1 :GOSUB 2620 :IF S THEN 1470
llS0 I------ Open existing file
--------------------------------------
1190 LOCATE 3,l :PRINT STRINGS(40.32) :LGCATE 3.1
1200 INPUT "File name";FI$
1210 OPEN FIQ FOR INPUT AS #l
1220 1------
Read ini,--al conunands------------------------------------
1230 I$=INPUTQ(3,#1)
124D IF RIGHT$(I$,l)-"0" THEN QUA=1 :GOTO 1260
92