|
|
|
@ -359,14 +359,28 @@ MD_SECM: |
|
|
|
LD DE,(MD_DSKBUF) |
|
|
|
; |
|
|
|
#IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) |
|
|
|
#IF (DMA_FBACK) |
|
|
|
LD A,(DMA_FAIL_FLAG) |
|
|
|
OR A |
|
|
|
JR NZ,MD_NODMA |
|
|
|
#ENDIF |
|
|
|
LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE |
|
|
|
CALL DMALDIR ; 4K SECTOR TO THE DISK BUFFER |
|
|
|
#ELSE |
|
|
|
JP DMALDIR ; 4K SECTOR TO THE DISK BUFFER |
|
|
|
#ENDIF |
|
|
|
MD_NODMA: |
|
|
|
#IF (!(DMAENABLE & (DMAMODE=DMAMODE_ECB))) |
|
|
|
LD BC,512 ; COPY ONE 512B SECTOR FROM THE |
|
|
|
LDIR ; 4K SECTOR TO THE DISK BUFFER |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
#ELSE |
|
|
|
#IF (DMA_FBACK) |
|
|
|
LD BC,512 ; COPY ONE 512B SECTOR FROM THE |
|
|
|
LDIR ; 4K SECTOR TO THE DISK BUFFER |
|
|
|
XOR A |
|
|
|
#ENDIF |
|
|
|
RET |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; SETUP DE:HL AS THE SECTOR ADDRESS TO READ OR WRITE |
|
|
|
; |
|
|
|
@ -479,14 +493,27 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER |
|
|
|
; |
|
|
|
LD HL,(MD_DSKBUF) |
|
|
|
#IF (DMAENABLE & (DMAMODE=DMAMODE_ECB)) |
|
|
|
#IF (DMA_FBACK) |
|
|
|
LD A,(DMA_FAIL_FLAG) |
|
|
|
OR A |
|
|
|
JR NZ,MD_NODMA1 |
|
|
|
#ENDIF |
|
|
|
LD BC,512-1 ; COPY ONE 512B SECTOR FROM THE |
|
|
|
CALL DMALDIR ; THE DISK BUFFER TO 4K SECTOR |
|
|
|
RET NZ ; EXIT IF DMA COPY ERROR |
|
|
|
#ELSE |
|
|
|
JR MD_NODMAERR |
|
|
|
#ENDIF |
|
|
|
MD_NODMA1: |
|
|
|
#IF (!(DMAENABLE & (DMAMODE=DMAMODE_ECB))) |
|
|
|
LD BC,512 ; COPY ONE 512B SECTOR FROM THE |
|
|
|
LDIR ; THE DISK BUFFER TO 4K SECTOR |
|
|
|
LDIR |
|
|
|
#ELSE |
|
|
|
#IF (DMA_FBACK) ; THE DISK BUFFER TO 4K SECTOR |
|
|
|
LD BC,512 |
|
|
|
LDIR |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
#ENDIF |
|
|
|
MD_NODMAERR: |
|
|
|
LD IX,MD_F4KBUF ; SET SOURCE ADDRESS |
|
|
|
LD HL,MD_FWRIT_R ; PUT ROUTINE TO CALL |
|
|
|
CALL MD_FNCALL ; EXECUTE: WRITE 4K SECTOR |
|
|
|
|