1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program MJ.. CASLIB 3 REM ! Utg}va 2.01 1981-10-03 4 REM ! av (c) Magnus Jacobsson 7 REM ! Minne 16 Kbytes 9 REM +++++++++++++++++++++++++++++++++ 10 REM L{ser kassettband och letar 11 REM headerblock. Utskrift sker p} 12 REM bildsk{rmen och liknar diskettLIB 19 REM SAVE CASLIB,2.1,811003,MJ 20 DIM A$=0%,E3$=7%,F$=5% 30 P%=PEEK(65065%)+SWAP%(PEEK(65066%)) 40 POKE P%+4%,253%,0%,3%,0%,253%,0% 50 P%=P%+7% 60 E3$=STRING$(6%,0%)+CHR$(3%) 70 A%=PEEK(948%)+SWAP%(PEEK(949%))+1% 80 A%=PEEK(A%) 120 POKE 65408%,205%,A%,5%,208%,111% 130 POKE 65413%,201% 140 POKE 65017%,0%,0% : R%=1% : K%=20% 160 ; CHR$(12%)TAB(6%); 170 ; '< ABC80-CASSETTE LIBRARY >' 180 ; CUR(2%,0%)'Push '; 190 GET F$ : ; F$TAB(39%); 200 V%=65535% 210 ; CUR(1%,0%)'========Looking for '; 220 IF V%<0% ; 'head'; ELSE ; 'data'; 240 ; '-record ========'; 250 IF (INP(56%) AND 95%)=67% GOTO 650 260 Z%=CALL(65408%) : E%=Z% AND 255% 270 Z%=Z% AND 65280% 280 POKE P%,SWAP%(Z%) : H%=PEEK(Z%) 300 B%=PEEK(Z%+1%)+SWAP%(PEEK(Z%+2%)) 310 IF V%<>65535% GOTO 380 320 IF E% OR H%<>255% OR B%<>65535% 210 330 K%=K%+20% : R%=R%+K%/40% 340 K%=K%-K%/40%*40% 350 ; CUR(R%,K%)LEFT$(A$,8%)+'.'; 360 ; MID$(A$,9%,3%)' '; : GOSUB 670 370 V%=V%+1% : GOTO 210 380 IF (E% OR H% OR B%<>V%)=0% GOTO 430 390 IF B%<>0% AND T%=4% GOTO 420 400 ; CUR(R%,K%+16%)'#'; 410 ; RIGHT$(NUM$(E% AND 127%),2%); 420 V%=65535% : GOTO 320 430 GOSUB 670 : V%=V%+1% 440 IF B%=0% Q%=PEEK(Z%+3%) ELSE 480 450 IF (Q% OR 1%)=131% T%=1% : GOTO 480 460 IF Q%=0% T%=3% : GOTO 480 470 IF Q%<128% T%=2% ELSE T%=4% 480 ON T% GOSUB 510,550,570,630 490 IF L%=1% 200 500 GOTO 210 510 IF B%=0% I%=2% ELSE I%=1% 520 L%=ASC(MID$(A$,I%,1%)) 530 IF L%<2% RETURN 540 I%=I%+L% : GOTO 520 550 IF LEFT$(A$,7%)=E3$ L%=1% : RETURN 560 L%=0% : RETURN 570 I%=1% 580 L%=ASC(MID$(A$,I%,1%)) 590 IF L%=255% L%=0% : RETURN 600 N%=ASC(MID$(A$,I%+1%,1%)) 610 IF N%=0% L%=1% : RETURN 620 I%=I%+N%+8% : GOTO 580 630 IF B%=0% ; CUR(R%,K%+17%)'!'; 640 L%=0% : RETURN 650 OUT 58,0% : ; CUR(R%,0%); 660 POKE 65013%,0% : END 670 F$=' '+NUM$(B%+2%) 680 F$=RIGHT$(F$,LEN(F$)-2%) 690 ; CUR(R%,K%+13%)F$ : RETURN