mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Memory disk driver updates
Updates to disk media id's
This commit is contained in:
@@ -290,6 +290,7 @@ DPBMAP:
|
||||
.DW DPB_FD120 ; MID_FD120
|
||||
.DW DPB_FD111 ; MID_FD111
|
||||
.DW DPB_HDNEW ; MID_HDNEW (1024 DIR ENTRIES)
|
||||
.DW DPB_ROM ; MID_MDFSH
|
||||
;
|
||||
DPBCNT .EQU ($ - DPBMAP) / 2
|
||||
;
|
||||
|
||||
@@ -607,6 +607,8 @@ MID\_FD144 | 6 | 3.5" 1.44M Floppy
|
||||
MID\_FD360 | 7 | 5.25" 360K Floppy
|
||||
MID\_FD120 | 8 | 5.25" 1.2M Floppy
|
||||
MID\_FD111 | 9 | 8" 1.11M Floppy
|
||||
MID\_HDNEW | 10 | Hard Disk with 1024 Directory entries
|
||||
MID\_MDFSH | 11 | FLASH Drive
|
||||
|
||||
### Function 0x10 -- Disk Status (DIOSTATUS)
|
||||
|
||||
@@ -765,9 +767,9 @@ Bit 7: 1=Floppy, 0=Hard Disk (or similar, e.g. CF, SD, RAM)
|
||||
| Bits 1-0: Reserved
|
||||
|
||||
| If Hard Disk:
|
||||
| Bit 6: Removable\
|
||||
| Bit 6: Removable
|
||||
| Bits: 5-3: Type (0=Hard, 1=CF, 2=SD, 3=USB,
|
||||
| 4=ROM, 5=RAM, 6=RAMF, 7=Reserved)
|
||||
| 4=ROM, 5=RAM, 6=RAMF, 7=FLASH)
|
||||
| Bits 2-0: Reserved
|
||||
|
||||
Each disk device is handled by an appropriate driver (IDE, SD,
|
||||
|
||||
@@ -148,6 +148,7 @@ MID_FD360 .EQU 7
|
||||
MID_FD120 .EQU 8
|
||||
MID_FD111 .EQU 9
|
||||
MID_HDNEW .EQU 10
|
||||
MID_MDFSH .EQU 11
|
||||
;
|
||||
; CHAR DEVICE IDS
|
||||
;
|
||||
|
||||
@@ -5,6 +5,13 @@
|
||||
;
|
||||
; MD DEVICE CONFIGURATION
|
||||
;
|
||||
;
|
||||
; DISK DEVICE TYPE ID MEDIA ID ATTRIBUTE
|
||||
;--------------------------------------------------------------------------------------------------
|
||||
; 0x00 MEMORY DISK 0x02 RAM DRIVE %00101000 HD STYLE, NON-REMOVABLE, TYPE-RAM
|
||||
; 0x00 MEMORY DISK 0x01 ROM DRIVE %00100000 HD STYLE, NON-REMOVABLE, TYPE-ROM
|
||||
; 0x00 MEMORY DISK 0x0B FLASH DRIVE %00111000 HD STYLE, NON-REMOVABLE, TYPE-FLASH
|
||||
;
|
||||
MD_DEVCNT .EQU 2 ; NUMBER OF MD DEVICES SUPPORTED
|
||||
MD_CFGSIZ .EQU 8 ; SIZE OF CFG TBL ENTRIES
|
||||
;
|
||||
@@ -18,8 +25,6 @@ MD_AROM .EQU %00100000 ; ROM ATTRIBUTE
|
||||
MD_ARAM .EQU %00101000 ; RAM ATTRIBUTE
|
||||
MD_AFSH .EQU %00111000 ; FLASH ATTRIBUTE
|
||||
;
|
||||
MID_MDFS .EQU 10 ; REWRITEABLE FLASH MEDIA
|
||||
;
|
||||
; DEVICE CONFIG TABLE (RAM DEVICE FIRST TO MAKE IT ALWAYS FIRST DRIVE)
|
||||
;
|
||||
MD_CFGTBL:
|
||||
@@ -59,19 +64,22 @@ MD_INIT:
|
||||
;
|
||||
; SETUP THE DIO TABLE ENTRIES
|
||||
;
|
||||
LD A,(FF_RW) ; IF FLASH
|
||||
OR A ; FILESYSTEM
|
||||
JR NZ,MD_IN1 ; CAPABLE,
|
||||
LD A,MID_MDFSH ; UPDATE ROM DIO
|
||||
LD (MD_CFGTBL + MD_CFGSIZ + MD_MID),A
|
||||
LD A,MD_AFSH
|
||||
LD (MD_CFGTBL + MD_CFGSIZ + MD_ATTRIB),A
|
||||
MD_IN1:
|
||||
LD BC,MD_FNTBL
|
||||
LD DE,MD_CFGTBL
|
||||
PUSH BC
|
||||
CALL DIO_ADDENT
|
||||
CALL DIO_ADDENT ; ADD FIRST ENTRY
|
||||
POP BC
|
||||
;#IF (FFENABLE) ; IF FLASH
|
||||
; LD A,(FF_RW) ; FILESYSTEM
|
||||
; OR A ; ENABLED SKIP
|
||||
; JR Z,MD_IN1 ; ROM DISK
|
||||
;#ENDIF
|
||||
LD DE,MD_CFGTBL + MD_CFGSIZ
|
||||
CALL DIO_ADDENT
|
||||
MD_IN1:
|
||||
CALL DIO_ADDENT ; ADD SECOND ENTRY
|
||||
|
||||
XOR A ; INIT SUCCEEDED
|
||||
RET ; RETURN
|
||||
;
|
||||
@@ -216,9 +224,12 @@ MD_WRITE:
|
||||
CALL HB_DSKWRITE ; HOOK HBIOS DISK WRITE SUPERVISOR
|
||||
LD BC,MD_WRSEC ; GET ADR OF SECTOR WRITE FUNC
|
||||
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_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
|
||||
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
|
||||
LD A,ERR_READONLY ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
@@ -500,9 +511,9 @@ FF_PROBE:
|
||||
LD A,(FF_RW) ; R/W FLAG TO R/O
|
||||
OR H
|
||||
OR L
|
||||
LD (FF_RW),A
|
||||
POP DE
|
||||
POP HL
|
||||
LD (FF_RW),A ; A NON ZERO VALUE
|
||||
POP DE ; MEANS WE CAN'T
|
||||
POP HL ; ENABLE FLASH WRITING
|
||||
;
|
||||
CALL FF_LAND ; LOOKUP AND DISPLAY
|
||||
POP BC
|
||||
|
||||
Reference in New Issue
Block a user