mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:13:13 -06:00
Merge branch 'dev' of https://github.com/wwarthen/RomWBW into dev
This commit is contained in:
@@ -26,6 +26,8 @@ DMA_RESET .equ $c3
|
||||
;DMA_ENABLE_AFTER_RETI .equ $b7
|
||||
;DMA_REINIT_STATUS_BYTE .equ $8b
|
||||
;
|
||||
DMA_FBACK .equ TRUE
|
||||
;
|
||||
;==================================================================================================
|
||||
; DMA INITIALIZATION CODE
|
||||
;==================================================================================================
|
||||
@@ -67,9 +69,18 @@ DMA_NOTFOUND:
|
||||
push af
|
||||
call PRTSTRD
|
||||
.db " NOT PRESENT$"
|
||||
|
||||
#IF (DMA_FBACK)
|
||||
call PRTSTRD
|
||||
.db ". USING SOFTWARE$"
|
||||
LD A,ERR_NOHW
|
||||
LD (DMA_FAIL_FLAG),A
|
||||
#ENDIF
|
||||
pop af
|
||||
jr DMA_EXIT
|
||||
|
||||
;
|
||||
DMA_FAIL_FLAG:
|
||||
.db 0
|
||||
;
|
||||
;==================================================================================================
|
||||
; DMA PROBE - WRITE TO ADDRESS REGISTER AND READ BACK
|
||||
|
||||
@@ -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
|
||||
#ENDIF
|
||||
RET
|
||||
#ELSE
|
||||
#IF (DMA_FBACK)
|
||||
LD BC,512 ; COPY ONE 512B SECTOR FROM THE
|
||||
LDIR ; 4K SECTOR TO THE DISK BUFFER
|
||||
XOR A
|
||||
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
|
||||
LD BC,512 ; COPY ONE 512B SECTOR FROM THE
|
||||
LDIR ; THE DISK BUFFER TO 4K SECTOR
|
||||
JR MD_NODMAERR
|
||||
#ENDIF
|
||||
;
|
||||
MD_NODMA1:
|
||||
#IF (!(DMAENABLE & (DMAMODE=DMAMODE_ECB)))
|
||||
LD BC,512 ; COPY ONE 512B SECTOR FROM THE
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user