diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index b644013b..f08f39ba 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -315,7 +315,9 @@ MD_RDSECF: ; CALLED FROM MD_RW ; WHICH WAS SETUP BY MD_IOSETUPF ; 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: 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 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 - 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 RET NZ ; RETURN IF ERROR ; @@ -405,7 +411,9 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER POP HL ; 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 ; @@ -647,7 +655,9 @@ FF_PROBE: LD A,'=' ; NUMBER CALL COUT #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 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 CALL FF_CALCA ; GET BANK AND SECTOR DATA IN BC ; @@ -817,7 +829,6 @@ FF_CALCA: ;====================================================================== ; IDENTIFY FLASH CHIP. ; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS -; CREATE A CODE BUFFER IN HIGH MEMORY AREA ; COPY FLASH CODE TO CODE BUFFER ; CALL RELOCATED FLASH IDENTITY CODE ; RESTORE STACK @@ -829,12 +840,12 @@ FF_CALCA: ; 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 @@ -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. ; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS -; CREATE A CODE BUFFER IN HIGH MEMORY AREA ; COPY FLASH CODE TO CODE BUFFER ; CALL RELOCATED FLASH ERASE CODE ; 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 ;====================================================================== ; -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. @@ -984,7 +994,6 @@ MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; ; SET ADDRESS TO START OF SECTOR ; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS -; CREATE A CODE BUFFER IN HIGH MEMORY AREA ; COPY FLASH CODE TO CODE BUFFER ; CALL RELOCATED FLASH READ SECTOR CODE ; 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 ;====================================================================== ; -MD_FREAD: - PUSH HL - PUSH DE +;MD_FREAD: +; PUSH HL +; PUSH DE ; ; LD L,0 ; CHANGE ADDRESS ; LD A,H ; TO SECTOR BOUNDARY ; AND $F0 ; BY MASKING OFF ; 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. ; @@ -1065,7 +1074,6 @@ MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; ; SET ADDRESS TO START OF SECTOR ; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS -; CREATE A CODE BUFFER IN HIGH MEMORY AREA ; COPY FLASH CODE TO CODE BUFFER ; CALL RELOCATED FLASH WRITE SECTOR CODE ; 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 ;====================================================================== ; -MD_FWRIT: - PUSH HL - PUSH DE +;MD_FWRIT: +; PUSH HL +; PUSH DE ; ; LD L,0 ; CHANGE ADDRESS ; LD A,H ; TO SECTOR BOUNDARY ; AND $F0 ; BY MASKING OFF ; 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.