Listing of file='TXTEDT.BAS;01' on disk='vmedia/ncc_17-sector.ccvf'
5 REM BILL KOCH'S 10 PLOT 12:PRINT TAB( 20)"BASIC WORD PROCESSOR" 20 REM 80 MICROCOMPUTING, MAY 1980 30 CLEAR 1500:NL= 120:DIM A$(NL),X$(3),S(20),T(20) 35 FILE "T",4150 40 B$= CHR$ (11):F$= "#":N$= "Y":PN$= "N":P1$= "Y" 50 S$= " ":H$= S$:LA= - 1:P= 1:FP= 1:PL= 25:LL= 55:LM= 10:U= 32 55 ST$= " ":FOR I= 1TO 3:ST$= ST$+ ST$:NEXT I 57 FOR I= 1TO 4:CR$= CR$+ CHR$ (13):NEXT 58 GOTO 1320 60 L= LA:IT= 0:R= 0:A$= "":PRINT :PRINT "COMMAND ";:GOSUB 2200 70 AA= A- 64:IF AA = < 0GOTO 80 75 ON AAGOTO 90,480,510,760,790,1220,80,1320,1350,1390,1510,4200,1580,80,80,1640,80,1750,4000,80,80,1830,80,1970 80 PRINT "** ENTRY ERROR **":GOTO 60 90 PLOT 12:D= 0:N$= "Y":IF LA< 0THEN L= 0:GOTO 130 100 IF NL= LA+ 1THEN 210 104 IF L> FL+ 12THEN B= L- 12: GOTO 110 106 B= FL 110 FOR I= BTO L:X= LEN (A$(I)):D= D+ INT ((X+ 4)/ 64- .01) 120 GOSUB 1910:NEXT I:L= L+ 1 130 C= (L- FL+ D)* 64:IF C> 1920THEN C= 1920:PRINT :PRINT 140 GOSUB 2000:PRINT F$+ RIGHT$ (" "+ STR$ (L),2)+ " ";:I= L:GOSUB 3100 145 P= LEN (A$(L))+ 1:C= C+ P+ 4:K= L+ 1 150 GOSUB 2200 155 IF A> 64 AND A< 91 THEN A= A+ U:GOTO 200:REM ADJ UPPER/LOWER 160 IF A> 96 AND A< 123 THEN A= A- U:PLOT 26,20,A,18:GOTO 200 161 IF (A> 31AND A< 65)OR (A> 90AND A< 96)THEN GOTO 200 162 ON A- 7GOTO ,410,310,,,170,,,,,,,,,,,380,410,,,330,,,460 165 GOTO 190 170 A= ASC (S$):GOTO 210 190 IF A< > 96 GOTO 200 193 IF LA< LTHEN LA= L 195 GOTO 60 200 A$(L)= A$(L)+ CHR$ (A) 205 IF P> LLGOTO 210 206 P= P+ 1:C= C+ 1:IF P= LL- 5THEN PLOT 6,75,3,59,Y,96,6,2,26,26,26,26,26,26 207 GOTO 150 210 IF R< > 0GOTO 60 215 IF NL< = KTHEN PRINT :PRINT " FILE FULL":LA= NL- 1:GOTO 60 220 IF LEN (A$(K))< > 0THEN L= K:GOSUB 1360 230 IF K> LATHEN LA= K 240 IF S$= CHR$ (A)GOTO 280 250 FOR M= LL+ 1TO 2STEP - 1:A$= MID$ (A$(L),M,1):IF A$< > S$THEN NEXT M:GOTO 280 260 A$(K)= RIGHT$ (A$(L),LL- M+ 1):A$(L)= LEFT$ (A$(L),M- 1) 265 X= LL- M+ 1 270 C= C- LL+ M- 1:GOSUB 2000:PRINT RIGHT$ (ST$,LL- M+ 2);:L= K:GOTO 130 280 A$(L)= LEFT$ (A$(L),LL):L= K:GOTO 130 290 IF A> 64AND A< 91THEN A$= CHR$ (20)+ CHR$ (A)+ CHR$ (18):P= P+ 2:RETURN 295 IF A> 96AND A< 123THEN A= A- U 300 A$= CHR$ (A):RETURN 310 IF P> LLGOTO 210:REM DELETE 320 GOSUB 2000:PRINT CHR$ (94);:A$(L)= A$(L)+ CHR$ (4):A$= S$:GOTO 210 330 IF P> LLGOTO 210:REM S-D 340 C= (L- FL+ D)* 64:IF C> 900THEN C= 900 350 GOSUB 1180:A= 13:GOTO 162 380 IF P= 1GOTO 150:REM S-L 390 A$(L)= "":P= 1:C= (L- FL+ D)* 64+ 4:IF C> 900THEN C= 900 400 GOSUB 2000:PRINT B$;:GOTO 150 410 IF P> LL- 6GOTO 150:REM R 420 A$(L)= A$(L)+ LEFT$ (ST$,5):C= C+ 5:P= P+ 5:GOTO 150 430 IF P> LLGOTO 210:REM S-R 440 C= (L- FL+ D)* 64+ 4:IF C> 900THEN C= 900 450 GOSUB 1200:P= 1:A$= S$:GOTO 210 460 IF P> LLGOTO 210:REM CL 470 GOSUB 2000:PRINT CHR$ (93);:A$(L)= A$(L)+ CHR$ (5):A$= S$:GOTO 210 480 PLOT 12:PRINT "DELETING BLANK LINES":FOR J= LATO 0STEP - 1:REM BLANK 490 IF A$(J)= ""THEN FOR I= JTO LA:A$(I)= A$(I+ 1):NEXT I:A$(LA)= "":LA= LA- 1 500 NEXT J:IF R= 1THEN RETURN 505 GOTO 1830 510 PRINT :INPUT "FIRST LINE TO COMPILE ";F:IF F< 0THEN F= 0:REM COMPILE 520 INPUT "LAST LINE TO COMPILE ";Z:IF Z> LATHEN Z= LA 530 IF F> = Z GOTO 80 535 PLOT 12:PRINT "COMPILING":FOR L= FTO Z- 1:K= L+ 1 540 X= LEN (A$(L)):X$= "":IF X< 2GOTO 620 545 IF X< = LLGOTO 600 550 FOR I= XTO 1STEP - 1:A$= MID$ (A$(L),I,1) 560 IF A$< > S$THEN X$= A$+ X$:NEXT I:GOTO 600 565 IF X$= ""THEN NEXT I 570 A= ASC (RIGHT$ (X$,1)):IF A= 33OR A= 46OR A= 58OR A= 63THEN X$= X$+ " " 580 A$(L)= LEFT$ (A$(L),I- 1):IF LEN (A$(K))= 0THEN A$(K)= X$:GOTO 540 590 A$(K)= X$+ S$+ A$(K):GOTO 540 600 X= LEN (A$(L)):IF X< 2GOTO 620 605 FOR I= XTO 2STEP - 1 610 IF RIGHT$ (A$(L),1)= S$THEN A$(L)= LEFT$ (A$(L),I- 1):NEXT I 620 NEXT L:FOR L= FTO Z- 1:K= L+ 1 630 X= LEN (A$(L)):Y= LEN (A$(K)):X$= "":IF X= 0OR Y= 0GOTO 750 640 A= ASC (RIGHT$ (A$(L),1)) 650 IF A= 33OR A= 46OR A= 58OR A= 63THEN A$(L)= A$(L)+ " ":X= X+ 2 660 FOR I= 1TO Y:A$= MID$ (A$(K),I,1) 670 IF A$< > S$THEN X$= X$+ A$:NEXT I 675 IF X$= ""THEN NEXT I 680 IF LL- X< IGOTO 710 690 Y= Y- I:IF Y< 0THEN Y= 0 700 A$(L)= A$(L)+ S$+ X$:IF Y= 0THEN A$(K)= "":GOTO 630 705 A$(K)= RIGHT$ (A$(K),Y):GOTO 630 710 X= LEN (A$(L)):IF X< 2GOTO 730 715 FOR I= XTO 2STEP - 1 720 IF RIGHT$ (A$(L),1)= S$THEN A$(L)= LEFT$ (A$(L),I- 1):NEXT I 730 IF Y< 2GOTO 750 735 FOR I= YTO 2STEP - 1 740 IF LEFT$ (A$(K),1)= S$THEN A$(K)= RIGHT$ (A$(K),I- 1):NEXT I 750 NEXT L:X= LEN (A$(Z)):GOTO 900 760 INPUT "FIRST LINE TO DELETE ";F:IF F< 0THEN F= 0:REM DELETE 770 INPUT "LAST LINE TO DELETE ";Z:IF Z> LATHEN Z= LA 780 IF F> ZGOTO 80 785 FOR I= FTO Z:A$(I)= "":NEXT I:GOTO 1830 790 PRINT :INPUT "EDIT LINE ";L:IF L< 0OR L> LAOR A$(L)= ""GOTO 80:REM EDIT 800 C= 4+ 64:P= 1:X$(0)= A$(L):N$= "Y" 810 PLOT 12:I= L:GOSUB 1910:N= 1:Q$= "" 820 GOSUB 910:IF A> 47AND A< 58THEN Q$= Q$+ A$:N= VAL (Q$):GOTO 820 830 M= 0:IF A= 26THEN Y= - 1:GOSUB 940:GOSUB 2000 835 IF A= UTHEN Y= 1:GOSUB 940:GOSUB 2000 840 IF A= 65THEN A$(L)= X$(0):GOTO 800:REM A 850 IF LEN (A$(L))> = LLGOTO 870 860 IF A= 25THEN GOSUB 1200 865 IF A= 28THEN GOSUB 1180 870 IF A> 66THEN ON A- 66GOSUB 960,1000,790,1960,1960,1020,1030,,,800 880 IF A= 83THEN GOSUB 1120 884 IF A= 88THEN GOSUB 1170 890 IF M= 1THEN N= 1:Q$= "":GOTO 820 895 IF R= 0GOTO 810 897 C= 320:GOSUB 2000 900 IF LL< XTHEN PRINT "LINE ";L;" HAS ";X;" CHARACTERS":GOTO 60 905 GOTO 1830 910 POKE 33278,0:A$= "" 920 A= PEEK (33278):IF A= 0 GOTO 920 930 A$= CHR$ (A):IF A= 13 OR A= 96 THEN R= 1 935 RETURN 940 M= 1:FOR I= 1TO N:P= P+ Y:IF P> XTHEN P= X:RETURN 950 IF P< 1THEN P= 1:RETURN 955 C= C+ Y:NEXT I:RETURN 960 Q= P:D= C:X$(1)= "":PLOT 26, 22 965 GOSUB 910:IF R= 1 GOTO 980 970 GOSUB 3200:X$(1)= X$(1)+ A$ 975 P= P+ 1:C= C+ 1:IF P< = X GOTO 965 977 IF P< = LL THEN X= X+ 1:GOTO 965 980 IF 0= LEN (X$(1)) GOTO 990 985 P= P- 1:GOSUB 1100:A$(L)= L$+ X$(1)+ R$ 990 P= Q:C= D:PLOT 18:RETURN 1000 IF P+ N- 1> XTHEN N= X- P+ 1:REM D 1010 Q= P:P= P+ N- 1:GOSUB 1100:A$(L)= L$+ R$:P= Q:R= 0:RETURN 1020 Q= P:X= P:GOSUB 1100:A$(L)= L$+ S$:C= C- 64:P= P+ 1:GOSUB 2000:REM H 1025 PRINT LEFT$ (ST$,LL- Q):C= C+ 1:GOSUB 2000:GOTO 960 1030 X$(1)= "":X$(2)= "":REM INSERT 1035 Q= P:P= P- 1:GOSUB 1100 1040 FOR ZZ= 1TO LEN (R$):AA= ASC (MID$ (R$,ZZ,1)) 1045 IF AA> 64AND AA< 91THEN A$= CHR$ (20)+ CHR$ (AA)+ CHR$ (18):GOTO 1060 1050 IF AA> 96AND AA< 123THEN AA= AA- U 1055 A$= CHR$ (AA) 1060 X$(2)= X$(2)+ A$:NEXT ZZ 1065 P= Q:GOSUB 2000 1070 GOSUB 910:IF R= 1GOTO 1090 1075 GOSUB 3200:X$(1)= X$(1)+ A$:P= P+ 1:C= C+ 1 1080 IF LL= X+ LEN (X$(1))THEN PLOT 10,10,13:PRINT "MAX LINE LENGTH ":GOTO 1090 1085 PRINT X$(2):GOSUB 2000:GOTO 1070 1090 A$(L)= L$+ X$(1)+ R$:R= 0:RETURN 1100 L$= "":IF P< 2THEN RETURN 1105 L$= LEFT$ (A$(L),Q- 1) 1110 R$= "":IF P> = XTHEN RETURN 1115 R$= RIGHT$ (A$(L),X- P):RETURN 1120 GOSUB 910:F= 0:M= 1:REM S 1130 FOR J= PTO X 1135 IF MID$ (X$(0),J,1)= A$ THEN F= F+ 1:IF F= N GOTO 1160 1140 NEXT J 1150 PRINT "COULD ONLY FIND ";F;" OF THE ";N;" ";A$;"'S SEARCHING FOR!":RETURN 1160 C= C+ J:GOSUB 2000:RETURN 1170 A$(L)= A$(L)+ S$:P= X+ 1:C= P+ 4:GOTO 960:REM X 1180 FOR Q= 1TO LEN (A$(L)):IF MID$ (A$(L),Q,1)= S$THEN NEXT Q 1182 A$(L)= RIGHT$ (A$(L),LEN (A$(L))- (Q- 1)) 1184 IF RIGHT$ (A$(L),1)= CHR$ (5)THEN A$(L)= LEFT$ (A$(L),LEN (A$(L))- 1) 1186 A$(L)= LEFT$ (ST$,(LL- LEN (A$(L)))/ 2)+ A$(L)+ CHR$ (5):REM S-D 1190 GOSUB 2000:GOSUB 1910:RETURN 1200 A$(L)= LEFT$ (ST$,LL- LEN (A$(L)))+ A$(L):REM S-R 1210 GOSUB 2000:PRINT B$;A$(L);:RETURN 1220 PLOT 12:PRINT "LINE LENGTH = ";LL,:FM= LL:GOSUB 1313:LL= FM:REM FORMAT 1230 PRINT "LINE SPACES = ";S,:FM= S:GOSUB 1313:S= FM 1240 PRINT "LINE # = '";N$;"'",:FM$= N$:GOSUB 1315:N$= FM$ 1250 PRINT "FIRST LINE = ";FL,:FM= FL:GOSUB 1313:FL= FM 1260 PRINT "LEFT MARGIN = ";LM,:FM= LM:GOSUB 1313:LM= FM 1270 PRINT "PAGE LENGTH = ";PL,:FM= PL:GOSUB 1313:PL= FM 1280 PRINT "PAGE # = '";PN$;"'",:FM$= PN$:GOSUB 1315:PN$= FM$ 1290 PRINT "FIRST PAGE = ";FP,:FM= FP:GOSUB 1313:FP= FM 1300 PRINT "PAGE 1 # = '";P1$;"'",:FM$= P1$:GOSUB 1315:P1$= FM$ 1310 PRINT "HEADING = '";H$;"'":FM$= H$:GOSUB 1318:H$= FM$:H= LEN (H$) 1311 IF LL< H+ 7 THEN PRINT "HEADER TOO LONG - BY ";H+ 7- LL;" CHARACTERS!":GOTO 1310 1312 GOTO 60 1313 INPUT "OK? ";AN$:IF AN$= "N" THEN INPUT "NEW ";FM 1314 RETURN 1315 INPUT "OK? ";AN$:IF AN$< > "N" THEN RETURN 1316 IF FM$= "Y"THEN FM$= "N":RETURN 1317 IF FM$= "N"THEN FM$= "Y":RETURN 1318 INPUT "OK? ";AN$:IF AN$< > "N"THEN RETURN 1319 INPUT "NEW HEADING? ";FM$:RETURN 1320 PLOT 12:PRINT "LEGAL COMMANDS ARE:":REM HELP 1330 PRINT "A ADD","B BLANK","C COMPILE","D DELETE","E EDIT","F FORMAT","H HELP" 1335 PRINT "I INSERT","J JUSTIFY","K KILL","L LOAD","M MOVE","P PRINT","R REPLACE" 1337 PRINT "S SAVE","V VIDEO","X EXIT" 1340 PRINT "KEY 'SHIFT-@' (NULL) TO RETURN FROM A,E,I,R TO COMMAND MODE":GOTO 60 1350 INPUT "INSERT AT LINE ";L:IF L< 0OR L> LAGOTO 80:REM INSERT 1355 FL= L- 2:IF FL< 2THEN FL= 0 1360 IF NL= LA+ 1THEN PRINT "FILE FULL":GOTO 60 1365 IF R= 1GOTO 60 1370 FOR I= LATO LSTEP - 1:A$(I+ 1)= A$(I):NEXT I 1380 A$(L)= "":LA= LA+ 1:L= L- 1:IF IT= 1 THEN RETURN 1385 IT= 1:GOTO 90 1390 PLOT 12:PRINT "JUSTIFYING":FOR L= 0TO LA:X= LEN (A$(L)):REM JUSTIFY 1400 IF X< 2GOTO 1500 1405 FOR I= XTO 2STEP - 1:A= ASC (RIGHT$ (A$(L),1)) 1410 IF A= UTHEN A$(L)= LEFT$ (A$(L),I- 1):X= X- 1:NEXT I 1420 IF X> = LLOR A= 4OR A= 5THEN 1500 1425 J= 0:K= 1:FOR I= 1TO X 1430 IF MID$ (A$(L),I,1)< > S$THEN K= 0:GOTO 1440 1435 IF K= 0THEN K= 1:S(J)= I:J= J+ 1 1440 NEXT I:IF J= 0GOTO 1500 1450 K= INT (J* RND (1)):IF INT (J/ 2)= J/ 2OR J= 1THEN N= 1:GOTO 1460 1455 N= 2 1460 FOR I= 1TO LL- X:T(K)= T(K)+ 1:K= K+ N:IF K> J- 1THEN K= K- J 1470 NEXT I:FOR I= J- 1TO 0STEP - 1:A$= LEFT$ (ST$,T(I)):T(I)= 0 1480 A$(L)= LEFT$ (A$(L),S(I))+ A$+ RIGHT$ (A$(L),LEN (A$(L))- S(I)) 1490 NEXT I 1500 NEXT L:GOTO 1830 1510 PLOT 12:INPUT "*** REALLY KILL? (Y/N) ";A$:IF A$= "Y"THEN RUN :REM KILL 1515 GOTO 60 1580 INPUT "FIRST LINE TO MOVE? ";F:IF F< 0THEN F= 0:REM MOVE 1590 INPUT "LAST LINE TO MOVE? ";Z:IF Z> LATHEN Z= LA 1600 IF F> ZGOTO 80 1605 INPUT "FIRST NEW LINE? ";N:FOR I= FTO Z 1610 IF LEN (A$(N))> 0THEN PRINT "LINE ";N;" NOT EMPTY":PRINT :PRINT "LINE ";F;" TO ";N- 1;" MOVED!":GOTO 60 1620 A$(N)= A$(I):A$(I)= "":N= N+ 1:IF N> LATHEN LA= N 1630 NEXT I:GOTO 1830 1640 PLOT 27,18,4:PN= FP:M= FL:POKE 33289,LM+ LL+ 10 1650 PLOT 12:PRINT "PRINTING" 1660 PLOT 27,13 1670 IF PN$< > "Y"OR (P1$= "N" AND PN= 1) GOTO 1700 1690 PRINT LEFT$ (ST$,LM);H$;LEFT$ (ST$,LL+ LM- 7- LEN (H$));"Page";RIGHT$ (" "+ STR$ (PN),3):PRINT 1700 FOR P= MTO M+ PL- 1:IF P> LA GOTO 1740 1710 M= M+ 1:IF S> 0 THEN PRINT LEFT$ (CR$,S) 1720 PRINT LEFT$ (ST$,LM);:IF N$= "Y" THEN PRINT F$+ RIGHT$ (" "+ STR$ (P),2)+ " "; 1725 IF LEN (A$(P))= 0THEN PRINT :GOTO 1735 1730 PRINT A$(P):IF ASC (RIGHT$ (A$(P),1))= 4 THEN PRINT CHR$ (12) 1735 NEXT P 1740 IF P> LA THEN PRINT LEFT$ (CR$,5): POKE 33265,0: GOTO 60 1745 PN= PN+ 1:PRINT CHR$ (12):GOTO 1670 1750 INPUT "REPLACE LINE # ";L:IF L< 0OR L> LA GOTO 80:REM REPLACE LINE 1755 FL= L- 2:IF FL< 2THEN FL= 0 1760 R= 1:A$(L)= "":L= L- 1:GOTO 90 1830 PRINT "TEXT HAS ";LA;" LINES!",:INPUT "START LINE? (DEFAULT = 0) ";Q:REM VIDEO DISPLAY 1834 PLOT 12,6,2:PN= FP- 1 1835 FOR M= QTO LASTEP PL:PN= PN+ 1 1840 IF P1$= "N"AND PN= 1GOTO 1860 1850 IF PN$= "Y"THEN PRINT H$;LEFT$ (ST$,LL- LEN (H$)- 7);"PAGE ";PN:PRINT 1860 FOR I= MTO M+ PL- 1:IF I> LAGOTO 1890 1870 IF S= 0GOTO 1880 1875 FOR ZZ= 1TO S:PRINT CHR$ (10):NEXT ZZ 1880 GOSUB 1910 1890 NEXT I:A$= "":IF I< = LA THEN INPUT "PRESS ENTER ";AN$:IF AN$< > "0"THEN M= LA 1900 NEXT M:L= LA:GOTO 60 1910 X= LEN (A$(I)):IF X< > 0THEN A= ASC (RIGHT$ (A$(I),1)) :GOTO 1920 1915 A= 0 1920 IF N$= "Y"THEN PRINT F$+ RIGHT$ (" "+ STR$ (I),2)+ " "; 1930 GOSUB 3100 1939 IF A= 4THEN PRINT CHR$ (94); 1940 IF A= 5THEN PRINT CHR$ (93); 1945 IF A= UTHEN PRINT CHR$ (95); 1950 IF N$< > "Y"OR Y< > 60THEN PRINT 1960 RETURN 1970 PLOT 12:INPUT "REALLY EXIT? (Y/N) ";AN$:IF AN$< > "Y"GOTO 60 1980 PLOT 12:PRINT "END OF WORD PROCESSOR":END 2000 Y= INT (C/ 64):XX= C- Y* 64:PLOT 3,XX,Y:RETURN 2200 POKE 33278,0:REM GET KEYBOARD 2210 A= PEEK (33278):IF A= 0GOTO 2210 2220 IF A= 26AND P> 0THEN PLOT 32,26:P= P- 1:A$(L)= LEFT$ (A$(L),P- 1):C= C- 1:GOTO 2200 2230 RETURN 3100 IF LEN (A$(I))= 0 GOTO 3150 3105 FOR ZZ= 1TO LEN (A$(I)) 3110 AA= ASC (MID$ (A$(I),ZZ,1)) 3120 IF AA> 64 AND AA< 91 THEN PLOT 20:GOTO 3140 3130 IF AA> 96 AND AA< 123 THEN AA= AA- U 3140 PRINT CHR$ (AA);:PLOT 18:NEXT ZZ 3150 RETURN 3200 IF A> 64 AND A< 91 THEN A= A+ U:GOTO 3220:REM ADJ UPPER/LOWER 3210 IF A> 96 AND A< 123 THEN A= A- U:PLOT 26,20,A,18:GOTO 3220 3220 A$= CHR$ (A):RETURN 4000 PLOT 12 4005 INPUT "NAME OF FILE (MAX 6 CHARACTERS) ";A$:REM SAVE 4010 IF 6< LEN (A$) THEN PRINT "FILE NAME TOO LONG..MAX 6 CHARACTERS":GOTO 4005 4015 PRINT :INPUT "IS THIS A NEW FILE? Y/N ";AN$ 4020 IF 6< LEN (A$) THEN PRINT "FILE NAME TOO LONG..MAX 6 CHARACTERS":GOTO 4005 4030 IF AN$= "Y" THEN PRINT "CREATING NEW FILE ":FILE "N",A$,60,128,8:PLOT 3,64,0 4040 PLOT 28,11:PRINT "OPENING FILE!" 4050 FILE "R",1,A$,2 4060 PLOT 28,11:PRINT "SAVING TEXT ":PLOT 3,64,0 4070 PUT 1;RC,L,H,LA,LL,S,N$[1],FL,LM,PL,PN$[1],FP,P1$[1] 4080 PUT 1;H$[H] 4082 L= 0:X$= "":RC= 0 4084 FOR I= 0TO LA 4088 X$= X$+ A$(I)+ CHR$ (13) 4090 L= LEN (X$) 4092 IF 128< L GOTO 4098 4094 IF L= 128 THEN PUT 1;X$[128]:RC= RC+ 1:L= 0:X$= "":NEXT I:GOTO 4106 4096 IF I= LATHEN PUT 1;X$[L]:RC= RC+ 1:GOTO 4106 4097 NEXT I:GOTO 4106 4098 L$= LEFT$ (X$,128) 4100 R$= RIGHT$ (X$,L- 128) 4102 PUT 1;L$[128]:RC= RC+ 1 4104 L= LEN (R$):X$= R$:L$= "":R$= "":GOTO 4096 4106 PUT 1,1;RC,L 4110 FILE "C",1 4120 PLOT 28,11:PRINT "FILE CLOSED - TEXT SAVED IN ";A$;"" 4130 PRINT "REMOVE DISC!!":GOTO 60 4150 FILE "E",F,ER,LN 4160 IF ER= 2 OR ER= 14 THEN PRINT "INCORRECT FILE NAME! ":IF AA= 19GOTO 4000 4170 IF ER= 2OR ER= 14GOTO 4205 4175 PRINT "FILE ERROR ER = ";ER,"LN = ";LN;"" 4180 GOTO 60 4200 PLOT 12 4205 INPUT "NAME OF TEXT FILE? ";A$:REM LOAD FILE 4210 PRINT :PRINT "OPENING FILE" 4220 FILE "R",1,A$,2 4230 PLOT 28,11:PRINT "LOADING TEXT ":PLOT 3,64,0 4240 GET 1;RC,D,H,LA,LL,S,N$[1],FL,LM,PL,PN$[1],FP,P1$[1] 4250 GET 1;H$[H] 4260 L= 0:A$(L)= "":Z= 0:J= 128 4262 FOR I= 1TO RC 4264 GET 1;X$[J]:Q= 1 4265 FOR P= 1TO J 4266 A= ASC (MID$ (X$,P,1)) 4267 IF P= JAND A< > 13THEN P= P+ 1:GOTO 4271 4270 IF A< > 13GOTO 4274 4271 A$(L)= A$(L)+ MID$ (X$,Q,P- Q) 4272 IF P= J+ 1GOTO 4274 4273 L= L+ 1:Q= P+ 1:A$(L)= "" 4274 NEXT P:IF I= RC- 1THEN J= D 4275 NEXT I 4280 FILE "C",1 4290 PLOT 28,11:PRINT "FILE CLOSED..TEXT LOADED ":GOTO 60