|
|
|
@ -1335,7 +1335,19 @@ SD_EXECCMD1: |
|
|
|
; THE FIRST FILL BYTE IS DISCARDED! THIS HACK IS REQUIRED BY |
|
|
|
; STUPID SD CARD ADAPTERS THAT NOW OMIT THE MISO PULL-UP. SEE |
|
|
|
; COMMENTS AT TOP OF THIS FILE. |
|
|
|
CALL SD_GET ; GET A BYTE AND DISCARD IT |
|
|
|
; |
|
|
|
;CALL SD_GET ; GET A BYTE AND DISCARD IT |
|
|
|
; |
|
|
|
; THE Z180 -K REVISION CSIO DOES NOT KEEP MOSI HIGH WHEN |
|
|
|
; RECEIVING VIA MISO. INSTEAD MOSI IS LEFT AT WHICHEVER LOGIC |
|
|
|
; LEVEL IT WAS LAST SET TO. THIS CAUSES SOME SD CARDS A PROBLEM |
|
|
|
; BECAUSE THEY EXPECT MOSI TO BE CONSISTENTLY HIGH WHEN IDLE. |
|
|
|
; BY USING A PUT INSTEAD OF A GET, WE CAN FORCE MOSI TO BE |
|
|
|
; LEFT AT THE PROPER LOGIC LEVEL. THE SD CARD DOES NOT CARE |
|
|
|
; IF A PUT OR A GET IS USED TO IGNORE THE BYTE BECAUSE THE |
|
|
|
; CLOCK RUNS IN EITHER CASE. |
|
|
|
LD A,$FF ; KEEP MOSI HI |
|
|
|
CALL SD_PUT ; SEND 8 CLOCKS |
|
|
|
#ENDIF |
|
|
|
; |
|
|
|
; GET RESULT |
|
|
|
@ -1661,6 +1673,11 @@ SD_SELECT2: |
|
|
|
#ENDIF |
|
|
|
LD (SD_OPRVAL),A |
|
|
|
OUT (SD_OPRREG),A |
|
|
|
;; |
|
|
|
;#IF ((SDMODE == SDMODE_CSIO) | (SDMODE == SDMODE_MK4) | (SDMODE == SDMODE_SC)) |
|
|
|
; CALL DLY32 ; DELAY FOR FINAL BIT |
|
|
|
;#ENDIF |
|
|
|
; |
|
|
|
RET |
|
|
|
; |
|
|
|
; DESELECT CARD |
|
|
|
|