Program:Editype.bas
Appearance
42 PC=1:LC=1:F=0:PRINT CHR$(14): DIM A$(200):PRINT "{CLEAR}":POKE 650,128
51 M$=""
53 PRINT "{CLEAR} MODE SELECTION":PRINT:PRINT:PRINT"LP=LOAD AND PRINT":PRINT
55 PRINT "N=NEW":PRINT:PRINT"E=EDIT":PRINT:PRINT"P=PRINT"
58 PRINT:PRINT "S=SAVE":PRINT:PRINT "L=LOAD":PRINT:PRINT "C=CONTINUE"
60 PRINT:INPUT "SELECT MODE: "; M$
61 IF M$="E" THEN 3010
62 IF M$="P" THEN 3800
63 IF M$="N" THEN 100
64 IF M$="L" THEN 5000
65 IF M$="S" THEN 6000
66 IF M$="LP" THEN 3800
67 IF M$="C" THEN FOR B=1 TO K-1:PRINT A$(B):NEXT B PRINT A$(K);:GOTO 120
68 GOTO 51
100 FOR A=1 TO 200:A$(A)="":NEXT A
103 INPUT "TYPE FILE NAME";V$
105 PRINT "{CLEAR} NEW MODE":K=1
120 POKE 204,0:POKE 207,0:GET C$:IF C$="" THEN 120:POKE 204:2
130 IF C$="{DOWN}" THEN 120
140 IF C$="{UP}" THEN 120
150 IF C$="{RIGHT}" THEN 120
160 IF C$="{LEFT}" THEN 120
170 IF C$="@" THEN 51
171 IF C$="{HOME}" THEN 120
172 IF C$="{CLEAR}" THEN 120
175 IF C$=CHR$(20) AND LEN(A$(K))=0 THEN 120
180 PRINT C$;
190 IF C$=CHR$(13) THEN K=K+1:A$(K)=A$(K)+C$:GOTO 120
200 IF C$=CHR$(20) THEN A$(K)=LEFT$(A$(K),LEN(A$(K))-1):GOTO 120
210 A$(K)=A$(K)+C$:C$="":IF LEN(A$(K))<22 THEN 120
220 IF RIGHT$(A$(K),1)=CHR$(32) THEN 240
221 IF RIGHT$(A$(K),1)=CHR$(160) THEN 240
230 A$(K+1)=RIGHT$(A$(K),1)+A$(K+1):A$(K)=LEFT$(A$(K),LEN(A$(K))-1):GOTO 220
240 FOR U=1 TO 22-LEN(A$(K)):PRINT CHR$(20);:NEXT U
250 IF LEN(A$(K))<11 THEN PRINT,,
260 IF LEN(A$(K))>10 THEN PRINT,
264 IF A$(K)="" THEN A$(K)=" "
265 IF FRE(O)<600 THEN PRINT "{REV}MEMORY LOW{OFF}":PRINT
266 IF FRE(O)<500 THEN 51
270 K=K=1:PRINT A$(K);:GOTO 120
280 GOTO 51
3010 C4$="":C5$=""
3015 PRINT "{CLEAR} EDIT MODE":Q=1
3025 PRINT:PRINT "F=FORWARD":PRINT "@=RETURN TO MENU":PRINT "C=CORRECT"
3016 PRINT "SELECTION? "
3030 GET W$:IF W$="" THEN 3030
3040 IF W$="F" THEN PRINT A$(Q):Q=Q+1:IF Q>199 THEN 51:GOTO 3030
3055 IF W$="@" THEN 51
3066 IF W$="C" THEN 3200
3061 GOTO 3030
3200 PRINT "ERROR:"
3210 FOR A=1 TO 80
3220 GET J$:IF J$="" THEN 3220
3225 IF J$="{UP}" THEN 3250
3226 IF J$=CHR$(20) THEN C4$=LEFT$(C4$,LEN(C4$)-1):GOTO 3235
3230 C4$=C$+J$
3235 PRINT J$
3240 NEXT A
3250 PRINT:PRINT "CORRECTION: "
3260 FOR A=1 TO 80
3270 GET J$:IF J$="" THEN 3270
3280 IF J$="{UP}" THEN 3310
3281 IF J$=CHR$(20) THEN C5$=LEFT$(C5$,LEN(C5$)-1):GOTO 3290
3285 C5$=C5$+J$
3290 PRINT J$;
3300 NEXT A
3310 PRINT "{CLEAR} {REV}CORRECTING{OFF}"
3320 FOR A=1 TO 200
3325 FOR B=1 TO LEN (A$(A))
3327 O=LEN(C4$)
3329 IF MID$(A$(A),B,O)=C4$ THEN OO=LEN(A$(A))-B+1-LEN(C4$)
3330 IF MID$(A$(A),B,O)=C4$ THEN C6$=RIGHT$(A$(A),OO)
3340 IF MID$(A$(A),B,O)=C4$ THEN A$(A)=LEFT$(A$(A),B-1):GOTO 3344
3341 GOTO 3346
3344 A$(A)=A$(A)+C5$+C6$:C4$="":C5$=""
3345 PRINT "{CLEAR}":FOR H=1 TO A:PRINT A$(H):NEXT H:Q=H::GOTO 3025
3346 NEXT B
3347 NEXT A
3348 PRINT "{CLEAR}{RED}{REV}ERROR NOT FOUND{BLU}{OFF}":PRINT:GOTO 3025
3350 GOTO 3010
3800 PRINT:INPUT "NORMAL LINE LENGTH"; LA
3810 PRINT:INPUT "INSET LINE LENGTH"; LB
3903 PRINT "SINGLE OR DOUBLE SPACE? S/D"
3904 INPUT SD$
3905 INPUT "LINE NUMBERING #"; SL
4000 T1$="":N=1:LL=LA
4002 OPEN 4,4
4003 T$="":T2$="":P$="":LC=1
4010 PRINT #4:PRINT #4:PRINT #4
4016 LC=3
4040 CLOSE 4,4
4050 IF A$(N)="" AND M$="LP" THEN 5002
4051 IF A$(N)="" THEN 4600
4059 T2$=A$(N)
4060 FOR A=1 TO LL-LEN(P$)
4061 T2$="" THEN 4094
4065 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
4075 IF X$="[" THEN LL=LB:GOTO 4060
4076 IF X$="]" THEN FL=1:GOTO 4060
4080 IF X$="{UP}" THEN 4200
4085 IF X$=CHR$(13) THEN 4660
4090 P$=P$+X$
4094 IF LEN(T2$)=0 THEN N=N+1:GOTO 4050
4095 NEXT A
4100 GOTO 4610
4200 FOR A=1 TO LA
4210 X$=LEFT$(T2$,1):T2$=RIGHT$(T2$,LEN(T2$)-1)
4211 IF LEN(T2$)=0 THEN N=N+1:T2$=A$(N)
4214 IF A$(N)="" AND LEN (T2$)=0 THEN P$=X$:GOTO 4660
4220 IF X$=CHR$(13) THEN 4300
4230 P$=P$+X$
4240 NEXT A
4300 IN=(80-LEN(P$))/2:GOTO 4670
4620 IF RIGHT$(P$,1)=CHR$(32) THEN 4660
4622 IF RIGHT$(P$,1)=CHR$(160) THEN 4660
4630 T1$=RIGHT$(P$,1)+T1$:P$=LEFT$(P$,LEN(P$)-1)
4640 NEXT A
4660 IF LEFT$(P$,1)=CHR$(32) THEN P$=RIGHT(P$,LEN(P$)-1)
4661 IF LEFT$(P$,1)=CHR$(160) THEN P$=RIGHT$(P$,LEN(P$)-1)
4662 PRINT P$
4665 IN=(80-LL)/2
4666 DE$=STR$(SL):IF FL=1 THEN OPEN 4,4
4667 IF FL=1 THEN PRINT #4,CHR$(17)DE$"."SPC(IN-LEN(DE$)-1)P$SPC(75-LEN(P$)-IN)DE$"."
4668 IF FL=1 THEN CLOSE 4:LC=LC+1:SL=SL+1:P$="":FL=0:P$=T1$:T1$="":GOTO 4680
4670 OPEN 4,4:PRINT #4,CHR$(17)SPC(IN)P$:CLOSE 4,4:P$="":P$=T1$:T1$="":LC=LC+1
4680 IF SD$="D" THEN OPEN 4,4:PRINT #4:CLOSE 4:LC=LC+1
4690 IF LC>60 THEN 7000
4700 IF X$=CHR$(13) THEN LL=LA
4701 IF A$(N)="" AND M$="LP" THEN P$=P$+X$:GOTO 5002
4705 IF A$(N) "" THEN 51
4710 GOTO 4060
5000 INPUT "TYPE FILE NAME"; V$
5002 FOR A=1 TO 200:A$(A)="":NEXT A
5005 PRINT "{CLEAR} LOAD MODE"
5010 OPEN 1,1,0,V$
5015 PRINT "FILE OPEN, LOADING."
5020 FOR A=1 TO 200
5025 FOR B=1 TO 22
5030 GET #1,Z$
5031 A$(A)=A$(A)+Z$
5040 IF Z$="" THEN 5065
5042 NEXT B
5050 NEXT A
5065 CLOSE 1:N=1
5070 IF M$="LP" THEN N=1:GOTO 4050
5080 GOTO 51
6000 PRINT "{CLEAR}SAVE MODE"
6010 OPEN 1,1,1,V$
6030 FOR A=1 TO 200
6040 PRINT #1,A$(A);
6050 IF A$(A)="" THEN 6075
6060 NEXT A
6075 CLOSE 1
6080 GOTO 51
7000 OPEN 4,4
7001 FOR M=1 TO 66-LC
7002 PRINT #4
7003 NEXT M
7004 PRINT #4:PC=PC+1
7005 PRINT #4,CHR$(17)SPC(70)"PAGE "PC
7006 PRINT #4
7007 CLOSE 4
7008 LC=3
7009 GOTO 4060