1 REM Ins{nd av Mikael Lid`n <5651> 1986-06-08 16.14.30 1000 ! CATLIB (c) LID@N DATA 1010 ! 1020 ! - Utvecklat 1030 ! - av: LID@N DATA 1040 ! - 1050 ! - Projekt: LIB f|r RAM: i CAT-NET 1060 ! - Konstrukt|r: Mikael Lid`n 1070 ! - Vers: 1.0 1080 ! - P}b|rjat: ! 860608 1090 ! - [ndring: 860608 1100 ! 1110 ! 1120 INTEGER : EXTEND 1130 ! * 1140 ! 1150 ! L{s sektor 1160 ! 1170 DEF FNL{ssekt(Sekt) LOCAL Buf$=0 1180 POKE VAROOT(Buf$),0,1,62720,SWAP%(62720),0,1 1190 Buf$=FNRget2$(0,256*Sekt,255) 1200 RETURN 0 1210 FNEND 1220 ! * 1230 ! 1240 ! L{s bibliotek 1250 ! 1260 DEF FNL{slib(Bibsect,Cluster) LOCAL S$=0,Size,Sect,Adr,I,J,A 1270 Z=FNRfinit : Z=FNRopen(0,4) 1280 WHILE I<16 1290 A=ASCII(FNRget2$(0,14*256+239+I,1)) 1300 IF A>0 Z=FNL{ssekt(I+Bibsect) : J=0 ELSE J=16 1310 WHILE J<16 1320 Adr=62720+J*16 1330 POKE VAROOT(S$),16,0,Adr,SWAP%(Adr),16,0 1340 Sect=PEEK(Adr)*8*Cluster+PEEK(Adr+1)/32*Cluster 1350 Size=PEEK2(Adr+2) 1360 IF Size<>-1 AND Size<>0 ; MID$(S$,5,8)+'.'+MID$(S$,13,3)+' '; : ; USING '####' Size; : ; ' '; 1370 J=J+1 1380 WEND 1390 I=I+1 1400 WEND 1410 RETURN 0 1420 FNEND 1430 ! 1440 ! RFLOPPY / (c) LID@N DATA 860512 1450 ! 1460 ! * 1470 ! 1480 ! Initiera xramdrivrutiner 1490 ! 1500 DEF FNRfinit 1510 DIM Rfbuf$=256,Rxq$=120,Rxqb(9),Rxqp(9) 1520 Rxq$=CHR$(62,0,6,0,14,0,33,0,0,8,245,221,229,253,229,229) 1530 Rxq$=Rxq$+CHR$(221,225,62,0,213,253,225,235,30,0,243,185,40,66,8,245,175) 1540 Rxq$=Rxq$+CHR$(187,40,26,189,40,23,241,245,183,40,6,221,126,0,119,24) 1550 Rxq$=Rxq$+CHR$(4,126,221,119,0,241,221,35,44,8,60,24,221,229,253,229) 1560 Rxq$=Rxq$+CHR$(225,123,132,225,245,230,15,103,241,203,63,203,63,203,63,203) 1570 Rxq$=Rxq$+CHR$(63,128,28,203,255,197,14,52,6,0,237,121,193,24,199,6) 1580 Rxq$=Rxq$+CHR$(0,14,52,175,237,121,251,253,225,221,225,241,8,201) 1590 Rxq=VARPTR(Rxq$) 1600 Rxqbp=0 1610 POKE Rxq+7,VARPTR(Rfbuf$),SWAP%(VARPTR(Rfbuf$)) 1620 RETURN 0 1630 FNEND 1640 ! * 1650 ! 1660 ! L{s data fr}n Xram 1670 ! 1680 DEF FNRget2$(F,Pos,Ant) 1690 POKE Rxq+1,0 1700 POKE Rxq+5,Ant 1710 POKE Rxq+3,Rxqb(F) 1720 Z=CALL(Rxq,Pos) 1730 POKE VAROOT(Rfbuf$)+4,Ant,0 1740 Rxqp(F)=Pos+Ant 1750 RETURN Rfbuf$ 1760 FNEND 1770 ! * 1780 ! 1790 ! L{s data fr}n Xram 1800 ! 1810 DEF FNRget1$(F,Ant) 1820 POKE Rxq+1,0 1830 POKE Rxq+5,Ant 1840 POKE Rxq+3,Rxqb(F) 1850 Z=CALL(Rxq,Rxqp(F)) 1860 POKE VAROOT(Rfbuf$)+4,Ant,0 1870 Rxqp(F)=Rxqp(F)+Ant 1880 RETURN Rfbuf$ 1890 FNEND 1900 ! * 1910 ! 1920 ! Skriv data i Xram 1930 ! 1940 DEF FNRput2(D$,F,Pos) 1950 POKE Rxq+1,1 1960 POKE Rxq+5,LEN(D$) 1970 POKE Rxq+3,Rxqb(F) 1980 Rfbuf$=D$ 1990 Rxqp(F)=Pos+LEN(D$) 2000 Z=CALL(Rxq,Pos) 2010 RETURN 0 2020 FNEND 2030 ! * 2040 ! 2050 ! Skriv data till Xram 2060 ! 2070 DEF FNRput1(D$,F) 2080 POKE Rxq+1,1 2090 POKE Rxq+5,LEN(D$) 2100 POKE Rxq+3,Rxqb(F) 2110 Rfbuf$=D$ 2120 Z=CALL(Rxq,Rxqp(F)) 2130 Rxqp(F)=Rxqp(F)+LEN(D$) 2140 RETURN 0 2150 FNEND 2160 ! * 2170 ! 2180 ! \pnna Xram fil 2190 ! 2200 DEF FNRopen(F,Block) 2210 ! - F Fil Nr 0-9 2220 ! - Block Max antal 4K-block i filen dvs filens storlek 2230 Rxqb(F)=Rxqbp 2240 Rxqp(F)=0 2250 Rxqbp=Rxqbp+Block 2260 RETURN 0 2270 FNEND 2280 ! * 2290 ! 2300 ! Huvudprogram 2310 ! 2320 ; : ; 2330 ; 'RAM LIB - ABC806 vers 1.0 (c) LID@N DATA' 2340 ; 2350 ; 'File Size File Size File Size File Size' 2360 ; STRING$(80,45) 2370 Z=FNL{slib(16,4) 2380 ; : ;