![](https://pdfstore-manualsonline.prod.a.ki/pdfasset/a/47/a47ce715-c045-451f-ac3d-3ad5a9b558f9/a47ce715-c045-451f-ac3d-3ad5a9b558f9-bgf6.png)
Since you will need to switch two features-line feeds and Empha-
sized Mode-on and off within the program, you can store their com-
mands as shorter strings:
50 B$=CHR$(27)+"E"
60 D$=CHR$(27)+"J"+CHR$(11): C$=CHR$(27)+"F"
If your system won’t send an
11,
change both instances to either 10 or
12. The next 18 lines print the barchart.
190 LPRINT CHR$(27)"D"CHR$(14)CHR$(19)CHR$(24)
CHR$(34)CHR$(44)CHR$(54);
200 LPRINT CHR$(60)CHR$(1);: H$=CHR$(137): Z=1
Lines 190 and 200 set horzontal tab stops and store the horizontal tab
character in H$.
210 LPRINT H$;H$;" ABC CO. SALES: FIRST QUARTER
1995": LPRINT: LPRINT
220 LPRINT H$;H$;B$;"a";: N=34: A$="j": GOSUB 800:
LPRINT "b"
799 ' *** STRING$ ROUTINE ***
800 FOR J=1 TO N: LPRINT A$;: NEXT J: RETURN
Lines 210 and 220 start the printing, using horizontal tabs and special
characters. For systems without a STRING$ function, the GOSUB in
line 220 can print a string of characters.
230
LPRINT
H$;H$;"k";H$;H$;H$;H$;"k"
240 FOR R=39 TO 1 STEP -1: LPRINT H$;: F=0
250 IF R/10=INT(R/10) THEN LPRINT R;: F=1
260 LPRINT B$;H$;"g";D$;C$;
Line
250
prints the value of R every tenth line and sets a flag (F) to print
DISTRICT
270 FOR
M=1
TO 3: LPRINT H$;
280
FOR P=1 TO 3
290 IF R>MAX(M,P) THEN LPRINT ELSE LPRINT
CHR$(93+P); " ";
Line 290 compares the current row (R) with the array (MAX) to deter-
mine whether to print a character or a blank space.
300 NEXT P: NEXT M: LPRINT B$;H$;"k";C$;: IF F=0
THEN LPRINT
: GOTO 320
310 LPRINT H$;CHR$(93+Z)" DISTRICT ";Z: Z=Z+1
320 NEXT R: LPRINT H$;H$;B$;"g";H$;H$;H$;H$;"k"
325 LPRINT H$;H$;B$j"k";H$;H$;H$;H$;H$;"k"
229