From 0cfb30459a939218d2320298af8938ce33b70c78 Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 21 May 2020 11:34:06 -0700 Subject: [PATCH 1/2] Minor Cleanup --- Binary/RomList.txt | 4 +++ Source/CPM3/biosldr.z80 | 55 ++++++++++++++++++++++++++---- Source/HBIOS/Config/RCZ180_ext.asm | 2 ++ Source/HBIOS/Config/RCZ180_nat.asm | 2 ++ Source/HBIOS/Config/RCZ80_mt.asm | 5 ++- Source/HBIOS/Config/RCZ80_std.asm | 3 ++ Source/HBIOS/Config/SCZ180_126.asm | 2 ++ Source/HBIOS/Config/SCZ180_130.asm | 2 ++ Source/HBIOS/cfg_dyno.asm | 2 +- Source/HBIOS/cfg_ezz80.asm | 2 +- Source/HBIOS/cfg_master.asm | 2 +- Source/HBIOS/cfg_mk4.asm | 2 +- Source/HBIOS/cfg_n8.asm | 2 +- Source/HBIOS/cfg_rcz180.asm | 2 +- Source/HBIOS/cfg_rcz80.asm | 4 +-- Source/HBIOS/cfg_sbc.asm | 2 +- Source/HBIOS/cfg_scz180.asm | 2 +- Source/HBIOS/cfg_zeta.asm | 2 +- Source/HBIOS/cfg_zeta2.asm | 2 +- 19 files changed, 79 insertions(+), 20 deletions(-) diff --git a/Binary/RomList.txt b/Binary/RomList.txt index 128e400e..7f1eea75 100644 --- a/Binary/RomList.txt +++ b/Binary/RomList.txt @@ -163,6 +163,7 @@ RCZ80 (RCZ80_std.rom): - Support for Scott Baker SIO board may be enabled in config - Support for Scott Baker floppy controllers (SMC & WDC) may be enabled in config + - Support for J.B. Lang TMS9918 video card may be enabled in config RCZ80 w/ KIO (RCZ80_kio.rom): - Assumes CPU oscillator of 7.3728 MHz @@ -174,6 +175,7 @@ RCZ80 w/ KIO (RCZ80_kio.rom): - Support for Scott Baker SIO board may be enabled in config - Support for Scott Baker floppy controllers (SMC & WDC) may be enabled in config + - Support for J.B. Lang TMS9918 video card may be enabled in config RCZ180 (RCZ180_nat.rom & RCZ180_ext.rom): - Assumes CPU oscillator of 18.432 MHz @@ -183,6 +185,7 @@ RCZ180 (RCZ180_nat.rom & RCZ180_ext.rom): - Support for alternative serial modules may be enabled in config - Support for Scott Baker floppy controllers (SMC & WDC) may be enabled in config + - Support for J.B. Lang TMS9918 video card may be enabled in config - You must pick the _nat or _ext variant depending on which memory module you are using: - RCZ180_nat.rom uses the built-in Z180 memory manager @@ -199,6 +202,7 @@ SCZ180 (SCZ180_126.rom, SCZ180_130.rom, SCZ180_131.rom): - Support for alternative serial modules may be enabled in config - Support for Scott Baker floppy controllers (SMC & WDC) may be enabled in config + - Support for J.B. Lang TMS9918 video card may be enabled in config - The 3 different variants of SCZ180 are provided to match the 3 corresponding systems (SC126, SC130, and SC131) designed by Stephen Cousins. diff --git a/Source/CPM3/biosldr.z80 b/Source/CPM3/biosldr.z80 index a414cf58..86083212 100644 --- a/Source/CPM3/biosldr.z80 +++ b/Source/CPM3/biosldr.z80 @@ -8,7 +8,8 @@ extrn phex16, phex8 extrn cin, cout extrn crlf, crlf2 - + + debug equ false ; BIOS Jump vector. @@ -301,16 +302,44 @@ setsec: ld (sect),bc ret setdma: - ;push hl - ;push bc - ;pop hl - ;call crlf - ;call phex16 - ;pop hl + + if debug + + push hl + push bc + pop hl + call crlf + call phex16 + pop hl + + endif + ld (dma),bc ret read: + if debug + + call crlf + ld a,(unit) + call phex8 + ld a,' ' + call cout + ld hl,(trk) + call phex16 + ld a,' ' + call cout + ld hl,(sect) + call phex16 + ld a,' ' + call cout + ld hl,(lba+2) + call phex16 + ld hl,(lba+0) + call phex16 + + endif + ; Check device type ld a,(unit) ; get unit ld c,a ; BIOS Disk Unit in C @@ -349,6 +378,18 @@ read2: set 7,d ; set lba access bit read3: + + if debug + + ld a,' ' + call cout + ex de,hl + call phex16 + ex de,hl + call phex16 + + endif + ; DE:HL has sector address to read (LBA or CHS) ld a,(unit) ; get disk unit ld c,a ; put in C diff --git a/Source/HBIOS/Config/RCZ180_ext.asm b/Source/HBIOS/Config/RCZ180_ext.asm index dd2e4cda..db23bcfa 100644 --- a/Source/HBIOS/Config/RCZ180_ext.asm +++ b/Source/HBIOS/Config/RCZ180_ext.asm @@ -39,6 +39,8 @@ ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) ; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +; FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] ; diff --git a/Source/HBIOS/Config/RCZ180_nat.asm b/Source/HBIOS/Config/RCZ180_nat.asm index d211d16a..b3f9728c 100644 --- a/Source/HBIOS/Config/RCZ180_nat.asm +++ b/Source/HBIOS/Config/RCZ180_nat.asm @@ -39,6 +39,8 @@ ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) ; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +; FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] ; diff --git a/Source/HBIOS/Config/RCZ80_mt.asm b/Source/HBIOS/Config/RCZ80_mt.asm index 1e49c5d3..89237c28 100644 --- a/Source/HBIOS/Config/RCZ80_mt.asm +++ b/Source/HBIOS/Config/RCZ80_mt.asm @@ -27,6 +27,9 @@ #define PLATFORM_NAME "RC2014 (MT)" ; #include "Config/RCZ80_std.asm" +; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) + ; SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .SET SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] diff --git a/Source/HBIOS/Config/RCZ80_std.asm b/Source/HBIOS/Config/RCZ80_std.asm index b0441884..f608cbf3 100644 --- a/Source/HBIOS/Config/RCZ80_std.asm +++ b/Source/HBIOS/Config/RCZ80_std.asm @@ -32,6 +32,9 @@ UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM) ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) ; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) +; FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] ; diff --git a/Source/HBIOS/Config/SCZ180_126.asm b/Source/HBIOS/Config/SCZ180_126.asm index e7549ccc..f9a28c39 100644 --- a/Source/HBIOS/Config/SCZ180_126.asm +++ b/Source/HBIOS/Config/SCZ180_126.asm @@ -41,6 +41,8 @@ ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) ; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +; FDENABLE .SET FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] ; diff --git a/Source/HBIOS/Config/SCZ180_130.asm b/Source/HBIOS/Config/SCZ180_130.asm index 45b0cae3..d249c418 100644 --- a/Source/HBIOS/Config/SCZ180_130.asm +++ b/Source/HBIOS/Config/SCZ180_130.asm @@ -48,6 +48,8 @@ ASCIENABLE .SET TRUE ; ASCI: ENABLE Z180 ASCI SERIAL DRIVER (ASCI.ASM) ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM) SIOENABLE .SET FALSE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM) ; +TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) +; FDENABLE .SET FALSE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC] FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|DIDE|N8|DIO3] ; diff --git a/Source/HBIOS/cfg_dyno.asm b/Source/HBIOS/cfg_dyno.asm index 52773af2..2ad866b1 100644 --- a/Source/HBIOS/cfg_dyno.asm +++ b/Source/HBIOS/cfg_dyno.asm @@ -90,7 +90,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) diff --git a/Source/HBIOS/cfg_ezz80.asm b/Source/HBIOS/cfg_ezz80.asm index d604eb3e..4b20048b 100644 --- a/Source/HBIOS/cfg_ezz80.asm +++ b/Source/HBIOS/cfg_ezz80.asm @@ -115,7 +115,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) diff --git a/Source/HBIOS/cfg_master.asm b/Source/HBIOS/cfg_master.asm index 2b1baa7c..398cb095 100644 --- a/Source/HBIOS/cfg_master.asm +++ b/Source/HBIOS/cfg_master.asm @@ -152,7 +152,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; diff --git a/Source/HBIOS/cfg_mk4.asm b/Source/HBIOS/cfg_mk4.asm index 8889fd05..64b05213 100644 --- a/Source/HBIOS/cfg_mk4.asm +++ b/Source/HBIOS/cfg_mk4.asm @@ -107,7 +107,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; diff --git a/Source/HBIOS/cfg_n8.asm b/Source/HBIOS/cfg_n8.asm index 700fc0f7..e0f2f176 100644 --- a/Source/HBIOS/cfg_n8.asm +++ b/Source/HBIOS/cfg_n8.asm @@ -110,7 +110,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; diff --git a/Source/HBIOS/cfg_rcz180.asm b/Source/HBIOS/cfg_rcz180.asm index 3bc1b090..31cdf6fe 100644 --- a/Source/HBIOS/cfg_rcz180.asm +++ b/Source/HBIOS/cfg_rcz180.asm @@ -119,7 +119,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) diff --git a/Source/HBIOS/cfg_rcz80.asm b/Source/HBIOS/cfg_rcz80.asm index 85b29c30..25674f25 100644 --- a/Source/HBIOS/cfg_rcz80.asm +++ b/Source/HBIOS/cfg_rcz80.asm @@ -125,7 +125,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) @@ -177,7 +177,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER ; SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM) -SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] +SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT] SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD & SC ONLY SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL) SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE diff --git a/Source/HBIOS/cfg_sbc.asm b/Source/HBIOS/cfg_sbc.asm index 650d4eae..ce15dbb6 100644 --- a/Source/HBIOS/cfg_sbc.asm +++ b/Source/HBIOS/cfg_sbc.asm @@ -111,7 +111,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] ; diff --git a/Source/HBIOS/cfg_scz180.asm b/Source/HBIOS/cfg_scz180.asm index 5f870219..3b5f1c0e 100644 --- a/Source/HBIOS/cfg_scz180.asm +++ b/Source/HBIOS/cfg_scz180.asm @@ -114,7 +114,7 @@ CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8] -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) diff --git a/Source/HBIOS/cfg_zeta.asm b/Source/HBIOS/cfg_zeta.asm index 14d8770e..319402a9 100644 --- a/Source/HBIOS/cfg_zeta.asm +++ b/Source/HBIOS/cfg_zeta.asm @@ -88,7 +88,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) diff --git a/Source/HBIOS/cfg_zeta2.asm b/Source/HBIOS/cfg_zeta2.asm index 1901511d..f7e1a4e0 100644 --- a/Source/HBIOS/cfg_zeta2.asm +++ b/Source/HBIOS/cfg_zeta2.asm @@ -98,7 +98,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) -TMSTIMENABLE .EQU FALSE ; TMS: INTERRUPTS NOT ENABLED +TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) ; MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM) From d331fcbdef10c9be0a660a7f49da56bc38eac0cf Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Thu, 21 May 2020 14:30:05 -0700 Subject: [PATCH 2/2] More Cleaning --- Source/CBIOS/cbios.asm | 68 ++++++++------------------------------ Source/HBIOS/ay38910.asm | 7 ++-- Source/HBIOS/cfg_state.inc | 29 ---------------- Source/HBIOS/std.asm | 47 ++++++++++++++++++++++++++ Source/ver.inc | 2 +- Source/ver.lib | 2 +- 6 files changed, 66 insertions(+), 89 deletions(-) delete mode 100644 Source/HBIOS/cfg_state.inc diff --git a/Source/CBIOS/cbios.asm b/Source/CBIOS/cbios.asm index 6d2c1a9b..162f7645 100644 --- a/Source/CBIOS/cbios.asm +++ b/Source/CBIOS/cbios.asm @@ -300,7 +300,8 @@ DPBCNT .EQU ($ - DPBMAP) / 2 ;__________________________________________________________________________________________________ BOOT: ; STANDARD BOOT INVOCATION - LD SP,STACK ; STACK FOR INITIALIZATION + ;LD SP,STACK ; STACK FOR INITIALIZATION + LD SP,CCP_LOC ; PUT STACK JUST BELOW CCP ; ; COPY INITIALIZATION CODE TO RUNNING LOCATION $8000 LD HL,BUFPOOL @@ -328,17 +329,17 @@ BOOT: ; ;__________________________________________________________________________________________________ REBOOT: - ; REBOOT FROM ROM, REPLACES BOOT AFTER INIT + ; RESTART, REPLACES BOOT AFTER INIT #IFDEF PLTUNA + ; FOR UNA, COLD BOOT DI ; NO INTERRUPTS LD BC,$01FB ; UNA FUNC = SET BANK LD DE,0 ; ROM BOOT BANK CALL $FFFD ; DO IT (RST 08 NOT SAFE HERE) #ENDIF +; #IFDEF PLTWBW - ;DI ; NO INTERRUPTS - ;LD A,0 ; ROM BOOT BANK - ;CALL HB_BNKSEL ; SELECT IT INTO LOW MEMORY + ; WARM START LD B,BF_SYSRESET ; SYSTEM RESTART LD C,BF_SYSRES_WARM ; WARM START CALL $FFF0 ; CALL HBIOS @@ -401,23 +402,13 @@ RESCPM: LD HL,WBOOTE ; GET WARM BOOT ENTRY ADDRESS LD ($0001),HL ; AND PUT IT AT $0001 -; ; INT / RST 38 -> INVOKE MONITOR -; LD ($0038),A -; LD HL,GOMON -; LD ($0039),HL - -; ; INT / RST 38 -> PANIC -; LD ($0038),A -; LD HL,PANIC ; PANIC ROUTINE ADDRESS -; LD ($0039),HL ; POKE IT - ; CALL 5 -> INVOKE BDOS LD ($0005),A ; JP OPCODE AT $0005 LD HL,BDOS_LOC + 6 ; GET BDOS ENTRY ADDRESS LD ($0006),HL ; PUT IT AT $0006 ; ; INSTALL ROMWBW CBIOS PAGE ZERO STAMP AT $40 - LD HL,STPIMG ; FORM STAMP DATA IMAGE + LD HL,STPIMG ; FROM STAMP DATA IMAGE LD DE,STPLOC ; TO IT'S LOCATION IN PAGE ZERO LD BC,STPSIZ ; SIZE OF BLOCK TO COPY LDIR ; DO IT @@ -448,26 +439,6 @@ GOCCP: LD C,A ; SETUP C WITH CURRENT USER/DISK, ASSUME IT IS OK JP CCP_LOC ; JUMP TO COMMAND PROCESSOR ; -;__________________________________________________________________________________________________ -GOMON: - CALL PANIC -; -; DI -; IM 1 -; -; LD SP,STACK -; -; ; RELOAD MONITOR INTO RAM (IN CASE IT HAS BEEN OVERWRITTEN) -; CALL ROMPGZ -; LD HL,MON_IMG -; LD DE,MON_LOC -; LD BC,MON_SIZ -; LDIR -; CALL RAMPGZ - -; ; JUMP TO MONITOR WARM ENTRY -; JP MON_UART -; ; ;================================================================================================== ; CHARACTER BIOS FUNCTIONS @@ -1360,27 +1331,14 @@ DSK_MBR: DSK_MBR0: ; #IFDEF PLTWBW - ; SWITCH TO BIOS BANK TO ACCESS DISK BUFFER + ; ACTIVATE BIOS BANK TO ACCESS DISK BUFFER LD (STKSAV),SP ; SAVE CUR STACK - LD SP,XSTACK ; NEW STACK IN HI MEM - LD A,(HB_CURBNK) ; GET CUR BANK - PUSH AF ; SAVE CUR BANK - LD A,(BNKBIOS) ; BIOS BANK - CALL HB_BNKSEL ; DO IT - CALL DSK_MBR1 ; DO THE WORK - ; RESTORE BANK - PUSH AF ; SAVE RESULT - POP HL ; TO HL - EX (SP),HL ; RESULT TO TOS, PREV BANK TO H - LD A,H ; PREV BANK TO A - CALL HB_BNKSEL ; SELECT IT - POP AF ; ORIGINAL RESULT BACK + LD SP,STACK ; NEW STACK IN HI MEM + LD A,(BNKBIOS) ; ACTIVATE HBIOS BANK + LD HL,DSK_MBR1 ; ROUTINE TO RUN + CALL HB_BNKCALL ; DO IT LD SP,(STKSAV) ; RESTORE ORIGINAL STACK RET - - .FILL 32,0 -XSTACK .EQU $ - #ENDIF ; DSK_MBR1: @@ -3239,7 +3197,7 @@ CMD .DB CMDLEN - 2 CMDLEN .EQU $ - CMD ; FCB_SUB .DB '?' ; DRIVE CODE, 0 = CURRENT DRIVE - .DB "SUBMIT " ; FILE NAME, 8 CHARS + .DB "SUBMIT " ; FILE NAME, 8 CHARS .DB "COM" ; FILE TYPE, 3 CHARS .FILL 36-($-FCB_SUB),0 ; ZERO FILL REMAINDER OF FCB ; diff --git a/Source/HBIOS/ay38910.asm b/Source/HBIOS/ay38910.asm index deec80d3..81c41223 100644 --- a/Source/HBIOS/ay38910.asm +++ b/Source/HBIOS/ay38910.asm @@ -5,7 +5,7 @@ ;====================================================================== ; -#include "cfg_state.inc" +;#include "cfg_state.inc" AY_RCSND .EQU 0 ; 0 = EB MODULE, 1=MF MODULE @@ -128,7 +128,7 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE CALL AY_WRTPSG ; R03 = $00 = XXXX0000 ; -#IF SYSTIMEN +#IF (SYSTIM != TM_NONE) LD A, TICKFREQ / 3 ; SCHEDULE IN 1/3 SECOND TO TURN OFF SOUND LD (AY_TIMTIK), A @@ -152,7 +152,8 @@ AY_FND: LD IY, AY_IDAT ; SETUP FUNCTION TABLE XOR A ; SUCCESSFULL INIT RET -#IF SYSTIMEN +#IF (SYSTIM != TM_NONE) + AY_TIMER: LD A, (AY_TIMTIK) DEC A diff --git a/Source/HBIOS/cfg_state.inc b/Source/HBIOS/cfg_state.inc deleted file mode 100644 index 007879b0..00000000 --- a/Source/HBIOS/cfg_state.inc +++ /dev/null @@ -1,29 +0,0 @@ -#IFNDEF CFG_STATE - #DEFINE CFG_STATE - -SYSTIMEN .EQU FALSE - - #IF (CTCENABLE & (INTMODE == 2) & (CTCTIMER)) -SYSTIMEN .SET TRUE - #ENDIF - - #IF (TMSENABLE & (INTMODE == 1) & TMSTIMENABLE) -SYSTIMEN .SET TRUE - #ENDIF - - #IF ((INTMODE == 1) & (PLATFORM == PLT_SBC) & HTIMENABLE) -SYSTIMEN .SET TRUE - #ENDIF - - #IF ((INTMODE == 2) & (CPUFAM == CPU_Z180)) -SYSTIMEN .SET TRUE - #ENDIF - - .ECHO "TIMER INTERRUPT " - #IF SYSTIMEN - .ECHO "ACTIVE\n" - #ELSE - .ECHO "NOT ACTIVE\n" - #ENDIF - -#ENDIF diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index b7459ce3..3c0452ff 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -349,6 +349,53 @@ CPUKHZ .SET CPUKHZ * 2 ; ADJUST FOR DOUBLE SPEED OPERATION ; CPUMHZ .EQU CPUKHZ / 1000 ; CPU FREQ IN MHZ ; +; SYSTEM PERIODIC TIMER MODE +; +#IF (BIOS == BIOS_WBW) +; +TM_NONE .EQU 0 +TM_CTC .EQU 1 +TM_TMS .EQU 2 +TM_SIMH .EQU 3 +TM_Z180 .EQU 4 +; + .ECHO "SYSTEM TIMER:" +SYSTIM .EQU TM_NONE +; + #IF (CTCENABLE & (INTMODE == 2)) + #IF (CTCTIMER) +SYSTIM .SET TM_CTC + .ECHO " CTC" + #ENDIF + #ENDIF +; + #IF (TMSENABLE & (INTMODE == 1)) + #IF (TMSTIMENABLE) +SYSTIM .SET TM_TMS + .ECHO " TMS9918" + #ENDIF + #ENDIF +; + #IF ((PLATFORM == PLT_SBC) & (INTMODE == 1)) + #IF (HTIMENABLE) +SYSTIM .SET TM_SIMH + .ECHO " SIMH" + #ENDIF + #ENDIF +; + #IF ((CPUFAM == CPU_Z180) & (INTMODE == 2)) +SYSTIM .SET TM_Z180 + .ECHO " Z180" + #ENDIF +; + #IF SYSTIM == TM_NONE + .ECHO " NONE" + #ENDIF +; + .ECHO "\n" +; +#ENDIF +; ; MEMORY BANK CONFIGURATION ; #IF (BIOS == BIOS_UNA) diff --git a/Source/ver.inc b/Source/ver.inc index f8b3b588..1c79b4a2 100644 --- a/Source/ver.inc +++ b/Source/ver.inc @@ -2,4 +2,4 @@ #DEFINE RMN 1 #DEFINE RUP 1 #DEFINE RTP 0 -#DEFINE BIOSVER "3.1.1-pre.12" +#DEFINE BIOSVER "3.1.1-pre.13" diff --git a/Source/ver.lib b/Source/ver.lib index ffca8b84..e5419aa4 100644 --- a/Source/ver.lib +++ b/Source/ver.lib @@ -3,5 +3,5 @@ rmn equ 1 rup equ 1 rtp equ 0 biosver macro - db "3.1.1-pre.12" + db "3.1.1-pre.13" endm