From cfb146242d7cde97d353bebaafa5fc269d5c408b Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Sat, 2 Oct 2021 01:34:58 +0800 Subject: [PATCH] Update md.asm Table size off by one. Fix endien confusion for flash id byte --- Source/HBIOS/md.asm | 30 ++++++++++++++++++------------ 1 file changed, 18 insertions(+), 12 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 9bbc6dbf..4a65acd2 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -764,7 +764,6 @@ MDSTR_LEN .TEXT "LEN=$" ;================================================================================================== ; #IF (MDFFENABLE) -MD_TGTDEV .EQU 0B7BFH ; TARGET CHIP FOR R/W FILESYSTEM 39SF040 ; ;====================================================================== ; BIOS FLASH INITIALIZATION @@ -803,8 +802,8 @@ MD_PROBE: CALL MD_CALBAS ; SETUP BANK AND SECTOR LD HL,MD_FIDEN_R ; PUT ROUTINE TO CALL CALL MD_FNCALL ; EXECUTE: IDENTIFY FLASH CHIP - - LD HL,MD_TGTDEV ; IF WE MATCH WITH +; + LD HL,(MD_TGTDEV) ; IF WE MATCH WITH XOR A ; A NON 39SF040 SBC HL,BC ; CHIP SET THE JR Z,MD_PR2 ; R/W FLAG TO R/O @@ -860,19 +859,23 @@ MD_LAND: ; #IF (MD_FDBG==1) PRTS(" ID:$") - CALL PRTHEXWORD ; DISPLAY FLASH ID + LD A,C + CALL PRTHEXBYTE ; DISPLAY FLASH ID + LD A,B + CALL PRTHEXBYTE CALL PC_SPACE #ENDIF ; LD HL,MD_TABLE ; SEARCH THROUGH THE FLASH - LD DE,MD_T_CNT ; TABLE TO FIND A MATCH -MD_NXT1:LD A,(HL) - CP B + LD DE,MD_T_CNT-1 ; TABLE TO FIND A MATCH +MD_NXT1: + LD A,(HL) + CP C JR NZ,MD_NXT0 ; FIRST BYTE DOES NOT MATCH ; INC HL LD A,(HL) - CP C + CP B DEC HL JR NZ,MD_NXT0 ; SECOND BYTE DOES NOT MATCH ; @@ -987,10 +990,12 @@ MD_SAVSTK .DW 0 ; ;====================================================================== ; -#DEFINE FF_CHIP(FFROMID,FFROMNM) \ -#DEFCONT ; \ -#DEFCONT .DW FFROMID \ -#DEFCONT .DB FFROMNM \ +#DEFINE FF_CHIP(FFROMID,FFROMNM) \ +#DEFCONT ; \ + +#DEFCONT .DB (FFROMID >> 8) & $FF \ +#DEFCONT .DB (FFROMID & $FF) \ +#DEFCONT .DB FFROMNM \ #DEFCONT ; ; MD_TABLE: @@ -1011,6 +1016,7 @@ FF_CHIP(037A4H,"A29010B$ ") FF_CHIP(03786H,"A29040B$ ") FF_CHIP(0BFB5H,"39F010$ ") FF_CHIP(0BFB6H,"39F020$ ") +MD_TGTDEV: ; TARGET CHIP FOR R/W FILESYSTEM 39SF040 FF_CHIP(0BFB7H,"39F040$ ") FF_CHIP(0C2A4H,"MX29F040$ ") ;