1 REM +++++++++++++++++++++++++++++++++ 2 REM ! Program MJ.. COPYLIB 3 REM ! Utg}va 2.01 1981-10-03 4 REM ! av (c) Magnus Jacobsson 7 REM ! Minne 16 Kbytes f|r flexskiva 9 REM +++++++++++++++++++++++++++++++++ 10 REM Programmet anv{ndes p} samma 11 REM s{tt som "COPYLIB.ABS", men man 12 REM kan {ven |verf|ra sekventiella 13 REM filer fr}n diskett till kassett- 14 REM band. 15 REM Filer p} kassettband h{mtas 16 REM tillbaka med programmet 17 REM "CASDISK.BAC" 18 REM ================================ 20 REM SAVE COPYLIB,2.0,811003,MJ 21 DIM O$=0%,R$=0%,S$=0% 30 DIM P$(119%)=12% 40 DIM B$(15%)=253%,D$=3%,D1$=3% 50 DIM F$=20%,M%(7%) 60 I%=65408% : ONERRORGOTO 130 70 READ J% : POKE I%,J% 80 I%=I%+1% : GOTO 70 90 DATA 123,205,1,9,221,110,8,221,102,9 100 DATA 201,123,205,1,9,205,153,8,221 110 DATA 110,8,221,102,9,201,123,205,1 120 DATA 9,195,156,8, 130 P%=PEEK(65065%)+SWAP%(PEEK(65066%)) 140 POKE P%+4%,11%,0%,0%,0%,11%,0% 150 R%=PEEK(P%+2%)+SWAP%(PEEK(P%+3%)) 160 POKE R%+4%,253%,0%,0%,0%,253%,0% 170 S%=PEEK(R%+2%)+SWAP%(PEEK(R%+3%)) 180 POKE S%+4%,253%,0%,0%,0%,253%,0% 190 P%=P%+6% : R%=R%+6% : S%=S%+6% 200 J$=CHR$(0%)+'AXIY' 210 ; CHR$(12%)TAB(8%); 220 ; '< ABC80-COPYLIB >' 230 ; CUR(2%,8%)'FROM DRIVE 0/1'; 240 GET D$ : IF D$<>'1' D$='0' 250 IF D$='0' D1$='DR1' ELSE D1$='DR0' 260 ; CUR(2%,13%)'DR'D$; 265 ; ' TO 'D1$'/CAS'; : GET T$ 280 IF T$='C' OR T$='c' D1$='CAS' 290 ; CUR(2%,20%)D1$' ' 300 D%=VAL(D$) : POKE 64769%,D% 310 Z%=CALL(24678%) : N%=65535% 320 IF PEEK(64789%) GOTO 830 330 Z%=CALL(24678%,192%) 340 FOR I%=0% TO 7% 350 M%(I%)=PEEK(I%+62959%) : NEXT I% 360 FOR I%=0% TO 224% STEP 32% 370 IF M%(I%/32%)<1% GOTO 440 380 Z%=CALL(24678%,512%+I%) 390 FOR J%=62736% TO 62960% STEP 16% 400 POKE P%,J%+4%,SWAP%(J%+4%) 410 IF PEEK(J%)=255% GOTO 440 420 N%=N%+1% : P$(N%)=LEFT$(O$,8%)+'.' 430 P$(N%)=P$(N%)+RIGHT$(O$,9%) 440 NEXT J% : NEXT I% 450 ; 460 ; 'A - Copy rest of library' 470 ; 'X - Exit don''t copy anything' 480 ; 'I - Ignore rest of library' 490 ; 'Y - Copy this file' 500 ; 510 Z%=0% : J%=0% : FOR I%=0% TO N% 520 ; CHR$(13%)'COPY 'P$(I%)' '; 530 IF Z%=0% INPUT F$ : P$='NO' 540 Q%=INSTR(1%,J$,CHR$(ASC(F$)))+1% 550 ON Q% GOTO 520,580,560,780,590,570 560 Z%=1% 570 P$(J%)=P$(I%) : J%=J%+1% : P$='YES' 580 ; CUR(PEEK(65011%)-1%,21%)P$ 585 NEXT I% : ; 590 ; CUR(PEEK(65011%)-1%,0%)TAB(40%); 595 FOR P%=0% TO J%-1% 600 OPEN 'DR'+D$+':'+P$(P%) ASFILE 1% 610 PREPARE D1$+':'+P$(P%) ASFILE 2% 620 V%=1% 630 P$='SECTORS COPIED' : GOSUB 860 640 ONERRORGOTO 790 650 FOR J%=0% TO 15% 660 Z%=CALL(65419%,1%) 670 POKE R%,Z%,SWAP%(Z%) 680 B$(J%)=R$ : NEXT J% 690 ONERRORGOTO 800 700 FOR I%=0% TO J%-1% 710 Z%=CALL(65408%,2%) 720 POKE S%,Z%,SWAP%(Z%) 730 S$=B$(I%) : Z%=CALL(65433%,2%) 740 V%=V%+1% : GOSUB 860 : NEXT I% 750 IF I%=16% GOTO 640 760 CLOSE 1% : CLOSE 2% 770 ; : NEXT P% 780 ; 'READY !' : END 790 IF ERRCODE=38% GOTO 690 800 P$='ERR'+NUM$(ERRCODE) : GOSUB 860 810 CLOSE 1% : CLOSE 2% 820 KILL D1$+':'+P$(P%) : GOTO 770 830 ; CHR$(7%); : IF E%>127% GOTO 850 840 ; 'DISK HARDWARE ERROR'E% : END 850 ; 'NO DISK IN DRIVE' : END 860 F$=' '+NUM$(V%+B%) 870 F$=RIGHT$(F$,LEN(F$)-2%) 880 ; CHR$(13%)P$(P%)' 'F$' 'P$; 890 ; TAB(39%); 900 RETURN