5 INTEGER : EXTEND 6 True=NOT False : False=NOT True 100 ! ===== 110 ! Programpaket inneh}llande de mest anv{nda rutinerna f|r hantering 120 ! av UserFileDirectorys (.Ufd). 130 ! 140 ! Skrivet av : TFP Lars Hedberg <2497> 150 ! 1986-04-13 160 ! 170 ! Programmet {r skrivet f|r ABC80x med UFD-DOS. Om detta inte finns 180 ! s} ger anrop av funktionerna inget fel, men det h{nder inget! 190 ! 200 ! ===== 60000 ! LIST TFPUFD  Datum : 1986-02-04 / 1986-04-13  TFP Lars Hedberg 60010 ! 60020 ! ===== 60030 ! Aktivera ett .Ufd bibliotek. S|kning efter biblioteket sker p} alla 60040 ! enheter som finns anslutna. Filnamnet skall vid anropet se ut s} h{r: 60050 ! xxxxxxxxUfd - dvs exakt 11 tkn med Ufd p} slutet (stort U, sm} fd). 60060 ! Om returv{rdet {r <>0 s} har ett fel uppst}t! 60070 ! ===== 60080 ! 60090 DEF FNOpenufd(Fil$) LOCAL Ufdfil$=12,Asm$=15,Asm2$=10,Z 60100 Ufdfil$=Fil$+CHR$(13) 60110 Asm$=CHR$(6,1,14,255,205,24,96,42,8,253,201) 60120 Asm2$=CHR$(6,1,205,33,96,201) 60130 Z=CALL(VARPTR(Asm$),VARPTR(Ufdfil$))+2+CALL(VARPTR(Asm2$))*0 60140 IF PEEK(-747) RETURN True 60150 POKE 65527,Z,SWAP%(Z) 60160 IF PEEK(-767)=30 THEN 60180 60170 POKE 65529,PEEK(-767) 60180 RETURN False 60190 FNEND 60200 ! 60210 ! ===== 60220 ! Aktivera f|reg}ende .Ufd alt. MasterFileDirectory 60230 ! ===== 60240 ! 60250 DEF FNFaderufd LOCAL Sektor,Z,Nysektor 60260 Sektor=PEEK2(65527)-1 60270 IF Sektor=0 THEN POKE 65529,0 : GOTO 60310 60280 Z=CALL(24678,Sektor) 60290 Nysektor=PEEK2(62720+3) 60300 POKE 65527,Nysektor,SWAP%(Nysektor) 60310 RETURN False 60320 FNEND 60330 ! 60340 ! ===== 60350 ! Aktiver MasterFileDirectory 60360 ! ===== 60370 ! 60380 DEF FNMasterufd 60390 POKE 65527,0,0,0 60400 RETURN False 60410 FNEND 60420 ! 60430 ! ===== 60440 ! Returnera aktuellt .Ufd-filnamn med alla underniv}er 60450 ! ===== 60460 ! 60470 DEF FNListufd$ LOCAL P2,P3,P4,P5,Fil$=12,Totfil$=80 60480 POKE -767,PEEK(65529) 60490 Fil$='' : Totfil$='' 60500 P2=PEEK2(65527) 60510 WHILE P2<>16 AND P2<>0 60520 P2=CALL(24678,P2-1)*0+PEEK2(62720+3) : P3=PEEK(62720+5) 60530 P5=(P3 AND 240)/16 : P4=(P3 AND 15) 60540 IF P2=0 THEN IF PEEK(65529)>11 AND PEEK(65529)<15 THEN P2=8 ELSE P2=16 60550 Z=CALL(24678,P2+P4) 60560 FOR I=4 TO 11 60570 IF PEEK(62720+P5*16+I)=32 GOTO 60600 60580 Fil$=Fil$+CHR$(PEEK(62720+P5*16+I)) 60590 NEXT I 60600 Totfil$='/'+Fil$+Totfil$ 60610 Fil$='' 60620 WEND 60630 RETURN 'MFD'+Totfil$ 60640 FNEND