 .PAGE 'DUPLICATE'
; DUPLICATE DISK
 .SKIP
DUPLCT
 JSR PRSEQ
 LDA FILDAT+1
 STA DRVNUM
 LDA #LED0+LED1
 ORA PBD2
 STA PBD2
 JSR INITDR ;INIT SRC
;
 JSR SETBMP
 LDY #2
 LDA (BMPNT)Y
 CMP VERNUM
 BEQ DUP1
 JMP VNERR
DUP1
 JSR TOGDRV
 ASL A
 TAY
 EOR #2
 TAX
 LDA DSKID,X
 STA DSKID,Y
 LDA DSKID+1,X
 STA DSKID+1,Y
;
 JSR SETBMP
 LDY #2
 LDA VERNUM
 STA (BMPNT)Y
;
 JSR CLDCHN
 LDA #1
 STA TRACK
 JSR FORMAT ;FORMAT DST DRIVE 
 .SKIP
; COPY BLOCKS FROM ONE DRIVE TO OTHER
CPYD1 LDA TRACK
 JSR MAXSEC
 STA SECTOR
 DEC SECTOR
 JSR CPYTRK ;COPY ONE TRACK
 INC TRACK
 LDA TRACK
 CMP #MAXTRK
 BNE CPYD1
 JSR INITDR
 JMP ENDCMD
 .SKIP
; COPY ONE TRACK
CPYTRK JSR SETRH
 JSR READS ;READ 10 SECTORS
 JSR WRITES ;WRITE 10 SECTORS 
 LDA SECTOR
 BPL CPYTRK
 RTS
 .SKIP
;
;
SETRH LDA DRVNUM
 EOR #1
 STA CMD
SETR5 LDA #10
 STA TEMP+2
SETR3 LDA TEMP+2
 JSR SETH
 DEC SECTOR
 BMI SETR6
 DEC TEMP+2
 BPL SETR3
 INC TEMP+2
SETR6 RTS
 .SKIP
; READ TEMP+2 BLOCKS IN
READS LDA CMD
 ORA #READ
 STA CMD
 LDX TEMP+2
READS1
 LDA CMD
 JSR SETJOB
;
 CPX #10
 BEQ READS8
 INX
 BNE READS1
READS8 LDX TEMP+2
READS3
 JSR WATJOB
READ10 CPX #10
 BEQ READ15
 INX
 BNE READS3
READ15 RTS
 .SKIP
; WRITE TEMP+2 BUFFERS OUT
WRITES LDA #WRITE
 ORA DRVNUM
 STA CMD
 LDX TEMP+2
WRIT0
 JSR SETJOB
WRIT30 CPX #10
 BEQ WRIT5
 INX
 BNE WRIT0
WRIT5
 LDX TEMP+2
WRIT10
 JSR WATJOB
WRIT15 CPX #10
 BEQ WRIT20
 INX
 BNE WRIT10
WRIT20 RTS
 .SKIP
; TRANSFER FORMAT CODE TO BUFFER 0
;  & START CONTROLLER FORMATTING
FORMAT LDY #0
FMT102 LDA CODE,Y
 STA BUFS,Y
 LDA CODE+256,Y
 STA BUFS+256,Y
 LDA CODE+512,Y
 STA BUFS+512,Y
 INY
 BNE FMT102
 LDA #0
 JSR SETH
 LDA DRVNUM
 ORA #EXEC
 STA JOBS
FMT105 LDA JOBS
 BMI FMT105
 CMP #1
 BEQ FMT110
 LDA #3
 LDX #0
 JMP ERROR
FMT110 RTS
;
;
.END
