|
|
|
@ -213,7 +213,13 @@ MD_SEEK: |
|
|
|
; |
|
|
|
MD_READ: |
|
|
|
CALL HB_DSKREAD ; HOOK HBIOS DISK READ SUPERVISOR |
|
|
|
LD BC,MD_RDSEC ; GET ADR OF SECTOR READ FUNC |
|
|
|
; |
|
|
|
LD A,(IY+MD_MID) ; GET ADR OF SECTOR READ FUNC |
|
|
|
LD BC,MD_RDSECF ; |
|
|
|
CP MID_MDFSH ; RAM / ROM = MD_RDSEC |
|
|
|
JR Z,MD_RD1 ; FLASH = MD_RDSECF |
|
|
|
LD BC,MD_RDSEC |
|
|
|
MD_RD1: |
|
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
|
JR MD_RW ; CONTINUE TO GENERIC R/W ROUTINE |
|
|
|
|
|
|
|
@ -222,12 +228,18 @@ MD_READ: |
|
|
|
; |
|
|
|
MD_WRITE: |
|
|
|
CALL HB_DSKWRITE ; HOOK HBIOS DISK WRITE SUPERVISOR |
|
|
|
LD BC,MD_WRSEC ; GET ADR OF SECTOR WRITE FUNC |
|
|
|
; |
|
|
|
LD A,(IY+MD_MID) ; GET ADR OF SECTOR WRITE FUNC |
|
|
|
LD BC,MD_WRSECF ; |
|
|
|
CP MID_MDFSH ; RAM / ROM = MD_WRSEC |
|
|
|
JR Z,MD_WR1 ; FLASH = MD_WRSECF |
|
|
|
LD BC,MD_WRSEC |
|
|
|
MD_WR1: |
|
|
|
LD (MD_RWFNADR),BC ; SAVE IT AS PENDING IO FUNC |
|
|
|
; LD A,(IY+MD_DEV) ; GET DEVICE NUMBER |
|
|
|
; OR A ; SET FLAGS TO TEST FOR ROM (UNIT 0) |
|
|
|
; JR NZ,MD_RW ; NOT ROM, SO OK TO WRITE, CONTINUE |
|
|
|
LD A,(IY+MD_MID ) ; IF THE DEVICES MEDIA |
|
|
|
LD A,(IY+MD_MID) ; IF THE DEVICES MEDIA |
|
|
|
CP MID_MDROM ; IS NOT ROM THEN WE CAN |
|
|
|
JR NZ,MD_RW ; WRITE TO IT |
|
|
|
LD E,0 ; UNIT IS READ ONLY, ZERO SECTORS WRITTEN |
|
|
|
@ -269,7 +281,13 @@ MD_RW3: |
|
|
|
OR A ; SET FLAGS BASED ON RETURN CODE |
|
|
|
RET ; AND RETURN, A HAS RETURN CODE |
|
|
|
; |
|
|
|
; READ FLASH |
|
|
|
; |
|
|
|
MD_RDSECF: |
|
|
|
CALL MD_RDSEC |
|
|
|
RET |
|
|
|
; |
|
|
|
; READ RAM / ROM |
|
|
|
; |
|
|
|
MD_RDSEC: |
|
|
|
CALL MD_IOSETUP ; SETUP FOR MEMORY COPY |
|
|
|
@ -300,7 +318,13 @@ MD_RDSEC: |
|
|
|
XOR A |
|
|
|
RET |
|
|
|
; |
|
|
|
; WRITE FLASH |
|
|
|
; |
|
|
|
MD_WRSECF: |
|
|
|
CALL MD_WRSEC |
|
|
|
RET |
|
|
|
; |
|
|
|
; WRITE RAM |
|
|
|
; |
|
|
|
MD_WRSEC: |
|
|
|
CALL MD_IOSETUP ; SETUP FOR MEMORY COPY |
|
|
|
|