100 DIMFI$(40),T%(40),BL%(40),T$(4) 110 FORN=0TO4:READT$(N):NEXT 120 BF=664:REM ** BLOCKS FREE ******** 130 OPEN15,8,15,"I0:":CLOSE15:REM INITIALIZE DISK 140 OPEN2,8,2,"$" 150 : 160 REM ** NOT NEEDED FOR DIRECTORY ** 170 FORN=2TO143:GET#2,A$:NEXTN 180 : 190 REM ** GET THE DISK NAME ********* 200 FORN=144TO161 210 GET#2,A$:IFA$<>CHR$(160)THEND$=D$+A$ 220 NEXTN 230 PRINTSPC(4);CHR$(18);D$;SPC(17-LEN(D$)); 240 : 250 REM ** GET THE DISK ID *********** 260 GET#2,A$:PRINTA$; 270 GET#2,B$:PRINTB$;" "; 280 ID$=A$+B$ 290 GET#2,A$ 300 : 310 REM ** GET THE DOS VERSION ******* 320 GET#2,A$:PRINTA$; 330 GET#2,B$:PRINTB$ 340 OS$=A$+B$ 350 : 360 REM ** LOTS OF UNUSED DATA ******* 370 FORN=167TO255:GET#2,A$:NEXTN 380 PRINT 390 : 400 REM ** GET THE FILE TYPE ********* 410 REM ** OTO4 PLUS 128 FOR GOOD FILE 420 E$="" 430 GET#2,A$:IFA$=""THENT=0:GOTO470 440 T=ASC(A$) 450 : 460 REM ** DON'T NEED THESE 2 BYTES ** 470 GET#2,A$,A$ 480 : 490 REM ** NOW GET FILE NAME ********* 500 F$="" 510 FORN=3TO18 520 GET#2,A$:IFA$<>CHR$(160)THENF$=F$+A$ 530 NEXTN 540 : 550 REM ** DON'T NEED THESE BYTES **** 560 FORN=19TO27:GET#2,A$:NEXTN 570 : 580 REM ** GET LO/HI BLOCKS USED ***** 590 GET#2,A$:IFA$=""THENL=0:GOTO610 600 L=ASC(A$) 610 GET#2,A$:IFA$=""THENH=0:GOTO630 620 H=ASC(A$) 630 BL=L+(H*256) 640 : 650 REM ** IF DEL FILE SKIP PRINT **** 660 IFT=0THEN770 670 BF=BF-BL 680 BL%(FI)=BL:T%(FI)=T:FI$(FI)=F$:FI=FI+1 690 IFBL<10THENPRINT" "; 700 PRINTBL; 710 PRINTF$;SPC(17-LEN(F$)); 720 IFT>127THENPRINTT$(T-128):GOTO740 730 PRINT"*"T$(T) 740 : 750 REM ** FILENAMES SAVED IN BLOCKS * 760 REM ** OF 8. PADDING CHANGES ***** 770 IFFE<7THENFE=FE+1:GET#2,A$,A$:GOTO790 780 FE=0 790 IFSTTHEN810 800 GOTO430 810 CLOSE2 820 PRINT,,:PRINT :PRINTBF,"BLOCKS FREE" 830 PRINTBF*254,"BYTES FREE":REM ONLY 254 BYTE/BLOCK 840 END 850 DATA "DEL","SEQ","PRG","USR","REL"