10 REM **** TEXT EDITOR 70 GOTO 300 99 REM *** WRITE SECTION 100 CLEAR 8000 110 DIM A$(100) 111 INPUT"SET TAB AT NUMBER ";T 112 T=T-1 120 PRINT "READY":WAIT 0, 1, 1 130 PRINT:PRINT:PRINT:PRINT 140 FOR I=1 TO 1000 150 K=0 160 WAIT 0,1,1 170 A=INP(1):A=A AND 127 171 IF A=92 THEN 202 180 IF A=13 THEN 280 190 IF A=95 THEN 260 200 IF A=64 THEN A$(I)="":PRINT:GOTO 150 201 GOTO 210 202 B$="": IF K>=T THEN PRINT"":GOTO 160 203 FOR TAB =1 TO T-K:B$=B$+" ":NEXT TAB 204 PRINTB$; 205 K=K+T-1 207 GOTO 220 210 B$=CHR$(A):PRINT B$; 220 A$(I)=A$(I) + B$:K=K+1 230 IF A$(I)="END"THEN K2=I:GOTO 1500 240 IF LEN(A$(I))>69 THEN 280 250 GOTO 160 260 GOSUB 1000 270 GOTO 160 280 PRINT:NEXT I 299 REM *** PROGRAM CONTROL SECTION 300 INPUT "FUNCTION";F$ 310 IF LEFT$(F$,2)="WR" THEN 100 320 IF LEFT$(F$,2)="PR" THEN 1500 330 IF LEFT$(F$,2)="ED" THEN 2000 340 IF LEFT$(F$,2)="EN" THEN END 400 PRINT "FUNCTIONS ARE:" 410 PRINT "WRITE","PRINT","EDIT","END" 500 GOTO 300 999 REM *** LAST CHARACTER EDIT SECTION 1000 C$=A$(I) 1005 IF K=0 THEN PRINT CHR$(7):RETURN 1010 IF K=1 THEN A$(I)="":PRINT CHR$(7):K=0:RETURN 1020 K=K-1:A$(I)=LEFT$(C$,K) 1030 PRINT:PRINT A$(I) 1040 RETURN 1499 REM *** PRINT SECTION 1500 PRINT:PRINT:PRINT:PRINT 1510 FOR I=1 TO 1000 1520 IF A$(I)="END" THEN 1590 1530 PRINT A$(I) 1540 NEXT I 1560 FOR T=1 TO 5000: NEXT T 1590 PRINT:PRINT:PRINT:PRINT:GOTO 300 2000 GOTO 2050 2001 REM *** EDIT LIST SECTION 2002 PRINT:PRINTTAB(5):FOR I=1 TO 6:PRINT"1234567890";:NEXT 2003 PRINT 2004 FOR I=1 TO 1000 2010 IF A$(I)="END" THEN 2050 2020 PRINT I;TAB(5);A$(I) 2030 NEXT I:PRINT:PRINT 2049 REM *** EDIT CONTROL SECTION 2050 INPUT"TYPE OF EDIT ";TE$ 2060 E$=LEFT$(TE$,2) 2070 IF E$<>"CH"AND E$<>"IN"AND E$<>"DE"AND E$<>"LI"ANDE$<>"SE"THEN 2090 2080 GOTO 2120 2090 PRINT"TYPES OF EDITING ARE:" 2100 PRINT "CHANGE","INSERT","DELETE" 2105 PRINT "SEARCH","LIST" 2110 GOTO 2050 2120 IF E$="DE" THEN 5000 2125 IF E$="SE" THEN 5600 2130 IF E$="IN" THEN 4000 2134 IF E$="LI" THEN 2002 2139 REM *** EDIT CHANGE SECTION 2140 INPUT "WHICH LINE ";LN 2150 PRINT A$(LN) 2160 INPUT "CORRECT LINE ";CL$ 2170 IF LEFT$(CL$,1)<>"Y" THEN 2140 2180 GOTO 3000 3000 INPUT "WHICH CHARACTER ";C 3010 PRINTMID$(A$(LN),C,1) 3020 INPUT "CORRECT CHARACTER ";CC$ 3030 IF LEFT$(CC$,1)<>"Y" THEN 3000 3040 INPUT "CHANGE HOW MANY ";N 3050 IF N<0 OR (N+C)>LEN(A$(LN)) THEN 3040 3060 T1$=LEFT$(A$(LN),(C-1)) 3070 T=LEN(A$(LN))-(C-1)-N 3080 T2$=RIGHT$(A$(LN),T) 3090 T$="":PRINT T1$; 3100 FOR I2=1 TO N 3110 WAIT 0,1,1 3120 Q=INP(1) 3130 Q=Q AND 127 3140 T$=T$+CHR$(Q):PRINT CHR$(Q); 3150 NEXT I2 3160 PRINT T2$ 3170 A$(LN)=T1$+T$+T2$ 3180 GOTO 300 3999 REM *** EDIT INSERT SECTION 4000 INPUT "LETTER OR LINE ";LL$ 4010 IF LEFT$(LL$,2)="LE" THEN 4050 4020 IF LEFT$(LL$,2)="LI" THEN 4400 4030 GOTO 4000 4049 REM *** LETTER INSERT SECTION 4050 INPUT "WHICH LINE ";LN 4060 PRINT A$(LN):INPUT "CORRECT LINE ";CL$ 4070 IF LEFT$(CL$,1)<>"Y" THEN 4050 4100 INPUT "AFTER WHICH CHARACTER ";LE 4110 IF LE>LEN(A$(LN)) THEN 4100 4111 IF LE=0 THEN PRINT"INSERT STARTS AT FIRST POSITION":T1$="":GOTO4143 4120 PRINT MID$(A$(LN),LE,1):INPUT"CORRECT CHARACTER ";CC$ 4130 IF LEFT$(CC$,1)<>"Y" THEN 4100 4140 T1$=LEFT$(A$(LN),LE) 4143 T2$=MID$(A$(LN),(LE+1)) 4145 T$="" 4150 PRINT T1$ 4160 WAIT 0,1,1 4170 A=INP(1):A=A AND 127 4180 IF A=13 THEN 4210 4190 T$=T$+CHR$(A):PRINT CHR$(A); 4200 IF LEN(A$(LN))+LEN(T$)=69 THEN PRINT ""; 4205 GOTO 4160 4210 A$(LN)=T1$+T$+T2$:PRINT T2$ 4220 GOTO 300 4399 REM *** LINE INSERT SECTION 4400 INPUT"AFTER WHICH LINE ";LN 4410 PRINT A$(LN):INPUT"CORRECT LINE ";CL$ 4420 IF LEFT$(CL$,1)<>"Y" THEN 4400 4430 LN=LN+1 4440 FOR L=K2 TO LN STEP -1 4450 A$(L+1)=A$(L) 4460 NEXT L:K2=K2+1 4470 PRINT"READY ":A$(LN)="":K=0 4480 WAIT 0,1,1 4490 A=INP(1):A=A AND 127 4500 IF A=13 THEN 4560 4510 IF A=95 THEN 4800 4520 IF A=64 THEN A$(LN)="":PRINT:GOTO 4480 4530 B$=CHR$(A):PRINT B$;:K=K+1 4540 A$(LN)=A$(LN)+B$ 4550 GOTO 4480 4560 PRINT:GOTO 300 4800 IF K=0 THEN PRINT"":GOTO 4480 4802 IF K=1 THEN K=0:A$(LN)="":PRINT"":GOTO 4480 4803 A$(LN)=LEFT$(A$(LN),K-1):K=K-1 4810 PRINT:PRINT A$(LN); 4820 GOTO 4480 4999 REM *** DELETE SECTION 5000 INPUT"CHARACTER OR LINE ";CL$ 5010 IF LEFT$(CL$,2)="CH" THEN 5100 5020 IF LEFT$(CL$,2)="LI" THEN 5400 5030 GOTO 5000 5099 REM *** CHARACTER DELETE SECTION 5100 INPUT "WHICH LINE ";LN 5110 PRINT A$(LN):INPUT "CORRECT LINE ";CL$ 5120 IF LEFT$(CL$,1)<>"Y" THEN 5100 5130 INPUT "AFTER WHICH CHARACTER ";N 5140 IF N=0 THEN PRINT"DELETE STARTS WITH CHARACTER 1":GOTO 5170 5145 PRINT MID$(A$(LN),N,1) 5150 INPUT "CORRECT CHARACTER ";CC$ 5160 IF LEFT$(CC$,1)<>"Y" THEN 5130 5170 INPUT"DELETE HOW MANY ";N2 5180 IF LEN(A$(LN))-N"Y" THEN 5170 5260 A$(LN)=T1$+T2$ 5270 PRINT A$(LN) 5280 GOTO 300 5399 REM *** LINE DELETE SECTION 5400 INPUT "DELETE WHICHH LINE ";WL 5410 IF WL=<0 OR WL>=K2 THEN 5400 5420 PRINT A$(WL):INPUT"CORRECT LINE ";CL$ 5430 IF LEFT$(CL$,1)<>"Y" THEN 5400 5440 IF A$(WL)="END" THEN 300 5450 FOR J=WL TO K2-1 5460 A$(J)=A$(J+1) 5470 NEXT J:K2=K2-1 5480 INPUT "NEXT LINE ALSO ";NL$ 5490 IF LEFT$(NL$,1)="Y" THEN 5440 5500 GOTO 300 5599 REM *** EDIT SEARCH SECTION 5600 PRINT "WHAT PHRASE "; 5605 A1$="":Y=0 5610 WAIT 0,1,1 5620 A=INP(1):A=A AND 127 5630 IF A=13 THEN PRINT:GOTO 5700 5640 IF A=64 OR A=95 THEN A1$="":GOTO 5600 5650 B$=CHR$(A):PRINT B$;:A1$=A1$+B$ 5655 GOTO 5610 5700 L=LEN(A1$) 5710 FOR I=1 TO 1000 5720 IF LEN(A$(I))