From 8d8868e5d583952016226b4b4bf88fe44fd57ecc Mon Sep 17 00:00:00 2001 From: Mark Pruden Date: Wed, 18 Dec 2024 18:12:38 +1100 Subject: [PATCH] Changed the Attribute for MD RF devices reordering/fliping (RF<->Flash) so bit masks are easier --- Doc/RomWBW System Guide.pdf | Bin 616689 -> 479024 bytes Source/Apps/assign/assign.asm | 10 ++----- Source/CBIOS/cbios.asm | 6 ++-- Source/Doc/SystemGuide.md | 2 +- Source/HBIOS/hbios.asm | 2 +- Source/HBIOS/md.asm | 54 +++++++++++++++++----------------- Source/HBIOS/rf.asm | 14 ++++----- 7 files changed, 40 insertions(+), 48 deletions(-) diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index 96e3a90e6c1d2a38aeaa6ebd79b80e4cde1a4fc9..0960025ab23fab8ad846257ff2ed392e06284ff3 100644 GIT binary patch delta 34864 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 delta 173010 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 RVh-Q@gFpE0kH7cL{|Ds5ie~@- diff --git a/Source/Apps/assign/assign.asm b/Source/Apps/assign/assign.asm index 9d9ef4c5..f86a8e17 100644 --- a/Source/Apps/assign/assign.asm +++ b/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) diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 83279de0..4323e58d 100644 --- a/Source/CBIOS/cbios.asm +++ b/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: diff --git a/Source/Doc/SystemGuide.md b/Source/Doc/SystemGuide.md index aa0a9578..170669eb 100644 --- a/Source/Doc/SystemGuide.md +++ b/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 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index e03cc1dd..0044822a 100644 --- a/Source/HBIOS/hbios.asm +++ b/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 "???$" diff --git a/Source/HBIOS/md.asm b/Source/HBIOS/md.asm index e7e7fcea..1c899228 100644 --- a/Source/HBIOS/md.asm +++ b/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 @@ -109,9 +109,9 @@ MD_INIT: ; SETUP THE DIO TABLE ENTRIES ; #IF (MDROM & MDFFENABLE) - LD A,(MD_FFSEN) ; IF FLASH - OR A ; FILESYSTEM - JR NZ,MD_INIT1 ; CAPABLE, + LD A,(MD_FFSEN) ; IF FLASH + OR A ; FILESYSTEM + JR NZ,MD_INIT1 ; CAPABLE, LD A,MD_AFSH ; UPDATE ROM DIO LD (MD_CFGTBL + MD_CFGSIZ + MD_ATTRIB),A MD_INIT1: @@ -177,7 +177,7 @@ MD_RESET: RET ; ; -; +; MD_CAP: ; ASSUMES THAT UNIT 0 IS RAM, UNIT 1 IS ROM LD A,(IY+MD_DEV) ; GET DEVICE NUMBER OR A ; SET FLAGS @@ -259,7 +259,7 @@ MD_READ: ; #IF (MDFFENABLE) 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 JR Z,MD_RD1 ; FLASH = MD_RDSECF #ENDIF @@ -275,7 +275,7 @@ MD_WRITE: ; #IF (MDFFENABLE) 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 JR Z,MD_WR1 ; FLASH = MD_WRSECF #ENDIF @@ -371,7 +371,7 @@ MD_SECM: LD D,A ; FROM THE START LD E,0 ; - LD HL,MD_F4KBUF ; POINT TO THE SECTOR WE + LD HL,MD_F4KBUF ; POINT TO THE SECTOR WE ADD HL,DE ; WANT TO COPY LD DE,(MD_DSKBUF) ; @@ -385,7 +385,7 @@ MD_SECM: JP DMALDIR ; 4K SECTOR TO THE DISK BUFFER #ENDIF MD_NODMA: -#IF (!(DMAENABLE & (DMAMODE!=DMAMODE_NONE))) +#IF (!(DMAENABLE & (DMAMODE!=DMAMODE_NONE))) LD BC,512 ; COPY ONE 512B SECTOR FROM THE LDIR ; 4K SECTOR TO THE DISK BUFFER XOR A @@ -407,7 +407,7 @@ MD_NODMA: ; MD_IOSETUPF: LD L,(IY+MD_LBA+0) ; HL := LOW WORD OF LBA - LD H,(IY+MD_LBA+1) + LD H,(IY+MD_LBA+1) INC H ; SKIP FIRST 128MB (256 SECTORS) ; LD A,L ; SAVE LBA 4K @@ -421,7 +421,7 @@ MD_IOSETUPF: LD L,D ; DE:HL = HLX512 SLA H RL E - RL D + RL D ; RET ; @@ -443,7 +443,7 @@ MD_CALBAS: ; #IF (MD_FDBG==1) CALL PC_SPACE ; DISPLAY SECTOR - CALL PRTHEX32 ; SECTOR ADDRESS + CALL PRTHEX32 ; SECTOR ADDRESS CALL PC_SPACE ; IN DE:HL #ENDIF ; @@ -478,7 +478,7 @@ MD_WRSECF: ; CALLED FROM MD_RW PUSH HL ; IS THE SECTOR LD HL,(MD_LBA4K) ; WE WANT TO XOR A ; WRITE ALREADY - SBC HL,BC ; IN THE 4K + SBC HL,BC ; IN THE 4K POP HL ; BLOCK WE HAVE JR Z,MD_SECM1 ; IN THE BUFFER ; @@ -504,7 +504,7 @@ MD_SECM1: ; DESIRED SECTOR IS IN BUFFER LD D,A ; FROM THE START LD E,0 ; - LD HL,MD_F4KBUF ; POINT TO THE SECTOR WE + LD HL,MD_F4KBUF ; POINT TO THE SECTOR WE ADD HL,DE ; WANT TO COPY EX DE,HL ; @@ -562,7 +562,7 @@ MD_LBA4K .DW $FFFF ; LBA OF CURRENT SECTOR MD_FBAS .DW $FFFF ; BANK AND SECTOR #ENDIF ; -; READ RAM / ROM +; READ RAM / ROM ; MD_RDSEC: CALL MD_IOSETUP ; SETUP FOR MEMORY COPY @@ -744,7 +744,7 @@ MDSTR_LEN .TEXT "LEN=$" ; FLASH DRIVERS ;================================================================================================== ; -; UPPER RAM BANK IS ALWAYS AVAILABLE REGARDLESS OF MEMORY BANK SELECTION. +; UPPER RAM BANK IS ALWAYS AVAILABLE REGARDLESS OF MEMORY BANK SELECTION. ; HBX_BNKSEL AND HB_CURBNK ARE ALWAYS AVAILABLE IN UPPER MEMORY. ; ; THE STACK IS IN UPPER MEMORY DURING BIOS INITIALIZATION BUT IS IN LOWER @@ -754,7 +754,7 @@ MDSTR_LEN .TEXT "LEN=$" ; AND THE FLASH CHIP IS SWITCHED INTO THE LOWER BANK. ; ; EACH FLASH ROUTINE MUST FIT INTO TO THE HBX_BUF, INCLUDING IT'S LOCAL STACK WHICH -; IS REQUIRED FOR CALLING THE BANK SWITCH ROUTINES. +; IS REQUIRED FOR CALLING THE BANK SWITCH ROUTINES. ; ; INSPIRED BY WILL SOWERBUTTS FLASH4 UTILITY - https://github.com/willsowerbutts/flash4/ ; @@ -775,7 +775,7 @@ MD_FINIT: CALL MD_CALCU ; DISPLAY ; #IF (MD_FVBS==1) - CALL NEWLINE ; OF UNITS + CALL NEWLINE ; OF UNITS PRTS("MD: FLASH=$") CALL PRTDECB ; CONFIGURED FOR. #ENDIF @@ -786,14 +786,14 @@ MD_PROBE: LD E,C ; LD H,D ; WE INCREASE E BY $08 LD L,D ; ON EACH CYCLE THROUGH -; +; PUSH BC #IF (MD_FVBS==1) CALL PC_SPACE CALL MD_CALCU INC A SUB B ; PRINT - CALL PRTDECB ; DEVICE + CALL PRTDECB ; DEVICE LD A,'=' ; NUMBER CALL COUT #ENDIF @@ -872,7 +872,7 @@ MD_NXT1: CP C JR NZ,MD_NXT0 ; FIRST BYTE DOES NOT MATCH ; - INC HL + INC HL LD A,(HL) CP B DEC HL @@ -903,18 +903,18 @@ MD_NXT2: ;====================================================================== ; COMMON FUNCTION CALL FOR: ; -; MD_FIDEN_R - IDENTIFY FLASH CHIP +; MD_FIDEN_R - IDENTIFY FLASH CHIP ; ON ENTRY MD_FBAS HAS BEEN SET WITH BANK AND SECTOR BEING ACCESSED ; HL POINTS TO THE ROUTINE TO BE RELOCATED AND CALLED ; ON EXIT BC CONTAINS THE CHIP ID BYTES. -; A NO STATUS IS RETURNED +; A NO STATUS IS RETURNED ; -; MD_FERAS_R - ERASE FLASH SECTOR +; MD_FERAS_R - ERASE FLASH SECTOR ; ON ENTRY MD_FBAS HAS BEEN SET WITH BANK AND SECTOR BEING ACCESSED ; HL POINTS TO THE ROUTINE TO BE RELOCATED AND CALLED ; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL ; -; MD_FREAD_R - READ FLASH SECTOR +; MD_FREAD_R - READ FLASH SECTOR ; ON ENTRY MD_FBAS HAS BEEN SET WITH BANK AND SECTOR BEING ACCESSED ; HL POINTS TO THE ROUTINE TO BE RELOCATED AND CALLED ; IX POINTS TO WHERE TO SAVE DATA @@ -926,7 +926,7 @@ MD_NXT2: ; IX POINTS TO DATA TO COMPARE. ; ON EXIT A RETURNS STATUS 0=SUCCESS NZ=FAIL ; -; MD_FWRIT_R - WRITE FLASH SECTOR +; MD_FWRIT_R - WRITE FLASH SECTOR ; ON ENTRY MD_FBAS HAS BEEN SET WITH BANK AND SECTOR BEING ACCESSED ; HL POINTS TO THE ROUTINE TO BE RELOCATED AND CALLED ; IX POINTS TO DATA TO BE WRITTEN @@ -979,7 +979,7 @@ MD_FNCALL: ; USING HBX_BUF FOR CODE AREA LD A,C ; RETURN WITH STATUS IN A RET ; RETURN TO MD_READF, MD_WRITEF ; -MD_SAVSTK .DW 0 +MD_SAVSTK .DW 0 ; #INCLUDE "flashlib.inc" ; diff --git a/Source/HBIOS/rf.asm b/Source/HBIOS/rf.asm index 6d80fc81..9fa5eb83 100644 --- a/Source/HBIOS/rf.asm +++ b/Source/HBIOS/rf.asm @@ -13,7 +13,7 @@ RF_U3IO .EQU $AC ; BASED ADDRESS OF RAMFLOPPY 4 ; IO PORT OFFSETS ; RF_DAT .EQU 0 ; DATA IN/OUT ONLY TO SRAM - R/W -RF_AL .EQU 1 ; ADDRESS LOW FOR RAMF MEMORY - W/O +RF_AL .EQU 1 ; ADDRESS LOW FOR RAMF MEMORY - W/O RF_AH .EQU 2 ; ADDRESS HIGH FOR RAMF MEMORY - W/O RF_ST .EQU 3 ; STATUS PORT - R/O ; @@ -30,7 +30,7 @@ RF_IOAD .EQU 7 ; OFFSET OF DEVICE IO ADDRESS #IF ($RF_DEVCNT > RF_MAXRF) .ECHO "*** ONLY 4 RAM FLOPPY DEVICES SUPPORTED ***\n" -RF_DEVCNT .SET RF_MAXRF +RF_DEVCNT .SET RF_MAXRF #ENDIF ; ; DEVICE CONFIG TABLE (RAM DEVICE FIRST TO MAKE IT ALWAYS FIRST DRIVE) @@ -97,7 +97,7 @@ RF_CFGTBL: ; RF_INIT: CALL NEWLINE ; FORMATTING - PRTS("RF:$") + PRTS("RF:$") LD B,RF_DEVCNT ; LOOP CONTROL LD IY,RF_CFGTBL ; START OF CFG TABLE @@ -113,7 +113,7 @@ RF_INIT0: POP BC ; RESTORE BC DJNZ RF_INIT0 ; LOOP AS NEEDED - PRTS(" DEVICES=$") ; DISPLAY NUMBER + PRTS(" DEVICES=$") ; DISPLAY NUMBER LD A,RF_DEVCNT ; OF DEVICES CALL PRTDECB ; @@ -123,7 +123,7 @@ RF_INIT0: RF_UNIT: PRTS(" IO=0x$") ; DISPLAY LD A,(IY+RF_IOAD) ; PORT AND - CALL PRTHEXBYTE ; WRITE + CALL PRTHEXBYTE ; WRITE PRTS(" WP=$") ; PROTECT ADD A,RF_ST ; STATUS OF LD C,A ; THIS DEVICE @@ -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 @@ -345,7 +345,7 @@ RF_SETADR: OR RF_AL ; ADDRESS TO THE LD C,A ; TO THE MSB AND LD A,(IY+RF_LBA+0) ; LSB SECTRK - OUT (C),A ; REGISTERS. + OUT (C),A ; REGISTERS. LD A,(IY+RF_LBA+1) ; BYTE COUNTER INC C ; IS RESET OUT (C),A