1 REM Ins{nd av Sigvard Nilsson <3018> 1987-04-16 18.37.03 (SEND) 10 ! DISKCAS.BAS version 3 12 REM Ins{nd av John Stagg <5741> 1985-07-07 16.08.23 15 ! Fil/diskkopiering n{r man bara har tillg}ng till en enda drive 16 ! Programmet {ndrat till DISKCAS.800 av <3018> Sigvard Nilsson 17 ! den 27 mars 1987. Programmet {r f|r UFD-DOS och DRIVE 832/834 18 ! PROVK\RT P] ABC-800 och 802 19 ! Sm{rre {ndringar inf|rt 1987-04-15 20 FLOAT : EXTEND 25 Bm%=6% : ! Bimappsektor 30 DIM Lib$(256%)=12%,A%(15%),Sektor%(256%) 35 DIM Block$=253 40 DEF FNLib% 50 Antal%=0% : L{s%=24678% : Disksel%=64769% : Diskerror%=64789% : Dosbuf0%=62720% 60 POKE Disksel%,PEEK(Disksel%) AND 254% 70 Z%=CALL(L{s%,Bm%) 80 IF PEEK(Diskerror%) AND 128% THEN 270 90 FOR I%=0% TO 15% 100 A%(I%)=PEEK(Dosbuf0%+239%+I%) 110 NEXT I% 120 FOR I%=0% TO 15% 130 IF A%(I%)=0% THEN 250 140 Z%=CALL(L{s%,16%+I%) 150 FOR J%=Dosbuf0%-16%*(I%=0%) TO Dosbuf0%+240% STEP 16% 160 IF PEEK(J%)=0% OR PEEK(J%)=255% THEN 240 170 F$='' 180 FOR K%=4% TO 14% 190 IF K%=12% THEN F$=F$+'.' 200 F$=F$+CHR$(PEEK(J%+K%)) 210 NEXT K% 220 F$=FNBlank$(F$) : IF F$='SYSDIR.SYS' THEN GOTO 240 230 Lib$(Antal%)=F$ : Antal%=Antal%+1% 240 NEXT J% 250 NEXT I% 260 Antal%=Antal%-1% 270 RETURN 0% 280 FNEND 290 DEF FNBlank$(T$) LOCAL T1$=12 300 T1$=T$ : Punkt%=INSTR(1%,T$,'.') : Blank%=INSTR(1%,T$,' ') 310 IF Blank%<>0% THEN IF Blank%0% THEN T1$=LEFT$(T$,Blank%-1%) 340 RETURN T1$ 350 FNEND 360 DEF FNSvar% 370 INPUT T$ : RETURN (T$='J' OR T$='j') 380 FNEND 390 DEF FNCas%(N%) 400 IF Lib$(N%)='' THEN RETURN 0% 410 ON ERROR GOTO 490 420 OPEN Lib$(N%) AS FILE 1% 430 Storlek=PEEK2(64778)+1 440 OUT 67,5 : OUT 67,128 450 PREPARE 'CAS:'+Lib$(N%) AS FILE 2% 460 GET #1%,Block$ COUNT 253% : PUT #2%,Block$ 470 GOTO 460 480 OUT 67%,5% : OUT 67%,0% 490 IF ERRCODE=34% OR ERRCODE=38% OR ERRCODE=37% THEN RESUME 510 500 ; ERRCODE ' Vid Fil ' Lib$(N%) : Fel%=-1% : RESUME 510 510 CLOSE : RETURN 0% 520 FNEND 530 ON ERROR GOTO 540 540 IF ERRCODE=34% OR ERRCODE=38% OR ERRCODE=37% THEN 550 ELSE ; 'Fel nr.' ERRCODE : Fel%=-1% 550 CLOSE 560 DEF FNEnd% 570 ; 580 END 590 FNEND 600 ; CHR$(12%) '** DISKCAS - kopiering till kassettbandspelaren **' : ; 610 ; '1. Kopiera hela skivan' : ; '2. Kopiera delar av skivan' : ; : ; 'V{lj 1/2 '; 620 INPUT LINE T$ : T$=LEFT$(T$,1%) : IF T$='1' THEN Hela%=-1% ELSE IF T$<>'2' THEN Z%=FNEnd% 630 ; : Z%=FNLib% : IF Hela% THEN GOTO 690 640 ; : ; 'Ange J f|r kopiering, return f|r ingen kopiering' : ; 650 FOR Fil%=Start% TO Antal% 660 ; 'Kopiera fil ';Lib$(Fil%); 670 IF NOT FNSvar% THEN Lib$(Fil%)='' 680 NEXT Fil% : ; 690 ; '(Avbryt med "S")' 700 FOR Fil%=Start% TO Antal% 710 Z%=FNCas%(Fil%) 720 IF Fel% OR Lib$(Fil%)='' THEN Fel%=0% : GOTO 760 730 ; Lib$(Fil%);' kopierat till CAS!' 740 ; Storlek 750 IF SYS(5%) THEN GET T$ : IF T$='s' OR T$='S' THEN Z%=FNEnd% 760 ! 770 NEXT Fil% 780 ; CHR$(7%) : ; 'KLART !' 790 END 800 Copybot%=Start% : ; : ; '(Avbryt med "S")' 810 IF Fel% OR Lib$(Fil%)='' THEN Fel%=0% : GOTO 830 820 IF SYS(5%) THEN GET T$ : IF T$='s' OR T$='S' THEN Z%=FNEnd% 830 END