mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 22:43:15 -06:00
Disk Driver Code Cleaning
Some disk drivers still had internal code for multi-sector I/O. With the read supervisors, this is no longer needed. Removed the extraneous code from these drivers.
This commit is contained in:
@@ -1120,23 +1120,14 @@ FD_WRITE:
|
||||
;
|
||||
FD_RW:
|
||||
LD (FCD_DOP),A ; SAVE REQUESTED DISK OPERATION
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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
|
||||
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL FD_GEOM ; E := SPT, D := HDS
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,FD_RW4 ; BAIL OUT ON ERROR
|
||||
RES 7,D ; MAKE SURE LBA BIT IS CLEARED
|
||||
LD (FD_CURGEOM),DE ; SAVE AS FD_CURSPT & FD_CURHDS
|
||||
|
||||
FD_RW1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL FD_RUN ; PERFORM SECTOR READ/WRITE
|
||||
JR NZ,FD_RW3 ; IF ERROR, SKIP INCREMENT
|
||||
JR NZ,FD_RW4 ; IF ERROR, SKIP INCREMENT
|
||||
|
||||
; INCREMENT SECTOR AND CHECK FOR TRACK OVERFLOW
|
||||
LD A,FD_HSTSEC ; HST SECTOR OFFSET IN CFG
|
||||
@@ -1166,13 +1157,7 @@ FD_RW2:
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
FD_RW3:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,FD_RW4 ; IF ERROR, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ FD_RW1 ; LOOP AS NEEDED
|
||||
FD_RW4:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(FD_DSKBUF) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET ; AND RETURN, A HAS RETURN CODE
|
||||
|
||||
@@ -4646,6 +4646,7 @@ HB_DSKREAD1:
|
||||
LD HL,HB_WRKBUF ; USE WORK BUF REAL I/O
|
||||
;
|
||||
; CALL READ FN
|
||||
LD E,1 ; READ EXACTLY 1 SECTOR
|
||||
CALL HB_DSKFN ; READ ONE SECTOR
|
||||
;
|
||||
; IF FAIL, RETURN ERR
|
||||
@@ -4748,6 +4749,7 @@ HB_DSKWRITE1:
|
||||
;
|
||||
; CALL WRITE FN
|
||||
LD HL,HB_WRKBUF ; WRITE FROM WORK BUFFER
|
||||
LD E,1 ; WRITE EXACTLY 1 SECTOR
|
||||
CALL HB_DSKFN ; WRITE ONE SECTOR
|
||||
;
|
||||
; IF FAIL, RETURN ERR
|
||||
@@ -4774,6 +4776,7 @@ HB_DSKIO:
|
||||
;
|
||||
HB_DSKIO1:
|
||||
; CALL READ/WRITE FN
|
||||
LD E,1 ; READ/WRITE EXACTLY 1 SECTOR
|
||||
CALL HB_DSKFN ; READ/WRITE ONE SECTOR
|
||||
;
|
||||
; IF FAIL, RETURN ERR
|
||||
|
||||
@@ -218,24 +218,16 @@ HDSK_WRITE:
|
||||
HDSK_RW:
|
||||
LD (HDSK_CMD),A ; SET COMMAND BYTE
|
||||
LD (HDSK_DMA),HL ; SAVE INITIAL DMA
|
||||
LD A,E ; SECTOR COUNT TO A
|
||||
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
|
||||
LD A,(IY+HDSK_DEV) ; GET DEVICE NUMBER
|
||||
LD (HDSK_DRV),A ; ... AND SET FIELD IN HDSK PARM BLOCK
|
||||
|
||||
; RESET HDSK INTERFACE IF NEEDED
|
||||
LD A,(IY+HDSK_STAT) ; GET CURRENT STATUS
|
||||
OR A ; SET FLAGS
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL NZ,HDSK_DSKRESET ; RESET IF NOT READY
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,HDSK_RW6 ; ABORT ON FAILURE
|
||||
|
||||
HDSK_RW0:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
XOR A ; A = 0
|
||||
LD (HDSK_RC),A ; CLEAR RETURN CODE
|
||||
;
|
||||
@@ -282,7 +274,7 @@ HDSK_RW0:
|
||||
POP AF ; RESTORE RETURN CODE
|
||||
#ENDIF
|
||||
|
||||
JR NZ,HDSK_RW5 ; BAIL OUT ON ERROR
|
||||
JR NZ,HDSK_RW6 ; BAIL OUT ON ERROR
|
||||
|
||||
; INCREMENT LBA
|
||||
LD A,HDSK_LBA ; LBA OFFSET IN CFG ENTRY
|
||||
@@ -296,16 +288,8 @@ HDSK_RW0:
|
||||
|
||||
XOR A ; A := 0 SIGNALS SUCCESS
|
||||
|
||||
HDSK_RW5:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,HDSK_RW6 ; IF ERROR, GET OUT
|
||||
|
||||
INC C ; RECORD SECTOR COMPLETED
|
||||
DJNZ HDSK_RW0 ; LOOP AS NEEDED
|
||||
|
||||
HDSK_RW6:
|
||||
; RETURN WITH SECTORS READ IN E AND UPDATED DMA ADDRESS IN HL
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(HDSK_DMA) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN IF SUCCESS
|
||||
|
||||
@@ -667,25 +667,17 @@ IDE_WRITE:
|
||||
;
|
||||
IDE_IO:
|
||||
LD (IDE_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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
|
||||
#IF (IDETRACE == 1)
|
||||
LD HL,IDE_PRTERR ; SET UP IDE_PRTERR
|
||||
PUSH HL ; ... TO FILTER ALL EXITS
|
||||
#ENDIF
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL IDE_CHKERR ; CHECK FOR ERR STATUS AND RESET IF SO
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,IDE_IO3 ; BAIL OUT ON ERROR
|
||||
IDE_IO1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL IDE_SELUNIT ; HARDWARE SELECTION OF TARGET UNIT
|
||||
LD HL,(IDE_IOFNADR) ; GET PENDING IO FUNCTION ADDRESS
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
JR NZ,IDE_IO2 ; IF ERROR, SKIP INCREMENT
|
||||
JR NZ,IDE_IO3 ; IF ERROR, SKIP INCREMENT
|
||||
; INCREMENT LBA
|
||||
LD A,IDE_LBA ; LBA OFFSET
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -695,13 +687,7 @@ IDE_IO1:
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
IDE_IO2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,IDE_IO3 ; IF ERROR, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ IDE_IO1 ; LOOP AS NEEDED
|
||||
IDE_IO3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(IDE_DSKBUF) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN IF SUCCESS
|
||||
|
||||
@@ -295,13 +295,7 @@ MD_WR1:
|
||||
;
|
||||
MD_RW:
|
||||
LD (MD_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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
|
||||
MD_RW1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
;
|
||||
;;;#IF (DSKYENABLE)
|
||||
;;; #IF (DSKYDSKACT)
|
||||
@@ -319,7 +313,7 @@ MD_RW1:
|
||||
#ELSE
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
#ENDIF
|
||||
JR NZ,MD_RW2 ; IF ERROR, SKIP INCREMENT
|
||||
JR NZ,MD_RW3 ; IF ERROR, SKIP INCREMENT
|
||||
; INCREMENT LBA
|
||||
LD A,MD_LBA ; LBA OFFSET IN CFG ENTRY
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -329,13 +323,7 @@ MD_RW1:
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
MD_RW2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,MD_RW3 ; IF ERROR, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ MD_RW1 ; LOOP AS NEEDED
|
||||
MD_RW3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(MD_DSKBUF) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET ; AND RETURN, A HAS RETURN CODE
|
||||
|
||||
@@ -694,25 +694,17 @@ PPIDE_WRITE:
|
||||
;
|
||||
PPIDE_IO:
|
||||
LD (PPIDE_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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
|
||||
#IF (PPIDETRACE == 1)
|
||||
LD HL,PPIDE_PRTERR ; SET UP PPIDE_PRTERR
|
||||
PUSH HL ; ... TO FILTER ALL EXITS
|
||||
#ENDIF
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL PPIDE_CHKERR ; CHECK FOR ERR STATUS AND RESET IF SO
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,PPIDE_IO3 ; BAIL OUT ON ERROR
|
||||
PPIDE_IO1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL PPIDE_SELUNIT ; HARDWARE SELECTION OF TARGET UNIT
|
||||
LD HL,(PPIDE_IOFNADR) ; GET PENDING IO FUNCTION ADDRESS
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
JR NZ,PPIDE_IO2 ; IF ERROR, SKIP INCREMENT
|
||||
JR NZ,PPIDE_IO3 ; IF ERROR, SKIP INCREMENT
|
||||
; INCREMENT LBA
|
||||
LD A,PPIDE_LBA ; LBA OFFSET
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -722,13 +714,7 @@ PPIDE_IO1:
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
PPIDE_IO2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,PPIDE_IO3 ; IF ERROR, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ PPIDE_IO1 ; LOOP AS NEEDED
|
||||
PPIDE_IO3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(PPIDE_DSKBUF) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN IF SUCCESS
|
||||
|
||||
@@ -534,24 +534,16 @@ PPPSD_WRITE:
|
||||
;
|
||||
PPPSD_IO:
|
||||
LD (PPPSD_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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 R/W COUNTER
|
||||
|
||||
#IF (PPPSDTRACE == 1)
|
||||
LD HL,PPPSD_PRTERR ; SET UP PPPSD_PRTERR
|
||||
PUSH HL ; ... TO FILTER ALL EXITS
|
||||
#ENDIF
|
||||
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL PPPSD_CHKCARD ; CHECK / REINIT CARD AS NEEDED
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,PPPSD_IO3 ; BAIL OUT ON ERROR
|
||||
|
||||
PPPSD_IO1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
|
||||
#IF (PPPSDTRACE >= 3)
|
||||
CALL PPPSD_PRTPREFIX
|
||||
@@ -559,7 +551,7 @@ PPPSD_IO1:
|
||||
|
||||
LD HL,(PPPSD_IOFNADR) ; GET PENDING IO FUNCTION ADDRESS
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
JR NZ,PPPSD_IO2 ; BAIL OUT ON ERROR
|
||||
JR NZ,PPPSD_IO3 ; BAIL OUT ON ERROR
|
||||
; INCREMENT LBA
|
||||
LD A,PPPSD_LBA ; LBA OFFSET
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -570,14 +562,7 @@ PPPSD_IO1:
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
|
||||
PPPSD_IO2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,PPPSD_IO3 ; IF ERROR PENDING, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ PPPSD_IO1 ; LOOP AS NEEDED
|
||||
|
||||
PPPSD_IO3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(PPPSD_DSKBUF) ; CURRENT BUF ADR TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN IF SUCCESS
|
||||
|
||||
@@ -431,32 +431,23 @@ PRPSD_WRITE:
|
||||
;
|
||||
PRPSD_IO:
|
||||
LD (PRPSD_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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 R/W COUNTER
|
||||
|
||||
#IF (PRPSDTRACE == 1)
|
||||
LD HL,PRPSD_PRTERR ; SET UP PRPSD_PRTERR
|
||||
PUSH HL ; ... TO FILTER ALL EXITS
|
||||
#ENDIF
|
||||
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
CALL PRPSD_CHKCARD ; CHECK / REINIT CARD AS NEEDED
|
||||
POP BC ; RESTORE COUNTERS
|
||||
JR NZ,PRPSD_IO3 ; BAIL OUT ON ERROR
|
||||
|
||||
PRPSD_IO1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
|
||||
#IF (PRPSDTRACE >= 3)
|
||||
CALL PRPSD_PRTPREFIX
|
||||
#ENDIF
|
||||
|
||||
LD HL,(PRPSD_IOFNADR) ; GET PENDING IO FUNCTION ADDRESS
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
JR NZ,PRPSD_IO2 ; BAIL OUT ON ERROR
|
||||
JR NZ,PRPSD_IO3 ; BAIL OUT ON ERROR
|
||||
; INCREMENT LBA
|
||||
LD A,PRPSD_LBA ; LBA OFFSET
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -467,14 +458,7 @@ PRPSD_IO1:
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
|
||||
PRPSD_IO2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,PRPSD_IO3 ; IF ERROR PENDING, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ PRPSD_IO1 ; LOOP AS NEEDED
|
||||
|
||||
PRPSD_IO3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(PRPSD_DSKBUF) ; CURRENT BUF ADR TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN IF SUCCESS
|
||||
|
||||
@@ -250,17 +250,11 @@ RF_WRITE:
|
||||
;
|
||||
RF_RW:
|
||||
LD (RF_DSKBUF),HL ; SAVE DISK BUFFER ADDRESS
|
||||
LD A,E ; BLOCK COUNT TO A
|
||||
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
|
||||
CALL RF_SETIO ; SET BASE PORT IO ADR FOR SELECTED UNIT
|
||||
RF_RW1:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
LD HL,(RF_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS
|
||||
CALL JPHL ; ... AND CALL IT
|
||||
JR NZ,RF_RW2 ; IF ERROR, SKIP INCREMENT
|
||||
JR NZ,RF_RW3 ; IF ERROR, SKIP INCREMENT
|
||||
; INCREMENT LBA
|
||||
LD A,MD_LBA ; OFFSET OF LBA VALUE
|
||||
CALL LDHLIYA ; HL := IY + A, REG A TRASHED
|
||||
@@ -270,13 +264,7 @@ RF_RW1:
|
||||
INC (HL) ; BUMP DMA BY
|
||||
INC (HL) ; ... 512 BYTES
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RF_RW2:
|
||||
POP BC ; RECOVER COUNTERS
|
||||
JR NZ,RF_RW3 ; IF ERROR, BAIL OUT
|
||||
INC C ; BUMP COUNT OF SECTORS READ
|
||||
DJNZ RF_RW1 ; LOOP AS NEEDED
|
||||
RF_RW3:
|
||||
LD E,C ; SECTOR READ COUNT TO E
|
||||
LD HL,(RF_DSKBUF) ; CURRENT DMA TO HL
|
||||
OR A ; SET FLAGS BASED ON RETURN CODE
|
||||
RET Z ; RETURN SUCCESS
|
||||
|
||||
@@ -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
|
||||
;
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 6
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.6.0-dev.38"
|
||||
#DEFINE BIOSVER "3.6.0-dev.39"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 6
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.6.0-dev.38"
|
||||
db "3.6.0-dev.39"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user