Listing of file='TBO.ZAP' on disk='vmedia/toolbox.wvd.zip'
# Sector 298, program filename = 'TBO.ZAP'
0010 REM %TBO.ZAP 05/15/91 TBO from "SUPERZAP" - Steve McGarry - 19 OCT 81
0060 DIM R$(16)16,A$16,S$7,D$3,K$1,I$4,B$16,B0$1,H$2,S1$14,S2$16,S3$8,L$2,P$3,
F$8,S0$1,F0$1,H0$1,C$1,C1$1
0062 D$=SELECT #0
0065 SELECT PRINT 005
0070 S1,S2=0
: X1,Y1=-1
0099 REM --- SET UP THE SCREEN AND GET INITIAL ADDRESSES ---
0100 PRINT HEX(020402000F);HEX(020D0C030F);HEX(06);BOX(24,79);AT(1,0);BOX(0,79
);AT(3,0);BOX(0,79);AT(19,0);BOX(0,79)
: PRINT AT(0,16);BOX(1,0);AT(0,29);BOX(1,0);AT(0,50);BOX(1,0);AT(0,61);BOX(
1,0);AT(0,79);BOX(1,0);AT(3,7);BOX(16,0);AT(3,54);BOX(16,0);AT(3,71);BOX(
16,0)
0105 PRINT AT(1,28);"Wang Laboratories, Inc.";AT(2,29);"SUPERZAP - Ver. 4.0.9"
0110 GOSUB '200(M)
: GOSUB '100
0115 GOSUB '101(S1)
: S2=0
0120 GOTO 2000
0999 REM % --- DISPLAY MODE ---
1000 M=0
: X1,Y1,M1=-1
1010 KEYIN K$,1010,1010
: REM -- CLEAR OUT THE KEYBOARD BUFFER --
1015 K$=" "
1020 KEYIN K$,,1030
1025 GOTO 1015
1030 $TRAN(K$,HEX(0D4D0D5D0C4C0C5C))R
: IF K$<>HEX(00)THEN 1045
1035 IF S8<>0THEN GOSUB '101(S8)
: ELSE GOSUB '101(S1)
: S8=0
: GOSUB '102
1040 GOTO 2000
1045 S8=0
: IF K$<>HEX(01)THEN 1065
1050 GOSUB '100
1055 GOTO 115
1065 IF K$<>HEX(03)THEN 1109
1070 I$="0000"
1075 PRINT AT(0,62,17);HEX(0E);
1080 LINPUT "Input HEX ?",-I$
1090 IF VER(I$,"HHHH")<>4THEN 1075
1105 PRINT AT(0,62,17);HEX(0E);I$;" HEX =";
1106 HEXPACKI$FROMI$
1107 PRINT VAL(I$,2);HEX(06);TAB(79)
1108 GOTO 1010
1109 PRINT AT(0,62,17)
1110 IF K$<>HEX(04)THEN 1125
1115 GOSUB '4
1125 IF K$<>HEX(0C)THEN 1135
1130 GOTO 2000
1135 IF K$<>HEX(0D)THEN 1155
1140 S2=S2-2
1145 IF S2<0THEN S2=0
1150 GOTO 2000
1155 IF K$<>HEX(F0)THEN 1200
1160 GOTO 5000
: REM -- ENTER "EDIT" MODE --
1200 IF K$<>HEX(09)AND K$<>HEX(0A)THEN 1300
1201 S9=S1
1202 PRINT AT(0,61);BOX(-1,0)
1204 PRINT AT(0,51);HEX(0E);"Find ";
1206 IF K$=HEX(09)THEN LINPUT "ASCII ?",-S1$
: ELSE LINPUT "HEX ?",-S2$
: PRINT HEX(06)
1207 IF K$=HEX(09)AND S1$=" "THEN 1290
1208 IF K$=HEX(09)THEN 1214
1209 IF S2$=" "THEN 1290
1213 IF VER(STR(S2$,1),"HHHHHHHHHHHHHHHH")<>LEN(S2$)OR MOD(LEN(S2$),2)=1THEN 1
204
1214 GOSUB '101(S3)
1215 PRINT AT(0,51,28);HEX(0E);
1216 LINPUT "Starting sector ?",-S$
: PRINT HEX(06)
1218 IF NUM(S$)<LEN(S$)THEN 1208
1219 CONVERT S$TO S3
1220 PRINT AT(0,51,28);HEX(0E);
1222 GOSUB '101(S4)
1228 LINPUT "Ending sector ?",-S$
: PRINT HEX(06)
1229 CONVERT S$TO S4
1230 IF NUM(S$)<LEN(S$)THEN 1220
1232 PRINT AT(0,51,28);AT(0,61);BOX(1,0);AT(0,30,20);HEX(0E);"Searching"
1233 S3$=" "
1234 IF K$=HEX(0A)THEN HEXPACKS3$FROMS2$
1236 IF S3>S4THEN 1290
1238 S2=S3
1240 GOSUB '98
1241 S3=S3+1
1242 IF K$=HEX(09)THEN MAT SEARCHR$(),=STR(S1$,,LEN(S1$))TO L$
: ELSE MAT SEARCHR$(),=STR(S3$,,LEN(S2$)/2)TO L$
1244 IF L$=HEX(0000)THEN 1236
1245 GOSUB '99
1246 X1=INT((VAL(L$,2)-1)/16)+1
: Y1=MOD(VAL(L$,2),16)
: IF Y1=0THEN Y1=16
1248 M1=1
: IF K$=HEX(09)THEN M1=2
1250 GOTO 5000
1290 PRINT AT(0,30,49);"Display mode"
: IF S3>S4THEN PRINT AT(0,62,17);HEX(0E);"None found"
1292 PRINT AT(0,61);BOX(1,0)
1294 S3,S4=0
: S2=S9
1298 GOSUB '98
: GOTO 1010
1300 IF K$<>HEX(0E)THEN 1400
1302 GOSUB '103
1304 GOTO 2004
1400 IF K$<>HEX(0B)THEN 1010
1402 PRINT AT(0,62,17);HEX(0E);
1403 F$=" "
1404 LINPUT "Name ?",-F$
: PRINT HEX(06)
1405 IF F$<>" "THEN 1406
: PRINT AT(0,62,17)
: GOTO 1010
1406 LIMITS T#1,F$,B,E,U,S
1408 PRINT AT(0,62,17);HEX(0E);
1410 IF S<>0THEN 1420
1412 PRINT "File not found"
1414 GOTO 1010
1420 PRINTUSING "Start = #####",B
: W=0
1421 S8=B
: PRINT AT(1,57,23);"Used =";U;"Extra=";E-B-U+1;AT(2,57,23);"EOF at ";B+U-2
1422 IF S=1THEN 1510
: IF S<>2THEN 1010
1430 PRINT AT(3,0,16*80);AT(3,55);"structure scan";AT(19,6);"STOP SCAN "
: S2=B
1440 $IF ON /001,1500
: GOSUB '98
: GOSUB 9730
: IF S2<B+UTHEN 1440
1500 PRINT AT(19,6);"Change sector"
: PRINT HEX(0F)
: GOTO 1015
1510 S2=B+U
: GOSUB 9730
: K$=HEX(00)
: GOTO 1030
2000 GOSUB '98
: REM -- LOAD SECTOR --
2002 GOSUB '99
: REM -- DISPLAY SECTOR --
2004 PRINT AT(0,30,49);"Display mode";HEX(06)
2006 GOTO 1000
4999 REM % --- EDIT MODE ---
5000 M,X,Y=1
: H=0
5001 IF X1=-1OR Y1=-1OR M1=-1THEN 5003
5002 X=X1
: Y=Y1
: M=M1
: X1,Y1,M1=-1
5003 GOSUB '200(M)
5004 IF M=1THEN PRINT HEX(060E);AT(0,30,21);"HEX edit mode"
: ELSE PRINT HEX(060E);AT(0,30,21);"ASCII edit mode"
5006 H=0
5008 PRINT HEX(06);AT(0,51);"Byte :";(X-1)*16+Y;TAB(79)
5010 T=(Y-1)*3+8-(1-MOD(Y,2))
5012 B0$=STR(R$(X),Y,1)
5014 HEXUNPACKB0$TO H$
5016 $TRAN(B0$,"................")
5018 PRINT HEX(0E);AT(X+2,T);H$;AT(X+2,Y+54);B0$
5020 IF M=1THEN PRINT AT(X+2,T+H);HEX(02050F);
: ELSE PRINT AT(X+2,Y+54);HEX(02050F);
5022 KEYIN K$,,5100
5023 IF K$<>HEX(08)THEN 5026
5024 IF M=2THEN 5025
: IF H=0THEN H=1
: ELSE H=0
: IF H=1THEN GOSUB '203
: GOTO 5008
5025 GOSUB '203
: GOTO 5006
5026 IF M=1THEN 5050
5028 IF K$<" "OR K$>"z"THEN 5022
5030 B0$,STR(R$(X),Y,1)=K$
5032 HEXUNPACKB0$TO H$
5034 GOTO 5090
5050 IF VER(K$,"H")<>1THEN 5022
5051 STR(H$,H+1,1)=K$
5052 HEXPACKSTR(R$(X),Y,1)FROMH$
5053 B0$=STR(R$(X),Y,1)
: $TRAN(B0$,"................")
5054 IF H=1THEN 5060
5056 H=1
5058 GOTO 5092
5060 H=0
5090 GOSUB '202
5092 GOTO 5008
5100 IF K$<>HEX(00)THEN 5110
5102 GOSUB 9402
: GOTO 5004
5110 $TRAN(K$,HEX(054506460C4C0D4D))R
: IF K$<>HEX(04)THEN 5120
5112 GOSUB '201
5114 X,Y=16
5116 GOTO 5006
5120 IF K$<>HEX(05)THEN 5130
5121 GOSUB '201
5122 X=X+1
: IF X<17THEN 5128
5124 X=1
: Y=Y+1
5126 IF Y>16THEN Y=1
5128 GOTO 5006
5130 IF K$<>HEX(06)THEN 5140
5131 GOSUB '201
5132 X=X-1
: IF X>0THEN 5138
5134 X=16
: Y=Y-1
5136 IF Y<1THEN Y=16
5138 GOTO 5006
5140 IF K$<>HEX(07)THEN 5150
5142 GOSUB '201
5144 X,Y=1
5146 GOTO 5006
5150 IF K$<>HEX(0C)THEN 5160
5152 GOSUB '202
5154 GOTO 5006
5160 IF K$<>HEX(0D)THEN 5170
5162 GOSUB '203
5164 GOTO 5006
5170 IF K$<>HEX(0E)THEN 5180
5171 GOSUB '201
: PRINT AT(0,51,28)
5172 GOSUB '103
5174 GOTO 5004
5180 IF K$<>HEX(0F)THEN 5190
5181 GOSUB '201
5182 S2=S1
: GOSUB '98
5184 GOSUB '99
5186 GOTO 5004
5190 IF K$<>HEX(10)THEN 5200
5191 GOSUB '201
5192 PRINT HEX(0E07);AT(0,30,21);
: S0$="N"
5194 LINPUT "SAVE THIS SECTOR ?",-S0$
: PRINT HEX(06)
5196 IF S0$="N"THEN 5004
: IF S0$<>"Y"THEN 5192
5197 PRINT HEX(0E);AT(0,30,21);"Saving"
5198 DATA SAVE BA T#1,(S1)R$()
5199 GOSUB '200(0)
: GOTO 2004
5200 IF K$<>HEX(08)THEN 5900
5205 PRINT HEX(060E);AT(0,62,17);"Fill what?"
5210 X2=X
: Y2=Y
: REM -- BEGIN FILL LOCATION --
5211 H=0
5212 PRINT HEX(06);AT(0,51);"Byte :";(X-1)*16+Y;TAB(61)
5213 T=(Y-1)*3+8-(1-MOD(Y,2))
5214 B0$=STR(R$(X),Y,1)
5215 HEXUNPACKB0$TO H$
5216 $TRAN(B0$,"................")
5217 PRINT HEX(0E);AT(X+2,T);H$;AT(X+2,Y+54);B0$
5218 IF M=1THEN PRINT AT(X+2,T+H);HEX(02050F);
: ELSE PRINT AT(X+2,Y+54);HEX(02050F);
5219 KEYIN K$,,5230
5220 IF K$<>HEX(0D)THEN 5219
5222 GOTO 5290
5230 IF K$<>HEX(04)THEN 5240
5232 IF X<>X2OR Y<>Y2THEN GOSUB '201
5234 X,Y=16
5236 GOTO 5211
5240 IF K$<>HEX(05)THEN 5250
5241 IF X<>X2OR Y<>Y2THEN GOSUB '201
5242 X=X+1
: IF X<17THEN 5249
5243 X=X2
: Y=Y+1
: IF Y>16THEN Y=1
5244 IF Y<Y2AND X<16THEN X=X+1
: ELSE IF Y<Y2AND X=16THEN Y=Y2
5249 GOTO 5211
5250 IF K$<>HEX(06)THEN 5260
5251 IF X<>X2OR Y<>Y2THEN GOSUB '201
5252 X=X-1
: IF X>X2THEN 5259
5253 IF X=X2AND Y>=Y2THEN 5259
5254 X=16
: Y=Y-1
5255 IF X>X2AND Y<1THEN Y=16
: IF X=X2AND Y<Y2THEN Y=16
5259 GOTO 5211
5260 IF K$<>HEX(07)THEN 5270
5262 IF X<>X2OR Y<>Y2THEN GOSUB '201
5264 X=X2
: Y=Y2
5266 GOTO 5211
5270 IF K$<>HEX(0C)THEN 5280
5272 IF X<>X2OR Y<>Y2THEN GOSUB '201
5274 Y=Y+1
: IF Y<17THEN 5278
5275 Y=1
: X=X+1
5276 IF X<17THEN 5278
: X=X2
: Y=Y2
5278 GOTO 5211
5280 IF K$<>HEX(0D)THEN 5219
5282 IF X<>X2OR Y<>Y2THEN GOSUB '201
5284 Y=Y-1
: IF Y>0AND X>X2THEN 5288
: IF Y>Y2-1AND X=X2THEN 5288
5286 Y=16
: X=X-1
5287 IF X<X2THEN X=16
5288 GOTO 5211
5290 F0$,H$=" "
5291 PRINT HEX(060E);AT(0,51,10);AT(0,62,17);"Fill with?";
: IF M=1THEN LINPUT -H$
: ELSE LINPUT -F0$
: PRINT HEX(06)
5292 IF M=1AND H$=" "THEN 5299
: IF M<>1AND F0$=" "THEN 5299
5293 IF M<>1THEN 5296
5294 IF VER(H$,"HH")<>2THEN 5291
5295 HEXPACKF0$FROMH$
: GOTO 5297
5296 IF F0$<HEX(21)OR F0$>HEX(7A)THEN 5291
5297 PRINT HEX(060E);AT(0,30,21);"Filling";AT(0,62,17)
5298 STR(R$(),(X2-1)*16+Y2,((X-1)*16+Y)-((X2-1)*16+Y2)+1)=ALL(F0$)
5299 K$=HEX(0F)
: GOSUB '99
: GOTO 5004
5300 REM
5900 IF K$<>HEX(F0)THEN 5022
5999 GOSUB '200(0)
: S2=S2-1
: GOTO 2000
8999 STOP
9000 DEFFN'100
9002 PRINT AT(0,17,12);HEX(0E);
9004 LINPUT "Device ?",-D$
: $TRAN(D$,"Dd")R
9005 PRINT HEX(06)
9006 PRINT AT(0,17);"Device : ";D$
9007 REM -- NEXT LINE TESTS THE ADDRESS TO ELIMINATE ERR S17 IN SELECT --
9008 IF POS("3BD"=STR(D$,1,1))=0OR VER(STR(D$,2,2),"HH")<>2THEN 9002
9014 RETURN
9100 DEFFN'101(S0)
9102 CONVERT S0TO S$,(#######)
9104 P=POS(S$<>"0")
9106 IF P=0THEN S$="0"
: ELSE S$=STR(S$,P)
9108 RETURN
9200 DEFFN'102
9202 PRINT AT(0,0,16);HEX(0E);
9204 LINPUT " Sector ?",-S$
9206 IF NUM(S$)<LEN(S$)THEN 9202
9208 CONVERT S$TO S2
9209 IF S2<0THEN 9202
: REM .was OR S2>65535
9210 RETURN
9300 DEFFN'103
9301 PRINT AT(0,62,17);HEX(0E);
9302 LINPUT "Printer ?",-P$
: PRINT HEX(06)
9304 IF P$=" "THEN 9390
9305 IF POS("0247"=STR(P$,1,1))=0OR VER(STR(P$,2),"HH")<>2OR STR(P$,2,2)="05"T
HEN 9301
9306 PRINT AT(0,30,49);HEX(0E);"Printing";AT(0,62,17);HEX(0E);"Printer : ";P$
9307 SELECT PRINT <P$>
: ERRORSELECT PRINT 005(80)
: GOTO 9301
9308 PRINT HEX(0C0E);"Sector :";S1;" Device : ";D$
: ERRORSELECT PRINT 005(80)
: GOTO 9301
9309 PRINT
: PRINT
: PRINT "--------------------- HEX -------------------- ----- ASCII ----
- BYTES -"
9310 FOR J=1TO 16
9312 FOR K=1TO 15STEP 2
9314 PRINT TAB((K-1)*3);HEXOF(STR(R$(J),K,2));
9316 NEXT K
9318 A$=R$(J)
9319 FOR K=1TO 16
9320 IF STR(A$,K,1)<HEX(20)OR STR(A$,K,1)>HEX(7F)THEN STR(A$,K,1)="."
9321 NEXT K
9322 PRINT TAB(50);STR(A$,,16);TAB(70);
9323 PRINTUSING "### - ###",(J-1)*16+1,J*16
9324 NEXT J
9326 SELECT PRINT 005
9390 PRINT AT(0,62,17)
9399 RETURN
9402 ON M+1GOTO 9450,9405,9410
9405 M=2
: GOTO 9450
9410 M=1
9450 RETURN
9500 DEFFN'4
9502 IF M>0THEN RETURN
9504 RETURN CLEAR
9508 PRINT HEX(0306)
9510 LOAD T"START"
9600 DEFFN'98
9602 PRINT HEX(06);AT(0,0);" Sector :";AT(0,9,6);S2;TAB(17);"Device : ";D$;
: IF K$<HEX(09)OR K$>HEX(0A)THEN PRINT TAB(30);HEX(0E);"Loading";TAB(62)
: ELSE PRINT
9604 SELECT #1<D$>
: ERRORGOTO 9612
9606 S1=S2
9608 DATA LOAD BA T#1,(S2,S2)R$()
: ERRORGOTO 9612
9609 IF S1=0THEN PRINT AT(1,57,21);"Current end =";VAL(STR(R$(),3),2)-1;AT(2,5
7,21);"Catalog max.=";VAL(STR(R$(),5),2)-1
9610 RETURN
9612 PRINT AT(0,30,49);HEX(0E07);"ERROR DURING READ"
9614 RETURN CLEAR
9616 GOTO 1050
9700 DEFFN'99
9702 PRINT AT(0,30,49);HEX(0E);"Printing"
9704 PRINT HEX(0A0A)
9706 FOR J=1TO 16
9708 PRINT " ";HEX(0E820F);
9710 FOR K=1TO 15STEP 2
9712 PRINT TAB((K-1)*3+8);HEXOF(STR(R$(J),K,2));
9714 NEXT K
9716 A$=R$(J)
9718 $TRAN(STR(A$,,16),"................")
9720 PRINT TAB(55);STR(A$,,16)
9722 PRINT HEX(0C);" "
9724 NEXT J
9730 IF S2=1THEN DO
: C=VAL(STR(R$(),2))
: IF STR(R$(),,1)=HEX(02)THEN C=VAL(STR(R$(),2),2)
: C$=R$()AND HEX(7F)
: H0$=" "
: IF C$=HEX(01)THEN H0$="'"
: IF C$=HEX(02)THEN H0$="&"
: END DO
: PRINT AT(2,1,26);AT(1,1,26);
9732 B$=HEX(010307090D0F1315191B1F2125272B2D)
: REM /.print column ptr
9734 IF S2>CTHEN 9736
: PRINT "Catalog index area ";H0$
: PRINT " Sectors 0-";C-1
9735 FOR K=1TO 16
: PRINT AT(2+K,1);
: IF STR(R$(K),,2)=HEX(1000)THEN PRINT "AData"
: IF STR(R$(K),,2)=HEX(1080)THEN PRINT "AP"
: IF STR(R$(K),,2)=HEX(1040)THEN PRINT "AP'"
: NEXT K
: RETURN
9736 IF F$=" "THEN RETURN
: IF S2<B+1OR S2>E+1THEN RETURN
9738 PRINT "File = ";F$;TAB(16);
: ON SGOTO 9740,9768
: RETURN
9740 PRINT " Program"
: PRINT " Sectors";B;"-";E
: IF S2>=B+UTHEN RETURN
9742 REM W=0 new file =1 unknown
: REM W=2 old.form =3 old.wrap =4 old.!
: REM W=5 new.form =6 new.WRAP =7 new.!
9744 IF W=0OR W=2OR W=5THEN 9746
: IF S2=B+1THEN 9746
: GOTO 9750
9746 PRINT AT(3,8);HEX(020402020E);HEXOF(STR(R$(),1,1))
: K=POS(-R$()=HEX(FD))
: IF K=0THEN K=POS(-R$()=HEX(FE))
: IF K>0THEN PRINT AT(INT((K-1)/16)+3,VAL(STR(B$,MOD(K-1,16)+1))+7);HEXOF(S
TR(R$(),K,1))
9748 PRINT HEX(0F0D);AT(3,1);
: IF S2>B+1THEN 9750
: PRINT "Header"
: IF W=0THEN W=POS(HEX(404050606070)=STR(R$(),,1))+1
: RETURN
9750 PRINT AT(3,1);
: IF W=2AND STR(R$(),4,2)=HEX(FFA0)THEN W=3
: IF W=5AND STR(R$(),4,2)=HEX(FFA0)THEN W=6
9752 IF W>4THEN PRINT "*386*"
: IF W=4OR W=7THEN PRINT " !"
: IF W=2OR W=5THEN PRINT " Line";HEX(0D0A20);HEXOF(STR(R$(),3,2))
: IF W=3OR W=6THEN PRINT " Wrap";HEX(0D0A);" Save"
9754 ON WGOTO ,9762,9758,,9762,9758
9756 PRINT HEX(020400000E);
: RETURN
9758 DIM R1$(4)64
: R1$()=R$()
: STR(R1$(),3,1)=STR(R1$(),256,1)
: STR(R1$(),3,252)=ADDCSTR(R1$(),4,252)
: PRINT AT(6,1);"C.Sum"
: PRINT " ";HEXOF(STR(R$(),3,1));"=";HEXOF(STR(R1$(),3,1))
: RETURN
9762 K=1
: PRINT HEX(020402020E);
9764 BIN(C$)=POS(STR(R$(),K)=HEX(0D))
: IF VAL(C$)=0THEN 9756
: K=K+VAL(C$)-1
9766 PRINT AT(INT((K-1)/16)+3,VAL(STR(B$,MOD(K-1,16)+1))+7);"0D"
: K=K+1
: GOTO 9764
9768 PRINT " Data"
: PRINT " Sectors";B;"-";E
: IF S2>=B+UTHEN RETURN
9770 PRINT AT(3,8);HEX(020402020E);HEXOF(STR(R$(1),1,2))
: K=3
: C$=R$(1)AND HEX(A0)
: IF C$<>HEX(A0)THEN 9772
: PRINT AT(3,1);" End "
: K1=1
: GOTO 9792
9772 IF B=S2-1THEN IF STR(R$(),2,1)<>HEX(01)THEN W=1
: IF W=0THEN 9774
: PRINT HEX(0F)
: PRINT AT(3,1);"Form?"
: GOTO 9792
9774 PRINT AT(INT((K-1)/16)+3,VAL(STR(B$,MOD(K-1,16)+1))+7);
9776 C$=STR(R$(),K)
: PRINT HEXOF(C$)
: IF C$=HEX(FD)THEN 9782
: AND (C$,7F)
9778 K=K+VAL(C$)+1
9780 IF VAL(C$)=0THEN 9782
: IF K<257THEN 9774
9782 PRINT AT(3,1);HEX(0F);
: K1=1
: C$=R$(1)
: K=VAL(STR(R$(),2))
: IF K<>1THEN 9784
: C1$=HEX(00)
: K2=1
9784 PRINT K
: K=3
9786 C$=STR(R$(),K)
: IF C$=HEX(FD)THEN 9792
: IF C$=C1$THEN K2=K2+1
: IF C$=C1$THEN 9790
: C1$=C$
: IF K2=1THEN 9788
: K1=K1+1
: PRINTUSING " (###)",K2
: K2=1
9788 IF C$>HEX(7F)THEN PRINT " $=";
: ELSE PRINT " num";
: AND (C$,7F)
: PRINT VAL(C$)
: K1=K1+1
9790 AND (C$,7F)
: K=K+VAL(C$)+1
: IF K1>15OR VAL(C$)=0THEN 9792
: IF K<257THEN 9786
9792 IF K2>1THEN PRINTUSING " (###)";K2
: PRINT HEX(020400000E);
: K2=1
: C1$=HEX(00)
9794 IF K1>14THEN RETURN
: K1=K1+1
: PRINT TAB(7)
: GOTO 9794
9800 DEFFN'200(M)
9801 IF M>0THEN 9812
9802 PRINT AT(19,0,);" '0 = Change sector";TAB(25);" '9 = Find ASCII string";T
AB(53);"'14 = Print sector"
9804 PRINT " '1 = Change device";TAB(25);"'10 = Find HEX string"
9806 PRINT TAB(25);"'11 = Find start of file";TAB(53);"EDIT= Enter edit mode"
9808 PRINT " '3 = HEX to decimal";TAB(25);"'12 = Next sector"
9810 PRINT " '4 = Exit program";TAB(25);"'13 = Previous sector";HEX(01)
9811 GOTO 9890
9812 PRINT AT(19,0,);" '0 = Switch HEX/ASCII";TAB(25);" '7 = Beginning of sect
or";TAB(53);"'14 = Print sector"
9814 PRINT TAB(25);" '8 = Fill sector";TAB(53);"'15 = Recall original data"
9816 PRINT " '4 = End of sector";TAB(53);"'16 = Save changes"
9818 PRINT " '5 = Down one line";TAB(25);"'12 = Right one byte"
9820 PRINT " '6 = Up one line";TAB(25);"'13 = Left one byte";TAB(53);"EDIT= En
ter display mode";HEX(01)
9890 RETURN
9900 DEFFN'201
9902 PRINT HEX(06);AT(X+2,T);H$;AT(X+2,Y+54);B0$
9904 RETURN
9910 DEFFN'202
9912 GOSUB '201
9914 Y=Y+1
: IF Y<17THEN 9918
9915 Y=1
: X=X+1
9916 IF X>16THEN X=1
9918 RETURN
9920 DEFFN'203
9922 GOSUB '201
9924 Y=Y-1
: IF Y>0THEN 9928
9926 Y=16
: X=X-1
9927 IF X<1THEN X=16
9928 RETURN
9998 DEFFN'30"SELECTLIST215(132):LIST";HEX(22);"DE-COMPRESSED PROGRAM TEXT";HE
X(22);"D:LIST";HEX(22);"LINE NUMBER CROSS-REFERENCE";HEX(22);"#:LIST";HEX
(22);"VARIABLE CROSS-REFERENCE";HEX(22);"V:LIST";HEX(22);"DEFINED SUBROUT
INE CROSS-REFERENCE";HEX(22);"':SELECTLIST005(80)";HEX(0D)
9999 DEFFN'31"Z$=";HEX(22);"TBO.ZAP";HEX(22);":SCRATCHTZ$:SAVET$()Z$";HEX(0D)