@ -1005,10 +1005,6 @@ SD_WRITE:
SD_IO:
LD ( SD_CMDVAL ), A ; SAVE THE SD CARD COMMAND
LD ( SD_DSKBUF ), HL ; SAVE DISK BUFFER ADDRESS
LD A , E ; GET BLOCK COUNT REQUESTED
LD ( SD_BLKCNT ), A ; ... AND SAVE IT
OR A ; SET FLAGS
RET Z ; ZERO SECTOR I/O, RETURN W/ E=0 & A=0
;
; SET CSIO FOR HIGH SPEED OPERATION
CALL SD_SPD_FAST
@ -1028,18 +1024,11 @@ SD_IO:
CP SD_CMD_READ_SNGL_BLK ; IS THIS A READ?
CALL NZ , SD_CHKWP ; CHECK FOR WRITE PROTECT IF NOT A READ
JP NZ , SD_WRTPROT ; HANDLE WRITE PROTECT ERR
LD A ,( SD_BLKCNT ) ; BLOCK COUNT TO A
LD E , A ; ... AND TO E IN CASE OF ZERO ERR BELOW
OR A ; SET FLAGS
RET Z ; ZERO SECTOR I/O, RETURN W/ E=0 & A=0
LD B , A ; INIT SECTOR DOWNCOUNTER
LD C , 0 ; INIT SECTOR READ/WRITE COUNT
SD_IO1:
PUSH BC ; SAVE COUNTERS
LD A ,( SD_CMDVAL ) ; SET COMMAND
LD C , A ; ... AND PUT IN C
CALL SD_SECTIO ; DO SECTOR I/O
JR NZ , SD_IO2 ; IF ERROR, SKIP INCREMENT
JR NZ , SD_IO3 ; IF ERROR, SKIP INCREMENT
; INCREMENT LBA
LD A , SD_LBA ; LBA OFFSET
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
@ -1049,13 +1038,7 @@ SD_IO1:
INC ( HL ) ; BUMP DMA BY
INC ( HL ) ; ... 512 BYTES
XOR A ; SIGNAL SUCCESS
SD_IO2:
POP BC ; RECOVER COUNTERS
JR NZ , SD_IO3 ; IF ERROR, BAIL OUT
INC C ; BUMP COUNT OF SECTORS READ
DJNZ SD_IO1 ; LOOP AS NEEDED
SD_IO3:
LD E , C ; SECTOR READ COUNT TO E
LD HL ,( SD_DSKBUF ) ; CURRENT DMA TO HL
OR A ; SET FLAGS BASED ON RETURN CODE
RET Z ; RETURN IF SUCCESS
@ -2656,7 +2639,6 @@ SD_STR_TYPESDXC .TEXT "SDXC$"
SD_OPRVAL .DB 0 ; CURRENT OPR REG VALUE
SD_LCNT .DB 0 ; LOOP COUNTER
SD_CMDVAL .DB 0 ; PENDING COMMAND FOR IO FUCNTIONS
SD_BLKCNT .DB 0 ; BLOCK COUNT REQUESTED FOR IO FUNCTIONS
;
SD_BUF .FILL 16 , 0 ; WORK BUFFER
;