|
|
|
@ -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. |
|
|
|
|