600 NEXT X,Y: IF LEN(A$) >0 THEN PRINT LN;A$:A$ = "":LN = LN +INC
610 IF CR THEN NEXT CS
620 PRINT CHR$(4)"CLOSE": TEXT : HOME : VTAB 10: PRINT "DONE": END
630 REM INPUT SUBROUTINE
640 READ MX: DIM RR$(MX):MZ = 0: HOME : VTAB 23: PRINT "<RETURN> TO ACCEPT, <ESC> FOR MENU": POKE 35,22
650 FOR MM = 1 TO MX
660 :: READ VV: READ HH: READ QQ$: READ QC$
670 QB$ = RR$(MM): IF QB$ = "" THEN QB$ = QC$
680 :: GOSUB 740:RR$(MM) = QB$: GOSUB 910: IF MZ THEN PRINT CHR$(7);: GOTO 680
690 NEXT
700 VTAB 23: HTAB 1: CALL -958: PRINT "ALL OK? ";: GET CH$: IF CH$ = "Y" OR CH$ = CHR$(121) THEN 730
710 IF CH$ < >"N" AND CH$ < > CHR$(110) THEN PRINT CHR$(7);: GOTO 700
720 PRINT : VTAB 23: PRINT "<RETURN> TO ACCEPT, <ESC> FOR MENU": RESTORE : READ MX: HOME : GOTO 650
730 RETURN
740 VTAB VV: HTAB 1: PRINT QQ$: CALL -958:
750 VTAB VV: HTAB HH: PRINT ":"QB$;: HTAB HH +1
760 GET QA$: PRINT QA$;: IF QA$ = CHR$(27) THEN CLEAR : GOTO 90
770 IF ASC(QA$) <32 AND QA$ < > CHR$(13) THEN PRINT CHR$(7);: GOTO 740
780 IF QA$ = CHR$(13) THEN RETURN
790 QB$ = QA$: CALL -868
800 GET QA$: PRINT QA$;
810 IF QA$ = CHR$(13) THEN GOTO 870
820 IF QA$ = CHR$(8) THEN GOSUB 880: GOTO 800
830 IF QA$ = CHR$(27) THEN CLEAR : GOTO 90
840 IF ASC(QA$) <32 THEN VTAB VV: GOTO 800
850 IF LEN(QB$) <18 THEN QB$ = QB$ +QA$: GOTO 800
860 PRINT CHR$(7);: CALL -1008: GOTO 800
870 RETURN
880 IF QB$ = "" THEN CALL -1036: RETURN
890 IF LEN(QB$) >1 THEN QB$ = LEFT$(QB$, LEN(QB$) -1): PRINT " ";: CALL -1008: RETURN
900 QB$ = "": PRINT " ";: CALL -1008: RETURN
910 MZ = 0: IF MM = 1 OR MM = 2 THEN RETURN
920 IF MM < >3 THEN 950
930 IF VAL(RR$(3)) >60000 OR VAL(RR$(3)) <0 THEN MZ = 1
940 RETURN
950 IF MM < >4 THEN 980
960 IF VAL(RR$(4)) >100 OR VAL(RR$(4)) <1 THEN MZ = 1
970 RETURN
980 IF MM < >5 THEN 1010
990 IF VAL(RR$(5)) <0 OR VAL(RR$(5)) >39 THEN MZ = 1
1000 RETURN
1010 IF MM < >6 THEN 1040
1020 IF VAL(RR$(6)) < VAL(RR$(5)) OR VAL(RR$(6)) >39 THEN MZ = 1
1030 RETURN
1040 IF MM < >7 THEN 1070
1050 IF VAL(RR$(7)) <0 OR VAL(RR$(7)) >39 THEN MZ = 1
1060 RETURN
1070 IF MM < >8 THEN 1110
1080 IF VAL(RR$(8)) < VAL(RR$(7)) OR VAL(RR$(8)) >39 THEN MZ = 1
1090 RETURN
1100 IF MM < >9 THEN 1120
1110 IF RR$(9) < >"F" AND RR$(9) < >"C" THEN MZ = 1
1120 RETURN
1130 DATA 9,8,21 ,INPUT FILE,SCREEN,9,21,OUTPUT FILE,LINEFILE,10,21,STARTING LINE NO.,"10",11,21,INCREMENT,"10"
1140 DATA 12,21,X START,"0",13,21,X END,"39",14,21,Y START,"0",15, 21,Y END,"39",16,21,COLOR/FULL SCREEN?,F
1150 ER = PEEK(222):EL = PEEK(219) *256 + PEEK(218)
1160 POKE 216,0: TEXT : HOME : VTAB 7: PRINT CHR$(4)"CLOSE"
1170 IF ER = 6 THEN PRINT "FILE NOT FOUND": GOTO 1210
1180 IF ER = 8 THEN PRINT "I/O ERROR": GOTO 1210
1190 IF ER = 16 THEN PRINT "SYNTAX ERROR IN LINE "EL: GOTO 1210
1200 PRINT "UNANTICIPATED ERROR IN LINE "EL
1210 VTAB 23: PRINT "PRESS <RETURN> TO RESTART";: GET CH$: CALL -3288: RESTORE : CLEAR : GOTO 90
1220 HOME : VTAB 7: PRINT "HERE'S AN EXAMPLE OF COLOR DRAWING": PRINT "GENERATED BY THE COLOR DECODING OPTION ."
1230 PRINT "THE PROGRAM LINES TO CREATE THE DRAWING": PRINT "WERE GENERATED ENTIRELY BY THIS PROGRAM!"
1240 VTAB 23: PRINT "PRESS <RETURN> TO CONTINUE";: GET CH$: GOSUB 1290
1250 TEXT : HOME : VTAB 7: PRINT "AND NOW, AN EXAMPLE OF TEXT SCREEN": PRINT "DECODING!"
1260 VTAB 23: PRINT "PRESS <RETURN> TO CONTINUE";: GET CH$: GOSUB 1380
1270 TEXT : HOME
1280 RETURN
1290 GR : COLOR= 0: FOR P = 0 TO 39: HLIN 0,39 AT P: NEXT P: COLOR= 1: HLIN 29,31 AT 3: HLIN 29,31 AT 4: VLIN 5,15 AT 30: VLIN 5,15 AT 31: HLIN 1,6 AT 7: HLIN 1,7 AT 8: VLIN 9,15 AT 2
1300 VLIN 9,15 AT 3: VLIN 9,15 AT 6: VLIN 9,15 AT 7: VLIN 14,15 AT 5: VLIN 22,37 AT 16: VLIN 22,37 AT 17: VLIN 22,38 AT 18: VLIN 22,38 AT 22: VLIN 22,37 AT 23: VLIN 22,36 AT 24
1310 VLIN 23,35 AT 15: VLIN 23,38 AT 19: VLIN 23,37 AT 20: VLIN 23,38 AT 21: VLIN 23,35 AT 25: VLIN 24,31 AT 14: VLIN 24,31 AT 26: VLIN 25,28 AT 13: VLIN 25,28 AT 27:
1320 COLOR= 4: VLIN 7,15 AT 35: HLIN 36,38 AT 7: VLIN 8,14 AT 34: HLIN 36,39 AT 8: VLIN 9,11 AT 38: VLIN 9,11 AT 39: VLIN 10,11 AT 36: VLIN 10,11 AT 37: HLIN 36,39 AT 14: HLIN 36,38 AT 15
1330 COLOR= 6: VLIN 3,4 AT 10: VLIN 3,4 AT 11: HLIN 9,11 AT 7: HLIN 9,11 AT 8: VLIN 9,15 AT 10: VLIN 9,15 AT 11:
1340 COLOR= 7: HLIN 21,23 AT 3: HLIN 21,23 AT 4: VLIN 5,15 AT 22: VLIN 5,15 AT 23: HLIN 24,26 AT 7: HLIN 24,27 AT 8: VLIN 9,15 AT 26: VLIN 9,14 AT 27: VLIN 14,15 AT 24: VLIN 14,15 AT 25
1350 COLOR= 12: VLIN 18,19 AT 22: VLIN 19,20 AT 21: VLIN 20,22 AT 20:
1360 COLOR= 15: HLIN 13,15 AT 3: HLIN 13,15 AT 4: VLIN 5,15 AT 14: VLIN 5,15 AT 15: HLIN 16,18 AT 7: HLIN 16,19 AT 8: VLIN 9,15 AT 18: VLIN 9,14 AT 19: VLIN 14,15 AT 16: VLIN 14,15 AT 17
1370 HTAB 1: VTAB 23: CALL -958: PRINT "PRESS <RETURN> TO CONTINUE";: GET CH$: RETURN
1380 COLOR= 0: FOR P = 0 TO 37: HLIN 0,39 AT P: NEXT P: COLOR= 1: PLOT 19,2: PLOT 12,4: PLOT 27,4: PLOT 2,16: PLOT 21,16: PLOT 21,18: PLOT 4,20: PLOT 4,24:
1510 COLOR= 10: HLIN 0,11 AT 1: PLOT 18,1: HLIN 24,39 AT 1: HLIN 0,7 AT 3: PLOT 10,3: PLOT 16,3: HLIN 29,39 AT 3: HLIN 0,1 AT 5: PLOT 11,5: PLOT 16,5: PLOT 19,5: HLIN 30,31 AT 5
1520 HLIN 35,39 AT 5: HLIN 0,39 AT 7: HLIN 0,39 AT 9: HLIN 0,39 AT 11: PLOT 20,12: PLOT 5,13: HLIN 10,19 AT 13: HLIN 27,39 AT 13: PLOT 20,14: PLOT 6,15: HLIN 11,19 AT 15
1530 HLIN 29,39 AT 15: PLOT 20,16: PLOT 8,17: PLOT 13,17: HLIN 16,19 AT 17: HLIN 23,39 AT 17: PLOT 20,18: HLIN 9,19 AT 19: HLIN 23,39 AT 19: PLOT 20,20: PLOT 1,21: HLIN 7,19 AT 21
1540 HLIN 22,39 AT 21: PLOT 20,22: PLOT 1,23: HLIN 5,19 AT 23: HLIN 23,39 AT 23: PLOT 20,24: PLOT 1,25: HLIN 7,19 AT 25: HLIN 22,39 AT 25: PLOT 20,26: PLOT 1,27: HLIN 5,19 AT 27
1550 HLIN 23,39 AT 27: PLOT 20,28: PLOT 5,29: PLOT 10,29: HLIN 18,19 AT 29: HLIN 22,39 AT 29: HLIN 0,39 AT 31: HLIN 0,39 AT 33: HLIN 0,39 AT 35: HLIN 0,39 AT 37:
1560 COLOR= 11: PLOT 11,2: HLIN 12,15 AT 5: PLOT 20,13: PLOT 20,15: HLIN 20,22 AT 17: HLIN 20,22 AT 19: HLIN 20,21 AT 21: HLIN 20,22 AT 23: HLIN 20,21 AT 25: HLIN 20,22 AT 27
1570 PLOT 17,29: PLOT 20,29:
1580 COLOR= 12: PLOT 13,1: HLIN 15,17 AT 1: HLIN 19,22 AT 1: VLIN 2,3 AT 27: PLOT 8,3: HLIN 11,13 AT 3: PLOT 15,3: PLOT 19,3: HLIN 22,26 AT 3: PLOT 28,3: PLOT 30,4: HLIN 2,3 AT 5
1590 HLIN 7,9 AT 5: PLOT 17,5: HLIN 20,22 AT 5: PLOT 24,5: PLOT 27,5: PLOT 29,5: HLIN 32,34 AT 5: VLIN 12,13 AT 8: HLIN 0,1 AT 13: HLIN 6,7 AT 13: VLIN 13,17 AT 9: PLOT 22,13
1600 HLIN 24,26 AT 13: VLIN 14,15 AT 21: VLIN 14,15 AT 27: PLOT 0,15: HLIN 7,8 AT 15: PLOT 10,15: HLIN 22,26 AT 15: PLOT 28,15: PLOT 2,17: HLIN 5,7 AT 17: HLIN 10,12 AT 17
1610 HLIN 14,15 AT 17: HLIN 0,2 AT 19: HLIN 4,7 AT 19: PLOT 4,21: HLIN 2,4 AT 23: PLOT 4,25: VLIN 27,29 AT 2: HLIN 3,4 AT 27: VLIN 28,29 AT 8: VLIN 28,29 AT 9: HLIN 0,1 AT 29