image of READY prompt

Wang2200.org

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)