5 CLS:KEY OFF:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT:KEY 2,"GOTO 60"+CHR$(13):KEY 10,"RUN"+CHR$(34)+"BLUEMENU"+CHR$(34)+CHR$(13):LIST 10-57
10 '*****************  PRINTER STYLES AND CONTROL CODES  **********************
12 '??????????????????????????????????????????????????????????????????????????
14 '?                EPSON/GEMINI 10/15 PRINT CONTROL PRINTOUT                ?
16 '?                                                                         ?
18 '?    This program establishes a series of standard control codes for      ?
20 '? the MX-80 and GEMINI series printers. If the controls are entered in    ?
22 '? your program as a subroutine and read on initializing, they may be      ?
24 '? used for printer control from your program in single or combined form.  ?
26 '? Run this program for an example of the print formats and then check out ?
28 '? the referenced line numbers to see the code make up and 'call code.'    ?
30 '? For an easy merge task, call up PRNTCALL.BAS on this disk.              ?
32 '?    The error routine will take care of printer 'off' or 'off line'. It  ?
34 '? will go to Basic error-handling for 'paper-out' or others.  This pro-   ?
36 '? gram may be used in whole or part without license or attribution.       ?
38 '?                    (c) G I N A C O   1983            Ver 5.1/160/320    ?
40 '??????????????????????????????????????????????????????????????????????????
55 '        *****  < F2 > to RUN  *******  < F10 > For BLUEMENU  *****
57 ' ====== To avoid DOCUMENTATION BOX each time, REM or DELETE  line 5 ======
60 CLS
300  SCREEN 0,0,0
310   WIDTH 80
320    CLEAR
330     FOR I! = 1 TO 10
340        KEY I!,""
350       NEXT
360 GOSUB 900
370  GOSUB 5000
380   CLS
390    LOCATE 6,20
400     PRINT "TURN PRINTER ON AND SET PAPER FOR PRINTOUT"
410      LOCATE 8,20
420       PRINT "THIS WILL PRINTOUT A TEST OF ALL SETTINGS"
430        LOCATE 10,20
440         PRINT "YOU CAN THEN CHECK OUTPUT WITH CODES USED"
450 LOCATE 12,20
460  PRINT "FOR YOUR OWN PROGRAMMING & PRINTING WORK."
470   LOCATE 16,28
480    PRINT "PRESS ANY KEY TO CONTINUE"
490 IF INKEY$ = "" THEN 490 ELSE 500
500 GOSUB 900
510  LPRINT SMALL$;"THIS IS CONDENSED -- LINE 5030"
520   GOSUB 900
530    LPRINT UNSMALL$;"THIS IS CONDENSED CLEARED -- LINE 5060"
540     GOSUB 900
550      LPRINT EXPAND.SMALL$;"THIS IS CONDENSED EXPANDED  -- LINE 5090"
560       GOSUB 900
570        CANX.EXP.COMP$ = CHR$(18) + CHR$(20)
580 GOSUB 900
590  LPRINT EXPAND$;"EXPANDED SINGLE LINE  -- LINE 5150"
600   GOSUB 900
610    LPRINT EXPAND.END$;"THIS CLEARS EXPANDED -- LINE 5180"
620     GOSUB 900
630      LPRINT DARK$;"THIS IS EMPHASIZED PRINT -- LINE 5210"
640       GOSUB 900
650 LPRINT ITALIC$;"THIS IS ITALICS MODE -- LINE 5240"
660  GOSUB 900
670   LPRINT ITALIC.EXP.CON$;"ITALICS EXPAND CONDENSED -- LINE 5270"
680    GOSUB 900
690     LPRINT ITALIC.EXP$;"THIS IS ITALICS EXPANDED -- LINE 5300"
700      GOSUB 900
710 LPRINT END.ITALIC$;"THIS CLEARS ALL ITALICS -- LINE 5330"
720  GOSUB 900
730   LPRINT START.ULINE$;"THIS STARTS UNDERLINE -- LINE 5360"
740    GOSUB 900
750     LPRINT END.ULINE$;"THIS ENDS UNDERLINE -- LINE 5390"
760      GOSUB 900
770 LPRINT PERM.EXPAN$;"SETS PERMANENT EXPAND -- LINE 5420"
780  GOSUB 900
790   LPRINT END.PERMEXP$;"THIS CLEARS PERMANENT EXPAND -- LINE 5450"
800    GOSUB 900
810     LPRINT START.DSTRIKE$;"STARTS DOUBLE STRIKE -- LINE 5480"
820      GOSUB 900
830 LPRINT END.DSTRIKE$;"TERMINATES DOUBLE STRIKE -- LINE 5510"
840  GOSUB 900
850   LPRINT TINYLINE$;"PRINTS SUBSCRIPT TINYLINE -- LINE 5540"
860    GOSUB 900
870     LPRINT END.TINY$;"CLEARS SUBSCRIPT MODE -- LINE 5570"
880      LLIST 5000 - 5660
890       END
900 ON ERROR GOTO 6030
910 LPRINT CLEANUP$
920  RETURN
5000 REM **** PRINTER SUBROUTINES ***
5030 SMALL$ = CHR$(15)
5060 UNSMALL$ = CHR$(18)
5090 EXPAND.SMALL$ = CHR$(14) + CHR$(15)
5120 CANX.EXP.COMP$ = CHR$(18) + CHR$(20)
5150 EXPAND$ = CHR$(14)
5180 EXPAND.END$ = CHR$(20)
5210 DARK$ = CHR$(27) + CHR$(69)
5240 ITALIC$ = CHR$(27) + CHR$(52)
5270 ITALIC.EXP.CON$ = CHR$(14) + CHR$(15) + CHR$(27) + CHR$(52)
5300 ITALIC.EXP$ = CHR$(27) + CHR$(52) + CHR$(14)
5330 END.ITALIC$ = CHR$(27) + CHR$(53)
5360 START.ULINE$ = CHR$(27) + CHR$(45) + CHR$(1)
5390 END.ULINE$ = CHR$(27) + CHR$(45) + CHR$(0)
5420 PERM.EXPAN$ = CHR$(27) + CHR$(87) + CHR$(1)
5450 END.PERMEXP$ = CHR$(27) + CHR$(87) + CHR$(0)
5480 START.DSTRIKE$ = CHR$(27) + CHR$(71)
5510 END.DSTRIKE$ = CHR$(27) + CHR$(72)
5540 TINYLINE$ = CHR$(27) + CHR$(83) + CHR$(0)
5570 END.TINY$ = CHR$(27) + CHR$(84)
5600 CLEANUP$ = CHR$(27) + CHR$(64)
5630 ESC$ = CHR$(27)
5660 RETURN
6000 REM ********* PRINTER ERROR ROUTINE ***************
6030 IF ERR = 24 THEN 6120 ELSE 6060
6060 IF ERR = 25 THEN 6120 ELSE 6090
6090 ON ERROR GOTO 0
6120 KEY OFF
6150  BEEP
6180   BEEP
6210    LOCATE 25,1
6240     PRINT SPC( 79)
6270      LOCATE 25,20
6300       PRINT "CHECK PRINTER - PRESS ANY KEY TO CONTINUE"
6330 IF INKEY$ = "" THEN 6330
6360 KEY ON
6390  RESUME
6420   LLIST 5000 - 5600
6450    END
65000 REM****************** SAVE ROUTINE **************************************
65100 SAVE "B:EPSONSET.BAS"