From e84ab3c6bc7ac3c1840f57da64016026c582f210 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 20:05:06 +0800 Subject: [PATCH 1/7] Update md.asm minors --- Source/HBIOS/md.asm | 27 +++++++++++---------------- 1 file changed, 11 insertions(+), 16 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index ac1fd6e8..a097d35d 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -261,7 +261,13 @@ MD_RW: MD_RW1: PUSH BC ; SAVE COUNTERS LD HL,(MD_RWFNADR) ; GET PENDING IO FUNCTION ADDRESS +#IF (MDFFENABLE) + PUSH IX + CALL JPHL ; ... AND CALL IT + POP IX +#ELSE CALL JPHL ; ... AND CALL IT +#ENDIF JR NZ,MD_RW2 ; IF ERROR, SKIP INCREMENT ; INCREMENT LBA LD A,MD_LBA ; LBA OFFSET IN CFG ENTRY @@ -297,7 +303,7 @@ MD_RDSECF: ; CALLED FROM MD_RW POP HL ; BLOCK WE HAVE JR Z,MD_SECM ; IN THE BUFFER ; -MD_SECR: +;MD_SECR: ; DESIRED SECTOR ; IS NOT IN BUFFER LD (MD_LBA4K),BC ; WE WILL READ IN @@ -307,10 +313,9 @@ MD_SECR: ; ; DE:HL CONTAIN SOURCE ADDRESS ; WHICH WAS SETUP BY MD_IOSETUPF - PUSH IX +; LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS CALL MD_FREAD ; READ 4K SECTOR - POP IX ; MD_SECM: LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK @@ -332,7 +337,7 @@ MD_SECM: ; ; ON EXIT ; BC = LBA 4K BLOCK WE ARE ACCESSING -; DE:HL = MEMORY ADDRESS TO READ FROM IN FLASH +; DE:HL = MEMORY ADDRESS TO ACCESS IN FLASH ; MD_IOSETUPF: LD L,(IY+MD_LBA+0) ; HL := LOW WORD OF LBA @@ -369,15 +374,11 @@ MD_WRSECF: ; CALLED FROM MD_RW ; LD (MD_LBA4K),BC ; SAVE 4K LBA ; - PUSH IX LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS CALL MD_FREAD ; READ 4K SECTOR - POP IX ; MD_SECM1: ; DESIRED SECTOR IS IN BUFFER - PUSH IX CALL MD_FERAS ; ERASE 4K SECTOR - POP IX OR A RET NZ ; RETURN IF ERROR ; @@ -403,10 +404,8 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER POP DE POP HL ; - PUSH IX LD IX,MD_F4KBUF ; WRITE THE SECTOR CALL MD_FWRIT - POP IX ; XOR A ; @@ -651,15 +650,13 @@ FF_PROBE: CALL MD_FIDENT ; GET ID AT THIS ADDRESS PUSH HL -; PUSH DE LD HL,MD_TGTDEV ; IF WE MATCH WITH XOR A ; A NON 39SF040 SBC HL,BC ; CHIP SET THE LD A,(MD_FFSEN) ; R/W FLAG TO R/O OR H - OR L - LD (MD_FFSEN),A ; A NON ZERO VALUE -; POP DE ; MEANS WE CAN'T + OR L ; A NON ZERO VALUE + LD (MD_FFSEN),A ; MEANS WE CAN'T POP HL ; ENABLE FLASH WRITING #IF (MD_FVBS==1) CALL MD_LAND ; LOOKUP AND DISPLAY @@ -693,8 +690,6 @@ MD_LAND: ; #IF (MD_FDBG==1) PRTS(" ID:$") -; LD H,C -; LD L,B CALL PRTHEXWORD ; DISPLAY FLASH ID CALL PC_SPACE #ENDIF From 3297906fd5c991ba497c11bbf82d0e403a58390d Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 20:34:49 +0800 Subject: [PATCH 2/7] Update md.asm minors --- Source/HBIOS/md.asm | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index a097d35d..0c2cb150 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -733,9 +733,10 @@ FF_NXT2: ;====================================================================== ; FF_FNCALL: ; USING HBX_BUF FOR CODE AREA - CALL FF_CALCA ; GET BANK AND SECTOR DATA IN IY + CALL FF_CALCA ; GET BANK AND SECTOR DATA IN BC ; POP HL ; GET ROUTINE TO CALL + PUSH BC ; LD DE,HBX_BUF ; EXECUTE / START ADDRESS LD BC,HBX_BUFSIZ ; MAX. CODE SIZE POSSIBLE @@ -744,8 +745,7 @@ FF_FNCALL: ; USING HBX_BUF FOR CODE AREA LD D,B ; PRESET DE TO ZERO TO REDUCE LD E,B ; CODE SIZE IN RELOCATABLE CODE ; - PUSH IY ; PUT BANK AND SECTOR - POP BC ; DATA IN BC + POP BC ; PUT BANK AND SECTOR DATA IN BC ; #IF (MD_FDBG==1) CALL PRTHEXWORD @@ -768,15 +768,14 @@ FF_FNCALL: ; USING HBX_BUF FOR CODE AREA LD A,C ; RETURN WITH STATUS IN A POP DE POP HL - POP IY RET ; RETURN TO MD_READF, MD_WRITEF ; ;====================================================================== ; CALCULATE BANK AND ADDRESS DATA FROM MEMORY ADDRESS ; ; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS. -; ON EXIT I,B CONTAINS BANK SELECT BYTE -; Y,C CONTAINS HIGH BYTE OF SECTOR ADDRESS +; ON EXIT B CONTAINS BANK SELECT BYTE +; C CONTAINS HIGH BYTE OF SECTOR ADDRESS ; A CONTAINS CURRENT BANK HB_CURBNK ; ; DDDDDDDDEEEEEEEE HHHHHHHHLLLLLLLL @@ -804,9 +803,6 @@ FF_CALCA: RRA ; ADDRESS THAT GETS WRITTEN AND $70 ; TO BANK SELECT PORT LD C,A -; - PUSH BC - POP IY ; #IF (MD_FDBG==1) CALL PRTHEXWORD ; DISPLAY BANK AND @@ -833,7 +829,6 @@ FF_CALCA: ;====================================================================== ; MD_FIDENT: - PUSH IY PUSH HL PUSH DE ; @@ -905,7 +900,6 @@ MD_I_SZ .EQU $-MD_FIDENT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ;====================================================================== ; MD_FERAS: - PUSH IY PUSH HL PUSH DE ; @@ -1005,7 +999,6 @@ MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ;====================================================================== ; MD_FREAD: - PUSH IY PUSH HL PUSH DE ; @@ -1089,7 +1082,6 @@ MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ;====================================================================== ; MD_FWRIT: - PUSH IY PUSH HL PUSH DE ; From ebaef4c6e3848ecb8bc0b1a657460bc75f101f64 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 21:04:40 +0800 Subject: [PATCH 3/7] Update md.asm minors --- Source/HBIOS/md.asm | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 0c2cb150..673676bb 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -733,6 +733,7 @@ FF_NXT2: ;====================================================================== ; FF_FNCALL: ; USING HBX_BUF FOR CODE AREA + PUSH BC CALL FF_CALCA ; GET BANK AND SECTOR DATA IN BC ; POP HL ; GET ROUTINE TO CALL @@ -832,10 +833,7 @@ MD_FIDENT: PUSH HL PUSH DE ; - PUSH HL ; SAVE ADDRESS INFO - LD HL,MD_FIDENT_R ; PUT ROUTINE TO CALL - EX (SP),HL ; ON THE STACK -; + LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL JP FF_FNCALL ; EXECUTE ; ;====================================================================== @@ -903,9 +901,7 @@ MD_FERAS: PUSH HL PUSH DE ; - PUSH HL ; SAVE ADDRESS INFO - LD HL,MD_FERAS_R ; PUT ROUTINE TO CALL - EX (SP),HL ; ON THE STACK + LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL JP FF_FNCALL ; EXECUTE ; ;====================================================================== @@ -1007,9 +1003,7 @@ MD_FREAD: AND $F0 ; BY MASKING OFF LD H,A ; LOWER 12 BITS ; - PUSH HL ; SAVE ADDRESS INFO - LD HL,MD_FREAD_R ; PUT ROUTINE TO CALL - EX (SP),HL ; ON THE STACK + LD BC,MD_FREAD_R ; PUT ROUTINE TO CALL JP FF_FNCALL ; EXECUTE ; RET @@ -1090,9 +1084,7 @@ MD_FWRIT: AND $F0 ; BY MASKING OFF LD H,A ; LOWER 12 BITS ; - PUSH HL ; SAVE ADDRESS INFO - LD HL,MD_FWRIT_R ; PUT ROUTINE TO CALL - EX (SP),HL ; ON THE STACK + LD BC,MD_FWRIT_R ; PUT ROUTINE TO CALL JP FF_FNCALL ; EXECUTE ; ;====================================================================== From 07ed3f976e381fbd10e04e4fe91ae7d42fd663b0 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 21:14:43 +0800 Subject: [PATCH 4/7] Update md.asm minors --- Source/HBIOS/md.asm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 673676bb..b644013b 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -998,10 +998,10 @@ 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 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 @@ -1079,10 +1079,10 @@ 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 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 From cc970afc30a1a2ce37ce852b27990f7128bcfcfc Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 22:11:57 +0800 Subject: [PATCH 5/7] Update md.asm inline calls to flash code --- Source/HBIOS/md.asm | 70 +++++++++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 31 deletions(-) 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. From e415afa5d03748309182521111be421e060ca297 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 22:26:35 +0800 Subject: [PATCH 6/7] Update md.asm cleanup after inlining --- Source/HBIOS/md.asm | 65 +++++++-------------------------------------- 1 file changed, 9 insertions(+), 56 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index f08f39ba..0db43b10 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -315,9 +315,8 @@ MD_RDSECF: ; CALLED FROM MD_RW ; WHICH WAS SETUP BY MD_IOSETUPF ; LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS - LD BC,MD_FREAD_R - CALL FF_FNCALL -; CALL MD_FREAD ; READ 4K SECTOR + LD BC,MD_FREAD_R ; PUT ROUTINE TO CALL + CALL FF_FNCALL ; EXECUTE: READ 4K SECTOR ; MD_SECM: LD A,(IY+MD_LBA+0) ; GET SECTOR WITHIN 4K BLOCK @@ -377,14 +376,12 @@ MD_WRSECF: ; CALLED FROM MD_RW LD (MD_LBA4K),BC ; SAVE 4K LBA ; LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS - LD BC,MD_FREAD_R - CALL FF_FNCALL -; CALL MD_FREAD ; READ 4K SECTOR + LD BC,MD_FREAD_R ; PUT ROUTINE TO CALL + CALL FF_FNCALL ; EXECUTE: READ 4K SECTOR ; MD_SECM1: ; DESIRED SECTOR IS IN BUFFER LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL - CALL FF_FNCALL ; EXECUTE -; CALL MD_FERAS ; ERASE 4K SECTOR + CALL FF_FNCALL ; EXECUTE: ERASE 4K SECTOR OR A RET NZ ; RETURN IF ERROR ; @@ -410,10 +407,9 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER POP DE POP HL ; - LD IX,MD_F4KBUF ; WRITE THE SECTOR + LD IX,MD_F4KBUF ; SET SOURCE ADDRESS LD BC,MD_FWRIT_R ; PUT ROUTINE TO CALL - CALL FF_FNCALL ; EXECUTE -; CALL MD_FWRIT + CALL FF_FNCALL ; EXECUTE: WRITE 4K SECTOR ; XOR A ; @@ -655,9 +651,8 @@ FF_PROBE: LD A,'=' ; NUMBER CALL COUT #ENDIF -; CALL MD_FIDENT ; GET ID AT THIS ADDRESS LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL - CALL FF_FNCALL ; EXECUTE + CALL FF_FNCALL ; EXECUTE: IDENTIFY FLASH CHIP PUSH HL LD HL,MD_TGTDEV ; IF WE MATCH WITH @@ -738,6 +733,7 @@ FF_NXT2: #ENDIF RET ;====================================================================== +; ;COMMON FUNCTION CALL ; ;====================================================================== @@ -839,14 +835,6 @@ FF_CALCA: ; ON EXIT BC CONTAINS THE CHIP ID BYTES. ; NO STATUS IS RETURNED ;====================================================================== -; -;MD_FIDENT: -; PUSH HL -; PUSH DE -; -; LD BC,MD_FIDENT_R ; PUT ROUTINE TO CALL -; JP FF_FNCALL ; EXECUTE -; ;====================================================================== ; FLASH IDENTIFY ; SELECT THE APPROPRIATE BANK / ADDRESS @@ -906,14 +894,6 @@ MD_I_SZ .EQU $-MD_FIDENT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; ON ENTRY DE:HL POINTS TO AN ADDRESS IDENTIFYING THE CHIP ; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL ;====================================================================== -; -;MD_FERAS: -; PUSH HL -; PUSH DE -; -; LD BC,MD_FERAS_R ; PUT ROUTINE TO CALL -; JP FF_FNCALL ; EXECUTE -; ;====================================================================== ; ERASE FLASH SECTOR. ; @@ -1002,20 +982,6 @@ MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; IX POINTS TO WHERE TO SAVE DATA ; ON EXIT NO STATUS IS RETURNED ;====================================================================== -; -;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 -; -; RET ;====================================================================== ; FLASH READ SECTOR. ; @@ -1082,19 +1048,6 @@ MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; IX POINTS TO DATA TO BE WRITTEN ; ON EXIT NO STATUS IS RETURNED ;====================================================================== -; -;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 -; ;====================================================================== ; FLASH WRITE SECTOR. ; From ef82f9ef713a6d1dd6fb982dbc8fa6130afb5d86 Mon Sep 17 00:00:00 2001 From: b1ackmai1er Date: Wed, 16 Dec 2020 22:53:34 +0800 Subject: [PATCH 7/7] Update md.asm update code comments after inlining --- Source/HBIOS/md.asm | 81 +++++++++++++++------------------------------ 1 file changed, 27 insertions(+), 54 deletions(-) diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index 0db43b10..75e1dd6e 100644 --- a/Source/HBIOS/md.asm +++ b/Source/HBIOS/md.asm @@ -732,10 +732,35 @@ FF_NXT2: CALL PRTSTR ; AFTER SEARCH DISPLAY THE RESULT #ENDIF RET -;====================================================================== ; -;COMMON FUNCTION CALL +;====================================================================== +; COMMON FUNCTION CALL FOR: +; +; MD_FIDENT_R - IDENTIFY FLASH CHIP +; ON ENTRY DE:HL POINTS TO AN ADDRESS WITH THE ADDRESS RANGE OF THE +; CHIP TO BE IDENTIFIED. +; ON EXIT BC CONTAINS THE CHIP ID BYTES. +; A NO STATUS IS RETURNED +; +; MD_FERAS_R - ERASE FLASH SECTOR +; ON ENTRY DE:HL POINTS TO A 32 BIT MEMORY ADDRESS. +; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL +; +; MD_FREAD_R - READ FLASH SECTOR +; ON ENTRY DE:HL POINTS TO A 32 BIT MEMORY ADDRESS. +; IX POINTS TO WHERE TO SAVE DATA +; ON EXIT A NO STATUS IS RETURNED + +; MD_FWRIT_R - WRITE FLASH SECTOR +; ON ENTRY DE:HL POINTS TO A 32 BIT MEMORY ADDRESS. +; IX POINTS TO DATA TO BE WRITTEN +; ON EXIT A NO STATUS IS RETURNED ; +; GENERAL OPERATION: +; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS +; COPY FLASH CODE TO CODE BUFFER +; CALL RELOCATED FLASH CODE +; RETURN WITH ID CODE. ;====================================================================== ; FF_FNCALL: @@ -823,19 +848,6 @@ FF_CALCA: RET ; ;====================================================================== -; IDENTIFY FLASH CHIP. -; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS -; COPY FLASH CODE TO CODE BUFFER -; CALL RELOCATED FLASH IDENTITY CODE -; RESTORE STACK -; RETURN WITH ID CODE. -; -; ON ENTRY DE:HL POINTS TO AN ADDRESS WITH THE ADDRESS RANGE OF THE -; CHIP TO BE IDENTIFIED. -; ON EXIT BC CONTAINS THE CHIP ID BYTES. -; NO STATUS IS RETURNED -;====================================================================== -;====================================================================== ; FLASH IDENTIFY ; SELECT THE APPROPRIATE BANK / ADDRESS ; ISSUE ID COMMAND @@ -880,20 +892,7 @@ MD_FIDENT_R: ; THIS CODE GETS RELOCATED TO HIGH MEMORY .FILL 8,0 ; STACK SPACE MD_FIST .DW 0 ; SAVE STACK MD_I_SZ .EQU $-MD_FIDENT_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED - -;====================================================================== -; ERASE FLASH SECTOR ; -; ON ENTRY DE:HL CONTAINS 32 BIT MEMORY ADDRESS. -; CALCULATE BANK AND ADDRESS DATA FROM ENTRY ADDRESS -; COPY FLASH CODE TO CODE BUFFER -; CALL RELOCATED FLASH ERASE CODE -; RESTORE STACK -; RETURN WITH STATUS CODE. -; -; ON ENTRY DE:HL POINTS TO AN ADDRESS IDENTIFYING THE CHIP -; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL -;====================================================================== ;====================================================================== ; ERASE FLASH SECTOR. ; @@ -970,19 +969,6 @@ FF_WT6: POP AF ; RETURN TO ORIGINAL BANK MD_S_SZ .EQU $-MD_FERAS_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; ;====================================================================== -; READ FLASH SECTOR OF 4096 BYTES -; -; SET ADDRESS TO START OF SECTOR -; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS -; COPY FLASH CODE TO CODE BUFFER -; CALL RELOCATED FLASH READ SECTOR CODE -; RESTORE STACK -; -; ON ENTRY DE:HL POINTS TO A 32 BIT MEMORY ADDRESS. -; IX POINTS TO WHERE TO SAVE DATA -; ON EXIT NO STATUS IS RETURNED -;====================================================================== -;====================================================================== ; FLASH READ SECTOR. ; ; SELECT THE APPROPRIATE BANK / ADDRESS @@ -1036,19 +1022,6 @@ MD_FRST .DW 0 ; SAVE STACK MD_R_SZ .EQU $-MD_FREAD_R ; SIZE OF RELOCATABLE CODE BUFFER REQUIRED ; ;====================================================================== -; WRITE FLASH SECTOR OF 4096 BYTES -; -; SET ADDRESS TO START OF SECTOR -; CALCULATE BANK AND ADDRESS DATA FROM SECTOR START ADDRESS -; COPY FLASH CODE TO CODE BUFFER -; CALL RELOCATED FLASH WRITE SECTOR CODE -; RESTORE STACK -; -; ON ENTRY DE:HL POINTS TO A 32 BIT MEMORY ADDRESS. -; IX POINTS TO DATA TO BE WRITTEN -; ON EXIT NO STATUS IS RETURNED -;====================================================================== -;====================================================================== ; FLASH WRITE SECTOR. ; ; SELECT THE APPROPRIATE BANK / ADDRESS