10 PRINT CHR$(27);"[2J"
30 PV$="BW Text Edit 1.2"
40 HR$="=========="
50 HC$="      5   10   15   20   25   30   35   40   45   50   55   60"
60 HT$="  ----.----.----.----.----.----.----.----.----.----.----.----."
70 DIM DC$(250)
80 LT=0

110 PRINT PV$
120 PRINT "? for help."

140 REM [MAIN]
150 PRINT HR$
160 CM$=""
170 INPUT "Command";CM$
180 IF CM$="a" THEN GOTO 310
190 IF CM$="i" THEN GOTO 420
200 IF CM$="x" THEN GOTO 590
210 IF CM$="e" THEN GOTO 730
220 IF CM$="c" THEN GOTO 890
230 IF CM$="r" THEN GOTO 1140
240 IF CM$="p" THEN GOTO 1290
250 IF CM$="l" THEN GOTO 1470
260 IF CM$="s" THEN GOTO 1590
270 IF CM$="?" THEN GOTO 1720
280 IF CM$="q" THEN GOTO 1870
290 GOTO 140

310 REM [APPEND]
320 PRINT "[Append]"
330 LT=LT+1
340 PRINT "Adding line #";LT
350 IF LT>1 THEN PRINT LT-1;DC$(LT-1)
360 PRINT HT$
370 LI$=""
380 INPUT LI$
390 DC$(LT)=LI$
400 GOTO 140

420 REM [INSERT]
430 PRINT "[Insert]"
440 CN=0
450 INPUT "Insert before line # (0=cancel)";CN
460 CN=INT(CN)
470 IF CN<1 THEN GOTO 140
480 IF CN>LT THEN PRINT "Last line is";LT:GOTO 140
490 PRINT HT$
500 LI$=""
510 INPUT LI$
520 FOR N=LT TO CN STEP -1
530 DC$(N+1)=DC$(N)
540 NEXT N
550 DC$(CN)=LI$
560 LT=LT+1
570 GOTO 140

590 REM [REMOVE]
600 PRINT "[Remove]"
610 CN=0
620 INPUT "Remove line # (0=cancel)";CN
630 CN=INT(CN)
640 IF CN<1 THEN GOTO 140
650 IF CN>LT THEN PRINT "!) Last line is";LT:GOTO 140
660 FOR N=CN TO LT-1
670 DC$(N)=DC$(N+1)
680 NEXT N
690 DC$(LT)=""
700 LT=LT-1
710 GOTO 140

730 REM [EDIT]
740 PRINT "[Edit Line]"
750 CN=0
760 INPUT "Edit line # (0=cancel)";CN
770 CN=INT(CN)
780 IF CN<1 THEN GOTO 140
790 IF CN>LT THEN PRINT "!) Last line is";LT:GOTO 140
800 PRINT HR$
810 PRINT CN;DC$(CN)
820 PRINT HT$
830 LI$=""
840 INPUT LI$
850 IF LI$="" THEN PRINT "Canceled.":GOTO 140
860 DC$(CN)=LI$
870 GOTO 140

890 REM [CHARACTER]
900 PRINT "[Edit char]"
910 CN=0
920 INPUT "Edit char in line # (0=cancel)";CN
930 CN=INT(CN)
940 IF CN<1 THEN GOTO 140
950 IF CN>LT THEN PRINT "!) Last line is";LT:GOTO 140
960 PRINT HC$
970 PRINT HT$
980 PRINT "  ";DC$(CN)
990 PRINT
1000 CA=0
1010 INPUT "Replace char # (0=cancel)";CA
1020 CA=INT(CA)
1030 I=LEN(DC$(CN))
1040 IF CA<1 THEN GOTO 140
1050 IF CA>I THEN PRINT "!) Last char is";I:GOTO 140
1060 CR$=MID$(DC$(CN),CA,1)
1070 PRINT "Replace ";CR$;" with";
1080 LI$="": INPUT LI$
1090 IF LI$<>"" THEN CR$=LI$
1100 DC$(CN)=LEFT$(DC$(CN),CA-1)+LEFT$(CR$,1)+RIGHT$(DC$(CN),I-CA)
1110 PRINT DC$(CN)
1120 GOTO 140

1140 REM [REVIEW]
1150 PRINT "[Review]"
1160 IF LT=0 THEN PRINT "!) No lines yet.":GOTO 140
1170 PRINT LT;" lines total:"
1180 PRINT " ";HT$
1190 I=0
1200 FOR N=1 to LT
1210 PRINT STR$(N);" ";DC$(N)
1220 I=I+1
1230 IF I=20 THEN I=0:INPUT "Continue (Y/n/c)";CM$
1240 IF CM$="n" THEN GOTO 140
1250 IF CM$="c" THEN I=21
1260 NEXT N
1270 GOTO 140

1290 REM [PARSE]
1300 PRINT "[Parse and Read]"
1310 IF LT=0 THEN PRINT "!) No lines yet.":GOTO 140
1320 PRINT HR$
1330 PD=0
1340 FOR N=1 to LT
1350 FOR N2=1 to LEN(DC$(N))
1360 PR$=MID$(DC$(N),N2,1)
1370 IF PR$="\" AND PD=0 THEN PD=1:PR$=""
1380 IF PR$="\" AND PD=1 THEN PR$="":PD=0:PRINT ",";
1390 IF PR$<>"\" AND PD=0 THEN PD=0:PRINT PR$;
1410 NEXT N2
1420 PRINT
1430 NEXT N
1450 GOTO 140

1470 REM [LOAD]
1480 PRINT "[LOAD]"
1490 PRINT "Type, paste, or PLAY lines. Enter \. on a line to end"
1500 PRINT HT$
1510 REM [LOADPOINT]
1520 LI$=""
1530 INPUT LI$
1540 IF LI$="\." THEN GOTO 140
1550 LT=LT+1
1560 DC$(LT)=LI$
1570 GOTO 1510

1590 REM [SAVE]
1600 PRINT "[SAVE]"
1610 IF LT=0 THEN PRINT "!) No lines yet.":GOTO 140
1620 CM$=""
1630 PRINT "RECORD and then ENTER to list."
1640 PRINT "When done, ENTER after stopping tape."
1650 INPUT CM$
1660 FOR N=1 to LT
1670 PRINT DC$(N)
1680 NEXT N
1690 INPUT CM$
1700 GOTO 140

1720 REM [HELP]
1730 PRINT HR$
1740 PRINT PV$
1750 PRINT
1780 PRINT "  Line Cnt:";LT
1790 PRINT
1800 PRINT "a) append      i) insert line  x) remove line"
1810 PRINT "e) edit line   c) edit char
1820 PRINT "r) review      p) parse and read"
1830 PRINT "l) load lines  s) save         q) quit"
1840 PRINT
1850 GOTO 140

1870 REM [QUIT]
1880 CM$=""
1890 INPUT "Quit (y/N)";CM$
1900 IF CM$="y" THEN END
1910 GOTO 140