Browse Source

Update md.asm

With  flash file system enabled and verbose enabled, boot message will display if file system is enabled or disabled.
pull/165/head
b1ackmai1er 5 years ago
parent
commit
86fceb962b
  1. 42
      Source/HBIOS/md.asm

42
Source/HBIOS/md.asm

@ -673,14 +673,18 @@ FF_PROBE:
LD C,A LD C,A
; ;
DJNZ FF_PROBE ; ALWAYS AT LEAST ONE DEVICE DJNZ FF_PROBE ; ALWAYS AT LEAST ONE DEVICE
#IF (MD_FVBS==1) #IF (MD_FVBS==1)
CALL PRTSTRD
.TEXT " FLASH FILE SYSTEM $"
LD DE,MD_FFMSGDIS
LD A,(MD_FFSEN) LD A,(MD_FFSEN)
OR A OR A
JR NZ,MD_PR1 JR NZ,MD_PR1
CALL PRTSTRD
.TEXT " FLASH FILE SYSTEM ENABLED$"
MD_PR1:
LD DE,MD_FFMSGENA
MD_PR1: CALL WRITESTR
#ENDIF #ENDIF
XOR A ; INIT SUCCEEDED XOR A ; INIT SUCCEEDED
RET RET
; ;
@ -699,8 +703,8 @@ MD_LAND:
CALL PC_SPACE CALL PC_SPACE
#ENDIF #ENDIF
; ;
LD HL,FF_TABLE ; SEARCH THROUGH THE FLASH
LD DE,FF_T_CNT ; TABLE TO FIND A MATCH
LD HL,MD_TABLE ; SEARCH THROUGH THE FLASH
LD DE,MD_T_CNT ; TABLE TO FIND A MATCH
FF_NXT1:LD A,(HL) FF_NXT1:LD A,(HL)
CP B CP B
JR NZ,FF_NXT0 ; FIRST BYTE DOES NOT MATCH JR NZ,FF_NXT0 ; FIRST BYTE DOES NOT MATCH
@ -716,7 +720,7 @@ FF_NXT1:LD A,(HL)
JR FF_NXT2 ; MATCH SO EXIT JR FF_NXT2 ; MATCH SO EXIT
; ;
FF_NXT0:PUSH BC ; WE DIDN'T MATCH SO POINT FF_NXT0:PUSH BC ; WE DIDN'T MATCH SO POINT
LD BC,FF_T_SZ ; TO THE NEXT TABLE ENTRY
LD BC,MD_T_SZ ; TO THE NEXT TABLE ENTRY
ADD HL,BC ADD HL,BC
POP BC POP BC
; ;
@ -725,7 +729,7 @@ FF_NXT0:PUSH BC ; WE DIDN'T MATCH SO POINT
DEC DE DEC DE
JR NZ,FF_NXT1 ; NOT AT END YET JR NZ,FF_NXT1 ; NOT AT END YET
; ;
LD HL,MD_UNKNOWN ; WE REACHED THE END WITHOUT A MATCH
LD HL,MD_FFMSGUNK ; WE REACHED THE END WITHOUT A MATCH
; ;
FF_NXT2: FF_NXT2:
#IF (MD_FVBS==1) #IF (MD_FVBS==1)
@ -938,28 +942,28 @@ MD_FERAS_S
LD (HL),A ; COMMAND LD (HL),A ; COMMAND
; ;
LD A,(HL) ; DO TWO SUCCESSIVE READS LD A,(HL) ; DO TWO SUCCESSIVE READS
FF_WT4: LD C,(HL) ; FROM THE SAME FLASH ADDRESS.
MD_WT4: LD C,(HL) ; FROM THE SAME FLASH ADDRESS.
XOR C ; IF THE SAME ON BOTH READS XOR C ; IF THE SAME ON BOTH READS
BIT 6,A ; THEN ERASE IS COMPLETE SO EXIT. BIT 6,A ; THEN ERASE IS COMPLETE SO EXIT.
; ;
JR Z,FF_WT5 ; BIT 6 = 0 IF SAME ON SUCCESSIVE READS = COMPLETE
JR Z,MD_WT5 ; BIT 6 = 0 IF SAME ON SUCCESSIVE READS = COMPLETE
; BIT 6 = 1 IF DIFF ON SUCCESSIVE READS = INCOMPLETE ; BIT 6 = 1 IF DIFF ON SUCCESSIVE READS = INCOMPLETE
; ;
LD A,C ; OPERATION IS NOT COMPLETE. CHECK TIMEOUT BIT (BIT 5). LD A,C ; OPERATION IS NOT COMPLETE. CHECK TIMEOUT BIT (BIT 5).
BIT 5,C ; IF NO TIMEOUT YET THEN LOOP BACK AND KEEP CHECKING TOGGLE STATUS BIT 5,C ; IF NO TIMEOUT YET THEN LOOP BACK AND KEEP CHECKING TOGGLE STATUS
JR Z,FF_WT4 ; IF BIT 5=0 THEN RETRY; NZ TRUE IF BIT 5=1
JR Z,MD_WT4 ; IF BIT 5=0 THEN RETRY; NZ TRUE IF BIT 5=1
; ;
LD A,(HL) ; WE GOT A TIMOUT. RECHECK TOGGLE BIT IN CASE WE DID COMPLETE LD A,(HL) ; WE GOT A TIMOUT. RECHECK TOGGLE BIT IN CASE WE DID COMPLETE
XOR (HL) ; THE OPERATION. DO TWO SUCCESSIVE READS. ARE THEY THE SAME? XOR (HL) ; THE OPERATION. DO TWO SUCCESSIVE READS. ARE THEY THE SAME?
BIT 6,A ; IF THEY ARE THEN OPERATION WAS COMPLETED BIT 6,A ; IF THEY ARE THEN OPERATION WAS COMPLETED
JR Z,FF_WT5 ; OTHERWISE ERASE OPERATION FAILED OR TIMED OUT.
JR Z,MD_WT5 ; OTHERWISE ERASE OPERATION FAILED OR TIMED OUT.
; ;
LD C,$F0 ; COMMON FAIL STATUS / PREPARE DEVICE RESET CODE LD C,$F0 ; COMMON FAIL STATUS / PREPARE DEVICE RESET CODE
LD (HL),C ; WRITE DEVICE RESET LD (HL),C ; WRITE DEVICE RESET
JR FF_WT6
FF_WT5: LD C,L ; SET SUCCESS STATUS
JR MD_WT6
MD_WT5: LD C,L ; SET SUCCESS STATUS
; ;
FF_WT6: POP AF ; RETURN TO ORIGINAL BANK
MD_WT6: POP AF ; RETURN TO ORIGINAL BANK
CALL HBX_BNKSEL ; WHICH IS OUR RAM BIOS COPY CALL HBX_BNKSEL ; WHICH IS OUR RAM BIOS COPY
; ;
LD SP,(HBX_BUF + (MD_FEST-MD_FERAS_R)) ; RESTORE STACK LD SP,(HBX_BUF + (MD_FEST-MD_FERAS_R)) ; RESTORE STACK
@ -1104,7 +1108,7 @@ MD_W_SZ .EQU $-MD_FWRIT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
#DEFCONT .DB FFROMNM \ #DEFCONT .DB FFROMNM \
#DEFCONT ; #DEFCONT ;
; ;
FF_TABLE:
MD_TABLE:
FF_CHIP(00120H,"29F010$ ") FF_CHIP(00120H,"29F010$ ")
FF_CHIP(001A4H,"29F040$ ") FF_CHIP(001A4H,"29F040$ ")
FF_CHIP(01F04H,"AT49F001NT$") FF_CHIP(01F04H,"AT49F001NT$")
@ -1123,9 +1127,11 @@ FF_CHIP(0BFB6H,"39F020$ ")
FF_CHIP(0BFB7H,"39F040$ ") FF_CHIP(0BFB7H,"39F040$ ")
FF_CHIP(0C2A4H,"MX29F040$ ") FF_CHIP(0C2A4H,"MX29F040$ ")
; ;
FF_T_CNT .EQU 17
FF_T_SZ .EQU ($-FF_TABLE) / FF_T_CNT
MD_UNKNOWN .DB "UNKNOWN$"
MD_T_CNT .EQU 17
MD_T_SZ .EQU ($-MD_TABLE) / MD_T_CNT
MD_FFMSGUNK .DB "UNKNOWN$"
MD_FFMSGDIS .DB "DISABLED$"
MD_FFMSGENA .DB "ENABLED$"
; ;
;====================================================================== ;======================================================================
; ;

Loading…
Cancel
Save