DMA updates

Add hardware probe at initialization and status checks after DMA transfers
This commit is contained in:
b1ackmai1er
2021-07-09 14:57:35 +08:00
parent 1e1ad94b6d
commit 0ebfebe8d1
17 changed files with 165 additions and 39 deletions

View File

@@ -272,7 +272,7 @@ RF_RDSEC:
CALL RF_SETADR ; SEND SECTOR STARTING ADDRESS TO CARD
LD HL,(RF_DSKBUF) ; HL := DISK BUFFER ADDRESS
LD A,(RF_IO) ; GET IO PORT BASE
#IF (DMAENABLE)
#IF (DMAENABLE & (DMAMODE=DMAMODE_ECB))
LD BC,512-1 ; READ 512 BYTES
CALL DMAINIR ; USING DMA
#ELSE
@@ -281,9 +281,8 @@ RF_RDSEC:
LD B,0 ; INIT BYTE COUNTER
INIR ; READ 256 BYTES
INIR ; AND ANOTHER 256 BYTES FOR 512 TOTAL
#ENDIF
XOR A ; SIGNAL SUCCESS
#ENDIF
RET ; AND DONE
;
; WRITE SECTOR
@@ -293,7 +292,7 @@ RF_WRSEC:
LD HL,(RF_DSKBUF) ; HL := DISK BUFFER ADDRESS
LD A,(RF_IO) ; GET IO PORT BASE
OR RF_DAT ; OFFSET TO DAT PORT
#IF (DMAENABLE==1)
#IF (DMAENABLE & (DMAMODE=DMAMODE_ECB))
LD BC,512-1 ; WRITE 512 BYTES
CALL DMAOTIR ; USING DMA
#ELSE
@@ -301,8 +300,8 @@ RF_WRSEC:
LD B,0 ; INIT BYTE COUNTER
OTIR ; WRITE 256 BYTES
OTIR ; AND ANOTHER 256 BYTES FOR 512 TOTAL
#ENDIF
XOR A ; SIGNAL SUCCESS
#ENDIF
RET ; AND DONE
;
;