10 REM LIBKOPIA 811113 11 B7%=PEEK(16%*7%-703%) : POKE 16%*7%-703%,255% : REM Frist{ll Db 7 12 K8%=0% : DIM Q0$=253% 14 L5%=1% : S5%=0% : REM L{s/Skrivdrive 16 ; CHR$(12%)'KOPIERING AV FILER (LIBKOPIA)' 18 ; '==================' : ; 20 IF E$>'' E$=LEFT$(E$+' ',3%) 22 ; 'Detta program kopierar filer fr'; 24 ; '}n dr'L5% : ; 'till drive'S5% : ; 28 IF E$>'' ; 'Endast filer med filtyp .'E$' ber|rs' : ; 30 ; '1 - Kopiering av valda filer' 32 ; '2 - Kopiering av alla filer' 34 ; '3 - T|m skivan i drive'S5% 36 ; '4 - V{lj filtyp (.BAC .DAT etc.)' 38 ; : ; '0 - Avsluta' : ; 40 ; 'V{lj alternativ '; : INPUT X$ 41 IF X$='' GOTO 12 42 ON INSTR(1%,'12340.',X$)+1% GOTO 12,48,46,230,44,260,260 44 ; 'Ange filtyp utan "." '; 45 INPUTLINE E$ : E$=LEFT$(E$,LEN(E$)-2%) : GOTO 10 46 K8%=1% : ; 'Kopiering av alla filer '; : IF E$>'' ; 'med filtyp .'E$; 47 ; : ; 'Starta med (!) '; : INPUT I$ : IF I$<>'!' GOTO 47 ELSE GOTO 50 48 ; CHR$(12%)'INNEH]LL DRIVE '; 49 ; NUM$(L5%)':' : ; 50 N%=0% : DIM N$(120%)=16% 52 D%=L5% 54 POKE -767%,D% : Z%=CALL(24678%,999%) 56 Z%=CALL(24678%,192%) 58 IF PEEK(-747%) ; 'L{sfel DR'PEEK(-767%) : GOTO 216 60 B%=-2577% : FOR I%=0% TO 7% 62 M%(I%)=PEEK(B%+I%) : NEXT I% 64 K%=0% : FOR S%=0% TO 7% 66 IF M%(S%)<2 GOTO 100 68 Z%=CALL(24678%,512%+S%*32%) 70 FOR B%=-2800% TO -2576% STEP 16% 72 R%=SWAP%(PEEK(B%))+PEEK(B%+1%) 74 X$='' : FOR I%=4% TO 11% 76 X$=X$+CHR$(PEEK(B%+I%)) 78 NEXT I% 80 Y$='' : FOR I%=12% TO 14% 82 Y$=Y$+CHR$(PEEK(B%+I%)) : NEXT I% 84 IF PEEK(B%)=255% GOTO 98 86 IF E$>'' IF Y$<>E$ GOTO 98 88 N%=N%+1% 90 IF K8%=0% ; TAB(3%+K%*18%)N%TAB(7%+K%*18%)X$'.'Y$; 92 N$(N%)=X$+'.'+Y$ 96 IF K8%=0% K%=K%+1% : IF K%*20%=40% K%=0% : ; : IF N%>40% GET X$ 98 NEXT B% 100 NEXT S% 102 IF K8%=1% DIM K$=4%*N% : FOR I%=1% TO N%-1% : K$=K$+NUM$(I%)+',' : NEXT I% : K$=K$+NUM$(I%) : GOTO 122 104 IF K% ; 106 ; 'Ange filnr1,filnr2 ..... f|r filer som skall kopieras:' 110 DIM K$=4%*N% 112 GET Y$ : IF LEN(K$)=4%*N% GOTO 116 114 IF (Y$>='0' AND Y$<='9') OR Y$=',' K$=K$+Y$ : ; Y$; : GOTO 112 116 IF Y$=CHR$(13%) GOTO 122 118 IF Y$=CHR$(8%) AND LEN(K$) K$=LEFT$(K$,LEN(K$)-1%) : ; CHR$(8%,32%,8%); : GOTO 112 120 GOTO 112 122 A5%=PEEK(65064%)-PEEK(65057%)-5% 124 IF A5%<1% STOP 126 DIM A$(A5%)=253% 128 ; : ; 130 ; 'Kopiering p}g}r, bryt med "."' 132 IF LEN(K$)=0% GOTO 214 134 A%=INSTR(1%,K$,',') 136 IF A%=0% A%=LEN(K$)+1% : K$=K$+',' 138 ONERRORGOTO 208 140 V%=VAL(LEFT$(K$,A%-1%)) 142 K$=RIGHT$(K$,A%+1%) 144 IF V%<1% OR V%>N% GOTO 204 146 ; RIGHT$(NUM$(V%),2%)TAB(3%)N$(V%)TAB(17%); 148 ; 'kopieras '; 150 ONERRORGOTO 202 152 IF L5%=S5% STOP : REM fel drive 154 OPEN 'dr'+NUM$(L5%)+':'+N$(V%) ASFILE 1% 156 ]1%=0% 158 W%=0% : ONERRORGOTO 200 160 PREPARE 'dr'+NUM$(S5%)+':'+N$(V%) ASFILE 2% 162 ]2%=0% 164 ONERRORGOTO 174 166 FOR I%=1% TO A5% 168 Z%=CALL(28666%,1%)+CALL(28668%,]1%) 170 A$(I%)=Q0$ : ]1%=]1%+1% 172 NEXT I% : GOSUB 184 : GOTO 164 174 IF ERRCODE<>38% GOTO 218 176 GOSUB 184 178 CLOSE 2% : ; W%' sektorer' 180 IF (INP(56%) AND 127%)=46% ; 'Kopiering avbruten' : GOTO 216 182 GOTO 132 184 ONERRORGOTO 196 186 FOR J%=1% TO I%-1% 188 Z%=CALL(28666%,2%) : Q0$=A$(J%) 190 Z%=CALL(28670%,]2%) : W%=W%+1% 192 ]2%=]2%+1% : NEXT J% 194 RETURN 196 IF ERRCODE=41% ; 'Skivan full' : ONERRORGOTO 216 : KILL 'dr'+NUM$(S5%)+':'+N$(V%) : GOTO 216 198 GOTO 218 200 GOTO 196 202 GOTO 218 204 ; 'Tal ej till}tet! ('V%' )' 206 GOTO 222 208 ; 'Felaktigt tal! ('; 210 ; LEFT$(K$,A%-1%)')' 212 K$=RIGHT$(K$,A%+1%) : GOTO 222 214 ; 'Klar !' 216 GOTO 260 218 ; : ; 'Fel'ERRCODE' DR'; 220 ; NUM$(PEEK(-767%)) 222 ; 'Tryck RETURN f|r forts{ttning '; 224 ; 'eller' : ; '"." f|r avslutning'; 226 INPUT X$ : IF X$='.' GOTO 216 228 GOTO 132 230 REM T|m skiva 232 ; 'Skivan i drive'S5%' t|ms !' 234 ; 'Starta med utropstecken '; 236 INPUT X$ 238 IF X$<>'!' GOTO 232 240 POKE -767%,S5% 242 Z%=CALL(24678%,7%*32%) 244 Z%=CALL(24675%,6%*32%) 246 FOR I%=0% TO 15% 248 POKE I%-2816%,0% : NEXT I% 250 FOR I%=16% TO 255% 252 POKE I%-2816%,255% 254 NEXT I% : FOR I%=8% TO 23% 256 Z%=CALL(24675%,I%*32%) : NEXT I% 258 GOTO 14 260 POKE 16%*7%-703%,B7% 262 IF PEEK(63400%)<>68% END 264 ; 'L{gg en programskiva i drive 0' 266 ; 'L{gg en dataskiva i drive 1' 268 ; 'Tryck RETURN '; : INPUT I$ 270 CHAIN 'Dr0:System.bac'