Browse Source

Update md.asm

inline calls to flash code
pull/164/head
b1ackmai1er 5 years ago
parent
commit
cc970afc30
  1. 70
      Source/HBIOS/md.asm

70
Source/HBIOS/md.asm

@ -315,7 +315,9 @@ MD_RDSECF: ; CALLED FROM MD_RW
; WHICH WAS SETUP BY MD_IOSETUPF ; WHICH WAS SETUP BY MD_IOSETUPF
; ;
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS
CALL MD_FREAD ; READ 4K SECTOR
LD BC,MD_FREAD_R
CALL FF_FNCALL
; CALL MD_FREAD ; READ 4K SECTOR
; ;
MD_SECM: MD_SECM:
LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK
@ -375,10 +377,14 @@ MD_WRSECF: ; CALLED FROM MD_RW
LD (MD_LBA4K),BC ; SAVE 4K LBA LD (MD_LBA4K),BC ; SAVE 4K LBA
; ;
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS
CALL MD_FREAD ; READ 4K SECTOR
LD BC,MD_FREAD_R
CALL FF_FNCALL
; CALL MD_FREAD ; READ 4K SECTOR
; ;
MD_SECM1: ; DESIRED SECTOR IS IN BUFFER MD_SECM1: ; DESIRED SECTOR IS IN BUFFER
CALL MD_FERAS ; ERASE 4K SECTOR
LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL
CALL FF_FNCALL ; EXECUTE
; CALL MD_FERAS ; ERASE 4K SECTOR
OR A OR A
RET NZ ; RETURN IF ERROR RET NZ ; RETURN IF ERROR
; ;
@ -405,7 +411,9 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER
POP HL POP HL
; ;
LD IX,MD_F4KBUF ; WRITE THE SECTOR LD IX,MD_F4KBUF ; WRITE THE SECTOR
CALL MD_FWRIT
LD BC,MD_FWRIT_R ; PUT ROUTINE TO CALL
CALL FF_FNCALL ; EXECUTE
; CALL MD_FWRIT
; ;
XOR A XOR A
; ;
@ -647,7 +655,9 @@ FF_PROBE:
LD A,'=' ; NUMBER LD A,'=' ; NUMBER
CALL COUT CALL COUT
#ENDIF #ENDIF
CALL MD_FIDENT ; GET ID AT THIS ADDRESS
; CALL MD_FIDENT ; GET ID AT THIS ADDRESS
LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL
CALL FF_FNCALL ; EXECUTE
PUSH HL PUSH HL
LD HL,MD_TGTDEV ; IF WE MATCH WITH LD HL,MD_TGTDEV ; IF WE MATCH WITH
@ -732,7 +742,9 @@ FF_NXT2:
; ;
;====================================================================== ;======================================================================
; ;
FF_FNCALL: ; USING HBX_BUF FOR CODE AREA
FF_FNCALL:
PUSH HL ; USING HBX_BUF FOR CODE AREA
PUSH DE
PUSH BC PUSH BC
CALL FF_CALCA ; GET BANK AND SECTOR DATA IN BC CALL FF_CALCA ; GET BANK AND SECTOR DATA IN BC
; ;
@ -817,7 +829,6 @@ FF_CALCA:
;====================================================================== ;======================================================================
; IDENTIFY FLASH CHIP. ; IDENTIFY FLASH CHIP.
; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS ; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS
; CREATE A CODE BUFFER IN HIGH MEMORY AREA
; COPY FLASH CODE TO CODE BUFFER ; COPY FLASH CODE TO CODE BUFFER
; CALL RELOCATED FLASH IDENTITY CODE ; CALL RELOCATED FLASH IDENTITY CODE
; RESTORE STACK ; RESTORE STACK
@ -829,12 +840,12 @@ FF_CALCA:
; NO STATUS IS RETURNED ; NO STATUS IS RETURNED
;====================================================================== ;======================================================================
; ;
MD_FIDENT:
PUSH HL
PUSH DE
;MD_FIDENT:
; PUSH HL
; PUSH DE
; ;
LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL
JP FF_FNCALL ; EXECUTE
; LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL
; JP FF_FNCALL ; EXECUTE
; ;
;====================================================================== ;======================================================================
; FLASH IDENTIFY ; FLASH IDENTIFY
@ -887,7 +898,6 @@ MD_I_SZ .EQU $-MD_FIDENT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ;
; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS. ; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS.
; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS ; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS
; CREATE A CODE BUFFER IN HIGH MEMORY AREA
; COPY FLASH CODE TO CODE BUFFER ; COPY FLASH CODE TO CODE BUFFER
; CALL RELOCATED FLASH ERASE CODE ; CALL RELOCATED FLASH ERASE CODE
; RESTORE STACK ; RESTORE STACK
@ -897,12 +907,12 @@ MD_I_SZ .EQU $-MD_FIDENT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL ; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL
;====================================================================== ;======================================================================
; ;
MD_FERAS:
PUSH HL
PUSH DE
;MD_FERAS:
; PUSH HL
; PUSH DE
; ;
LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL
JP FF_FNCALL ; EXECUTE
; LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL
; JP FF_FNCALL ; EXECUTE
; ;
;====================================================================== ;======================================================================
; ERASE FLASH SECTOR. ; ERASE FLASH SECTOR.
@ -984,7 +994,6 @@ MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ;
; SET ADDRESS TO START OF SECTOR ; SET ADDRESS TO START OF SECTOR
; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS ; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS
; CREATE A CODE BUFFER IN HIGH MEMORY AREA
; COPY FLASH CODE TO CODE BUFFER ; COPY FLASH CODE TO CODE BUFFER
; CALL RELOCATED FLASH READ SECTOR CODE ; CALL RELOCATED FLASH READ SECTOR CODE
; RESTORE STACK ; RESTORE STACK
@ -994,19 +1003,19 @@ MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ON EXIT NO STATUS IS RETURNED ; ON EXIT NO STATUS IS RETURNED
;====================================================================== ;======================================================================
; ;
MD_FREAD:
PUSH HL
PUSH DE
;MD_FREAD:
; PUSH HL
; PUSH DE
; ;
; LD L,0 ; CHANGE ADDRESS ; LD L,0 ; CHANGE ADDRESS
; LD A,H ; TO SECTOR BOUNDARY ; LD A,H ; TO SECTOR BOUNDARY
; AND $F0 ; BY MASKING OFF ; AND $F0 ; BY MASKING OFF
; LD H,A ; LOWER 12 BITS ; LD H,A ; LOWER 12 BITS
; ;
LD BC,MD_FREAD_R ; PUT ROUTINE TO CALL
JP FF_FNCALL ; EXECUTE
; LD BC,MD_FREAD_R ; PUT ROUTINE TO CALL
; JP FF_FNCALL ; EXECUTE
; ;
RET
; RET
;====================================================================== ;======================================================================
; FLASH READ SECTOR. ; FLASH READ SECTOR.
; ;
@ -1065,7 +1074,6 @@ MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ;
; SET ADDRESS TO START OF SECTOR ; SET ADDRESS TO START OF SECTOR
; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS ; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS
; CREATE A CODE BUFFER IN HIGH MEMORY AREA
; COPY FLASH CODE TO CODE BUFFER ; COPY FLASH CODE TO CODE BUFFER
; CALL RELOCATED FLASH WRITE SECTOR CODE ; CALL RELOCATED FLASH WRITE SECTOR CODE
; RESTORE STACK ; RESTORE STACK
@ -1075,17 +1083,17 @@ MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED
; ON EXIT NO STATUS IS RETURNED ; ON EXIT NO STATUS IS RETURNED
;====================================================================== ;======================================================================
; ;
MD_FWRIT:
PUSH HL
PUSH DE
;MD_FWRIT:
; PUSH HL
; PUSH DE
; ;
; LD L,0 ; CHANGE ADDRESS ; LD L,0 ; CHANGE ADDRESS
; LD A,H ; TO SECTOR BOUNDARY ; LD A,H ; TO SECTOR BOUNDARY
; AND $F0 ; BY MASKING OFF ; AND $F0 ; BY MASKING OFF
; LD H,A ; LOWER 12 BITS ; LD H,A ; LOWER 12 BITS
; ;
LD BC,MD_FWRIT_R ; PUT ROUTINE TO CALL
JP FF_FNCALL ; EXECUTE
; LD BC,MD_FWRIT_R ; PUT ROUTINE TO CALL
; JP FF_FNCALL ; EXECUTE
; ;
;====================================================================== ;======================================================================
; FLASH WRITE SECTOR. ; FLASH WRITE SECTOR.

Loading…
Cancel
Save