Listing of file='DUP.BAS;01' on disk='vmedia/catalog_32-sector.ccvf'
100 REM ** DUPLICATE PROGRAM - JAN 80 ** 120 CLEAR 100:T= PEEK (32940)+ 256* PEEK (32941) 130 P= PEEK (32984)+ 256* PEEK (32985)+ 200 140 A= INT ((P+ 200)/ 256):B= (P+ 200)- A* 256 150 C= INT (T/ 256):D= T- 256* C 160 A= A+ 0:B= 0:C= C- 2:D= 255:T= C* 256+ D+ 1:P= A* 256+ 23 170 X= A:GOSUB 570:A$= H$:X= B:GOSUB 570:A$= A$+ H$+ " " 180 M= T- A* 256:X= M/ 256:GOSUB 570:M$= H$ 190 X= 0:GOSUB 570:M$= M$+ H$:E$= M$:I= 0 200 PLOT 6,2,12,3,13,0,14,6,34 210 PRINT " D U P L I C A T I O N P R O G R A M " 220 PLOT 6,3,3,0,4,15 230 PRINT TAB( 13)"SELECT ONE OF THE FOLLOWING OPTIONS:":PRINT 240 PRINT TAB( 15);"1. DUP FROM DRIVE 0: TO DRIVE 1:" 250 PRINT TAB( 15);"2. DUP FROM DRIVE 1: TO DRIVE 0:" 260 PRINT TAB( 15);"3. DUP DISK ON SINGLE DRIVE 0:" 270 PRINT TAB( 15);"4. DUP DISK ON SINGLE DRIVE 1:" 275 PRINT TAB( 15);"5. EXIT PROGRAM":PRINT 280 PRINT TAB( 18):INPUT "ENTER YOUR CHOICE: ";J:PRINT :REM 290 IF J< 1OR J> 5THEN 280 300 IF J= 1THEN S$= "0:":D$= "1:" 310 IF J= 2THEN S$= "1:":D$= "0:" 320 IF J= 3THEN S$= "0:":D$= "0:" 330 IF J= 4THEN S$= "1:":D$= "1:" 335 PA= 0:IF J= 5THEN LOAD "MENU":RUN 340 INPUT " ARE ANY FILES TO BE COPIED NOT IN THE DIRECTORY? ";Q$:REM 350 IF PA> 0AND J< 3THEN 390 360 PRINT :PRINT " INSERT SOURCE DISK INTO DRIVE ";S$;""; 370 INPUT " - HIT RETURN ";ZZ$ 380 IF I= 0THEN GOSUB 500 390 IF I+ INT ((T- P)/ 128)< QTHEN 420 400 D= (Q- I)* 128:A1= INT (D/ 256):B1= D- A1* 256 410 X= A1:GOSUB 570:E$= H$:X= B1:GOSUB 570:E$= E$+ H$ 420 X= I:GOSUB 570 430 PLOT 27,4:PRINT "READ ";S$;H$;" ";A$;E$:PLOT 27,27 440 IF PA> 0AND J< 3THEN 470 450 PRINT " INSERT DEST. DISK INTO DRIVE ";D$;""; 460 INPUT " - HIT RETURN ";ZZ$ 470 PLOT 27,4:PRINT "WRITE ";D$;H$;" ";A$;E$:PLOT 27,27 480 PA= PA+ 1:I= I+ INT ((T- P)/ 128):IF I> = QTHEN 660 490 GOTO 350 500 REM ** FIND END OF DIRECTORY ** 510 IF LEFT$ (Q$,1)= "Y"THEN Q= 400:P= A* 256:RETURN 520 PLOT 27,4:PRINT "READ ";S$;H$;" ";A$;"1000":PLOT 27,27 530 Q= PEEK (P+ 11)+ 256* PEEK (P+ 12) 540 IF PEEK (P)= 1THEN P= A* 256:RETURN 550 P= P+ 21:IF INT (P/ 128)= P/ 128THEN P= P+ 2 560 GOTO 530 570 REM ** X=VALUE TO BE HEXXED ** 580 H$= "":X1= INT (X/ 16):X2= X- 16* X1 590 IF X2< 10THEN X2= X2+ 48:GOTO 610 600 X2= X2+ 55 610 IF X1< 10THEN X1= X1+ 48:GOTO 630 620 X1= X1+ 55 630 H$= H$+ CHR$ (X1)+ CHR$ (X2) 640 IF X1< 71THEN RETURN 650 X1= X1- 71:H$= "1":GOTO 610 660 REM ** DUP IS FINISHED ** 670 PRINT :IF PA> 1THEN 710 680 PRINT TAB( 10)"DUPLICATION WAS ACCOMPLISHED IN ONE PASS." 690 PRINT TAB( 10):INPUT "DO YOU DESIRE ANOTHER COPY? ";ZZ$:REM 700 IF LEFT$ (ZZ$,1)= "Y"THEN PA= 0:I= 0:PRINT :GOTO 440 710 GOTO 120