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