From e84ab3c6bc7ac3c1840f57da64016026c582f210 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 20:05:06 +0800 Subject: [PATCH] Update md.asm minors --- Source/HBIOS/md.asm | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index ac1fd6e8..a097d35d 100644 --- a/Source/HBIOS/md.asm +++ b/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