10 REM ++++++++++++++++++++++++++++++++ 11 REM ! Program .... CASDISK4 12 REM ! Utg}va 4.0 1985-12-07 13 REM ! av Magnus Jacobsson 14 REM ! {ndrat av Kalle Lindstr|m 15 REM ! {ndrat av Benny L|fgren 16 REM ! Minne 16 Kbytes f|r flexskiva 17 REM ! Ins{nt av 837 18 REM ++++++++++++++++++++++++++++++++ 19 REM SAVE CASDISK,3.0,811106,MJ 20 REM 21 DIM C$=0%,B$=0%,Q0$=253%,S2$=253% 22 DIM D$=4%,E$=12%,E3$=7%,S1$=7% 23 E3$=STRING$(6%,0%)+CHR$(3%) 24 S1$=CHR$(253%,192%,253%,192%) 25 S1$=S1$+CHR$(253%,192%,52%) 26 R%=PEEK(65065%)+SWAP%(PEEK(65066%)) 27 POKE R%+4%,18%,0%,0%,0%,18%,0% 28 P%=R%+6% 29 R%=PEEK(R%+2%)+SWAP%(PEEK(R%+3%)) 30 POKE R%+4%,253%,0%,0%,0%,253%,0% 31 R%=R%+6% 32 A%=PEEK(65056%)+SWAP%(PEEK(65057%)) 33 I%=A% : ONERRORGOTO 38 34 READ D% : POKE I%,D% 35 I%=I%+1% : GOTO 34 36 DATA 123,205,1,9,205,153,8,221 37 DATA 110,8,221,102,9,201, 38 POKE 65056%,I%,SWAP%(I%) 39 ; CHR$(12%)TAB(3%); 40 ; '< ABC80-CASDISK TILL DRIVE '; 41 GET D$ : IF D$<>'1' AND D$<>'0' 41 42 ; D$' >' : D$='DR'+D$+':' 43 ; 'STOPP VID FEL ?'; : GET X$ 44 IF X$='J' OR X$='j' F%=1% 45 ; CHR$(13%)TAB(3%)STRING$(30%,61%); 46 IF F% ; CUR(1%,14%)'FELSTOPP'; 47 REM  HUVUD-LOOP  48 PREPARE D$+'TEMP.][\' ASFILE 2% 49 F$=' ' : N%=0% 50 ONERRORGOTO 50 : IF N%=3% GOTO 113 51 IF (INP(56%) AND 95%)=67% GOTO 113 52 N%=N%+1% 53 OPEN 'CAS:' ASFILE 1% 54 B7%=PEEK(64766%)+256%*PEEK(64767%) 55 ONERRORGOTO 102 : B%=65535% 56 X%=PEEK(65011%)*2%+884% 57 X%=PEEK(X%)+SWAP%(PEEK(X%+1%)) 58 POKE P%,X%,SWAP%(X%) 59 E$=RIGHT$(C$,7%) 60 REM  BLOCK-LOOP  61 Z%=CALL(A%,1%) : B%=B%+1% 62 IF B7%=0% GOTO 65 63 POKE R%,Z%,SWAP%(Z%) : S2$=B$ 64 IF B7% GOTO 71 65 IF B%=0% T%=PEEK(Z%) ELSE 69 66 IF (T% OR 1%)=131% T%=1% : GOTO 69 67 IF T%=0% T%=3% : GOTO 69 68 IF T%<129% THEN T%=2% ELSE 99 69 POKE R%,Z%,SWAP%(Z%) : S2$=B$ 70 IF LEFT$(B$,7%)=S1$ 77 71 Z%=CALL(28666%,2%) 72 Q0$=B$ : Z%=CALL(28670%,B%) 73 P$='SEKTORER KOPIERADE ' 74 GOSUB 108 : IF B7% IF B%<(B7%-2%) GOTO 61 ELSE 77 75 ON T% GOSUB 84,89,92 76 IF L%=0% 61 77 REM  SLUT P] FIL  78 B$=S2$ : CLOSE 1% : CLOSE 2% 79 ONERRORGOTO 81 : KILL D$+E$ 80 ONERRORGOTO 0 81 NAME D$+'TEMP.][\' AS D$+E$ 82 GOTO 48 83 REM  BAC-FIL  84 IF B%=0% I%=2% ELSE I%=1% 85 L%=ASC(MID$(B$,I%,1%)) 86 IF L%<2% RETURN 87 I%=I%+L% : GOTO 85 88 REM  TEXTFIL  89 IF LEFT$(B$,7%)=E3$ L%=1% : RETURN 90 L%=0% : RETURN 91 REM  ABS-FIL  92 I%=1% 93 L%=ASC(MID$(B$,I%,1%)) 94 IF L%=255% L%=0% : RETURN 95 L%=ASC(MID$(B$,I%+1%,1%)) 96 IF L%=0% L%=1% : RETURN 97 I%=I%+L%+8% : GOTO 93 98 REM  FEL FORMAT  99 P$='FEL FORMAT' : GOSUB 108 100 GOTO 49 101 REM  ERROR  102 P$='ERR'+NUM$(ERRCODE) : GOSUB 108 103 CLOSE 1% : CLOSE 2% 104 KILL D$+'TEMP.][\' 105 IF F% GET X$ 106 GOTO 48 107 REM  SKRIV FILNAMN  108 F$=' '+NUM$(B%+2%) 109 F$=RIGHT$(F$,LEN(F$)-2%) 110 ; CHR$(13%)E$' 'F$' 'P$TAB(39%); 111 RETURN 112 REM  AVSLUTNING  113 CLOSE 1% : CLOSE 2% 114 KILL D$+'TEMP.][\' 115 POKE 65013%,0% : END