Source Code
10 DIM A$(2880)
20 LET X=0
30 LET Y=0
40 LET A=1
50 LET B=1
60 DIM D$(32)
70 GOTO 300
100 SLOW
102 GOSUB 5000
103 FAST
105 IF CODE B$=19 THEN GOTO 1800
110 IF CODE B$=115 THEN GOTO 1000
115 IF CODE B$=221 THEN GOTO 1900
120 IF CODE B$=114 THEN GOTO 1100
125 IF CODE B$=216 THEN GOTO 3000
130 IF CODE B$=16 THEN GOTO 1200
135 IF CODE B$=225 THEN GOTO 3500
140 IF CODE B$=228 THEN GOTO 1300
150 IF CODE B$=23 THEN GOTO 20
160 IF CODE B$=113 THEN GOTO 1400
170 IF CODE B$=112 THEN GOTO 1500
180 IF CODE B$=118 THEN GOTO 1600
190 IF CODE B$=220 THEN GOTO 1700
191 IF CODE B$=218 THEN LET B$="\ '"
200 LET A$(B)=B$
210 LET B=B+1
220 LET Y=Y+1
230 IF Y>31 THEN GOSUB 6000
300 PRINT AT 0,0;A$(A TO A+703)
999 GOTO 100
\n1000 LET B$=A$(B)
\n1010 IF X=21 AND Y=31 THEN GOTO 1030
\n1020 GOTO 200
\n1030 LET Y=-1
\n1040 LET A=A+32
\n1050 LET B$=A$(B)
\n1060 GOTO 200
\n1100 IF B=1 THEN GOTO 100
\n1105 LET B$=A$(B)
\n1110 LET B=B-1
\n1120 LET Y=Y-1
\n1130 IF Y<0 THEN GOTO 1150
\n1140 GOTO 300
\n1150 LET Y=31
\n1160 LET X=X-1
\n1170 IF X<0 THEN GOTO 1190
\n1180 GOTO 300
\n1190 LET X=0
\n1192 IF A<32 THEN GOTO 300
\n1194 LET A=A-32
\n1199 GOTO 300
\n1200 LET A$=A$( TO B-1)+" "+A$(B TO 2879)
\n1210 GOTO 300
\n1300 LET A$=A$( TO B-1)+A$(B+1 TO 2880)+" "
\n1310 GOTO 300
\n1400 LET X=X+1
\n1410 LET B=B+32
\n1420 IF X=22 THEN GOTO 1440
\n1430 GOTO 300
\n1440 LET A=A+32
\n1450 LET X=21
\n1460 GOTO 300
\n1500 IF B<33 THEN GOTO 300
\n1510 LET B=B-32
\n1520 IF X=0 THEN GOTO 1550
\n1530 LET X=X-1
\n1540 GOTO 300
\n1550 LET A=A-32
\n1560 GOTO 300
\n1600 LET B=B+32-Y
\n1610 LET X=X+1
\n1620 LET Y=0
\n1630 GOTO 1420
\n1700 LET B=B+8
\n1710 LET Y=Y+8
\n1720 IF Y>31 THEN GOTO 1740
\n1730 GOTO 300
\n1740 LET Y=Y-32
\n1750 LET X=X+1
\n1760 GOTO 1420
\n1800 LET B=A+703
\n1810 LET X=21
\n1820 LET Y=31
\n1830 GOTO 300
\n1900 LET A$(B TO B+31-Y)=D$(Y+1 TO 32)
\n1910 GOTO 300
\n3000 CLS
\n3005 PRINT " HELP MENU"
\n3010 PRINT ,,"SHIFT <5>","CURSOR LEFT"
\n3015 PRINT "SHIFT <6>","CURSOR DOWN"
\n3020 PRINT "SHIFT <7>","CURSOR UP"
\n3025 PRINT "SHIFT <8>","CURSOR RIGHT"
\n3030 PRINT "SHIFT <B>","BEGINNING TEXT"
\n3035 PRINT "SHIFT <N>","END OF SCREEN"
\n3040 PRINT "SHIFT <Y>","RIGHT 8 POS."
\n3045 PRINT "SHIFT <T>","CLEAR END LINE"
\n3050 PRINT "SHIFT <I>","INSERT BLANK"
\n3055 PRINT "SHIFT <D>","DELETE R. CHAR."
\n3060 PRINT "SHIFT <H>","HELP MENU"
\n3065 PRINT "SHIFT <S>","SAVE ON TAPE"
\n3070 PRINT "ENTER","CARR. RET."
\n3080 PRINT ,,"IF PROGRAM BREAKS, <GOTO 20> FOR BEGINNING OF TEXT. <GOTO 300> FOR LAST CURSOR POSITION. DO NOT PRESS THE <BREAK> KEY FORSPACE BETWEEN CHARACTERS."
\n3097 INPUT Z$
\n3098 CLS
\n3099 GOTO 300
\n3500 CLS
\n3510 PRINT ,,"SET UP RECORDER AND ENTER NAME OF FILE. FILE WILL BE SAVED WHEN<ENTER KEY IS PRESSED."
\n3520 SLOW
\n3530 INPUT Y$
\n3540 SAVE Y$
\n3550 FAST
\n3560 CLS
\n3570 GOTO 300
\n5000 LET B$=INKEY$
\n5010 PRINT AT X,Y;"\. ";AT X,Y;A$(B)
\n5020 IF B>2816 THEN PRINT AT 21,0;"% %N%O% %M%O%R%E% %T%E%X%T% %C%A%N% %B%E% %E%N%T%E%R%E%D% "
\n5030 IF B$="" THEN GOTO 5000
\n5040 RETURN
\n6000 LET X=X+1
\n6010 LET Y=0
\n6020 IF X=22 THEN GOTO 6040
\n6030 RETURN
\n6040 LET X=21
\n6050 LET A=A+32
\n6060 RETURN
\n7000 FAST
\n7010 CLS
\n7020 PRINT A$(A TO A+703)
\n7030 SLOW
\n7040 RETURN
\n9998 SAVE "SYNTEX%T"
\n9999 RUN