Browse Source

Changed the Attribute for MD RF devices reordering/fliping (RF<->Flash) so bit masks are easier

pull/479/head
Mark Pruden 1 year ago
parent
commit
8d8868e5d5
  1. BIN
      Doc/RomWBW System Guide.pdf
  2. 10
      Source/Apps/assign/assign.asm
  3. 6
      Source/CBIOS/cbios.asm
  4. 2
      Source/Doc/SystemGuide.md
  5. 2
      Source/HBIOS/hbios.asm
  6. 2
      Source/HBIOS/md.asm
  7. 2
      Source/HBIOS/rf.asm

BIN
Doc/RomWBW System Guide.pdf

Binary file not shown.

10
Source/Apps/assign/assign.asm

@ -614,17 +614,11 @@ bootdra:
; Note: if MDFFENABLE is enabled, this wont select the ROM since the
; driver returns MD_AFSH (%00010111), and we cannot generalise this mask
bootdro:
ld a,$FF ; specific mask to include all BITS
ld a,%11111101 ; ROM mask, excluding Bit 1, which varies
ld (atrmask),a ; mask for device attributes
ld a,%00010100 ; specific mask for ROM drive. "MD_AROM"
ld a,%00010100 ; for values "MD_AROM", "MD_AFSH"; Att="000101x0"
ld (atrcomp),a ; compare to after mask
call bootadds ; do single slice assignment
; possible workaround below, not elegant. other woraround is to have a specific option for this code
; Better option is change the definitions for device attribute media types to
; 4=ROM, 5=RAM, 6=FLASH, 7=RAMF, (6,7 swapped) so much easir to mask RAM/ROM as only 1 bit difference
; ld a,%00010111 ; specific mask for ROM drive. "MD_AFSH"
; ld (atrcomp),a ; compare to after mask
; call bootadds ; do single slice assignment
ret ; Finished, returning error
;
; FLOPPY DRIVE(S)

6
Source/CBIOS/cbios.asm

@ -2343,10 +2343,8 @@ INIT2:
LD C,(HL) ; PUT UNIT NUM IN C
RST 08 ; CALL HBIOS
LD A,C ; GET ATTRIBUTES
AND %10001111 ; ISOLATE TYPE BITS
CP %00000100 ; NOT FLOPPY, TYPE = ROM?
JR Z,INIT2A ; IF SO, ADJUST DEF DRIVE
CP %00000111 ; NOT FLOPPY, TYPE = FLASH?
AND %10001101 ; ISOLATE TYPE BITS, NOT FLOPPY
CP %00000100 ; TYPE=ROM/FLASH ; Att="0xxx01x0"
JR NZ,INIT2X ; IF NOT THEN DONE
;
INIT2A:

2
Source/Doc/SystemGuide.md

@ -1162,7 +1162,7 @@ The non-Floppy specific bits are:
|---------:|--------------------------------------------------|
| 4 | LBA Capable |
| 3-0 | Media Type: 0=Hard Disk, 1=CF, 2=SD, 3=USB, |
| | 4=ROM, 5=RAM, 6=RAMF, 7=FLASH, 8=CD-ROM, |
| | 4=ROM, 5=RAM, 6=FLASH, 7=RAMF, 8=CD-ROM, |
| | 9=Cartridge |
Device Type (D) indicates the specific hardware driver that handles the

2
Source/HBIOS/hbios.asm

@ -8701,8 +8701,8 @@ PS_DTSD .TEXT "SD Card$"
PS_DTUSB .TEXT "USB Drive$"
PS_DTROM .TEXT "ROM Disk$"
PS_DTRAM .TEXT "RAM Disk$"
PS_DTFSH .TEXT "Flash ROM"
PS_DTRF .TEXT "RAM Floppy$"
PS_DTFSH .TEXT "Flash Drive$"
PS_DTCD .TEXT "CD-ROM$"
PS_DTCRT .TEXT "Cartridge$"
PS_DTOTHER .TEXT "???$"

2
Source/HBIOS/md.asm

@ -23,7 +23,7 @@ MD_ATTRIB .EQU 7 ; OFFSET OF ATTRIBUTE (BYTE)
;
MD_AROM .EQU %00010100 ; ROM ATTRIBUTE
MD_ARAM .EQU %00010101 ; RAM ATTRIBUTE
MD_AFSH .EQU %00010111 ; FLASH ATTRIBUTE
MD_AFSH .EQU %00010110 ; FLASH ATTRIBUTE
;
MD_FDBG .EQU 0 ; FLASH DEBUG CODE
MD_FVBS .EQU 1 ; FLASH VERBOSE OUTPUT

2
Source/HBIOS/rf.asm

@ -198,7 +198,7 @@ RF_GEOM:
RF_DEVICE:
LD D,DIODEV_RF ; D := DEVICE TYPE
LD E,(IY+RF_DEV) ; E := PHYSICAL DEVICE NUMBER
LD C,%00010110 ; C := ATTRIBUTES, NON-REMOVABLE RAM FLOPPY
LD C,%00010111 ; C := ATTRIBUTES, NON-REMOVABLE RAM FLOPPY
LD H,0 ; H := 0, DRIVER HAS NO MODES
LD L,(IY+RF_IOAD) ; L := BASE I/O ADDRESS
XOR A ; SIGNAL SUCCESS

Loading…
Cancel
Save