10 REM ________________ 11 REM  Program . LIBRUN.BAC ! 12 REM ! Vers 1.0 850821  13 REM  Av (c) Lars Eriksson 5936 ! 14 REM ! ABC 80 16 Kbyte , 32 Kbyte  15 REM  Ins{nt av 5936 ! 16 REM !_______________ 17 REM  Menyprogram som h{mtar meny- 18 REM  texten direkt fr}n disketter 19 REM  Funktioner . 20 REM  * Diskett-lib 21 REM  * Startar basic-program 22 REM  * Identifierar filer 23 REM  * D|dar filer 24 REM 25 DIM M$(99%)=35%,Q0$=255% 26 ; CHR$(12%) 27 GOSUB 81 : A%=I5%+1% 28 GOSUB 31 29 IF I%=1% THEN A%=CALL(0%) 30 CHAIN LEFT$(M$(I%),16%) 31 REM SUBRUTIN MENY 32 ; CHR$(12%) 33 ; CUR(0%,2%)R$ 34 ; CUR(1%,1%)CHR$(151%);STRING$(LEN(R$),44%); 35 FOR J%=31874% TO (31874%+LEN(R$)-1%) 36 POKE J%,PEEK(J%) OR 128% 37 NEXT J% 38 ; CUR(21%,0%)"V[LJ GENOM ATT FLYTTA MARK\REN MED PIL" 39 ; CUR(22%,0%)"TILL R[TT PLATS SEDAN **RETURN**" : ; "ctrl+A d|da fil ctrl+Z filtyp"; 40 FOR J%=32616% TO 32621% 41 POKE J%,PEEK(J%) OR 128% 42 NEXT J% 43 I1%=1% : I%=1% 44 GOSUB 60 45 ; CUR((I%-I1%+2%),3%); 46 GET C$ 47 C%=ASC(C$) 48 IF NOT (C%=26% OR C%=1% OR C%=13% OR C%=8% OR C%=9%) THEN ; CHR$(7%) : GOTO 45 49 IF C%=1% THEN GOSUB 67 50 IF C%=26% THEN GOSUB 131 51 IF C%=8% THEN I%=I%-1% 52 IF I%<1% THEN I%=1% 53 IF C%=9% THEN I%=I%+1% 54 IF I%=A% THEN I%=I%-1% 55 IF I%I1%+18% THEN I1%=I1%+1% : GOSUB 60 57 IF C%=13% THEN GOSUB 131 : GOTO 58 ELSE 45 58 IF Q%=1% THEN 45 59 RETURN 60 I2%=I1% 61 ; CUR((I2%-I1%+2%),0%)I2%;TAB(5%);M$(I2%); 62 M%=LEN(M$(I2%)) 63 ; STRING$(35%-M%,32%); 64 I2%=I2%+1% 65 IF I2%20% OR I%=1% THEN RETURN 68 ; CUR((I%-I1%+2%),22%)"CTRL+A f|r d|da"; 69 GET A$ 70 ; CUR((I%-I1%+2%),22%)" " 71 IF NOT A$=CHR$(1%) THEN RETURN 72 ONERRORGOTO 78 73 KILL LEFT$(M$(I%),16%) 74 M$(I%)=M$(I%)+" D\DAD" 75 ; CUR((I%-I1%+2%),5%)M$(I%); 76 ONERRORGOTO 0 77 RETURN 78 IF ERRCODE=39% THEN M$(I%)=LEFT$(M$(I%),16%)+" skrivskydd" : GOTO 75 79 IF ERRCODE=40% THEN M$(I%)=LEFT$(M$(I%),16%)+" raderingsskydd" : GOTO 75 80 GOTO 75 81 REM 82 W1%=20% 83 I5%=1% : M$(1%)="END" 84 W2%=41% 85 FOR D%=0% TO 6% 86 G8%=0% 87 POKE -767%,D% 88 Z%=CALL(24678%,224%) 89 IF PEEK(-747%) AND 128% GOTO 125 90 B%=-2577% : FOR I%=0% TO 7% 91 M%(I%)=PEEK(B%+I%) : NEXT I% 92 G%=0% : FOR P%=-2816% TO P%+160% 93 IF PEEK(P%)=255% THEN 97 ELSE IF PEEK(P%)=0% THEN G%=G%+8% : GOTO 97 94 Q%=1% 95 G%=G%-((PEEK(P%) AND Q%)=0%) 96 Q%=Q%+Q% : IF Q%<256% THEN 95 97 NEXT P% 98 IF G8%=0% THEN G8%=G% : Z%=CALL(24678%,192%) : GOTO 90 99 X$="" : Z%=CALL(24678%,0%) : IF PEEK(-747%) THEN 126 100 FOR I%=-2568% TO -2561% : X$=X$+CHR$(PEEK(I%)) 101 NEXT I% : IF (ASC(X$)>64% AND ASC(X$)<94%) X$=' '+X$ ELSE X$='' 102 R$=R$+" DR"+CHR$(D%+48%)+":"+X$ 103 K%=0% : FOR S%=0% TO 7% 104 IF M%(S%)<1% GOTO 124 105 Z%=CALL(24678%,512%+S%*32%) 106 IF PEEK(-747%) THEN 126 107 FOR B%=-2816% TO -2576% STEP 16% 108 IF PEEK(B%)=255% OR PEEK(B%+4%)=0% GOTO 123 109 R%=PEEK(B%)*256%+PEEK(B%+1%) 110 X$='DR'+CHR$(D%+48%)+':' : FOR I%=4% TO 14% 111 IF I%=12% THEN X$=X$+"." 112 X$=X$+CHR$(PEEK(B%+I%)) : NEXT I% 113 GOSUB 128 114 IF F%=0% THEN 122 115 POKE -1024%,6%,112%,195%,15%,96% 116 Z%=CALL(-1024%,R%) : IF PEEK(-747%) THEN 126 117 Y%=0% : FOR J%=0% TO 254% STEP 2% 118 IF PEEK(J%-1020%)=255% GOTO 121 119 V%=PEEK(J%-1019%) 120 Y%=Y%+(V% AND 31%)+1% : NEXT J% 121 REM 122 REM 123 NEXT B% 124 NEXT S% 125 NEXT D% : GOTO 127 126 ; : ; "Diskfel DRIVE"D% : GOTO 125 127 RETURN 128 I5%=I5%+1% 129 M$(I5%)=X$ 130 RETURN 131 REM 132 IF I%=1% THEN Q%=0% : RETURN 133 ONERRORGOTO 147 134 OPEN LEFT$(M$(I%),16%) ASFILE 1 135 Z%=CALL(28666%,1%)+CALL(28668%,0%) 136 CLOSE 1 137 Q%=ASC(LEFT$(Q0$,1%)) 138 IF Q%=130% THEN M$=" bac" : Q%=0% : GOTO 143 139 IF Q%>48% AND Q%<58% THEN M$=" bas" : Q%=0% : GOTO 143 140 IF Q%=9% OR (Q%>31% AND Q%<128%) THEN M$=" asc" : Q%=1% : GOTO 143 141 IF Q%=0% THEN M$=" maskinkod" : Q%=1% : GOTO 143 142 IF Q%>127% THEN M$=" direktfil" : Q%=1% 143 M$(I%)=LEFT$(M$(I%),16%)+M$ 144 ; CUR((I%-I1%+2%),5%)M$(I%); 145 ONERRORGOTO 0 146 RETURN 147 IF ERRCODE=21 THEN M$=" finns ej" : Q%=1% : GOTO 143 148 GOTO 145