;
; COPY DISK TO DISK ROUTINES
;
CPYDTD LDA FILTBL+1 ;SAVE IN TEMP
 STA TEMP
 LDY #40 ;40 CHAR BUFFER
 LDX CMDSIZ ;PREP TO MOVE
 STY CMDSIZ ;END OF FILENAME2
MOVLP1 DEY
 DEX
 LDA CMDBUF,X ;MOV FN LIFO
 STA CMDBUF,Y
 CPX TEMP ;ACTUAL F2 VAL
 BNE MOVLP1
 STY FILTBL+1 ;POINTER TO F2
MOVLP2 JSR OPTSCH
 JSR PUPS1 ;SETUP FIRST PASS
 JSR FFST ;FIRST MATCH
 BPL FIXIT ;ENTRY FOUND?
 BMI ENDIT ;NO
;
EXLP0
 PLA ;RESTORE TRK <HD>
 STA DIRTRK ;<HD>
 PLA
 STA DIRSEC
 PLA
 STA FILTBL+1
 PLA
 STA LSTBUF
 PLA
 STA FILCNT
 PLA
 STA INDEX
 PLA
 STA FOUND
 PLA
 STA DELIND
 PLA
 STA DRVFLG
;
EXLP1 JSR PUPS1 ;SET UP VARS
 JSR FFRE ;NEXT MATCH
 BPL FIXIT ;FOUND ONE?
ENDIT JMP ENDCMD ;NO! SO BYE
;
FIXIT LDA DRVFLG ;PUSH NEEDED VARS
 PHA
 LDA DELIND
 PHA
 LDA FOUND
 PHA
 LDA INDEX
 PHA
 LDA FILCNT
 PHA
 LDA LSTBUF
 PHA
 LDA FILTBL+1
 PHA
 LDA DIRSEC
 PHA
 LDA DIRTRK ;SAVE TRACK <HD>
 PHA ;<HD>
;
EXLP2 JSR TRFNME ;TRANSFER NAME
 LDA #1 ;FAKE OUT LOOKUP
 STA F1CNT
 STA F2CNT
 JSR LOOKUP
 LDA #1
 STA F1CNT
 LDA #2 ;REAL
 STA F2CNT
 JSR CY ;COPY IT
 JMP EXLP0 ;NEXT ONE FOLKS
;
; TRANSFER NAME (DIRBUF) TO CMDBUF
;
TRFNME LDY #3 ;BOTH INDEXES
 STY FILTBL ;BEGINING OF FILENAME1
TRF0 LDA (DIRBUF)Y ;MOVE IT
 STA CMDBUF,Y
 INY
 CPY #19 ;ALL 16 CHARS PASSED?
 BNE TRF0
 RTS
;
; SET UP SUBROUTINE
;
PUPS1 LDA #0
 STA DRVCNT
 LDA #255 ;<HD>
 STA FILSEC ;<HD>
 STA FILSEC+1 ;<HD>
 LDA FILDRV+1 ;GET DRIVE NUMBER
 AND #1 ;ONLY
 STA DRVNUM
 ORA #1
 STA DELSEC ;NONZERO
 LDA FILTBL+1 ;FN1=FN2
 STA FILTBL
 RTS
;
.END
