mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Update sd.asm
MT011 updates
This commit is contained in:
@@ -212,9 +212,9 @@ SD_OPRDEF .EQU %00100000 ; QUIESCENT STATE
|
||||
SD_CD0 .EQU %00000001 ; IN/OUT:SD_OPREG:0 = CD0, PMOD pull CD0 low
|
||||
SD_CD1 .EQU %00000010 ; IN:SD_OPREG:1 = CD1, IN=0 Card detect switch
|
||||
SD_CD2 .EQU %00000100 ; IN:SD_OPREG:2 = CD2, IN=0 Card detect switch
|
||||
SD_CS0 .EQU %00010000 ; IN/OUT:SD_OPREG:3 = CS0, PMOD SPI CS
|
||||
SD_CS1 .EQU %00010000 ; IN/OUT:SD_OPREG:4 = CS1, SDCARD1 CS, IN=1 Card present
|
||||
SD_CS2 .EQU %00010000 ; IN/OUT:SD_OPREG:5 = CS2, SDCARD2 CS, IN=1 Card present
|
||||
ENETCS0 .EQU %00001000 ; IN/OUT:SD_OPREG:3 = CS0, PMOD SPI CS
|
||||
SDCS1 .EQU %00010000 ; IN/OUT:SD_OPREG:4 = CS1, SDCARD1 CS, IN=1 Card present
|
||||
PARK .EQU %00100000 ; IN/OUT:SD_OPREG:5 = CS2, SDCARD2 CS, IN=1 Card present
|
||||
SD_WRTR .EQU %01011100 ; Write data and transfer
|
||||
SD_RDTR .EQU %01011101 ; Read data and transfer
|
||||
SD_RDNTR .EQU %01011100 ; Read data and NO transfer
|
||||
@@ -1337,15 +1337,11 @@ SD_EXECCMD1:
|
||||
#IF (SDMODE == SDMODE_MT)
|
||||
; 256 loops might not be long enough timeout
|
||||
; when only IN is required to read data
|
||||
; LD DE,$7FFF ; INIT TIMEOUT LOOP COUNTER
|
||||
LD E,0 ; INIT TIMEOUT LOOP COUNTER
|
||||
SD_EXECCMD2:
|
||||
IN A,(SD_RDTR) ; GET A BYTE FROM THE CARD
|
||||
OR A ; SET FLAGS
|
||||
JP P,SD_EXECCMD3 ; IF HIGH BIT IS 0, WE HAVE RESULT
|
||||
; DEC DE
|
||||
; BIT 7,D
|
||||
; JR Z,SD_EXECCMD2 ; KEEP TRYING UNTIL TIMEOUT
|
||||
DEC E ; OTHERWISE DECREMENT LOOP COUNTER
|
||||
JR NZ,SD_EXECCMD2 ; AND LOOP UNTIL TIMEOUT
|
||||
#ELSE
|
||||
@@ -1670,18 +1666,7 @@ SD_SELECT2:
|
||||
#ENDIF
|
||||
#ELSE
|
||||
#IF (SDMODE == SDMODE_MT)
|
||||
IN A,(SD_OPRREG)
|
||||
BIT 0,(IY+SD_DEV) ; DEVICE 0 OR 1
|
||||
JR NZ,SD_SELECT1
|
||||
AND SD_CS1 ; DEVICE 0
|
||||
JR SD_SELECT2
|
||||
SD_SELECT1:
|
||||
AND SD_CS2 ; DEVICE 1
|
||||
SD_SELECT2:
|
||||
JR NZ,SD_SELECT3 ; NZ if CS input high
|
||||
POP DE ; return address of call to SD_SELECT
|
||||
POP DE ; return address of call to SD_WAITRDY
|
||||
JR SD_NOMEDIA
|
||||
LD A,SDCS1
|
||||
SD_SELECT3:
|
||||
LD D,A
|
||||
LD A,(SD_OPRVAL)
|
||||
@@ -1707,7 +1692,7 @@ SD_DESELECT:
|
||||
#ENDIF
|
||||
#ELSE
|
||||
#IF (SDMODE == SDMODE_MT)
|
||||
AND ~(SD_CS1 + SD_CS2) ; RESET SD_CS1 and SD_CS2 (CHIP SELECT)
|
||||
LD A,PARK ; WHY IS PARK (CS2) BEING ASSERTED HERE???
|
||||
#ELSE
|
||||
AND ~SD_CS ; RESET SD_CS (CHIP SELECT)
|
||||
#ENDIF
|
||||
|
||||
Reference in New Issue
Block a user