|
|
|
@ -125,7 +125,7 @@ HBX_START .EQU $FE00 |
|
|
|
#DEFINE HB_DI DI |
|
|
|
#DEFINE HB_EI EI |
|
|
|
; |
|
|
|
XFUDBG .EQU 1 |
|
|
|
XFUDBG .EQU 0 |
|
|
|
; |
|
|
|
.ORG USR_LOC |
|
|
|
; |
|
|
|
@ -1057,16 +1057,16 @@ MD_FNCALL: |
|
|
|
LD DE,$0000 |
|
|
|
LD BC,(MD_FBAS) ; PUT BANK AND SECTOR DATA IN BC |
|
|
|
; |
|
|
|
EX AF,AF' |
|
|
|
PUSH AF |
|
|
|
; EX AF,AF' |
|
|
|
; PUSH AF |
|
|
|
LD A,(HB_CURBNK) ; WE ARE STARTING IN HB_CURBNK |
|
|
|
; |
|
|
|
HB_DI |
|
|
|
CALL MD_FJPHL |
|
|
|
HB_EI |
|
|
|
; |
|
|
|
POP AF |
|
|
|
EX AF,AF' |
|
|
|
; POP AF |
|
|
|
; EX AF,AF' |
|
|
|
; |
|
|
|
LD A,C ; RETURN WITH STATUS IN A |
|
|
|
RET |
|
|
|
@ -1124,7 +1124,8 @@ MD_FIDEN_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY |
|
|
|
; |
|
|
|
MD_FERAS_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY |
|
|
|
; |
|
|
|
EX AF,AF' ; SAVE CURRENT BANK |
|
|
|
; EX AF,AF' ; SAVE CURRENT BANK |
|
|
|
PUSH AF |
|
|
|
LD A,B ; SELECT BANK |
|
|
|
CALL HBX_BNKSEL ; TO PROGRAM |
|
|
|
; |
|
|
|
@ -1165,7 +1166,8 @@ MD_WT4: LD A,(HL) ; DO TWO SUCCESSIVE READS |
|
|
|
JR MD_WT6 |
|
|
|
MD_WT5: LD C,L ; SET SUCCESS STATUS |
|
|
|
; |
|
|
|
MD_WT6: EX AF,AF' ; RETURN TO ORIGINAL BANK |
|
|
|
MD_WT6: ;EX AF,AF' ; RETURN TO ORIGINAL BANK |
|
|
|
POP AF |
|
|
|
JP HBX_BNKSEL ; WHICH IS OUR RAM BIOS COPY |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
@ -1190,19 +1192,21 @@ MD_FREAD_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY |
|
|
|
LD H,C ; SECTOR |
|
|
|
LD L,D ; ADDRESS |
|
|
|
; |
|
|
|
EX AF,AF' ; PUT DESTINATION BANK IN AF' |
|
|
|
; EX AF,AF' ; PUT DESTINATION BANK IN AF' |
|
|
|
; |
|
|
|
PUSH AF |
|
|
|
MD_FRD1: |
|
|
|
LD A,B ; PUT SOURCE BANK IN AF |
|
|
|
CALL HBX_BNKSEL ; READ ; SWITCH TO SOURCE BANK |
|
|
|
LD C,(HL) ; BYTE |
|
|
|
; |
|
|
|
EX AF,AF' ; SELECT BANK ; SWITCH DESTINATION BANK |
|
|
|
; EX AF,AF' ; SELECT BANK ; SWITCH DESTINATION BANK |
|
|
|
POP AF |
|
|
|
PUSH AF |
|
|
|
CALL HBX_BNKSEL ; TO WRITE |
|
|
|
POP AF |
|
|
|
; POP AF |
|
|
|
LD (IX+0),C ; WRITE BYTE |
|
|
|
EX AF,AF' ; ; PUT SOURCE BANK IN AF |
|
|
|
; EX AF,AF' ; ; PUT SOURCE BANK IN AF |
|
|
|
; |
|
|
|
INC HL ; NEXT SOURCE LOCATION |
|
|
|
INC IX ; NEXT DESTINATION LOCATION |
|
|
|
@ -1211,6 +1215,7 @@ MD_FRD1: |
|
|
|
BIT 4,D ; WE HAVE DONE ONE SECTOR |
|
|
|
JR Z,MD_FRD1 |
|
|
|
; |
|
|
|
POP AF |
|
|
|
RET |
|
|
|
; |
|
|
|
;====================================================================== |
|
|
|
@ -1234,20 +1239,24 @@ MD_FVERI_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY |
|
|
|
LD H,C ; SECTOR |
|
|
|
LD L,D ; ADDRESS |
|
|
|
; |
|
|
|
EX AF,AF' ; PUT SOURCE BANK IN AF' (RAM) |
|
|
|
; EX AF,AF' ; PUT SOURCE BANK IN AF' (RAM) |
|
|
|
PUSH AF |
|
|
|
; |
|
|
|
MD_FVE1: |
|
|
|
LD A,B ; SELECT BANK |
|
|
|
CALL HBX_BNKSEL ; TO READ ; SWITCH TO FLASH BANK |
|
|
|
LD A,(HL) ; READ BYTE |
|
|
|
LD C,(HL) ; READ BYTE |
|
|
|
; |
|
|
|
EX AF,AF' ; SELECT BANK ; SWITCH TO RAM BANK |
|
|
|
; EX AF,AF' ; SELECT BANK ; SWITCH TO RAM BANK |
|
|
|
POP AF |
|
|
|
PUSH AF |
|
|
|
CALL HBX_BNKSEL ; TO VERIFY AGAINST |
|
|
|
POP AF |
|
|
|
EX AF,AF' |
|
|
|
; POP AF |
|
|
|
; EX AF,AF' |
|
|
|
; |
|
|
|
LD A,C |
|
|
|
SUB (IX+0) ; COMPARE BYTE |
|
|
|
LD C,A |
|
|
|
JR NZ,MD_FVE2 ; EXIT IF MISMATCH |
|
|
|
; |
|
|
|
INC HL ; NEXT SOURCE LOCATION |
|
|
|
@ -1257,9 +1266,9 @@ MD_FVE1: |
|
|
|
BIT 4,D ; WE HAVE DONE ONE SECTOR |
|
|
|
JR Z,MD_FVE1 |
|
|
|
; |
|
|
|
MD_FVE2: |
|
|
|
LD C,A ; SET STATUS |
|
|
|
EX AF,AF' |
|
|
|
MD_FVE2:POP AF |
|
|
|
; LD C,A ; SET STATUS |
|
|
|
; EX AF,AF' |
|
|
|
; |
|
|
|
RET |
|
|
|
; |
|
|
|
@ -1284,11 +1293,12 @@ MD_FWRIT_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY |
|
|
|
LD H,C ; SECTOR |
|
|
|
LD L,D ; ADDRESS |
|
|
|
; |
|
|
|
MD_FWRI1: |
|
|
|
PUSH AF |
|
|
|
MD_FWRI1: |
|
|
|
; PUSH AF |
|
|
|
CALL HBX_BNKSEL ; SELECT BANK TO READ |
|
|
|
POP AF |
|
|
|
EX AF,AF' ; SAVE CURRENT BANK |
|
|
|
; POP AF |
|
|
|
; EX AF,AF' ; SAVE CURRENT BANK |
|
|
|
; |
|
|
|
LD C,(IX+0) ; READ IN BYTE |
|
|
|
; |
|
|
|
@ -1315,12 +1325,15 @@ MD_FW7: LD A,(HL) ; FROM THE SAME FLASH ADDRESS. |
|
|
|
INC HL ; NEXT DESTINATION LOCATION |
|
|
|
INC IX ; NEXT SOURCE LOCATION |
|
|
|
; |
|
|
|
EX AF,AF' ; RESTORE CURRENT BANK |
|
|
|
; EX AF,AF' ; RESTORE CURRENT BANK |
|
|
|
POP AF |
|
|
|
PUSH AF |
|
|
|
; |
|
|
|
INC DE ; CONTINUE WRITING UNTIL |
|
|
|
BIT 4,D ; WE HAVE DONE ONE SECTOR |
|
|
|
JR Z,MD_FWRI1 |
|
|
|
; |
|
|
|
POP AF |
|
|
|
JP HBX_BNKSEL ; RETURN TO ORIGINAL BANK WHICH IS OUR RAM BIOS COPY |
|
|
|
; |
|
|
|
MD_FEND .EQU $ |
|
|
|
|