|
|
@ -53,7 +53,9 @@ MD_CFGTBL: |
|
|
; |
|
|
; |
|
|
; |
|
|
; |
|
|
MD_INIT: |
|
|
MD_INIT: |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
CALL MD_FINIT ; PROBE FLASH CAPABILITY |
|
|
CALL MD_FINIT ; PROBE FLASH CAPABILITY |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
|
|
|
CALL NEWLINE ; FORMATTING |
|
|
CALL NEWLINE ; FORMATTING |
|
|
PRTS("MD: UNITS=2 $") |
|
|
PRTS("MD: UNITS=2 $") |
|
|
@ -67,12 +69,14 @@ MD_INIT: |
|
|
; |
|
|
; |
|
|
; SETUP THE DIO TABLE ENTRIES |
|
|
; SETUP THE DIO TABLE ENTRIES |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
LD A,(MD_FFSEN) ; IF FLASH |
|
|
LD A,(MD_FFSEN) ; IF FLASH |
|
|
OR A ; FILESYSTEM |
|
|
OR A ; FILESYSTEM |
|
|
JR NZ,MD_IN1 ; CAPABLE, |
|
|
JR NZ,MD_IN1 ; CAPABLE, |
|
|
LD A,MD_AFSH ; UPDATE ROM DIO |
|
|
LD A,MD_AFSH ; UPDATE ROM DIO |
|
|
LD (MD_CFGTBL + MD_CFGSIZ + MD_ATTRIB),A |
|
|
LD (MD_CFGTBL + MD_CFGSIZ + MD_ATTRIB),A |
|
|
MD_IN1: |
|
|
MD_IN1: |
|
|
|
|
|
#ENDIF |
|
|
LD BC,MD_FNTBL |
|
|
LD BC,MD_FNTBL |
|
|
LD DE,MD_CFGTBL |
|
|
LD DE,MD_CFGTBL |
|
|
PUSH BC |
|
|
PUSH BC |
|
|
@ -211,10 +215,12 @@ MD_READ: |
|
|
; |
|
|
; |
|
|
; HL POINTS TO HB_WRKBUF |
|
|
; HL POINTS TO HB_WRKBUF |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
LD A,(IY+MD_ATTRIB) ; GET ADR OF SECTOR READ FUNC |
|
|
LD A,(IY+MD_ATTRIB) ; GET ADR OF SECTOR READ FUNC |
|
|
LD BC,MD_RDSECF ; |
|
|
LD BC,MD_RDSECF ; |
|
|
CP MD_AFSH ; RAM / ROM = MD_RDSEC |
|
|
CP MD_AFSH ; RAM / ROM = MD_RDSEC |
|
|
JR Z,MD_RD1 ; FLASH = MD_RDSECF |
|
|
JR Z,MD_RD1 ; FLASH = MD_RDSECF |
|
|
|
|
|
#ENDIF |
|
|
LD BC,MD_RDSEC |
|
|
LD BC,MD_RDSEC |
|
|
MD_RD1: |
|
|
MD_RD1: |
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
@ -225,12 +231,15 @@ MD_RD1: |
|
|
MD_WRITE: |
|
|
MD_WRITE: |
|
|
CALL HB_DSKWRITE ; HOOK HBIOS DISK WRITE SUPERVISOR |
|
|
CALL HB_DSKWRITE ; HOOK HBIOS DISK WRITE SUPERVISOR |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
LD A,(IY+MD_ATTRIB) ; GET ADR OF SECTOR WRITE FUNC |
|
|
LD A,(IY+MD_ATTRIB) ; GET ADR OF SECTOR WRITE FUNC |
|
|
LD BC,MD_WRSECF ; |
|
|
LD BC,MD_WRSECF ; |
|
|
CP MD_AFSH ; RAM / ROM = MD_WRSEC |
|
|
CP MD_AFSH ; RAM / ROM = MD_WRSEC |
|
|
JR Z,MD_WR1 ; FLASH = MD_WRSECF |
|
|
JR Z,MD_WR1 ; FLASH = MD_WRSECF |
|
|
|
|
|
#ENDIF |
|
|
LD BC,MD_WRSEC |
|
|
LD BC,MD_WRSEC |
|
|
MD_WR1: |
|
|
MD_WR1: |
|
|
|
|
|
|
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
LD A,(IY+MD_ATTRIB) ; IF THE DEVICES ATTRIBUTE |
|
|
LD A,(IY+MD_ATTRIB) ; IF THE DEVICES ATTRIBUTE |
|
|
CP MD_AROM ; IS NOT ROM THEN WE CAN |
|
|
CP MD_AROM ; IS NOT ROM THEN WE CAN |
|
|
@ -276,6 +285,7 @@ MD_RW3: |
|
|
; |
|
|
; |
|
|
; READ FLASH |
|
|
; READ FLASH |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
MD_RDSECF: ; CALLED FROM MD_RW |
|
|
MD_RDSECF: ; CALLED FROM MD_RW |
|
|
; |
|
|
; |
|
|
CALL MD_IOSETUPF ; SETUP SOURCE ADDRESS |
|
|
CALL MD_IOSETUPF ; SETUP SOURCE ADDRESS |
|
|
@ -344,39 +354,6 @@ MD_IOSETUPF: |
|
|
; |
|
|
; |
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
MD_LBA4K .DW $FFFF ; LBA OF CURRENT SECTOR |
|
|
|
|
|
; |
|
|
|
|
|
; |
|
|
|
|
|
; READ RAM / ROM |
|
|
|
|
|
; |
|
|
|
|
|
MD_RDSEC: |
|
|
|
|
|
CALL MD_IOSETUP ; SETUP FOR MEMORY COPY |
|
|
|
|
|
#IF (MDTRACE >= 2) |
|
|
|
|
|
LD (MD_SRC),HL |
|
|
|
|
|
LD (MD_DST),DE |
|
|
|
|
|
LD (MD_LEN),BC |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
PUSH BC |
|
|
|
|
|
LD C,A ; SOURCE BANK |
|
|
|
|
|
LD B,BID_BIOS ; DESTINATION BANK IS RAM BANK 1 (HBIOS) |
|
|
|
|
|
#IF (MDTRACE >= 2) |
|
|
|
|
|
LD (MD_SRCBNK),BC |
|
|
|
|
|
CALL MD_PRT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
LD A,C ; GET SOURCE BANK |
|
|
|
|
|
LD (HB_SRCBNK),A ; SET IT |
|
|
|
|
|
LD A,B ; GET DESTINATION BANK |
|
|
|
|
|
LD (HB_DSTBNK),A ; SET IT |
|
|
|
|
|
POP BC |
|
|
|
|
|
#IF (INTMODE == 1) |
|
|
|
|
|
DI |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
CALL HB_BNKCPY ; DO THE INTERBANK COPY |
|
|
|
|
|
#IF (INTMODE == 1) |
|
|
|
|
|
EI |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
XOR A |
|
|
|
|
|
RET |
|
|
|
|
|
; |
|
|
; |
|
|
; WRITE FLASH |
|
|
; WRITE FLASH |
|
|
; |
|
|
; |
|
|
@ -385,26 +362,22 @@ MD_WRSECF: ; CALLED FROM MD_RW |
|
|
; |
|
|
; |
|
|
PUSH HL ; IS THE SECTOR |
|
|
PUSH HL ; IS THE SECTOR |
|
|
LD HL,(MD_LBA4K) ; WE WANT TO |
|
|
LD HL,(MD_LBA4K) ; WE WANT TO |
|
|
XOR A ; WRITE ALREADY |
|
|
|
|
|
|
|
|
XOR A ; WRITE ALREADY |
|
|
SBC HL,BC ; IN THE 4K |
|
|
SBC HL,BC ; IN THE 4K |
|
|
POP HL ; BLOCK WE HAVE |
|
|
POP HL ; BLOCK WE HAVE |
|
|
JR Z,MD_SECM1 ; IN THE BUFFER |
|
|
JR Z,MD_SECM1 ; IN THE BUFFER |
|
|
; |
|
|
; |
|
|
LD (MD_LBA4K),BC ; SAVE 4K LBA |
|
|
LD (MD_LBA4K),BC ; SAVE 4K LBA |
|
|
; |
|
|
; |
|
|
CALL PC_COLON |
|
|
|
|
|
PUSH IX |
|
|
PUSH IX |
|
|
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS |
|
|
LD IX,MD_F4KBUF ; SET DESTINATION ADDRESS |
|
|
CALL MD_FREAD ; READ 4K SECTOR |
|
|
CALL MD_FREAD ; READ 4K SECTOR |
|
|
POP IX |
|
|
POP IX |
|
|
CALL PC_COLON |
|
|
|
|
|
; |
|
|
; |
|
|
MD_SECM1: ; DESIRED SECTOR IS IN BUFFER |
|
|
MD_SECM1: ; DESIRED SECTOR IS IN BUFFER |
|
|
CALL PC_ASTERISK |
|
|
|
|
|
PUSH IX |
|
|
PUSH IX |
|
|
CALL MD_FERAS ; ERASE 4K SECTOR |
|
|
CALL MD_FERAS ; ERASE 4K SECTOR |
|
|
POP IX |
|
|
POP IX |
|
|
CALL PC_ASTERISK |
|
|
|
|
|
; |
|
|
; |
|
|
PUSH HL |
|
|
PUSH HL |
|
|
PUSH DE |
|
|
PUSH DE |
|
|
@ -428,19 +401,49 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER |
|
|
POP DE |
|
|
POP DE |
|
|
POP HL |
|
|
POP HL |
|
|
; |
|
|
; |
|
|
CALL PC_COLON |
|
|
|
|
|
PUSH IX |
|
|
PUSH IX |
|
|
LD IX,MD_F4KBUF ; WRITE THE SECTOR |
|
|
LD IX,MD_F4KBUF ; WRITE THE SECTOR |
|
|
CALL MD_FWRIT |
|
|
CALL MD_FWRIT |
|
|
POP IX |
|
|
POP IX |
|
|
CALL PC_COLON |
|
|
|
|
|
; |
|
|
|
|
|
PRTS("wf$"); |
|
|
|
|
|
|
|
|
|
|
|
XOR A |
|
|
XOR A |
|
|
|
|
|
|
|
|
RET |
|
|
RET |
|
|
; |
|
|
; |
|
|
|
|
|
MD_LBA4K .DW $FFFF ; LBA OF CURRENT SECTOR |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
; READ RAM / ROM |
|
|
|
|
|
; |
|
|
|
|
|
MD_RDSEC: |
|
|
|
|
|
CALL MD_IOSETUP ; SETUP FOR MEMORY COPY |
|
|
|
|
|
#IF (MDTRACE >= 2) |
|
|
|
|
|
LD (MD_SRC),HL |
|
|
|
|
|
LD (MD_DST),DE |
|
|
|
|
|
LD (MD_LEN),BC |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
PUSH BC |
|
|
|
|
|
LD C,A ; SOURCE BANK |
|
|
|
|
|
LD B,BID_BIOS ; DESTINATION BANK IS RAM BANK 1 (HBIOS) |
|
|
|
|
|
#IF (MDTRACE >= 2) |
|
|
|
|
|
LD (MD_SRCBNK),BC |
|
|
|
|
|
CALL MD_PRT |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
LD A,C ; GET SOURCE BANK |
|
|
|
|
|
LD (HB_SRCBNK),A ; SET IT |
|
|
|
|
|
LD A,B ; GET DESTINATION BANK |
|
|
|
|
|
LD (HB_DSTBNK),A ; SET IT |
|
|
|
|
|
POP BC |
|
|
|
|
|
#IF (INTMODE == 1) |
|
|
|
|
|
DI |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
CALL HB_BNKCPY ; DO THE INTERBANK COPY |
|
|
|
|
|
#IF (INTMODE == 1) |
|
|
|
|
|
EI |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
XOR A |
|
|
|
|
|
RET |
|
|
|
|
|
; |
|
|
; WRITE RAM |
|
|
; WRITE RAM |
|
|
; |
|
|
; |
|
|
MD_WRSEC: |
|
|
MD_WRSEC: |
|
|
@ -545,12 +548,12 @@ MD_PRT: |
|
|
PUSH BC |
|
|
PUSH BC |
|
|
PUSH DE |
|
|
PUSH DE |
|
|
PUSH HL |
|
|
PUSH HL |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
CALL NEWLINE |
|
|
CALL NEWLINE |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
LD DE,MDSTR_PREFIX |
|
|
LD DE,MDSTR_PREFIX |
|
|
CALL WRITESTR |
|
|
CALL WRITESTR |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
CALL PC_SPACE |
|
|
CALL PC_SPACE |
|
|
LD DE,MDSTR_SRC |
|
|
LD DE,MDSTR_SRC |
|
|
CALL WRITESTR |
|
|
CALL WRITESTR |
|
|
@ -559,7 +562,7 @@ MD_PRT: |
|
|
CALL PC_COLON |
|
|
CALL PC_COLON |
|
|
LD BC,(MD_SRC) |
|
|
LD BC,(MD_SRC) |
|
|
CALL PRTHEXWORD |
|
|
CALL PRTHEXWORD |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
CALL PC_SPACE |
|
|
CALL PC_SPACE |
|
|
LD DE,MDSTR_DST |
|
|
LD DE,MDSTR_DST |
|
|
CALL WRITESTR |
|
|
CALL WRITESTR |
|
|
@ -568,19 +571,24 @@ MD_PRT: |
|
|
CALL PC_COLON |
|
|
CALL PC_COLON |
|
|
LD BC,(MD_DST) |
|
|
LD BC,(MD_DST) |
|
|
CALL PRTHEXWORD |
|
|
CALL PRTHEXWORD |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
CALL PC_SPACE |
|
|
CALL PC_SPACE |
|
|
LD DE,MDSTR_LEN |
|
|
LD DE,MDSTR_LEN |
|
|
CALL WRITESTR |
|
|
CALL WRITESTR |
|
|
LD BC,(MD_LEN) |
|
|
LD BC,(MD_LEN) |
|
|
CALL PRTHEXWORD |
|
|
CALL PRTHEXWORD |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
POP HL |
|
|
POP HL |
|
|
POP DE |
|
|
POP DE |
|
|
POP BC |
|
|
POP BC |
|
|
POP AF |
|
|
POP AF |
|
|
|
|
|
|
|
|
|
|
|
; |
|
|
RET |
|
|
RET |
|
|
|
|
|
; |
|
|
|
|
|
MDSTR_PREFIX .TEXT "MD:$" |
|
|
|
|
|
MDSTR_SRC .TEXT "SRC=$" |
|
|
|
|
|
MDSTR_DST .TEXT "DEST=$" |
|
|
|
|
|
MDSTR_LEN .TEXT "LEN=$" |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
;================================================================================================== |
|
|
;================================================================================================== |
|
|
@ -600,6 +608,7 @@ MD_PRT: |
|
|
; |
|
|
; |
|
|
;================================================================================================== |
|
|
;================================================================================================== |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MDFFENABLE) |
|
|
FF_TGT .EQU 0BFB7H ; TARGET CHIP FOR R/W FILESYSTEM |
|
|
FF_TGT .EQU 0BFB7H ; TARGET CHIP FOR R/W FILESYSTEM |
|
|
; |
|
|
; |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
@ -610,11 +619,11 @@ FF_TGT .EQU 0BFB7H ; TARGET CHIP FOR R/W FILESYSTEM |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
MD_FINIT: |
|
|
MD_FINIT: |
|
|
|
|
|
LD A,+(ROMSIZE/512) ; DISLAY NUMBER |
|
|
#IF (MD_FVBS==1) |
|
|
#IF (MD_FVBS==1) |
|
|
CALL NEWLINE ; DISLAY NUMBER |
|
|
|
|
|
PRTS("MD: FLASH=$") ; OF UNITS |
|
|
|
|
|
LD A,+(ROMSIZE/512) ; CONFIGURED FOR. |
|
|
|
|
|
CALL PRTDECB |
|
|
|
|
|
|
|
|
CALL NEWLINE ; OF UNITS |
|
|
|
|
|
PRTS("MD: FLASH=$") |
|
|
|
|
|
CALL PRTDECB ; CONFIGURED FOR. |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
LD B,A ; NUMBER OF DEVICES TO PROBE |
|
|
LD B,A ; NUMBER OF DEVICES TO PROBE |
|
|
LD C,$00 ; START ADDRESS IS 0000:0000 IN DE:HL |
|
|
LD C,$00 ; START ADDRESS IS 0000:0000 IN DE:HL |
|
|
@ -648,7 +657,7 @@ FF_PROBE: |
|
|
; POP DE ; MEANS WE CAN'T |
|
|
; POP DE ; MEANS WE CAN'T |
|
|
POP HL ; ENABLE FLASH WRITING |
|
|
POP HL ; ENABLE FLASH WRITING |
|
|
#IF (MD_FVBS==1) |
|
|
#IF (MD_FVBS==1) |
|
|
CALL FF_LAND ; LOOKUP AND DISPLAY |
|
|
|
|
|
|
|
|
CALL MD_LAND ; LOOKUP AND DISPLAY |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
POP BC |
|
|
POP BC |
|
|
; |
|
|
; |
|
|
@ -675,7 +684,7 @@ MD_PR1: |
|
|
; ON EXIT A CONTAINS STATUS 0=SUCCESS, NZ=NOT IDENTIFIED |
|
|
; ON EXIT A CONTAINS STATUS 0=SUCCESS, NZ=NOT IDENTIFIED |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
FF_LAND: |
|
|
|
|
|
|
|
|
MD_LAND: |
|
|
; |
|
|
; |
|
|
#IF (MD_FDBG==1) |
|
|
#IF (MD_FDBG==1) |
|
|
PRTS(" ID:$") |
|
|
PRTS(" ID:$") |
|
|
@ -728,14 +737,13 @@ FF_FNCALL: ; USING HBX_BUF FOR CODE AREA |
|
|
; |
|
|
; |
|
|
POP HL ; GET ROUTINE TO CALL |
|
|
POP HL ; GET ROUTINE TO CALL |
|
|
; |
|
|
; |
|
|
LD DE,HBX_BUF ; PUT EXECUTE / START ADDRESS IN DE |
|
|
|
|
|
LD BC,HBX_BUFSIZ ; CODE SIZE REQUIRED |
|
|
|
|
|
|
|
|
LD DE,HBX_BUF ; EXECUTE / START ADDRESS |
|
|
|
|
|
LD BC,HBX_BUFSIZ ; MAX. CODE SIZE POSSIBLE |
|
|
|
|
|
LDIR ; COPY OUR RELOCATABLE CODE TO THE BUFFER |
|
|
|
|
|
; |
|
|
|
|
|
LD D,B ; PRESET DE TO ZERO TO REDUCE |
|
|
|
|
|
LD E,B ; CODE SIZE IN RELOCATABLE CODE |
|
|
; |
|
|
; |
|
|
; PUSH DE ; SAVE THE EXECUTE ADDRESS |
|
|
|
|
|
; COPY OUR RELOCATABLE |
|
|
|
|
|
LDIR ; CODE TO THE BUFFER |
|
|
|
|
|
; POP HL ; CALL OUR RELOCATABLE CODE |
|
|
|
|
|
|
|
|
|
|
|
PUSH IY ; PUT BANK AND SECTOR |
|
|
PUSH IY ; PUT BANK AND SECTOR |
|
|
POP BC ; DATA IN BC |
|
|
POP BC ; DATA IN BC |
|
|
; |
|
|
; |
|
|
@ -743,7 +751,6 @@ FF_FNCALL: ; USING HBX_BUF FOR CODE AREA |
|
|
CALL PRTHEXWORD |
|
|
CALL PRTHEXWORD |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
LD DE,0 |
|
|
|
|
|
HB_DI |
|
|
HB_DI |
|
|
CALL HBX_BUF ; EXECUTE RELOCATED CODE |
|
|
CALL HBX_BUF ; EXECUTE RELOCATED CODE |
|
|
HB_EI |
|
|
HB_EI |
|
|
@ -974,14 +981,12 @@ MD_FERAS_S |
|
|
; |
|
|
; |
|
|
LD A,$30 ; SECTOR ERASE |
|
|
LD A,$30 ; SECTOR ERASE |
|
|
LD (HL),A ; COMMAND |
|
|
LD (HL),A ; COMMAND |
|
|
; |
|
|
|
|
|
; LD DE,$0000 ; DEBUG COUNT |
|
|
|
|
|
; |
|
|
; |
|
|
LD A,(HL) ; DO TWO SUCCESSIVE READS |
|
|
LD A,(HL) ; DO TWO SUCCESSIVE READS |
|
|
FF_WT4: LD C,(HL) ; FROM THE SAME FLASH ADDRESS. |
|
|
FF_WT4: LD C,(HL) ; FROM THE SAME FLASH ADDRESS. |
|
|
XOR C ; IF THE SAME ON BOTH READS |
|
|
XOR C ; IF THE SAME ON BOTH READS |
|
|
BIT 6,A ; THEN ERASE IS COMPLETE SO EXIT. |
|
|
BIT 6,A ; THEN ERASE IS COMPLETE SO EXIT. |
|
|
; INC DE ; |
|
|
|
|
|
|
|
|
; |
|
|
JR Z,FF_WT5 ; BIT 6 = 0 IF SAME ON SUCCESSIVE READS = COMPLETE |
|
|
JR Z,FF_WT5 ; BIT 6 = 0 IF SAME ON SUCCESSIVE READS = COMPLETE |
|
|
; BIT 6 = 1 IF DIFF ON SUCCESSIVE READS = INCOMPLETE |
|
|
; BIT 6 = 1 IF DIFF ON SUCCESSIVE READS = INCOMPLETE |
|
|
; |
|
|
; |
|
|
@ -1049,6 +1054,7 @@ MD_FREAD: |
|
|
; DESTINATION BANK IS ALWAYS CURRENT BANK |
|
|
; DESTINATION BANK IS ALWAYS CURRENT BANK |
|
|
; |
|
|
; |
|
|
; ON ENTRY BC CONTAINS BANK AND SECTOR DATA |
|
|
; ON ENTRY BC CONTAINS BANK AND SECTOR DATA |
|
|
|
|
|
; DE = 0000 |
|
|
; IX POINTS TO DATA TO BE WRITTEN |
|
|
; IX POINTS TO DATA TO BE WRITTEN |
|
|
; A CONTAINS CURRENT BANK |
|
|
; A CONTAINS CURRENT BANK |
|
|
; ON EXIT NO STATUS RETURNED |
|
|
; ON EXIT NO STATUS RETURNED |
|
|
@ -1231,7 +1237,6 @@ FF_CHIP(0C2A4H,"MX29F040$ ") |
|
|
FF_T_CNT .EQU 17 |
|
|
FF_T_CNT .EQU 17 |
|
|
FF_T_SZ .EQU ($-FF_TABLE) / FF_T_CNT |
|
|
FF_T_SZ .EQU ($-FF_TABLE) / FF_T_CNT |
|
|
MD_UNKNOWN .DB "UNKNOWN$" |
|
|
MD_UNKNOWN .DB "UNKNOWN$" |
|
|
FF_STACK: .DW 0 |
|
|
|
|
|
; |
|
|
; |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
@ -1240,26 +1245,15 @@ FF_STACK: .DW 0 |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
MD_F4KBUF .FILL 4096,$FF |
|
|
MD_F4KBUF .FILL 4096,$FF |
|
|
MD_RWFNADR .DW 0 |
|
|
|
|
|
MD_DSKBUF .DW 0 |
|
|
|
|
|
MD_SRCBNK .DB 0 |
|
|
|
|
|
MD_DSTBNK .DB 0 |
|
|
|
|
|
MD_SRC .DW 0 |
|
|
|
|
|
MD_DST .DW 0 |
|
|
|
|
|
MD_LEN .DW 0 |
|
|
|
|
|
MD_FFSEN .DB 00h ; FLASH FILES SYSTEM ENABLE |
|
|
MD_FFSEN .DB 00h ; FLASH FILES SYSTEM ENABLE |
|
|
; |
|
|
; |
|
|
MDSTR_PREFIX .TEXT "MD:$" |
|
|
|
|
|
MDSTR_SRC .TEXT "SRC=$" |
|
|
|
|
|
MDSTR_DST .TEXT "DEST=$" |
|
|
|
|
|
MDSTR_LEN .TEXT "LEN=$" |
|
|
|
|
|
; |
|
|
|
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
; RELOCATABLE CODE SPACE REQUIREMENTS CHECK |
|
|
; RELOCATABLE CODE SPACE REQUIREMENTS CHECK |
|
|
; |
|
|
; |
|
|
;====================================================================== |
|
|
;====================================================================== |
|
|
; |
|
|
; |
|
|
|
|
|
#IF (MD_FDBG==1) |
|
|
.ECHO "MD_FIDENT_R " |
|
|
.ECHO "MD_FIDENT_R " |
|
|
.ECHO MD_I_SZ |
|
|
.ECHO MD_I_SZ |
|
|
.ECHO "\n" |
|
|
.ECHO "\n" |
|
|
@ -1275,6 +1269,7 @@ MDSTR_LEN .TEXT "LEN=$" |
|
|
.ECHO "MD_FWRIT_R " |
|
|
.ECHO "MD_FWRIT_R " |
|
|
.ECHO MD_W_SZ |
|
|
.ECHO MD_W_SZ |
|
|
.ECHO "\n" |
|
|
.ECHO "\n" |
|
|
|
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
MD_CSIZE .EQU 0 |
|
|
MD_CSIZE .EQU 0 |
|
|
; |
|
|
; |
|
|
@ -1291,6 +1286,17 @@ MD_CSIZE .SET MD_I_SZ |
|
|
MD_CSIZE .SET MD_R_SZ |
|
|
MD_CSIZE .SET MD_R_SZ |
|
|
#ENDIF |
|
|
#ENDIF |
|
|
; |
|
|
; |
|
|
.ECHO "FF requires " |
|
|
|
|
|
.ECHO MD_CSIZE |
|
|
|
|
|
.ECHO " bytes high memory space.\n" |
|
|
|
|
|
|
|
|
#IF (MD_CSIZE>HBX_BUFSIZ) |
|
|
|
|
|
.ECHO "Warning: Flash code exceeds available space by " |
|
|
|
|
|
.ECHO MD_CSIZE-HBX_BUFSIZ |
|
|
|
|
|
.ECHO " bytes.\n" |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
#ENDIF |
|
|
|
|
|
; |
|
|
|
|
|
MD_RWFNADR .DW 0 |
|
|
|
|
|
MD_DSKBUF .DW 0 |
|
|
|
|
|
MD_SRCBNK .DB 0 |
|
|
|
|
|
MD_DSTBNK .DB 0 |
|
|
|
|
|
MD_SRC .DW 0 |
|
|
|
|
|
MD_DST .DW 0 |
|
|
|
|
|
MD_LEN .DW 0 |
|
|
|