Browse Source

Update md.asm

Add some flash read / write hooks for flash
pull/160/head
b1ackmai1er 5 years ago
parent
commit
65d2445237
  1. 30
      Source/HBIOS/md.asm

30
Source/HBIOS/md.asm

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

Loading…
Cancel
Save