Browse Source

Update md.asm

minors
patch
b1ackmai1er 5 years ago
parent
commit
e84ab3c6bc
  1. 27
      Source/HBIOS/md.asm

27
Source/HBIOS/md.asm

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

Loading…
Cancel
Save