SOURCE de RAWC.BAS

 10  GOSUB 400: REM  INSTALLE PROG ASM
 20  PRINT "Source :":N = 0: GOSUB 600
 30  GOSUB 700
 40  PRINT "Modifier VTOC ou Copier ? (M/C) ";:A$ = "MC": GOSUB 720
 50  ON X GOSUB 100,200
 60  PRINT : GOTO 20
 100  INPUT "  -> Numero de volume  :";X: IF X <  > 0 THEN  POKE IO + 6,X
 110  INPUT "  -> Secteurs par piste:";Y: IF Y <  > 0 THEN  POKE IO + 53,Y
 120  INPUT "  -> Nombre de pistes  :";X: IF X <  > 0 THEN  POKE IO + 52,X
 130  IF X = 0 OR X <  = T(N) THEN 170
 140  IF Y = 0 THEN Y = SE(N)
 150 Z = 0: FOR I = 1 TO Y:Z = Z + Z + 1: NEXT I:Y =  INT (Z / 256):Z = Z - 256 * Y
 160 A = IO + 56 + 4 * T(N): FOR I = T(N) TO X - 1: POKE A,Y: POKE A + 1,Z:A = A + 4: NEXT I
 170  PRINT " Enregistrer nouveau VTOC ? (O/N) ";:A$ = "ON": GOSUB 720
 180  IF X = 2 THEN  RETURN 
 190  POKE 780,2: CALL RWTS: RETURN 
 200  PRINT "Destination:":N = 1: GOSUB 600
 210  INPUT "  -> Nombre de pistes a copier   :";A: IF A = 0 THEN  RETURN 
 220  INPUT "  -> Nombre de secteurs a copier :";Y: IF Y = 0 THEN  RETURN 
 230  PRINT "  -> Lancer la copie ? (O/N) ";:A$ = "ON": GOSUB 720
 240  IF X = 2 THEN  RETURN 
 250  FOR PI = 0 TO A - 1: POKE 772,PI: PRINT PI".";
 260  FOR SE = 0 TO Y - 1: POKE 773,SE:N = 0: GOSUB 700:N = 1: GOSUB 700
 270  NEXT SE: NEXT PI
 280  RETURN 
 400 IO = 8192
 410 I = 768
 420  READ A: IF A =  - 1 THEN 440
 430  POKE I,A:I = I + 1: GOTO 420
 440 X =  INT (IO / 256): POKE 777,X
 450 X = IO - 256 * X: POKE 776,X
 460 RWTS = 789: RETURN 
 500  DATA  1,96,1,0,17,0,17,3,99,99
 510  DATA   0,0,1,0,0,96,1
 520  DATA  0,1,239,216
 530  DATA  169,3,160,0,32,217,3,96,-1
 600  PRINT "  Slot (6/7)  ";:A$ = "67": GOSUB 720:S(N) = (X + 5) * 16
 610  PRINT "  Unite (1/2) ";:A$ = "12": GOSUB 720:U(N) = X
 620  INPUT "  Volume      ";V(N)
 630 O(N) = 1: POKE 772,17: POKE 773,0: GOSUB 700
 640 T(N) =  PEEK (IO + 52):SE(N) =  PEEK (IO + 53)
 645  PRINT "  -> Volume numero "; PEEK (IO + 6)
 650 O(0) = 1:O(1) = 2: PRINT "  -> "T(N)" pistes de "SE(N)" secteurs."
 660 X = T(N) * SE(N): PRINT "  -> "X" secteurs, "X / 4"Ko."
 670  RETURN 
 700  POKE 769,S(N): POKE 770,U(N): POKE 771,V(N): POKE 780,O(N)
 710  CALL RWTS: RETURN 
 720 X = 0:A$ =  CHR$ (27) + A$
 730  GET R$: FOR I = 1 TO  LEN (A$): IF R$ =  MID$ (A$,I,1) THEN X = I
 740  NEXT I: IF X = 0 THEN 730
 750  IF X = 1 THEN  END : REM  ESCAPE
 760 X = X - 1: PRINT R$: RETURN 
 1000  FOR I = IO TO IO + 255
 1010  PRINT  PEEK (I)" ";
 1020  NEXT I
 1030  RETURN 
