10 ! PROGRAM TO LIST CONTENTS OF AN STB FILE 20 DIM A$[122]V,TY$[14](8),NA$[15]V,XX$[6]V 25 TY$(1)="MODULE NAME" 30 TY$(2)="C-SECT NAME" 40 TY$(3)="SYMBOL NAME" 50 TY$(4)="TRANSFER ADDR." 60 TY$(5)="GLOBAL SYMBOL" 70 TY$(6)="P-SECT NAME" 80 TY$(7)="VERSION ID" 90 TY$(8)="MAPPED ARRAY" 100 INPUT "NAME (ONLY) OF STB FILE ";NA$ 110 OPEN #3, NA$+".STB/RO/LN:122" 120 OPEN #4, NA$+".DOC/WR/LN:132" 130 PRINT #4 : PRINT #4 140 PRINT #4, " ","LISTING OF ";NA$;".STB",DAT$(),TIM$() 150 PRINT #4 160 PRINT #4, " ","NAME"," VALUE"," TYPE"," FLAGS" 170 PRINT #4, " ","------"," ------","-------------";" ------" 180 PRINT #4 190 NL=0 200 INPUT LINE #3,A$ 210 IF LEN(A$)<10 THEN 1000 : ! QUIT IF END OF GSD 220 LC=(LEN(A$)-2)/8 230 FOR I=1 TO LC 240 X1=ASC(SBS$(A$,(I*8-5),1)) : IF X1<0 THEN LET X1=X1+256 250 X2=ASC(SBS$(A$,(I*8-4),1)) 260 X3=ASC(SBS$(A$,(I*8-3),1)) : IF X3<0 THEN LET X3=X3+256 270 X4=ASC(SBS$(A$,(I*8-2),1)) 280 PRINT #4, " ",R5A$(X1+256*X2);R5A$(X3+256*X4), 290 X1=ASC(SBS$(A$,(I*8+1),1)) : IF X1<0 THEN LET X1=X1+256 300 X2=ASC(SBS$(A$,(I*8+2),1)) 305 XX$=OCT$(X1+256*X2) : XL=LEN(XX$) 310 IF XL=6 THEN PRINT #4, " ";XX$, 315 IF XL<6 THEN PRINT #4, " ";STRING$("0",6-XL);XX$, 320 TY=ASC(SBS$(A$,(I*8),1)) : IF TY<0 THEN LET TY=TY+256 330 FL=ASC(SBS$(A$,(I*8-1),1)) : IF FL<0 THEN LET FL=FL+256 350 PRINT #4, TY$(TY+1);" "; 355 XX$=OCT$(FL) : XL=LEN(XX$) 360 IF XL=3 THEN PRINT #4, " ";XX$ 365 IF XL<3 THEN PRINT #4, " ";STRING$("0",3-XL);XX$ 370 NL=NL+1 380 IF NL<55 THEN 470 400 PRINT #4, CHR$(12) : PRINT #4 : PRINT #4 410 PRINT #4, " ","LISTING OF ";NA$;".STB",DAT$(),TIM$() 420 PRINT #4 430 PRINT #4, " ","NAME","VALUE"," TYPE"," FLAGS" 440 PRINT #4, " ","------"," ------","-------------";" ------" 450 PRINT #4 460 NL=0 470 NEXT I 480 GOTO 200 1000 EXIT