Update md.asm

minors
This commit is contained in:
b1ackmai1er
2020-12-16 20:05:06 +08:00
parent e3fa34e524
commit e84ab3c6bc

View File

@@ -261,7 +261,13 @@ MD_RW:
MD_RW1: MD_RW1:
PUSH BC ; SAVE COUNTERS PUSH BC ; SAVE COUNTERS
LD HL,(MD_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS LD HL,(MD_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS
#IF (MDFFENABLE)
PUSH IX
CALL JPHL ; ... AND CALL IT CALL JPHL ; ... AND CALL IT
POP IX
#ELSE
CALL JPHL ; ... AND CALL IT
#ENDIF
JR NZ,MD_RW2 ; IF ERROR, SKIP INCREMENT JR NZ,MD_RW2 ; IF ERROR, SKIP INCREMENT
; INCREMENT LBA ; INCREMENT LBA
LD A,MD_LBA ; LBA OFFSET IN CFG ENTRY LD A,MD_LBA ; LBA OFFSET IN CFG ENTRY
@@ -297,7 +303,7 @@ MD_RDSECF: ; CALLED FROM MD_RW
POP HL ; BLOCK WE HAVE POP HL ; BLOCK WE HAVE
JR Z,MD_SECM ; IN THE BUFFER JR Z,MD_SECM ; IN THE BUFFER
; ;
MD_SECR: ;MD_SECR:
; DESIRED SECTOR ; DESIRED SECTOR
; IS NOT IN BUFFER ; IS NOT IN BUFFER
LD (MD_LBA4K),BC ; WE WILL READ IN LD (MD_LBA4K),BC ; WE WILL READ IN
@@ -307,10 +313,9 @@ MD_SECR:
; ;
; DE:HL CONTAIN SOURCE ADDRESS ; DE:HL CONTAIN SOURCE ADDRESS
; WHICH WAS SETUP BY MD_IOSETUPF ; WHICH WAS SETUP BY MD_IOSETUPF
PUSH IX ;
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS
CALL MD_FREAD ; READ 4K SECTOR CALL MD_FREAD ; READ 4K SECTOR
POP IX
; ;
MD_SECM: MD_SECM:
LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK
@@ -332,7 +337,7 @@ MD_SECM:
; ;
; ON EXIT ; ON EXIT
; BC = LBA 4K BLOCK WE ARE ACCESSING ; BC = LBA 4K BLOCK WE ARE ACCESSING
; DE:HL = MEMORY ADDRESS TO READ FROM IN FLASH ; DE:HL = MEMORY ADDRESS TO ACCESS IN FLASH
; ;
MD_IOSETUPF: MD_IOSETUPF:
LD L,(IY+MD_LBA+0) ; HL := LOW WORD OF LBA LD L,(IY+MD_LBA+0) ; HL := LOW WORD OF LBA
@@ -369,15 +374,11 @@ MD_WRSECF: ; CALLED FROM MD_RW
; ;
LD (MD_LBA4K),BC ; SAVE 4K LBA LD (MD_LBA4K),BC ; SAVE 4K LBA
; ;
PUSH IX
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS
CALL MD_FREAD ; READ 4K SECTOR CALL MD_FREAD ; READ 4K SECTOR
POP IX
; ;
MD_SECM1: ; DESIRED SECTOR IS IN BUFFER MD_SECM1: ; DESIRED SECTOR IS IN BUFFER
PUSH IX
CALL MD_FERAS ; ERASE 4K SECTOR CALL MD_FERAS ; ERASE 4K SECTOR
POP IX
OR A OR A
RET NZ ; RETURN IF ERROR RET NZ ; RETURN IF ERROR
; ;
@@ -403,10 +404,8 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER
POP DE POP DE
POP HL POP HL
; ;
PUSH IX
LD IX,MD_F4KBUF ; WRITE THE SECTOR LD IX,MD_F4KBUF ; WRITE THE SECTOR
CALL MD_FWRIT CALL MD_FWRIT
POP IX
; ;
XOR A XOR A
; ;
@@ -651,15 +650,13 @@ FF_PROBE:
CALL MD_FIDENT ; GET ID AT THIS ADDRESS CALL MD_FIDENT ; GET ID AT THIS ADDRESS
PUSH HL PUSH HL
; PUSH DE
LD HL,MD_TGTDEV ; IF WE MATCH WITH LD HL,MD_TGTDEV ; IF WE MATCH WITH
XOR A ; A NON 39SF040 XOR A ; A NON 39SF040
SBC HL,BC ; CHIP SET THE SBC HL,BC ; CHIP SET THE
LD A,(MD_FFSEN) ; R/W FLAG TO R/O LD A,(MD_FFSEN) ; R/W FLAG TO R/O
OR H OR H
OR L OR L ; A NON ZERO VALUE
LD (MD_FFSEN),A ; A NON ZERO VALUE LD (MD_FFSEN),A ; MEANS WE CAN'T
; POP DE ; MEANS WE CAN'T
POP HL ; ENABLE FLASH WRITING POP HL ; ENABLE FLASH WRITING
#IF (MD_FVBS==1) #IF (MD_FVBS==1)
CALL MD_LAND ; LOOKUP AND DISPLAY CALL MD_LAND ; LOOKUP AND DISPLAY
@@ -693,8 +690,6 @@ MD_LAND:
; ;
#IF (MD_FDBG==1) #IF (MD_FDBG==1)
PRTS(" ID:$") PRTS(" ID:$")
; LD H,C
; LD L,B
CALL PRTHEXWORD ; DISPLAY FLASH ID CALL PRTHEXWORD ; DISPLAY FLASH ID
CALL PC_SPACE CALL PC_SPACE
#ENDIF #ENDIF