Listing of file='TBO.ANDF' on disk='vmedia/toolbox.wvd.zip'
# Sector 1044, program filename = 'TBO.ANDF' 0010 REM .TBO.ANDF 09/13/83 ANALYZE DATA FILE STRUCTURE 0020 IF D1$(10)=" "THEN LOAD T#0,"TBODISKS"8000,8800 BEG 30 0030 DIM A$(16)16,B$(16)16,C$1,C0$1,C1$1,Z$64, C$(256)1,F$8,S$(4095)1,E$1,E0$1 0040 SELECT PRINT 005(64) : PRINT HEX(03); : GOSUB '15 : PRINT : PRINT "Key '15 to see file examples" 0050 GOSUB '98 : REM /Get surface : SELECT #1<D1$(D9)> : D1=D9 0060 LINPUT "File name=",-F$ 0065 H9=0 : REM /.H9 =1 PRINT Value bytes 0070 LIMITS T#1,F$,A1,A2,A3,A4 0080 IF A4=2THEN 90 : PRINT "This is not a data file" : GOTO 50 0090 PRINT "File size = ";A3;" Sectors" 0100 DATA LOAD DC OPEN T#1,F$ 0110 DATA LOAD BA T#1,(A1,A1)A$() 0120 IF END THEN STOP "END OF FILE "# 0130 REM PRINT "Sector ";A1;" ";HEXOF(STR(A$(),1,2)) 0140 GOSUB '77(A$()) : IF A<256THEN STR(A$(),A+1)=" " : IF H9=1THEN PRINT HEX(0D0D) 0150 SELECT PRINT 005(80) : IF C$=HEX(A0)THEN GOSUB 300 : IF A$=" "THEN 110 : PRINT A$ : STOP "End of Job "# : GOTO 10 0160 FOR B=1TO S : PRINT HEXOF(STR(S$(),B,1));" "; : NEXT B : PRINT : PRINT "pause"; : KEYIN K$ : RETURN 0170 REM %.S.R.List sector contents in hex 0180 SELECT PRINT 005(79) : FOR C=1 TO 16 : HEXUNPACKA$(C) TO Z$ : FOR C1=1 TO 32STEP 2 : PRINT STR(Z$,C1,2);" "; : NEXT C1 : NEXT C : PRINT : RETURN 0190 DEFFN'0 : LOAD DC T "START" 0200 DEFFN'77(C$()) : A$=" " : C$,C1$=STR(C$(),,1) : C$=C$AND HEX(A0) : IF C$=HEX(00)THEN A$="Not a Data file" : IF C$=HEX(A0)THEN A$="END of file" : IF A$<>" "THEN RETURN 0210 C$=STR(C$(),2,1) : A=3 : IF C$>HEX(01)THEN 230 : IF S>0THEN GOSUB 300 0220 S=1 : INIT(00)S$() 0230 IF C$<>HEX(01)THEN IF VAL(C$)-1<>VAL(C2$)THEN STOP "Out of sequence "# : C2$=C$ : GOTO 250 0240 STR(S$(),S,1)=C1$ : S=S+1 0250 C$,C0$,C1$=STR(C$(),A,1) : IF H9=1THEN PRINT HEXOF(C$);" "; : IF C$=HEX(FD)THEN RETURN : C$=C$AND HEX(7F) 0260 A=A+VAL(C$)+1 : IF A<=256THEN 240 : STOP "Illegal value "# : RETURN 0270 REM %.Analyze BASIC-2 value bytes 0280 PRINT "BASIC-2 value bytes" : SELECT PRINT 005(78) : FOR B=1TO S-1 : PRINT HEXOF(STR(S$(),B,1));" "; : NEXT B : PRINT 0300 S0=S0+1 : PRINT "File=";F$,"BASIC-2 data structure -- SAVE number ";S0 : SELECT PRINT 005(80) 0310 E$,E0$=STR(S$(),,1) : GOSUB 400 : FOR B=2TO S : E$=STR(S$(),B,1) : IF E$=E0$THEN 320 : PRINT T$; : IF E>0THEN PRINT "(";E+1;")"; : IF T$="$"THEN PRINT VAL(E0$)-128; : PRINT , : GOSUB 400 : E=E-1 : E0$=E$ 0320 E=E+1 : NEXT B : PRINT : $IF OFF /001,340 : KEYIN K$ 0330 IF K$=HEX(0F)THEN GOSUB '15 : PRINT "pause";HEX(0D); : KEYIN K$ : IF K$=HEX(0F)THEN 330 0340 RETURN 0400 E=0 : IF E$=HEX(08)THEN T$="Scalar" : ELSE T$="$" : RETURN 0500 DEFFN'15 : PRINT ,"A n a l y z e D a t a F i l e F o r m a t" 0510 PRINT "$(4)62",,"Wang T.C. file format" 0520 PRINT "$2, $3, $(4)60",,"Wang Prom file format" 0530 PRINT "$(256)16",,"4K T.C. microcode" 0540 PRINT "$(512)16",,"8K T.C. microcode" 0550 PRINT "$(34)121",,"4K T.C. ucode (min.disk storage)" 0560 PRINT "$(3)83",,"3270 Spooler names file" 0562 PRINT "$(3)80",,"3270*PQ" 0570 PRINT "$31, $(128)2, Scalar(3)","VFU format tape" 0572 PRINT "$8, Scalar, $32, $2(16), $(16)8, $(33)2","@SYSFILE" 0580 RETURN