|
|
|
@ -1742,26 +1742,32 @@ SD_SELECT: |
|
|
|
; CALL SD_WAITTX |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
#IF (SDMODE == SDMODE_SC) |
|
|
|
LD A,(IY+SD_DEV) ; GET CURRENT DEVICE |
|
|
|
OR A ; SET FLAGS |
|
|
|
LD A,(SD_OPRVAL) ; GET CURRENT OPRVAL BACK |
|
|
|
JR NZ,SD_SELECT1 ; IF NOT ZERO, DO SECONDARY |
|
|
|
; ASSERT PRIMARY CS, DEASSERT SECONDARY (IF ANY) |
|
|
|
OR SD_CS0 |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
AND ~SD_CS1 |
|
|
|
#ENDIF |
|
|
|
#ENDIF |
|
|
|
JR SD_SELECT2 |
|
|
|
SD_SELECT1: |
|
|
|
; DEASSERT PRIMARY CS, ASSERT SECONDARY (IF ANY) |
|
|
|
AND ~SD_CS0 |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
OR SD_CS1 |
|
|
|
#ENDIF |
|
|
|
#ELSE |
|
|
|
LD A,(SD_OPRVAL) ; GET CURRENT OPRVAL BACK |
|
|
|
OR SD_CS0 |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
SD_SELECT2: |
|
|
|
; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS |
|
|
|
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC)) |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
#IF ((SDMODE == SDMODE_SC) & (SD_DEVCNT > 1)) |
|
|
|
XOR SD_CS0 | SD_CS1 |
|
|
|
#ELSE |
|
|
|
XOR SD_CS0 |
|
|
|
@ -1794,14 +1800,14 @@ SD_DESELECT: |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
LD A,(SD_OPRVAL) |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
#IF ((SDMODE == SDMODE_SC) & (SD_DEVCNT > 1)) |
|
|
|
AND ~(SD_CS0 | SD_CS1) |
|
|
|
#ELSE |
|
|
|
AND ~SD_CS0 |
|
|
|
#ENDIF |
|
|
|
; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS |
|
|
|
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC)) |
|
|
|
#IF (SD_DEVCNT > 1) |
|
|
|
#IF ((SDMODE == SDMODE_SC) & (SD_DEVCNT > 1)) |
|
|
|
XOR SD_CS0 | SD_CS1 |
|
|
|
#ELSE |
|
|
|
XOR SD_CS0 |
|
|
|
|