-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprg.zapterm.bas
189 lines (189 loc) · 13.7 KB
/
prg.zapterm.bas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
!--------------------------------------------------
!- Wednesday, May 17, 2017 12:22:27 AM
!- Import of :
!- c:\src\zelch128next\prg.zapterm.prg
!- Commodore 128 BASIC 7/7.1
!--------------------------------------------------
30000 SYS15625:REM ============= ZAPTERM V3.0 ====================== 12/25/91 =
30010 RESTORE:C$="{yellow}":FORI=1TO4:CLOSE(I):NEXTI:GOSUB30450:WINDOW0,4,PEEK(238),23,1:FORX=1TO6:READTT$(X+9)
30020 IFPEEK(238)=39ANDLEN(TT$(X))<13THENTT$(X+9)=LEFT$(TT$(X+9)+SP$,13)
30030 NEXTX:GOSUB30430:RECORD#2,3:FORI=1TO8:SYS8222:DO:A=INSTR(I$,"{ct k}"):IFATHENMID$(I$,A,1)=R$
30040 LOOPUNTILA=0:KEYI,I$:NEXTI:FORI=4TO23:RECORD#2,I:FORY=0TO4:SYS8222:PH$(I-3,Y)=I$:NEXTY:NEXTI:CLOSE2:C=1:W6=0
30045 W8$="{cm @*42}":W5$="{cm t*42}"
30050 O$(23)="Punter":IFO(19)>0THENBLOAD"l-xfer 1300",U(D(0,0)),D(D(0,1)):O(19)=1:ELSEO(19)=1
30060 DATA"TERMINAL","AUTODIALER","UPLOAD/DOWNLOAD","MISCELLANEOUS"," DOS ","QUIT":DO:GETA$:LOOPUNTILA$=""
30070 I=M(9):GOSUB450:IF((PEEK(56577)ANDM(4))=PEEK(2853))OR(M(0)<3)THENGOSUB29:A$=O$(18):GOSUB40000
30080 O$="{ct n}ZapTerm v3.0":GOSUB250:GOSUB30450:W6$="{left} {right}":W7$=R$+" {down}":WINDOW0,4,PEEK(238),23:IFPEEK(215)THENPOKE2603,8:PRINTCHR$(27)"e{reverse on}{clear}{light gray}"+LEFT$(SP$,79):GOTO30130
30090 PRINT"{reverse on}{white} Zapterm v3.0 ":W6$="{up} {down}":W7$=R$+" "
30100 WINDOW0,4,PEEK(238),23:IFPEEK(215)THEN30130:ELSEPRINT"{white}{home}{down}":FORX=1TO6:IFC=XTHENPRINTC$"{reverse on}";
30110 PRINTTT$(X+9)"{white}"
30120 NEXTX:GOTO30155
30130 PRINT"{reverse on}{home}{light gray}";:FORX=1TO6:IFC=XTHENPRINTC$"{right}{cm g}";:ELSEPRINT"{right} ";
30140 PRINTTT$(X+9);:IFC=XTHENPRINT"{cm m}";:ELSEPRINT" ";
30150 PRINT"{light gray}{right}";:NEXTX
30155 IFW6THEN30200
30160 A$="":SYS8192:IFA$=""THEN30160:ELSEX=INSTR(W6$,A$):IFXTHENC=C+X-2
30170 IFINSTR(W7$,A$)THEN30200
30180 IFC>6THENC=1:ELSEIFC<1THENC=6
30190 GOTO30100
30200 PRINT:WINDOW0,5,PEEK(238),23,1:W6=0:ONCGOTO30470,30490,32000,33000,50000,51000
30210 PRINT:WINDOW0,5,PEEK(238),23:POKE2603,8:PRINTCHR$(27)"e"CHR$(27)"l":PRINT"{down*27}";:GOTO30100
30220 REM -------- WINDOW ROUTINES
30230 WINDOWX-1,Y-1,X+W8,Y+W9,1:PRINTCHR$(27)"m{home}"C$;
30240 PRINTLEFT$(W8$,W8+2)
30250 FORA=1TOW9:PRINT"{cm g}"SPC(W8)"{cm m}":NEXTA
30260 PRINTLEFT$(W5$,W8+2)
30270 WINDOWX,Y,X+W8-1,Y+W9-1:POKE250,W8-1:POKE2603,0:PRINTCHR$(27)"l"CHR$(27)"f";:RETURN
30280 WINDOWX-1,Y-1,X+W8,Y+W9,1:POKE2603,8:PRINTCHR$(27)"e"C$;:WINDOW0,4,PEEK(238),23:PRINT:RETURN
30300 REM -------- WINDOW W/LIGHT BAR
30310 PRINTCHR$(27)"m"C$;:IFW6=0THENW6=1
30320 FORI=1TOW9:IFLEN(TT$(I))<>W8THENTT$(I)=LEFT$(TT$(I)+SP$,W8)
30340 NEXTI:WINDOWX-1,Y-1,X+W8+5,Y+W9:POKE2603,8:PRINTCHR$(27)"e";
30350 PRINTC$"{home}{reverse on}"LEFT$(W5$,W8+6)
30360 FORI=1TOW9:PRINT"{reverse on} ";:IFW6=ITHENPRINT"{reverse off}";
30370 POKE244,1:PRINT" "TT$(I)" ";:POKE244,0:PRINT"{reverse on} ":NEXTI:PRINTLEFT$("{reverse on}"+SP$,W8+7)"{reverse off}";
30380 A$="":SYS8192:IFA$=""THEN30380:ELSEIFINSTR("{down}{up}"+CHR$(27),A$)THEN30400
30390 IFA$=CHR$(13)THENRETURN:ELSE30380
30400 IFA$="{up}"THENW6=W6-1:IFW6<1THENRETURN
30410 IFA$="{down}"THENW6=W6+1:IFW6>W9THENW6=W9:GOTO30380
30415 IFA$=CHR$(27)THENW6=0:RETURN
30420 GOTO30350
30430 OPEN2,D(4,0),2,MID$(STR$(D(4,1)),2)+":sys.misc data":RETURN
30450 POKE2825,255:POKE2824,1:POKE2827,0:POKE2830,1:POKE2850,0:POKE2823,1:RETURN
30470 W6=0:C=1:O$="{ct n}Terminal Mode":GOSUB250:WINDOW0,4,PEEK(238),23:PRINT:POKE2603,0:PRINTCHR$(27)"e{clear}"O$(21):SYS8231:GOTO30080
30490 REM -------- AUTODIALER MENU
30500 TT$(1)="Dial from directory":TT$(2)="Dial unlisted entry":TT$(3)="Edit an entry":TT$(4)="Save changes to disk":TT$(5)="Reload phonebook"
30510 W8=20:W9=5:Y=6:X=6:IFPEEK(215)THENX=14
30520 GOSUB30300:IFW6=0THEN30210
30530 ONW6GOTO30800,30600,30800,30540,30570:GOTO30500
30540 GOSUB30430:O$="Saving...":GOSUB250:FORI=4TO23:RECORD#2,I:A$="":FORY=0TO4:A$=A$+PH$(I-3,Y)+R$:NEXTY:PRINT#2,A$;:NEXTI:CLOSE2
30560 O$="Zapterm v3.0":GOSUB250:GOTO30510
30570 GOSUB30430:O$="Loading...":GOSUB250:FORI=4TO23:RECORD#2,I:FORY=0TO4:SYS8222:PH$(I-3,Y)=I$:NEXTY:NEXTI:CLOSE2:GOTO30560
30600 REM -------- DIAL UNLISTED ENTRY
30610 X=43:Y=7:W8=24:W9=1:GOSUB30220:PRINTC$"Phone #: {white}";:POKE2847,14:O$=" ":SYS4867:GOSUB30280:IFI$=""ORI$=" "THEN30510:ELSEW9$=I$:I$="Unlisted Entry"
30650 X=25:Y=13:W8=30:W9=3:GOSUB30220:PRINTC$"{clear}Dialing: {white}"I$:PRINTC$"Phone #: {white}"W9$:PRINTC$" Status: ";
30660 PRINT"{home}{down*2}{right*9}{white}"CHR$(27)"q";:PRINT#5,R$+R$:SLEEP2:TI$="000000":GETW1$:IFW1$=" "THENGOSUB30280:W6=0:GOTO30080
30670 DO:GET#5,A$:LOOPUNTILA$="":I=15+LEN(W9$):PRINT#5,"atdt"+W9$:SLEEP1:I$="":DO:GET#5,A$:LOOPUNTILA$=""
30680 GET#5,A$:IFVAL(TI$)>ITHENI$="6":GOTO30740
30690 GETW1$:IFW1$=" "ORPEEK(56320)=111THENPRINT#5,R$+R$:GOSUB30280:GOTO30080
30700 IFA$=""THEN30680:ELSEIFA$<>CHR$(13)ANDLEN(I$)<255THENI$=I$+A$:GOTO30680
30710 IFI$=""THEN30680:ELSEA$="":FORI=1TOLEN(I$):W2=ASC(MID$(I$,I,1))AND127:IFW2>31ANDW2<96THENA$=A$+CHR$(W2)
30720 NEXTI:I$=A$:IFI$=""THEN30680
30730 IFLEFT$(I$,7)="connect"THENPRINTI$:SOUND1,65535,100,0,32768,3000,2,2600:GOSUB30280:GOTO30470
30740 I=0:A=I:DO:I=I+1:LOOPUNTILVAL(MID$(I$,I,1))ORI=LEN(I$):IFI=LEN(I$)ANDVAL(I$)=0THEN30770:ELSEA=VAL(MID$(I$,I,2))
30750 IFA=1ORA=5ORA=10THENI$="connection!":GOTO30730
30760 IFA=6THENI$="no carrier":ELSEIFA=7THENI$="busy"
30770 PRINTI$;:SLEEP4:GOTO30660
30800 REM -------- PHONEBOOK DIRECTORY
30810 O$="Phonebook [ESC] Exits":GOSUB250:WINDOW0,4,PEEK(238),23,1:PRINT:PRINTCHR$(27)"m{home}"O$(21);:O$(8)="Ascii":O$(9)="Color":O$(15)="Off":O$(16)="On"
30820 O$=" #################### #############":IFPEEK(215)THENO$=O$+"##### #### ##### Linefeeds ###"
30830 FORX=1TO20:IFPEEK(215)=0THENPRINTUSINGO$;PH$(X,0),PH$(X,1)
30840 IFPEEK(215)THENPRINTUSINGO$;PH$(X,0),PH$(X,1),VAL(LEFT$(PH$(X,2),1))*300,O$(8+VAL(MID$(PH$(X,2),2,1))),O$(15+VAL(MID$(PH$(X,2),3,1)))
30850 NEXTX:PRINTC$CHR$(27)"l{home} o{left}";:X=1
30860 DO:SYS8192:LOOPUNTILA$<>"":ONINSTR("{down}{up}"+R$,A$)GOTO30870,30890,30910:IFA$<>CHR$(27)THEN30860
30865 GOTO30080
30870 IFX<20THENPRINT" {left}{down}o{left}";:X=X+1:ELSEX=1:PRINT" {home} o{left}";
30880 GOTO30860
30890 IFX>1THENPRINT" {left}{up}o{left}";:X=X-1:ELSEX=20:PRINT" {left}{down*19}o{left}";
30900 GOTO30860
30910 IFW6=1THENI$=PH$(X,0):W9$=PH$(X,1):ELSEW6=0:GOTO31000
30920 W7=X:I=VAL(LEFT$(PH$(X,2),1))*300:IFI=BATHEN30950
30930 IFI=1200ORI=2400THENGOSUB450
30940 IFI<601ANDI>149THENGOSUB450
30950 X=W7:POKE2829,VAL(MID$(PH$(X,2),2,1)):POKE2845,VAL(MID$(PH$(X,2),3,1))
30960 W0=0:W1$="":FORI=1TO8:W0=W0+PEEK(4095+I):NEXTI:IFW0+LEN(PH$(X,4))<255THENPOKE4104,LEN(PH$(X,4)):W1$=PH$(X,4)
30970 IFW0+LEN(W1$)+LEN(PH$(X,3))<255THENPOKE4105,LEN(PH$(X,3)):W1$=W1$+PH$(X,3)
30980 IFW1$<>""THENFORI=1TOLEN(W1$):POKE4105+W0+I,ASC(MID$(W1$,I,1)):NEXTI
30990 GOTO30650
31000 REM -------- EDIT PHONEBOOK ENTRY
31005 W7=X:W6=0:PRINT"{clear}"C$;
31010 TT$(1)="System name : "+PH$(W7,0):TT$(2)="Phone number: "+PH$(W7,1):TT$(3)="Baud rate :"+STR$(VAL(MID$(PH$(W7,2),1,1))*300):WINDOW0,4,PEEK(238),23
31013 TT$(4)="Graphic mode: "+O$(8+VAL(MID$(PH$(W7,2),2,1)))
31015 TT$(5)="Linefeeds : "+O$(15+VAL(MID$(PH$(W7,2),3,1)))
31017 TT$(6)="HELP key def: "+PH$(W7,3):TT$(7)="SHFT/STOP df: "+PH$(W7,4)
31020 W8=32:W9=7:Y=5:X=1:GOSUB30300:IFW6=0THENW6=1:GOTO30080
31030 Y=4+W6:X=17:W9=1:I=W6-1:ONW6GOTO31040,31050,31055,31060,31065,31070,31080
31040 W8=21:GOTO31100
31050 W8=14:GOTO31100
31055 W8=16:GOSUB30270:PRINT"{white}";:O$=MID$(STR$(VAL(MID$(PH$(W7,2),1,1))*300),2):SYS4867:I=VAL(I$):IFI=0THEN31010
31057 MID$(PH$(W7,2),1,1)=MID$(STR$(I/300),2,1):GOTO31010
31060 W8=6:GOSUB30270:PRINT"{white}";:MID$(PH$(W7,2),2,1)=MID$(STR$(ABS(VAL(MID$(PH$(W7,2),2,1))-1)),2):PRINTO$(8+VAL(MID$(PH$(W7,2),2,1)));:GOTO31010
31065 W8=7:GOSUB30270:PRINT"{white}";:MID$(PH$(W7,2),3,1)=MID$(STR$(ABS(VAL(MID$(PH$(W7,2),3,1))-1)),2):PRINTO$(15+VAL(MID$(PH$(W7,2),3,1)));" ":GOTO31010
31070 I=3:W8=39:GOTO31100
31080 I=4:W8=40:GOTO31100
31100 GOSUB30270:PRINT"{white}";:O$=PH$(W7,I):SYS4867:IFI$=""THEN31010:ELSEPH$(W7,I)=I$:GOTO31010
32000 REM -------- UPLOAD/DOWNLOAD
32010 TT$(1)="Upload a file":TT$(2)="Download a file":TT$(3)="Change protocols"
32020 X=2:Y=6:W8=16:W9=3:IFPEEK(215)THENX=28
32030 GOSUB30300:IFW6=0THEN30210
32040 IFW6<3THEN32100
32050 O(19)=O(19)+1:IFO(19)=5THENO(19)=1
32060 O$(23)=PR$(O(19),0):X=7:Y=8:W8=17:W9=1:GOSUB30220:PRINTC$"Protocol: {white}"O$(23);:SLEEP1:GOSUB30280:GOTO32020
32100 X=2:Y=21:W8=28:W9=1:GOSUB30220:PRINTC$"Filename: {white}";:O$=" ":SYS4867:IFI$=" "ORI$=""THENGOSUB30280:GOTO32020
32110 I=0:DO:I=I+1:A=INSTR(I$,MID$("@*:?$;",I,1)):LOOPUNTILA>0ORI=6:IFA>0THENGOSUB30280:GOTO32020
32120 F$=I$:PRINTC$"Filetype (Prg,Seq,Wrp)? {white}";:DO:GETKEYA$:I=INSTR("psw"+R$,A$):LOOPUNTILI:GOSUB30280:IFA$=R$THEN32020
32125 BLOAD(PR$(O(19),1),U(D(0,0)),D(D(0,1))
32130 WINDOW0,5,79,23,1:PRINT:X=20:Y=10:W8=40:W9=5:GOSUB30220
32140 IFW6=1THENPRINTC$O$(23)" Upload: {white}"F$","A$C$:PRINT:GOSUB550
32150 IFW6=2THENPRINTC$O$(23)" Download: {white}"F$","A$C$:PRINT:GOSUB500:SLEEP3
32160 BLOAD"l-xfer 1300",U(D(0,0)),D(D(0,1)):GOTO30470
33000 REM -------- MISCELLANEOUS
33010 TT$(1)="Baud rate":TT$(2)="Change drives":TT$(3)="File dump":TT$(4)="Seq file reader":TT$(5)="Message maker":TT$(6)="Edit fkeys"
33020 X=2:Y=6:W8=16:W9=6:IFPEEK(215)THENX=47
33030 GOSUB30300:IFW6=0THEN30210
33040 X=2:Y=5+W6:W9=1:ONW6GOTO33050,33080,33130,33130,33130,33300
33050 W8=16:IFPEEK(215)THENX=26
33060 GOSUB30220:PRINTC$"New Baud: {white}";:O$=MID$(STR$(BA),2):SYS4867:I=VAL(I$):GOSUB30280:IFI=0THEN33020
33070 IFI=1200ORI=2400OR(I<601ANDI>149)THENGOSUB450:GOTO33020:ELSE33020
33080 W8=16:IFPEEK(215)THENX=26
33090 GOSUB30220:PRINTC$"Device #: {white}";:O$=MID$(STR$(U),2):SYS4867:I=VAL(I$):IFI=0THENGOSUB30280:GOTO33020
33100 IFI<31ANDI>7THENU=I:ELSEGOSUB30280:GOTO33020
33110 PRINTC$"Drive/LU: {white}";:O$=MID$(STR$(D),2):SYS4867:I=VAL(I$):GOSUB30280
33120 IFI<255ANDI>-1THEND=INT(I):GOTO33020:ELSE33020
33130 W8=28:IFPEEK(215)THENX=14
33140 GOSUB30220:PRINTC$"Filename: {white}";:O$=" ":SYS4867:GOSUB30280:IFI$=" "ORI$=""THEN33020
33150 OPEN1,U,15:OPEN2,U,2,MID$(STR$(D),2)+":"+I$+",s,r":INPUT#1,E,O$:IFETHENCLOSE1:CLOSE2:GOSUB250:GOTO33020
33155 WINDOW0,5,PEEK(238),23,1:PRINT:IFW6=4THENSYS8210:CLOSE1:CLOSE2:O$="{ct n}[RETURN] to continue":GOSUB250:DO:GETKEYA$:LOOPUNTILA$=R$:W6=0:GOTO30200
33156 IFW6=5THENO(12)=1:O(10)=0:GOSUB1000:GOTO30200
33157 X=20:Y=10:W8=40:W9=5:GOSUB30220:PRINTC$"Dumping: {white}"F$",s"C$:PRINT:SLOW
33160 SYS8222:IFI$=""THENI$=" "+R$:ELSEIFRIGHT$(I$,1)<>"{f7}"THENI$=I$+R$
33170 FORI=1TOLEN(I$):A$=MID$(I$,I,1):A=INSTR("{f7}{ct k}{f6}{black}{f5}",A$):IFATHENA$=MID$(" "+R$+R$+CHR$(0)+CHR$(34),A,1)
33180 PRINTA$;:IFPEEK(2829)=0THENA$=CHR$(PEEK(15360+ASC(A$+CHR$(0))))
33190 IFASC(A$+CHR$(0))>0THENPRINT#5,A$;:GET#5,A$
33200 NEXTI:DO:GET#5,A$:LOOPUNTILA$="":IFPEEK(253)=0THEN33160
33210 CLOSE1:CLOSE2:IFPEEK(215)THENFAST
33220 GOTO30470
33300 REM -------- EDIT FKEYS
33310 X=1:Y=6:W8=40:W9=17:GOSUB30220
33320 PRINT"{white}{clear}":KEY:PRINT"{down}Edit Which (1-8,Save,Load)? {white}";:DO:GETKEYA$:I=INSTR("12345678sl"+R$,A$):LOOPUNTILI:IFA$=R$THENX=1:Y=6:GOSUB30280:GOTO33020
33325 PRINTA$:IFI=9THEN33330:ELSEIFI=10THEN33340
33326 PRINTC$"{down}F"A$":{white}";:O$=" ":SYS4867:IFI$=""ORI$=" "THEN33320:ELSEKEYI,I$:GOTO33320
33330 GOSUB30430:A$="":Y=0:FORI=1TO8:A=PEEK(4095+I):FORX=1TOA:A$=A$+CHR$(PEEK(4105+Y+X)):IFA$=R$THENA$="{ct k}"
33335 NEXTX:A$=A$+R$:Y=Y+A:NEXTI:RECORD#2,3:PRINT#2,A$:CLOSE2:GOTO33320
33340 GOSUB30430:RECORD#2,3:FORI=1TO8:SYS8222
33350 KEYI,I$:NEXTI:FORI=4TO23:RECORD#2,I:FORY=0TO4:SYS8222:PH$(I-3,Y)=I$:NEXTY:NEXTI:CLOSE2:GOTO33320
40000 FAST:IFM(0)>2ORA$=""THENRETURN:ELSESLEEP1:I=0:PRINT#5,"atv0"+A$:DO:GET#5,W1$:I=I+1:IFINSTR("0{cm a}",W1$)THENGET#5,W2$:IFW2$=R$THENEXIT
40010 LOOPUNTILI=300:IFI=300THENGOSUB450:PRINT#5,"atv0"R$R$:I=M(9):GOSUB450:GOTO40000:ELSEPOKE56577,M(5):POKE56579,M(6):IFPEEK(215)THENRETURN:ELSESLOW:RETURN
40100 IF(PEEK(56577)ANDM(4))=M(19)THENRETURN:ELSEA$="+++":IFM(0)>2THENPOKE56577,M(5):POKE56579,M(6):A$="{ct a}{ct b}{ct c}{ct d}":IFM(0)<5THENRETURN
40110 SLEEP1:FORX=1TOLEN(A$):PRINT#5,MID$(A$,X,1);:FORI=1TO200:NEXT:NEXT:SLEEP2:PRINT#5,R$"ath0":FORX=1TO100:GET#5,A$:NEXT:SLEEP1:GOTO40100
40200 IFM(0)<3THENPRINT#5,R$:SLEEP1:PRINT#5,"ats0=0":RETURN:ELSEPOKE56577,M(7):POKE56579,M(8):RETURN
50000 REM -------- DOS COMMANDS
50010 CLOSE1:OPEN1,U,15:GOSUB30450
50020 X=2:Y=6:W8=35:W9=2:GOSUB30220:PRINTC$"Device:{white}"STR$(U)C$", Drive:{white}"STR$(D):INPUT#1,A,A$,B,I:PRINTC$"Status:{white}"STR$(A)","A$","STR$(B)","STR$(I);
50030 Y=10:W8=35:W9=1:GOSUB30220:O$=" ":PRINTC$"@:{white}";:SYS4867:IFI$=""ORI$=" "THENCLOSE1:GOSUB30280:GOTO30210
50040 A=VAL(LEFT$(I$,2)):IFA=0THEN50060:ELSEU=A:A=INSTR(I$,","):IFA=0THEN50010
50050 D=VAL(MID$(I$,INSTR(I$,",")+1)):GOTO50010
50060 IFLEFT$(I$,1)<>"$"THENPRINT#1,I$:GOTO50020
50070 A=INSTR(I$,":"):IFA=0THENA$="*":ELSEA$=MID$(I$,A+1)
50080 IFLEN(A$)>16THENA$=LEFT$(A$,16)
50090 X=10:Y=13:W8=27:W9=10:IFPEEK(215)THENX=45:Y=6:W9=17
50100 GOSUB30220:CLOSE2:PRINT"{white}":OPEN2,U,0,"$"+MID$(STR$(D),2)+":"+A$:POKE253,0:SYS8219:CLOSE2
50110 PRINT:PRINT"Press RETURN to continue: ";:DO:GOSUB8:LOOPUNTILA$=CHR$(13):GOSUB30280:GOTO50020
51000 REM -------- QUIT/EXIT TO BBS
51010 TT$(1)="Don't quit":TT$(2)="Ok to quit"
51020 W8=10:W9=2:Y=6:X=63:GOSUB30300:IFW6<2THENW6=0:GOTO30210
51030 POKE2830,0:GOSUB30430:RECORD#2,2:A$="":FORI=1TO10:SYS8222:A$=A$+I$:POKE4095+I,LEN(I$):NEXTI:CLOSE2
51040 PRINTCHR$(27)"l";:WINDOW0,4,PEEK(238),23,1:FORI=1TOLEN(A$):A=ASC(MID$(A$,I,1)):IFA=11THENA=13
51050 POKE4105+I,A:NEXTI:FORI=1TO20:FORY=0TO4:PH$(I,Y)="":NEXTY:NEXTI:U=D(0,0):D=D(0,1):I$="prg.logon":O(19)=0:O$(23)=PR$(0,0):PRINTCHR$(27)"l":GOTO23
55554 WINDOW0,4,79,23:FAST:GOTO30080
55555 A=PEEK(186):OPEN1,A,15,"s0:prg.zapterm":CLOSE1:DSAVE"prg.zapterm",U(A):STOP