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)