100 ! ********************************************************************** 110 ! Program DIRLIB.800 Utg}va 1.0 1984-05-06 120 ! av Anders Sandberg 130 ! Ins{nd av Anders Sandberg 140 ! F|r ABC800M ABC800C ABC802 ABC806 150 ! F|r disk ABC832, utan superdoset 160 ! Testad p} ABC806 170 ! 180 ! Screened by --"-TCP-"-- 190 ! ********************************************************************** 200 ! 210 ; ' DIRLIB Ver 1.0  1983.10.09 ' 220 ! 230 ! Anders Sandberg 4104 240 ! 250 ! Ger lista av DR1: bibliotek  EJ ABC-830  260 ! 270 INTEGER : EXTEND 280 DIM Dosbuf$=0,Fil$=30,Cnt(16) 290 Dosbuf=256*PEEK(64787) : POKE VAROOT(Dosbuf$),0,1,Dosbuf,SWAP%(Dosbuf),0,1 300 Q7=FNRdsec(14) 310 FOR I=0 TO 15 : Cnt(I)=ASCII(MID$(Dosbuf$,240+I,1)) : NEXT I 320 PREPARE 'DR0:LIB.TXT' AS FILE 1 330 Q7=FNReadfil 340 CLOSE 350 END 360 DEF FNRdsec(Secnr) LOCAL Ecod 370 POKE 64769,1 : Q7=CALL(24678,Secnr) : Ecod=PEEK(64789) 380 IF Ecod=0 RETURN F 390 IF Ecod AND 128 RETURN T 400 IF Ecod AND 16 PRINT 'Skivan d}lig' : RETURN T 410 IF Ecod AND 239 PRINT 'Diskfel' Ecod : RETURN T 420 RETURN T 430 FNEND 440 DEF FNName$ LOCAL N$=12,R$=4 450 N$=MID$(Dosbuf$,Index+4,11) : R$=NUM$(CVT$%(MID$(Dosbuf$,Index+2,2))) 460 RETURN LEFT$(N$,8)+'.'+RIGHT$(N$,9)+SPACE$(6-LEN(R$))+R$ 470 FNEND 480 DEF FNReadfil LOCAL Sect 490 WHILE Sect<16 : IF Cnt(Sect)=0 LET Sect=Sect+1 : GOTO 490 500 IF FNRdsec(Sect+16) RETURN T ELSE Index=1 510 WHILE Index<=250 : Q7=CVT$%(RIGHT$(Dosbuf$,Index)) 520 IF Q7<>0 AND Q7<>-1 PRINT #1,FNName$ 530 Index=Index+16 540 WEND : Sect=Sect+1 550 WEND 560 RETURN F 570 FNEND