Browse Source

Update md.asm

Table size off by one. Fix endien confusion for flash id byte
pull/250/head
b1ackmai1er 4 years ago
parent
commit
cfb146242d
  1. 30
      Source/HBIOS/md.asm

30
Source/HBIOS/md.asm

@ -764,7 +764,6 @@ MDSTR_LEN .TEXT "LEN=$"
;================================================================================================== ;==================================================================================================
; ;
#IF (MDFFENABLE) #IF (MDFFENABLE)
MD_TGTDEV .EQU 0B7BFH ; TARGET CHIP FOR R/W FILESYSTEM 39SF040
; ;
;====================================================================== ;======================================================================
; BIOS FLASH INITIALIZATION ; BIOS FLASH INITIALIZATION
@ -803,8 +802,8 @@ MD_PROBE:
CALL MD_CALBAS ; SETUP BANK AND SECTOR CALL MD_CALBAS ; SETUP BANK AND SECTOR
LD HL,MD_FIDEN_R ; PUT ROUTINE TO CALL LD HL,MD_FIDEN_R ; PUT ROUTINE TO CALL
CALL MD_FNCALL ; EXECUTE: IDENTIFY FLASH CHIP 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 XOR A ; A NON 39SF040
SBC HL,BC ; CHIP SET THE SBC HL,BC ; CHIP SET THE
JR Z,MD_PR2 ; R/W FLAG TO R/O JR Z,MD_PR2 ; R/W FLAG TO R/O
@ -860,19 +859,23 @@ MD_LAND:
; ;
#IF (MD_FDBG==1) #IF (MD_FDBG==1)
PRTS(" ID:$") PRTS(" ID:$")
CALL PRTHEXWORD ; DISPLAY FLASH ID
LD A,C
CALL PRTHEXBYTE ; DISPLAY FLASH ID
LD A,B
CALL PRTHEXBYTE
CALL PC_SPACE CALL PC_SPACE
#ENDIF #ENDIF
; ;
LD HL,MD_TABLE ; SEARCH THROUGH THE FLASH 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 JR NZ,MD_NXT0 ; FIRST BYTE DOES NOT MATCH
; ;
INC HL INC HL
LD A,(HL) LD A,(HL)
CP C
CP B
DEC HL DEC HL
JR NZ,MD_NXT0 ; SECOND BYTE DOES NOT MATCH 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 ; #DEFCONT ;
; ;
MD_TABLE: MD_TABLE:
@ -1011,6 +1016,7 @@ FF_CHIP(037A4H,"A29010B$ ")
FF_CHIP(03786H,"A29040B$ ") FF_CHIP(03786H,"A29040B$ ")
FF_CHIP(0BFB5H,"39F010$ ") FF_CHIP(0BFB5H,"39F010$ ")
FF_CHIP(0BFB6H,"39F020$ ") FF_CHIP(0BFB6H,"39F020$ ")
MD_TGTDEV: ; TARGET CHIP FOR R/W FILESYSTEM 39SF040
FF_CHIP(0BFB7H,"39F040$ ") FF_CHIP(0BFB7H,"39F040$ ")
FF_CHIP(0C2A4H,"MX29F040$ ") FF_CHIP(0C2A4H,"MX29F040$ ")
; ;

Loading…
Cancel
Save