Browse Source

Merge pull request #186 from wwarthen/dev

Dev
pull/206/head
b1ackmai1er 5 years ago
committed by GitHub
parent
commit
06a379c281
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 6
      Doc/ChangeLog.txt
  2. 5
      Source/HBIOS/Config/RCZ80_std.asm
  3. 33
      Source/HBIOS/Config/SBC_mbc.asm
  4. 3
      Source/HBIOS/Makefile
  5. 14
      Source/HBIOS/cfg_dyno.asm
  6. 15
      Source/HBIOS/cfg_ezz80.asm
  7. 15
      Source/HBIOS/cfg_master.asm
  8. 17
      Source/HBIOS/cfg_mk4.asm
  9. 19
      Source/HBIOS/cfg_n8.asm
  10. 17
      Source/HBIOS/cfg_rcz180.asm
  11. 21
      Source/HBIOS/cfg_rcz280.asm
  12. 17
      Source/HBIOS/cfg_rcz80.asm
  13. 15
      Source/HBIOS/cfg_sbc.asm
  14. 15
      Source/HBIOS/cfg_scz180.asm
  15. 2
      Source/HBIOS/cfg_una.asm
  16. 12
      Source/HBIOS/cfg_zeta.asm
  17. 12
      Source/HBIOS/cfg_zeta2.asm
  18. 12
      Source/HBIOS/fd.asm
  19. 123
      Source/HBIOS/hbios.asm
  20. 4
      Source/HBIOS/hbios.inc
  21. 92
      Source/HBIOS/kio.asm
  22. 1155
      Source/HBIOS/mky.asm
  23. 446
      Source/HBIOS/rp5rtc.asm
  24. 6
      Source/HBIOS/std.asm
  25. 125
      Source/HBIOS/tms.asm
  26. BIN
      Source/Images/d_bp/u0/UNZIP154.COM
  27. BIN
      Source/Images/d_bp/u0/UNZIP186.COM
  28. BIN
      Source/Images/d_bp/u0/UNZIPZ4.COM
  29. BIN
      Source/Images/d_cpm22/u0/UNZIP154.COM
  30. BIN
      Source/Images/d_cpm22/u0/UNZIP186.COM
  31. BIN
      Source/Images/d_cpm22/u0/UNZIPZ4.COM
  32. BIN
      Source/Images/d_zsdos/u0/UNZIP154.COM
  33. BIN
      Source/Images/d_zsdos/u0/UNZIP186.COM
  34. BIN
      Source/Images/d_zsdos/u0/UNZIPZ4.COM
  35. 2
      Source/ZCPR-DJ/Build.cmd
  36. 1
      Source/ZCPR-DJ/Clean.cmd
  37. 262
      Source/ZCPR-DJ/zcpr.mac
  38. 2
      Source/ver.inc
  39. 2
      Source/ver.lib

6
Doc/ChangeLog.txt

@ -30,6 +30,12 @@ Version 3.1.1
- J?C: Added FIND application from Jay Cotton - J?C: Added FIND application from Jay Cotton
- PMS: Preliminary support for I2C-based DS1307 clock - PMS: Preliminary support for I2C-based DS1307 clock
- WBW: FD driver auto hardware detect (thanks Alan Cox) - WBW: FD driver auto hardware detect (thanks Alan Cox)
- D?N: Added support for TMS V9958 VDU
- D?N: Added support for MSX keyboard
- D?N: Added support for RP5C01 RTC
- L?N: Slightly enhanced ZCPRD&J w/ a couple bug fixes
- L?N: UNZIPZ4 which handles most modern ZIP file compression algorithms
- AJL: Preliminary support for MBC systems
Version 3.1 Version 3.1
----------- -----------

5
Source/HBIOS/Config/RCZ80_std.asm

@ -36,6 +36,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
; ;
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
TMSMODE .SET TMSMODE_RCV9958 ; TMS: DRIVER MODE: TMSMODE_[RC/RCV9958]
; ;
FDENABLE .SET TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM) FDENABLE .SET TRUE ; 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] FDMODE .SET FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPWDC]
@ -45,3 +46,7 @@ IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM) PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)
; ;
PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM) PRPENABLE .SET FALSE ; PRP: ENABLE ECB PROPELLER IO BOARD DRIVER (PRP.ASM)
;
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)

33
Source/HBIOS/Config/SBC_mbc.asm

@ -0,0 +1,33 @@
;
;==================================================================================================
; MBC CONFIGURATION
;==================================================================================================
;
; THE COMPLETE SET OF DEFAULT CONFIGURATION SETTINGS FOR THIS PLATFORM ARE FOUND IN THE
; CFG_<PLT>.ASM INCLUDED FILE WHICH IS FOUND IN THE PARENT DIRECTORY. THIS FILE CONTAINS
; COMMON CONFIGURATION SETTINGS THAT OVERRIDE THE DEFAULTS. IT IS INTENDED THAT YOU MAKE
; YOUR CUSTOMIZATIONS IN THIS FILE AND JUST INHERIT ALL OTHER SETTINGS FROM THE DEFAULTS.
; EVEN BETTER, YOU CAN MAKE A COPY OF THIS FILE WITH A NAME LIKE <PLT>_XXX.ASM AND SPECIFY
; YOUR FILE IN THE BUILD PROCESS.
;
; THE SETTINGS BELOW ARE THE SETTINGS THAT ARE MOST COMMONLY MODIFIED FOR THIS PLATFORM.
; MANY OF THEM ARE EQUAL TO THE SETTINGS IN THE INCLUDED FILE, SO THEY DON'T REALLY DO
; ANYTHING AS IS. THEY ARE LISTED HERE TO MAKE IT EASY FOR YOU TO ADJUST THE MOST COMMON
; SETTINGS.
;
; N.B., SINCE THE SETTINGS BELOW ARE REDEFINING VALUES ALREADY SET IN THE INCLUDED FILE,
; TASM INSISTS THAT YOU USE THE .SET OPERATOR AND NOT THE .EQU OPERATOR BELOW. ATTEMPTING
; TO REDEFINE A VALUE WITH .EQU BELOW WILL CAUSE TASM ERRORS!
;
; PLEASE REFER TO THE CUSTOM BUILD INSTRUCTIONS (README.TXT) IN THE SOURCE DIRECTORY (TWO
; DIRECTORIES ABOVE THIS ONE).
;
#DEFINE PLATFORM_NAME "SBC"
#DEFINE BOOT_DEFAULT "H" ; DEFAULT BOOT LOADER CMD ON <CR> OR AUTO BOOT
;
#include "cfg_sbc.asm"
;
INTMODE .SET 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
MEMMGR .SET MM_MBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
;
PPIDEENABLE .SET TRUE ; PPIDE: ENABLE PARALLEL PORT IDE DISK DRIVER (PPIDE.ASM)

3
Source/HBIOS/Makefile

@ -22,8 +22,9 @@ else
OBJECTS += RCZ80_std.rom RCZ80_std.com RCZ80_std.upd OBJECTS += RCZ80_std.rom RCZ80_std.com RCZ80_std.upd
OBJECTS += RCZ80_skz.rom RCZ80_skz.com RCZ80_skz.upd OBJECTS += RCZ80_skz.rom RCZ80_skz.com RCZ80_skz.upd
OBJECTS += RCZ80_zrc.rom RCZ80_zrc.com RCZ80_zrc.upd OBJECTS += RCZ80_zrc.rom RCZ80_zrc.com RCZ80_zrc.upd
OBJECTS += SBC_simh.rom SBC_simh.com SBC_simh.upd
OBJECTS += SBC_std.rom SBC_std.com SBC_std.upd OBJECTS += SBC_std.rom SBC_std.com SBC_std.upd
OBJECTS += SBC_simh.rom SBC_simh.com SBC_simh.upd
OBJECTS += SBC_mbc.rom SBC_mbc.com SBC_mbc.upd
OBJECTS += SCZ180_126.rom SCZ180_126.com SCZ180_126.upd OBJECTS += SCZ180_126.rom SCZ180_126.com SCZ180_126.upd
OBJECTS += SCZ180_130.rom SCZ180_130.com SCZ180_130.upd OBJECTS += SCZ180_130.rom SCZ180_130.com SCZ180_130.upd
OBJECTS += SCZ180_131.rom SCZ180_131.com SCZ180_131.upd OBJECTS += SCZ180_131.rom SCZ180_131.com SCZ180_131.upd

14
Source/HBIOS/cfg_dyno.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
@ -72,6 +72,7 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
; ;
DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -82,6 +83,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -176,11 +179,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

15
Source/HBIOS/cfg_ezz80.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 10000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@ -73,6 +73,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -83,6 +85,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -210,11 +214,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

15
Source/HBIOS/cfg_master.asm

@ -21,13 +21,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_NONE ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
@ -104,6 +104,8 @@ PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -114,6 +116,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -192,7 +196,7 @@ VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30]
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
@ -278,11 +282,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180] AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

17
Source/HBIOS/cfg_mk4.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
; ;
@ -79,6 +79,8 @@ PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -89,6 +91,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -126,7 +130,7 @@ VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30]
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
@ -210,11 +214,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

19
Source/HBIOS/cfg_n8.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_N8 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU 0 ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
RAMLOC .EQU 0 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 0 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
; ;
@ -82,6 +82,8 @@ PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -92,6 +94,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -129,7 +133,7 @@ VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30]
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
@ -210,11 +214,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AY38910ENABLE .EQU TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_N8 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

17
Source/HBIOS/cfg_rcz180.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
@ -75,6 +75,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -85,6 +87,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -146,7 +150,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
; ;
@ -223,11 +227,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

21
Source/HBIOS/cfg_rcz280.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 24000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 24000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
@ -80,6 +80,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -90,6 +92,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -162,7 +166,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
; ;
@ -239,11 +243,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
SN7CLK .EQU 7372800 / 4 ; DEFAULT TO CPUOSC / 4
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU 7372800 / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

17
Source/HBIOS/cfg_rcz80.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 7372800 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@ -74,6 +74,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -84,6 +86,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -151,7 +155,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
; ;
@ -228,11 +232,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

15
Source/HBIOS/cfg_sbc.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 8000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY) MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
; ;
@ -74,6 +74,8 @@ PPKTRACE .EQU 1 ; PPK DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) KBDTRACE .EQU 1 ; KBD DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE] PPKKBLOUT .EQU KBD_US ; PPK KEYBOARD LANGUAGE: KBD_[US|DE]
KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE] KBDKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -84,6 +86,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -128,7 +132,7 @@ VDUSIZ .EQU V80X25 ; VDU: DISPLAY FORMAT [V80X24|V80X25|V80X30]
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43] VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
@ -211,11 +215,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
; ;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_SCG ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

15
Source/HBIOS/cfg_scz180.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE RAMLOC .EQU 19 ; START OF RAM AS POWER OF 2 (2^N) IN PHYSICAL ADDRESS SPACE
RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE RAMBIAS .EQU (1 << (RAMLOC - 10)) ; OFFSET OF START OF RAM IN PHYSICAL ADDRESS SPACE
; ;
@ -70,6 +70,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
MKYKBLOUT .EQU KBD_US ; KBD KEYBOARD LANGUAGE: KBD_[US|DE]
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -80,6 +82,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -141,7 +145,7 @@ VDUENABLE .EQU FALSE ; VDU: ENABLE VDU VIDEO/KBD DRIVER (VDU.ASM)
CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM) CVDUENABLE .EQU FALSE ; CVDU: ENABLE CVDU VIDEO/KBD DRIVER (CVDU.ASM)
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM) NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM) TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1) TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM) VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
; ;
@ -218,11 +222,12 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
;
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4 AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180] AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
;
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

2
Source/HBIOS/cfg_una.asm

@ -19,7 +19,7 @@ BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 18432000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)

12
Source/HBIOS/cfg_zeta.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 0 ; INTERRUPT MODE: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 0 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_SBC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY) MPCL_RAM .EQU $78 ; SBC MEM MGR RAM PAGE SELECT REG (WRITE ONLY)
MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY) MPCL_ROM .EQU $7C ; SBC MEM MGR ROM PAGE SELECT REG (WRITE ONLY)
; ;
@ -62,6 +62,7 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -72,6 +73,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -153,11 +156,6 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

12
Source/HBIOS/cfg_zeta2.asm

@ -24,13 +24,13 @@ TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
; ;
CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ CPUOSC .EQU 20000000 ; CPU OSC FREQ IN MHZ
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
INTMODE .EQU 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM) DEFSERCFG .EQU SER_38400_8N1 ; DEFAULT SERIAL LINE CONFIG (SEE STD.ASM)
; ;
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!) RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0) RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0) ROM_RESERVE .EQU 0 ; RESERVE FIRST N KB OR ROM (USUALLY 0)
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
MEMMGR .EQU MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280|MBC]
MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY) MPGSEL_0 .EQU $78 ; Z2 MEM MGR BANK 0 PAGE SELECT REG (WRITE ONLY)
MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY) MPGSEL_1 .EQU $79 ; Z2 MEM MGR BANK 1 PAGE SELECT REG (WRITE ONLY)
MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY) MPGSEL_2 .EQU $7A ; Z2 MEM MGR BANK 2 PAGE SELECT REG (WRITE ONLY)
@ -73,6 +73,7 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI] VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL) ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
MKYENABLE .EQU FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
; ;
DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM) DSRTCENABLE .EQU TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC] DSRTCMODE .EQU DSRTCMODE_STD ; DSRTC: OPERATING MODE: DSRTC_[STD|MFPIC]
@ -83,6 +84,8 @@ BQRTC_BASE .EQU $50 ; BQRTC: I/O BASE ADDRESS
; ;
INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM) INTRTCENABLE .EQU FALSE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
; ;
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
;
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM) SIMRTCENABLE .EQU FALSE ; ENABLE SIMH CLOCK DRIVER (SIMRTC.ASM)
; ;
@ -164,11 +167,6 @@ PPI_SBC .EQU FALSE ; PIO: ENABLE PARALLEL PORT DRIVER FOR 8255 CHIP
; ;
UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM) UFENABLE .EQU FALSE ; UF: ENABLE ECB USB FIFO DRIVER (UF.ASM)
; ;
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF SOUND DRIVER
SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER SN76489ENABLE .EQU FALSE ; SN76489 SOUND DRIVER
SN7CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
AYMODE .EQU AYMODE_NONE ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM) SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.ASM)

12
Source/HBIOS/fd.asm

@ -743,7 +743,14 @@ FD_INIT0:
; DOES NOT ATTEMPT TO DETERMINE THE ACTUAL VARIANT. ; DOES NOT ATTEMPT TO DETERMINE THE ACTUAL VARIANT.
; ;
FD_DETECT: FD_DETECT:
; BLINDLY RESET FDC (WHICH MAY OR MAY NOT EXIST)
LD A,DOR_INIT ; MAKE SURE INITIAL DOR VALUE IS SETUP
LD (FST_DOR),A ; AND PUT IN SHADOW REGISTER
CALL FC_RESETFDC ; RESET FDC
IN A,(FDC_MSR) ; READ MSR IN A,(FDC_MSR) ; READ MSR
;CALL PC_SPACE ; *DEBUG*
;CALL PRTHEXBYTE ; *DEBUG*
CP $80 CP $80
JR Z,FD_DETECT1 ; $80 IS OK JR Z,FD_DETECT1 ; $80 IS OK
CP $D0 CP $D0
@ -751,7 +758,10 @@ FD_DETECT:
RET ; NOPE, ABORT WITH ZF=NZ RET ; NOPE, ABORT WITH ZF=NZ
; ;
FD_DETECT1: FD_DETECT1:
CALL DLY32 ; WAIT A BIT FOR FDC
IN A,(FDC_MSR) ; READ MSR AGAIN IN A,(FDC_MSR) ; READ MSR AGAIN
;CALL PC_SPACE ; *DEBUG*
;CALL PRTHEXBYTE ; *DEBUG*
CP $80 CP $80
RET ; $80 OK, ELSE NOT PRESENT RET ; $80 OK, ELSE NOT PRESENT
; ;
@ -1309,7 +1319,7 @@ FC_SETUPSPECIFY:
; ;
; SET FST_DOR ; SET FST_DOR
; ;
FC_SETDOR
FC_SETDOR:
LD (FST_DOR),A LD (FST_DOR),A
OUT (FDC_DOR),A OUT (FDC_DOR),A
#IF (FDTRACE >= 3) #IF (FDTRACE >= 3)

123
Source/HBIOS/hbios.asm

@ -116,8 +116,6 @@ MODCNT .SET MODCNT + 1
#IF (INTMODE == 3) #IF (INTMODE == 3)
; Z280 MODE 3 INTERRUPT HANDLING (INTA, C/T 0, & UART RCVR ENABLED) ; Z280 MODE 3 INTERRUPT HANDLING (INTA, C/T 0, & UART RCVR ENABLED)
#DEFINE HB_DI DI #DEFINE HB_DI DI
;#DEFINE HB_DI .DB $ED,$77,$7F
;#DEFINE HB_EI EI
#DEFINE HB_EI .DB $ED,$7F,$0B #DEFINE HB_EI .DB $ED,$7F,$0B
#ELSE #ELSE
; Z280 MODE 1/2 INTERRUPT HANDLING ; Z280 MODE 1/2 INTERRUPT HANDLING
@ -327,13 +325,13 @@ HBX_INVOKE:
; ;
LD A,(HB_CURBNK) ; GET CURRENT BANK LD A,(HB_CURBNK) ; GET CURRENT BANK
LD (HB_INVBNK),A ; SAVE INVOCATION BANK LD (HB_INVBNK),A ; SAVE INVOCATION BANK
;
;
LD A,BID_BIOS ; HBIOS BANK LD A,BID_BIOS ; HBIOS BANK
LD (HB_CURBNK),A ; SET AS CURRENT BANK LD (HB_CURBNK),A ; SET AS CURRENT BANK
; ;
.DB $ED,$71 ; SC .DB $ED,$71 ; SC
.DW HB_DISPATCH ; SC PARAMETER .DW HB_DISPATCH ; SC PARAMETER
;
;
PUSH AF PUSH AF
LD A,(HB_INVBNK) LD A,(HB_INVBNK)
LD (HB_CURBNK),A LD (HB_CURBNK),A
@ -486,6 +484,39 @@ HBX_ROM:
RET ; DONE RET ; DONE
#ENDIF #ENDIF
; ;
#IF (MEMMGR == MM_MBC)
;
#IF (INTMODE == 1)
LD (HBX_MMA),A ; SAVE ACCUM
LD A,I ; GET INT CTL REG
HB_DI ; DISABLE INTS
PUSH AF ; SAVE INT CTL REG
LD A,(HBX_MMA) ; RESTORE ACCUM
#ENDIF
;
OR A ; SET FLAGS
JP P,HBX_ROM ; BIT 7 INDICATES RAM
OUT (MPCL_ROM),A ; ENSURE ROM PAGE OUT OF MEMORY BEFORE SWITCH
OUT (MPCL_RAM),A ; SET RAM PAGE SELECTOR
JR HBX_RAMX
HBX_ROM:
OUT (MPCL_RAM),A ; ENSURE RAM PAGE OUT OF MEMORY BEFORE SWITCH
OUT (MPCL_ROM),A ; SET ROM PAGE SELECTOR
HBX_RAMX:
;
#IF (INTMODE == 1)
POP AF ; RESTORE INT CTL REG
JP PO,$+4 ; WERE INTS DISABLED AT ENTRY?
EI ; *** DO NOT USE HB_EI HERE ***
LD A,(HBX_MMA) ; RESTORE INCOMING ACCUM
#ENDIF
;
RET
;
HBX_MMA .DB 0 ; TEMPORARY STORAGE FOR REG A
#ENDIF
;
;:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: ;::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
; Copy Data - Possibly between banks. This resembles CP/M 3, but ; Copy Data - Possibly between banks. This resembles CP/M 3, but
; usage of the HL and DE registers is reversed. ; usage of the HL and DE registers is reversed.
@ -788,7 +819,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE
; SYSTEM OR USER MODE WAS ACTIVE AT THE TIME OF THE INTERRUPT. ; SYSTEM OR USER MODE WAS ACTIVE AT THE TIME OF THE INTERRUPT.
; ;
EX (SP),HL ; SAVE HL AND GET INT JP TABLE OFFSET EX (SP),HL ; SAVE HL AND GET INT JP TABLE OFFSET
; SAVE STATE (HL SAVED PREVIOUSLY ON ORIGINAL STACK FRAME) ; SAVE STATE (HL SAVED PREVIOUSLY ON ORIGINAL STACK FRAME)
PUSH AF ; SAVE AF PUSH AF ; SAVE AF
PUSH BC ; SAVE BC PUSH BC ; SAVE BC
@ -814,7 +845,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE
CALL HBX_RETI ; RETI FOR Z80 PERIPHERALS CALL HBX_RETI ; RETI FOR Z80 PERIPHERALS
RETIL RETIL
; ;
HBX_RETI:
HBX_RETI:
RETI RETI
; ;
#ELSE #ELSE
@ -859,7 +890,7 @@ HBX_INT_SP .EQU $ - 2
RETI ; AND RETURN RETI ; AND RETURN
; ;
#ENDIF #ENDIF
#ENDIF #ENDIF
; ;
; SMALL TEMPORARY STACK FOR USE BY HBX_BNKCPY ; SMALL TEMPORARY STACK FOR USE BY HBX_BNKCPY
@ -1095,13 +1126,13 @@ Z280_BOOTPDRTBL:
; ;
Z280_INITZ: Z280_INITZ:
; ;
#ENDIF
#ENDIF
; ;
; RESTORE I/O PAGE TO $00 ; RESTORE I/O PAGE TO $00
LD L,$00 ; NORMAL I/O REG IS $00 LD L,$00 ; NORMAL I/O REG IS $00
LD C,Z280_IOPR ; REG C POINTS TO I/O PAGE REGISTER LD C,Z280_IOPR ; REG C POINTS TO I/O PAGE REGISTER
LDCTL (C),HL LDCTL (C),HL
;
;
#ENDIF #ENDIF
; ;
#IF (CPUFAM == CPU_Z180) #IF (CPUFAM == CPU_Z180)
@ -1152,7 +1183,7 @@ Z280_INITZ:
; ;
; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE) ; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE)
LD A,Z180_CNTR_DEF ; DIV 1280, 14KHZ @ 18MHZ CLK LD A,Z180_CNTR_DEF ; DIV 1280, 14KHZ @ 18MHZ CLK
OUT0 (Z180_CNTR),A
OUT0 (Z180_CNTR),A
#ENDIF #ENDIF
; ;
#ENDIF #ENDIF
@ -1588,8 +1619,7 @@ HB_CPU2:
#ENDIF #ENDIF
; ;
#IF (KIOENABLE) #IF (KIOENABLE)
LD A,%11111001 ; RESET ALL DEVICES, SET DAISYCHAIN
OUT (KIOBASE+$0E),A ; DO IT
CALL KIO_PREINIT
#ENDIF #ENDIF
; ;
#IF (CTCENABLE) #IF (CTCENABLE)
@ -1738,7 +1768,7 @@ NOT_REC_M0:
; ;
XOR A ; FAILSAFE VALUE FOR BOOT CONSOLE DEVICE XOR A ; FAILSAFE VALUE FOR BOOT CONSOLE DEVICE
LD (CB_CONDEV),A ; SAVE IT LD (CB_CONDEV),A ; SAVE IT
;
;
LD A,(CIO_CNT) ; GET COUNT OF CHAR DEVICES LD A,(CIO_CNT) ; GET COUNT OF CHAR DEVICES
CP BOOTCON + 1 ; COUNT - (DEVICE + 1) CP BOOTCON + 1 ; COUNT - (DEVICE + 1)
JR C,HB_CONRDY ; IF TOO HIGH, JUST USE FAILSAFE JR C,HB_CONRDY ; IF TOO HIGH, JUST USE FAILSAFE
@ -1881,7 +1911,7 @@ HB_Z280BUS1:
; DISPLAY CPU CONFIG ; DISPLAY CPU CONFIG
; ;
CALL NEWLINE CALL NEWLINE
#IF (CPUFAM == CPU_Z280) #IF (CPUFAM == CPU_Z280)
LD A,Z280_MEMLOWAIT LD A,Z280_MEMLOWAIT
CALL PRTDECB CALL PRTDECB
@ -2239,6 +2269,9 @@ HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2)
;================================================================================================== ;==================================================================================================
; ;
HB_INITTBL: HB_INITTBL:
#IF (KIOENABLE)
.DW KIO_INIT
#ENDIF
#IF (CTCENABLE) #IF (CTCENABLE)
.DW CTC_INIT .DW CTC_INIT
#ENDIF #ENDIF
@ -2285,6 +2318,9 @@ HB_INITTBL:
.DW PCF8584_INIT .DW PCF8584_INIT
.DW DS7RTC_INIT .DW DS7RTC_INIT
#ENDIF #ENDIF
#IF (RP5RTCENABLE)
.DW RP5RTC_INIT
#ENDIF
#IF (VDUENABLE) #IF (VDUENABLE)
.DW VDU_INIT .DW VDU_INIT
#ENDIF #ENDIF
@ -2963,7 +2999,7 @@ SYS_RESINT:
; ;
SYS_RESWARM: SYS_RESWARM:
CALL SYS_RESINT CALL SYS_RESINT
;
;
#IF (MEMMGR == MM_Z280) #IF (MEMMGR == MM_Z280)
JP INITSYS4 JP INITSYS4
#ELSE #ELSE
@ -3752,6 +3788,10 @@ HB_TICK1:
; PULSE WATCHDOG ; PULSE WATCHDOG
OUT (WDOGIO),A ; VALUE IS IRRELEVANT OUT (WDOGIO),A ; VALUE IS IRRELEVANT
#ENDIF #ENDIF
;
#IF MKYENABLE
CALL MKY_INT
#ENDIF
; ;
OR $FF ; NZ SET TO INDICATE INT HANDLED OR $FF ; NZ SET TO INDICATE INT HANDLED
RET RET
@ -3909,13 +3949,13 @@ Z280_PRIVINST:
LD (HB_MSRSAV),HL ; SAVE IT LD (HB_MSRSAV),HL ; SAVE IT
POP HL ; RECOVER HL, POP STACK POP HL ; RECOVER HL, POP STACK
EX (SP),HL ; GET ADR, SAVE HL EX (SP),HL ; GET ADR, SAVE HL
;
;
PUSH AF PUSH AF
PUSH BC PUSH BC
PUSH DE PUSH DE
;
;
.DB $ED,$96 ; LDUP A,(HL) .DB $ED,$96 ; LDUP A,(HL)
;
;
; HANDLE DI ; HANDLE DI
CP $F3 ; DI? CP $F3 ; DI?
JR NZ,Z280_PRIVINST2 JR NZ,Z280_PRIVINST2
@ -4251,7 +4291,7 @@ Z280_BNKSEL:
PUSH HL ; SAVE IT PUSH HL ; SAVE IT
LD L,$FF ; NEW I/O PAGE LD L,$FF ; NEW I/O PAGE
LDCTL (C),HL LDCTL (C),HL
;
;
; CONVERT BANK ID TO TOP 12 BITS OF PHYSICAL ADDRESS ; CONVERT BANK ID TO TOP 12 BITS OF PHYSICAL ADDRESS
; WITH $0A IN THE LOW ORDER NIBBLE: ; WITH $0A IN THE LOW ORDER NIBBLE:
; BANK ID: R000 BBBB ; BANK ID: R000 BBBB
@ -4263,7 +4303,7 @@ Z280_BNKSEL:
JR Z,Z280_BNKSEL2 ; IF NOT, ALL DONE JR Z,Z280_BNKSEL2 ; IF NOT, ALL DONE
RES 6,H ; OTHERWISE, MOVE RAM BIT RES 6,H ; OTHERWISE, MOVE RAM BIT
SET RAMLOC-16,H ; HL=0000 RBBB B000 0000 SET RAMLOC-16,H ; HL=0000 RBBB B000 0000
;
;
Z280_BNKSEL2: Z280_BNKSEL2:
; ;
; SET LOW NIBBLE ; SET LOW NIBBLE
@ -4332,19 +4372,19 @@ Z280_BNKCPY:
; ;
PUSH BC ; SAVE COUNT PUSH BC ; SAVE COUNT
PUSH HL ; SAVE SOURCE ADDRESS PUSH HL ; SAVE SOURCE ADDRESS
;
;
; SELECT I/O PAGE $FF ; SELECT I/O PAGE $FF
LD C,Z280_IOPR ; I/O PAGE REGISTER LD C,Z280_IOPR ; I/O PAGE REGISTER
LDCTL HL,(C) ; GET CURRENT I/O PAGE LDCTL HL,(C) ; GET CURRENT I/O PAGE
LD (IOPRVAL),HL ; SAVE IT LD (IOPRVAL),HL ; SAVE IT
LD L,$FF ; I/O PAGE $FF LD L,$FF ; I/O PAGE $FF
LDCTL (C),HL LDCTL (C),HL
;
;
LD C,Z280_DMA0_DSTL ; START WITH DEST REG LO LD C,Z280_DMA0_DSTL ; START WITH DEST REG LO
; ;
LD A,(HB_DSTBNK) ; DEST BANK TO ACCUM LD A,(HB_DSTBNK) ; DEST BANK TO ACCUM
CALL Z2DMAADR ; SETUP DEST ADR REGS CALL Z2DMAADR ; SETUP DEST ADR REGS
;
;
POP DE ; SRC ADR TO DE POP DE ; SRC ADR TO DE
LD A,(HB_SRCBNK) ; DEST BANK TO ACCUM LD A,(HB_SRCBNK) ; DEST BANK TO ACCUM
CALL Z2DMAADR ; SETUP SOURCE ADR REGS CALL Z2DMAADR ; SETUP SOURCE ADR REGS
@ -4399,7 +4439,7 @@ Z2DMAADR1:
LD A,$0F ; A=0000 1111 LD A,$0F ; A=0000 1111
OR L ; A=BAAA 1111 OR L ; A=BAAA 1111
LD L,A ; L=BAAA 1111 LD L,A ; L=BAAA 1111
;
;
; MOVE THE RAM/ROM BIT. ; MOVE THE RAM/ROM BIT.
; RC2014 DMA HI=0000 RBBB BAAA 1111 LO=1111 AAAA AAAA AAAA ; RC2014 DMA HI=0000 RBBB BAAA 1111 LO=1111 AAAA AAAA AAAA
; ZZ80MB DMA HI=R000 0BBB BAAA 1111 LO=1111 AAAA AAAA AAAA ; ZZ80MB DMA HI=R000 0BBB BAAA 1111 LO=1111 AAAA AAAA AAAA
@ -4425,7 +4465,7 @@ Z2DMAADR2:
POP HL ; RECOVER THE HI VAL POP HL ; RECOVER THE HI VAL
OUTW (C),HL OUTW (C),HL
INC C ; BUMP TO NEXT REG INC C ; BUMP TO NEXT REG
;
;
RET RET
#ENDIF #ENDIF
; ;
@ -4499,6 +4539,14 @@ SIZ_INTRTC .EQU $ - ORG_INTRTC
.ECHO " bytes.\n" .ECHO " bytes.\n"
#ENDIF #ENDIF
; ;
#IF (RP5RTCENABLE)
ORG_RP5RTC .EQU $
#INCLUDE "rp5rtc.asm"
SIZ_RP5RTC .EQU $ - ORG_RP5RTC
.ECHO "RP5RTC occupies "
.ECHO SIZ_RP5RTC
.ECHO " bytes.\n"
#ENDIF
#IF (ASCIENABLE) #IF (ASCIENABLE)
ORG_ASCI .EQU $ ORG_ASCI .EQU $
#INCLUDE "asci.asm" #INCLUDE "asci.asm"
@ -4657,6 +4705,15 @@ SIZ_PPK .EQU $ - ORG_PPK
.ECHO " bytes.\n" .ECHO " bytes.\n"
#ENDIF #ENDIF
; ;
#IF (MKYENABLE)
ORG_MKY .EQU $
#INCLUDE "mky.asm"
SIZ_MKY .EQU $ - ORG_MKY
.ECHO "MKY occupies "
.ECHO SIZ_MKY
.ECHO " bytes.\n"
#ENDIF
;
#IF (PRPENABLE) #IF (PRPENABLE)
ORG_PRP .EQU $ ORG_PRP .EQU $
#INCLUDE "prp.asm" #INCLUDE "prp.asm"
@ -4774,6 +4831,14 @@ SIZ_UF .EQU $ - ORG_UF
.ECHO SIZ_UF .ECHO SIZ_UF
.ECHO " bytes.\n" .ECHO " bytes.\n"
#ENDIF #ENDIF
#IF (KIOENABLE)
ORG_KIO .EQU $
#INCLUDE "kio.asm"
SIZ_KIO .EQU $ - ORG_KIO
.ECHO "KIO occupies "
.ECHO SIZ_KIO
.ECHO " bytes.\n"
#ENDIF
#IF (CTCENABLE) #IF (CTCENABLE)
ORG_CTC .EQU $ ORG_CTC .EQU $
#INCLUDE "ctc.asm" #INCLUDE "ctc.asm"
@ -4944,7 +5009,7 @@ SYSCHK:
CP DL_ERROR ; >= ERROR LEVEL CP DL_ERROR ; >= ERROR LEVEL
JR C,SYSCHK1 ; IF NOT, GO HOME JR C,SYSCHK1 ; IF NOT, GO HOME
POP AF ; RESTORE INCOMING AF VALUE POP AF ; RESTORE INCOMING AF VALUE
;
;
; DISPLAY SYSCHK MESSAGE ; DISPLAY SYSCHK MESSAGE
PUSH DE ; PRESERVE DE VALUE PUSH DE ; PRESERVE DE VALUE
LD DE,STR_SYSCHK ; POINT TO PREFIX STRING LD DE,STR_SYSCHK ; POINT TO PREFIX STRING
@ -5151,7 +5216,7 @@ PS_PRTDC:
CP 5 ; RAM DISK? CP 5 ; RAM DISK?
JR Z,PS_PRTDC1 ; PRINT CAPACITY IN KB JR Z,PS_PRTDC1 ; PRINT CAPACITY IN KB
CP 7 ; FLASH DISK? CP 7 ; FLASH DISK?
JR Z,PS_PRTDC1 ; PRINT CAPACITY IN KB
JR Z,PS_PRTDC1 ; PRINT CAPACITY IN KB
; ;
; PRINT HARD DISK STORAGE SIZE IN MB ; PRINT HARD DISK STORAGE SIZE IN MB
LD B,BF_DIOCAP ; HBIOS FUNC: GET CAPACTIY LD B,BF_DIOCAP ; HBIOS FUNC: GET CAPACTIY
@ -5416,8 +5481,8 @@ PS_SOUND:
PRTS(" $") ; PAD TO NEXT COLUMN PRTS(" $") ; PAD TO NEXT COLUMN
; DEVICE COLUMN ; DEVICE COLUMN
PUSH BC ;
PUSH BC ;
LD E,C LD E,C
XOR A XOR A
LD DE,PS_SDSND ; POINT TO DEVICE TYPE NAME TABLE LD DE,PS_SDSND ; POINT TO DEVICE TYPE NAME TABLE

4
Source/HBIOS/hbios.inc

@ -131,7 +131,7 @@ ERR_RANGE .EQU -6 ; PARAMETER OUT OF RANGE
ERR_NOMEDIA .EQU -7 ; MEDIA NOT PRESENT ERR_NOMEDIA .EQU -7 ; MEDIA NOT PRESENT
ERR_NOHW .EQU -8 ; HARDWARE NOT PRESENT ERR_NOHW .EQU -8 ; HARDWARE NOT PRESENT
ERR_IO .EQU -9 ; I/O ERROR ERR_IO .EQU -9 ; I/O ERROR
ERR_READONLY .EQU -10 ; WRITE REQUEST TO READ-ONLY MEDIA
ERR_READONLY .EQU -10 ; WRITE REQUEST TO READ-ONLY MEDIA
ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT ERR_TIMEOUT .EQU -11 ; DEVICE TIMEOUT
ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION ERR_BADCFG .EQU -12 ; INVALID CONFIGURATION
ERR_INTERNAL .EQU -13 ; INTERNAL ERROR ERR_INTERNAL .EQU -13 ; INTERNAL ERROR
@ -191,6 +191,7 @@ RTCDEV_BQ .EQU $10 ; BQ4845P
RTCDEV_SIMH .EQU $20 ; SIMH RTCDEV_SIMH .EQU $20 ; SIMH
RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER
RTCDEV_DS7 .EQU $40 ; DS1302 (I2C) RTCDEV_DS7 .EQU $40 ; DS1302 (I2C)
RTCDEV_RP5 .EQU $50 ; RP5C01
; ;
; VIDEO DEVICE IDS ; VIDEO DEVICE IDS
; ;
@ -199,6 +200,7 @@ VDADEV_CVDU .EQU $10 ; ECB COLOR VDU - MOS 8563
VDADEV_NEC .EQU $20 ; ECB UPD7220 - NEC UPD7220 VDADEV_NEC .EQU $20 ; ECB UPD7220 - NEC UPD7220
VDADEV_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918 VDADEV_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918
VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445 VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445
;VDADEV_V9958 .EQU $50 ; V9958 VDU
; ;
; SOUND DEVICE IDS ; SOUND DEVICE IDS
; ;

92
Source/HBIOS/kio.asm

@ -0,0 +1,92 @@
;___KIO________________________________________________________________________________________________________________
;
; Z80 KIO
;
; DISPLAY CONFIGURATION DETAILS
;______________________________________________________________________________________________________________________
;
;
;
KIO_PIOADAT .EQU KIOBASE + $00
KIO_PIOACMD .EQU KIOBASE + $01
KIO_PIOBDAT .EQU KIOBASE + $02
KIO_PIOBCMD .EQU KIOBASE + $03
KIO_CTC0 .EQU KIOBASE + $04
KIO_CTC1 .EQU KIOBASE + $05
KIO_CTC2 .EQU KIOBASE + $06
KIO_CTC3 .EQU KIOBASE + $07
KIO_SIOADAT .EQU KIOBASE + $08
KIO_SIOACMD .EQU KIOBASE + $09
KIO_SIOBDAT .EQU KIOBASE + $0A
KIO_SIOBCMD .EQU KIOBASE + $0B
KIO_PIACDAT .EQU KIOBASE + $0C
KIO_PIACCMD .EQU KIOBASE + $0D
KIO_KIOCMD .EQU KIOBASE + $0E
KIO_KIOCMDB .EQU KIOBASE + $0F
;
;
;
KIO_PREINIT:
CALL KIO_DETECT
RET NZ
;
; RECORD PRESENCE
LD A,$FF
LD (KIO_EXISTS),A
; INITIALIZE KIO
LD A,%11111001 ; RESET ALL DEVICES, SET DAISYCHAIN
OUT (KIO_KIOCMD),A ; DO IT
;
XOR A
RET
;
;
;
KIO_INIT:
; ANNOUNCE PORT
CALL NEWLINE ; FORMATTING
PRTS("KIO:$") ; FORMATTING
;
PRTS(" IO=0x$") ; FORMATTING
LD A,KIOBASE ; GET BASE PORT
CALL PRTHEXBYTE ; PRINT BASE PORT
;
LD A,(KIO_EXISTS)
OR A
JR Z,KIO_INIT2
;
PRTS(" ENABLED$") ; DISPLAY ENABLED
XOR A ; SIGNAL SUCCESS
RET ; DONE
;
KIO_INIT2:
PRTS(" NOT PRESENT$") ; NOT ZERO, H/W NOT PRESENT
OR $FF ; SIGNAL FAILURE
RET ; BAIL OUT
;
;
;
KIO_DETECT:
LD C,KIO_SIOBCMD ; USE SIOB COMMAND PORT
LD B,2 ; SIO REG 2
;
OUT (C),B
XOR A ; ZERO
OUT (C),A ; WRITE IT
OUT (C),B
IN A,(C)
AND $F0 ; TOP NIBBLE ONLY
RET NZ ; FAIL IF NOT ZERO
;
OUT (C),B
LD A,$FF ; $FF
OUT (C),A ; WRITE IT
OUT (C),B
IN A,(C)
AND $F0 ; TOP NIBBLE ONLY
CP $F0 ; COMPARE
RET ; DONE, Z IF FOUND, NZ IF MISCOMPARE
;
;
;
KIO_EXISTS .DB 0

1155
Source/HBIOS/mky.asm

File diff suppressed because it is too large

446
Source/HBIOS/rp5rtc.asm

@ -0,0 +1,446 @@
;
;==================================================================================================
; RP5C01 CLOCK DRIVER
;==================================================================================================
;
RP5RTC_BUFSIZ .EQU 6 ; SIX BYTE BUFFER (YYMMDDHHMMSS)
;
; RTC DEVICE INITIALIZATION ENTRY
;
; TODO:
; set the day of week register
; read block of nvram
; write block of nvram
; set alarm/get alarm????
;; NOTES FOR USING DRIVER IN Z-DOS
; First load the LDDS datestamper
; A:LDDS
; next prepare and drives with datestamper info:
; eg: a:putds -d=g: -V
; then view date time of files with:
; a:filedate
RP5RTC_REG .EQU $B4
RP5RTC_DAT .EQU $B5
REG_1SEC .EQU $00
REG_10SEC .EQU $01
REG_1MIN .EQU $02
REG_10MIN .EQU $03
REG_1HR .EQU $04
REG_10HR .EQU $05
REG_DAYWEEK .EQU $06 ; NOT USED BY THIS DRIVER
REG_1DAY .EQU $07
REG_10DAY .EQU $08
REG_1MNTH .EQU $09
REG_10MNTH .EQU $0A
REG_1YEAR .EQU $0B
REG_10YEAR .EQU $0C
REG_MODE .EQU $0D
REG_TEST .EQU $0E
REG_RESET .EQU $0F
REG_12_24 .EQU $0A
REG_LEAPYR .EQU $0B
MODE_TIMEST .EQU 0
MODE_ALRMST .EQU 1
MODE_RAM0 .EQU 2
MODE_RAM1 .EQU 3
MD_TIME .EQU 8
MD_ALRM .EQU 4
RP5RTC_INIT:
LD A, (RTC_DISPACT) ; RTC DISPATCHER ALREADY SET?
OR A ; SET FLAGS
RET NZ ; IF ALREADY ACTIVE, ABORT
CALL NEWLINE ; FORMATTING
PRTS("RP5C01 RTC: $")
; PRINT RTC LATCH PORT ADDRESS
PRTS("IO=0x$") ; LABEL FOR IO ADDRESS
LD A,RP5RTC_REG ; GET IO ADDRESS
CALL PRTHEXBYTE ; PRINT IT
CALL PC_SPACE ; FORMATTING
; CHECK PRESENCE STATUS
CALL RP5RTC_DETECT ; HARDWARE DETECTION
JR Z, RP5RTC_INIT1 ; IF ZERO, ALL GOOD
PRTS("NOT PRESENT$") ; NOT ZERO, H/W NOT PRESENT
OR $FF ; SIGNAL FAILURE
RET ; BAIL OUT
RP5RTC_INIT1:
; ENSURE DEVICE IS RESET AND NOT IN TEST MODE
LD A, REG_TEST ; SELECT TEST REGISTER
OUT (RP5RTC_REG), A
CALL DLY16
XOR A
OUT (RP5RTC_DAT), A ; TURN OFF ALL TEST MODE BITS
LD B, MODE_ALRMST
CALL RP5RTC_SETMD
CALL RP5RTC_ENTIME
LD A, REG_12_24 ; SET TO 24 HOUR CLOCK
OUT (RP5RTC_REG), A
LD A, 1
OUT (RP5RTC_DAT), A
CALL RP5RTC_RDTIM
; DISPLAY CURRENT TIME
LD HL, RP5RTC_BCDBUF ; POINT TO BCD BUF
CALL PRTDT
;
LD BC, RP5RTC_DISPATCH
CALL RTC_SETDISP
;
XOR A ; SIGNAL SUCCESS
RET
;
; DETECT RTC HARDWARE PRESENCE
;
RP5RTC_DETECT:
LD C, 0 ; NVRAM INDEX 0
CALL RP5RTC_GETBYT ; GET VALUE
LD A, E ; TO ACCUM
LD L, A ; SAVE IT
XOR $FF ; FLIP ALL BITS
LD E, A ; TO E
LD C, 0 ; NVRAM INDEX 0
CALL RP5RTC_SETBYT ; WRITE IT
LD C, 0 ; NVRAM INDEX 0
CALL RP5RTC_GETBYT ; GET VALUE
LD A, L ; GET SAVED VALUE
XOR $FF ; FLIP ALL BITS
CP E ; COMPARE WITH VALUE READ
LD A, 0 ; ASSUME OK
JR Z, RP5RTC_DETECT1 ; IF MATCH, GO AHEAD
LD A, $FF ; ELSE STATUS IS ERROR
RP5RTC_DETECT1:
PUSH AF ; SAVE STATUS
LD A, L ; GET SAVED VALUE
LD C, 0 ; NVRAM INDEX 0
CALL RP5RTC_SETBYT ; SAVE IT
POP AF ; RECOVER STATUS
OR A ; SET FLAGS
RET
;
; RTC DEVICE FUNCTION DISPATCH ENTRY
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR
; B: FUNCTION (IN)
;
RP5RTC_DISPATCH:
LD A,B ; GET REQUESTED FUNCTION
AND $0F ; ISOLATE SUB-FUNCTION
JP Z,RP5RTC_GETTIM ; GET TIME
DEC A
JP Z,RP5RTC_SETTIM ; SET TIME
DEC A
JP Z,RP5RTC_GETBYT ; GET NVRAM BYTE VALUE
DEC A
JP Z,RP5RTC_SETBYT ; SET NVRAM BYTE VALUE
DEC A
JP Z,RP5RTC_GETBLK ; GET NVRAM DATA BLOCK VALUES
DEC A
JP Z,RP5RTC_SETBLK ; SET NVRAM DATA BLOCK VALUES
DEC A
JP Z,RP5RTC_GETALM ; GET ALARM
DEC A
JP Z,RP5RTC_SETALM ; SET ALARM
DEC A
JP Z,RP5RTC_DEVICE ; REPORT RTC DEVICE INFO
CALL SYSCHK
LD A, ERR_NOFUNC
OR A
RET
;
; RTC GET NVRAM BYTE
; C: INDEX
; E: VALUE (OUTPUT)
; A:0 IF OK, ERR_RANGE IF OUT OF RANGE
;
RP5RTC_GETBYT:
LD A, C
CP $0D
JR NC, RP5RTC_BADIDX
LD B, MODE_RAM0
CALL RP5RTC_SETMD
LD A, C ; SELECT NVRAM INDEX
OUT (RP5RTC_REG), A
IN A, (RP5RTC_DAT)
AND $0F ; RETRIEVE UNIT NIBBLE
LD E, A
LD B, MODE_RAM1
CALL RP5RTC_SETMD
LD A, C ; SELECT NVRAM INDEX
OUT (RP5RTC_REG), A
IN A, (RP5RTC_DAT)
AND $0F ; RETRIEVE UNIT NIBBLE
RLCA
RLCA
RLCA
RLCA
OR E
LD E, A
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
RP5RTC_BADIDX:
LD E, 00
LD A, ERR_RANGE
RET
;
; RTC SET NVRAM BYTE
; C: INDEX
; E: VALUE
; A:0 IF OK, ERR_RANGE IF OUT OF RANGE
;
RP5RTC_SETBYT:
LD A, C
CP $0D
JR NC, RP5RTC_BADIDX
LD B, MODE_RAM0
CALL RP5RTC_SETMD
LD A, C ; SELECT NVRAM INDEX
OUT (RP5RTC_REG), A
LD A, E
AND $0F
OUT (RP5RTC_DAT), A
LD B, MODE_RAM1
CALL RP5RTC_SETMD
LD A, C ; SELECT NVRAM INDEX
OUT (RP5RTC_REG), A
LD A, E
AND $F0
RRCA
RRCA
RRCA
RRCA
OUT (RP5RTC_DAT), A
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
RP5RTC_GETBLK:
RP5RTC_SETBLK:
RP5RTC_GETALM:
RP5RTC_SETALM:
LD A, ERR_NOTIMPL
CALL SYSCHK
OR A
RET
;
; RTC GET TIME
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR
; HL: DATE/TIME BUFFER (OUT)
; BUFFER FORMAT IS BCD: YYMMDDHHMMSS
; 24 HOUR TIME FORMAT IS ASSUMED
;
RP5RTC_GETTIM:
; GET THE TIME INTO TEMP BUF
PUSH HL ; SAVE PTR TO CALLERS BUFFER
;
CALL RP5RTC_RDTIM
; NOW COPY TO REAL DESTINATION (INTERBANK SAFE)
LD A,BID_BIOS ; COPY FROM BIOS BANK
LD (HB_SRCBNK),A ; SET IT
LD A,(HB_INVBNK) ; COPY TO CURRENT USER BANK
LD (HB_DSTBNK),A ; SET IT
LD HL,RP5RTC_BCDBUF ; SOURCE ADR
POP DE ; DEST ADR
LD BC,RP5RTC_BUFSIZ ; LENGTH
CALL HB_BNKCPY ; COPY THE CLOCK DATA
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
;
;
; RTC SET TIME
; A: RESULT (OUT), 0=OK, Z=OK, NZ=ERR
; HL: DATE/TIME BUFFER (IN)
; BUFFER FORMAT IS BCD: YYMMDDHHMMSSWW
; 24 HOUR TIME FORMAT IS ASSUMED
;
RP5RTC_SETTIM:
; COPY TO BCD BUF
LD A,(HB_INVBNK) ; COPY FROM CURRENT USER BANK
LD (HB_SRCBNK),A ; SET IT
LD A,BID_BIOS ; COPY TO BIOS BANK
LD (HB_DSTBNK),A ; SET IT
LD DE,RP5RTC_BCDBUF ; DEST ADR
LD BC,RP5RTC_BUFSIZ ; LENGTH
CALL HB_BNKCPY ; COPY THE CLOCK DATA
;
LD B, MODE_TIMEST
CALL RP5RTC_SETMD
LD B, REG_1SEC
LD A, (RP5RTC_SS)
CALL RP5RTC_WRVL
LD B, REG_1MIN
LD A, (RP5RTC_MM)
CALL RP5RTC_WRVL
LD B, REG_1HR
LD A, (RP5RTC_HH)
CALL RP5RTC_WRVL
LD B, REG_1DAY
LD A, (RP5RTC_DT)
CALL RP5RTC_WRVL
LD B, REG_1MNTH
LD A, (RP5RTC_MO)
CALL RP5RTC_WRVL
LD B, REG_1YEAR
LD A, (RP5RTC_YR)
CALL RP5RTC_WRVL
LD B, MODE_ALRMST
CALL RP5RTC_SETMD
LD A, (RP5RTC_YR)
CALL BCD2BYTE
AND 3
LD B, REG_LEAPYR
CALL RP5RTC_WRVL
CALL RP5RTC_ENTIME
XOR A ; SIGNAL SUCCESS
RET ; AND RETURN
;
; REPORT RTC DEVICE INFO
;
RP5RTC_DEVICE:
LD D,RTCDEV_RP5 ; D := DEVICE TYPE
LD E,0 ; E := PHYSICAL DEVICE NUMBER
LD H,0 ; H := 0, DRIVER HAS NO MODES
LD L,0 ; L := 0, NO I/O ADDRESS
XOR A ; SIGNAL SUCCESS
RET
;
; READ OUT THE TIME
RP5RTC_RDTIM:
LD B, MODE_TIMEST
CALL RP5RTC_SETMD
LD B, REG_1SEC
CALL RP5RTC_RDVL
LD (RP5RTC_SS), A
LD B, REG_1MIN
CALL RP5RTC_RDVL
LD (RP5RTC_MM), A
LD B, REG_1HR
CALL RP5RTC_RDVL
LD (RP5RTC_HH), A
LD B, REG_1DAY
CALL RP5RTC_RDVL
LD (RP5RTC_DT), A
LD B, REG_1MNTH
CALL RP5RTC_RDVL
LD (RP5RTC_MO), A
LD B, REG_1YEAR
CALL RP5RTC_RDVL
LD (RP5RTC_YR), A
RET
; SET MODE
; MODE IN B (MODE_TIMEST, MODE_ALRMST, MODE_RAM0, MODE_RAM1)
RP5RTC_SETMD:
LD A, REG_MODE ; SELECT MODE REGISTER
OUT (RP5RTC_REG), A
IN A, (RP5RTC_DAT)
AND MD_TIME | MD_ALRM
OR B
OUT (RP5RTC_DAT), A ; ASSIGN MODE
RET
; ENABLE THE TIME COUNTER
RP5RTC_ENTIME:
LD B, MD_TIME
JP RP5RTC_SETMD
; READ OUT 2 REGISTERS - 2 NIBBLES TO 1 BYTE
; REGISTER IN B
RP5RTC_RDVL:
LD A, B ; SELECT UNIT REGISTER
OUT (RP5RTC_REG), A
IN A, (RP5RTC_DAT)
AND $0F ; RETRIEVE UNIT NIBBLE
LD L, A
INC B
LD A, B ; SELECT TENS REGISTER
OUT (RP5RTC_REG), A
IN A, (RP5RTC_DAT)
AND $0F
RLCA
RLCA
RLCA
RLCA ; MOVE TO TOP NIBBLE
OR L ; MERGE IN LOW NIBBLE
LD H, A ; A = VALUE AS BCD
RET
; WRITE OUT 2 REGISTERS - 1 BYTE TO 2 NIBBLES
; REGISTER IN B (B+1)
; VALUE IN A
RP5RTC_WRVL:
LD C, A
LD A, B ; SELECT UNIT REGISTER
OUT (RP5RTC_REG), A
LD A, C ; WRITE C (ONLY LOW NIBBLE WILL BE USED)
OUT (RP5RTC_DAT), A
INC B
LD A, B ; SELECT TENS REGISTER
OUT (RP5RTC_REG), A
LD A, C ; SHIFT TOP NIBBLE TO LOW NIBBLE
RRCA
RRCA
RRCA
RRCA
OUT (RP5RTC_DAT), A ; WRITE IT
RET
;
; REGISTER EXTRACTED VALUES
;
RP5RTC_BCDBUF:
RP5RTC_YR .DB 20
RP5RTC_MO .DB 01
RP5RTC_DT .DB 01
RP5RTC_HH .DB 00
RP5RTC_MM .DB 00
RP5RTC_SS .DB 00

6
Source/HBIOS/std.asm

@ -84,6 +84,7 @@ MM_N8 .EQU 3 ; Z180 CUSTOMIZED FOR N8 MEMORY EXTENSIONS
MM_Z180 .EQU 4 ; Z180 NATIVE MEMORY MANAGER MM_Z180 .EQU 4 ; Z180 NATIVE MEMORY MANAGER
MM_Z280 .EQU 5 ; Z280 NATIVE MEMORY MANAGER MM_Z280 .EQU 5 ; Z280 NATIVE MEMORY MANAGER
MM_ZRC .EQU 6 ; ZRC BANK SWITCHING MM_ZRC .EQU 6 ; ZRC BANK SWITCHING
MM_MBC .EQU 7 ; MBC MEMORY MANAGER
; ;
; BOOT STYLE ; BOOT STYLE
; ;
@ -199,7 +200,8 @@ AYMODE_MSX .EQU 5 ; RC2014 SOUND MODULE REV6 BY ED BRINDLEY ON Z80/Z180 AT MSX
TMSMODE_NONE .EQU 0 TMSMODE_NONE .EQU 0
TMSMODE_SCG .EQU 1 ; SCG ECB BOARD TMSMODE_SCG .EQU 1 ; SCG ECB BOARD
TMSMODE_N8 .EQU 2 ; N8 BUILT-IN VIDEO TMSMODE_N8 .EQU 2 ; N8 BUILT-IN VIDEO
TMSMODE_RC .EQU 3 ; RC2014 BUILT-IN VIDEO
TMSMODE_RC .EQU 3 ; RC2014 TMS9918 VIDEO BOARD
TMSMODE_RCV9958 .EQU 4 ; RC2014 V9958 VIDEO BOARD
; ;
; SERIAL DEVICE CONFIGURATION CONSTANTS ; SERIAL DEVICE CONFIGURATION CONSTANTS
; ;
@ -427,7 +429,7 @@ SYSTIM .SET TM_CTC
#IF (TMSENABLE & (INTMODE == 1)) #IF (TMSENABLE & (INTMODE == 1))
#IF (TMSTIMENABLE) #IF (TMSTIMENABLE)
SYSTIM .SET TM_TMS SYSTIM .SET TM_TMS
.ECHO " TMS9918"
.ECHO " TMS9918/V9958"
#ENDIF #ENDIF
#ENDIF #ENDIF
; ;

125
Source/HBIOS/tms.asm

@ -1,8 +1,9 @@
;====================================================================== ;======================================================================
; N8 VDU DRIVER FOR SBC PROJECT
; TM9918 AND V9958 VDU DRIVER
; ;
; WRITTEN BY: DOUGLAS GOODALL ; WRITTEN BY: DOUGLAS GOODALL
; UPDATED BY: WAYNE WARTHEN -- 4/7/2013 ; UPDATED BY: WAYNE WARTHEN -- 4/7/2013
; UPDATED BY: DEAN NETHERTON -- 5/26/2021 - V9958 SUPPORT
;====================================================================== ;======================================================================
; ;
; TODO: ; TODO:
@ -22,7 +23,7 @@ TMSINTEN: .EQU 5 ; INTERRUPT ENABLE BIT
.ECHO "TMS INTERRUPTS ENABLED\n" .ECHO "TMS INTERRUPTS ENABLED\n"
#ENDIF #ENDIF
#IF (TMSMODE == TMSMODE_RC)
#IF ((TMSMODE == TMSMODE_RC) | (TMSMODE == TMSMODE_RCV9958))
TMS_DATREG .EQU $98 ; READ/WRITE DATA TMS_DATREG .EQU $98 ; READ/WRITE DATA
TMS_CMDREG .EQU $99 ; READ STATUS / WRITE REG SEL TMS_CMDREG .EQU $99 ; READ STATUS / WRITE REG SEL
TMS_PPIA .EQU 0 ; PPI PORT A TMS_PPIA .EQU 0 ; PPI PORT A
@ -58,14 +59,21 @@ TMS_PPIX .EQU 0 ; PPI CONTROL PORT
#ENDIF #ENDIF
; ;
TMS_ROWS .EQU 24 TMS_ROWS .EQU 24
#IF (TMSMODE == TMSMODE_RCV9958)
TMS_FNTVADDR .EQU $1000 ; VRAM ADDRESS OF FONT DATA
TMS_COLS .EQU 80
#ELSE
TMS_FNTVADDR .EQU $0800 ; VRAM ADDRESS OF FONT DATA
TMS_COLS .EQU 40 TMS_COLS .EQU 40
#ENDIF
; ;
#DEFINE USEFONT8X8 #DEFINE USEFONT8X8
#DEFINE TMS_FONT FONT8X8 #DEFINE TMS_FONT FONT8X8
; ;
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
; ;
; TMS_IODELAY IS USED TO ADD RECOVERY TIME TO TMS9918 ACCESSES
; TMS_IODELAY IS USED TO ADD RECOVERY TIME TO TMS9918/V9958 ACCESSES
; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!! ; IF YOU SEE SCREEN CORRUPTION, ADJUST THIS!!!
; ;
#IF (CPUFAM == CPU_Z180) #IF (CPUFAM == CPU_Z180)
@ -73,7 +81,11 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
#DEFINE TMS_IODELAY EX (SP),HL \ EX (SP),HL ; 38 W/S #DEFINE TMS_IODELAY EX (SP),HL \ EX (SP),HL ; 38 W/S
#ELSE #ELSE
; BELOW WAS TUNED FOR SBC AT 8MHZ ; BELOW WAS TUNED FOR SBC AT 8MHZ
#DEFINE TMS_IODELAY NOP \ NOP ; 8 W/S
#IF (TMSMODE == TMSMODE_RCV9958)
#DEFINE TMS_IODELAY NOP \ NOP \ NOP \ NOP \ NOP \ NOP \ NOP ; V9958 NEEDS AT WORST CASE, APPROX 4us (28T) DELAY BETWEEN I/O (WHEN IN TEXT MODE)
#ELSE
#DEFINE TMS_IODELAY NOP \ NOP ; 8 W/S
#ENDIF
#ENDIF #ENDIF
; ;
;====================================================================== ;======================================================================
@ -82,9 +94,9 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
; ;
TMS_PREINIT: TMS_PREINIT:
; DISABLE INTERRUPT GENERATION ; DISABLE INTERRUPT GENERATION
LD A, (TMS_INIT9918_REG_1)
LD A, (TMS_INITVDU_REG_1)
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT
LD (TMS_INIT9918_REG_1), A
LD (TMS_INITVDU_REG_1), A
LD C, TMSCTRL1 LD C, TMSCTRL1
JP TMS_SET JP TMS_SET
; ;
@ -101,7 +113,21 @@ TMS_INIT:
LD IY,TMS_IDAT ; POINTER TO INSTANCE DATA LD IY,TMS_IDAT ; POINTER TO INSTANCE DATA
; ;
CALL NEWLINE ; FORMATTING CALL NEWLINE ; FORMATTING
PRTS("TMS: IO=0x$")
PRTS("TMS: MODE=$")
#IF (TMSMODE == TMSMODE_SCG)
PRTS("SCG$")
#ENDIF
#IF (TMSMODE == TMSMODE_N8)
PRTS("N8$")
#ENDIF
#IF (TMSMODE == TMSMODE_RC)
PRTS("RC$")
#ENDIF
#IF (TMSMODE == TMSMODE_RCV9958)
PRTS("RC_V9958$")
#ENDIF
;
PRTS(" IO=0x$")
LD A,TMS_DATREG LD A,TMS_DATREG
CALL PRTHEXBYTE CALL PRTHEXBYTE
CALL TMS_PROBE ; CHECK FOR HW EXISTENCE CALL TMS_PROBE ; CHECK FOR HW EXISTENCE
@ -118,15 +144,20 @@ TMS_INIT1:
CALL TMS_VDARES1 CALL TMS_VDARES1
#IF (TMSMODE == TMSMODE_N8) #IF (TMSMODE == TMSMODE_N8)
CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER
#ELSE
#IF MKYENABLE
CALL MKY_INIT
#ENDIF #ENDIF
#ENDIF
#IF (INTMODE == 1 & TMSTIMENABLE) #IF (INTMODE == 1 & TMSTIMENABLE)
; ADD IM1 INT CALL LIST ENTRY ; ADD IM1 INT CALL LIST ENTRY
LD HL, TMS_TSTINT ; GET INT VECTOR LD HL, TMS_TSTINT ; GET INT VECTOR
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
LD A, (TMS_INIT9918_REG_1)
LD A, (TMS_INITVDU_REG_1)
SET TMSINTEN, A ; SET INTERRUPT ENABLE BIT SET TMSINTEN, A ; SET INTERRUPT ENABLE BIT
LD (TMS_INIT9918_REG_1), A
LD (TMS_INITVDU_REG_1), A
LD C, TMSCTRL1 LD C, TMSCTRL1
CALL TMS_SET CALL TMS_SET
#ENDIF #ENDIF
@ -144,12 +175,6 @@ TMS_INIT1:
; ;
XOR A ; SIGNAL SUCCESS XOR A ; SIGNAL SUCCESS
RET RET
#IF TMSTIMENABLE
; DISABLE INTERRUPT
TMS_INT_DIS:
#ENDIF
; ;
;====================================================================== ;======================================================================
; TMS DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS ; TMS DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS
@ -172,11 +197,18 @@ TMS_FNTBL:
.DW PPK_STAT .DW PPK_STAT
.DW PPK_FLUSH .DW PPK_FLUSH
.DW PPK_READ .DW PPK_READ
#ELSE
#IF MKYENABLE
.DW MKY_STAT
.DW MKY_FLUSH
.DW MKY_READ
#ELSE #ELSE
.DW TMS_STAT .DW TMS_STAT
.DW TMS_FLUSH .DW TMS_FLUSH
.DW TMS_READ .DW TMS_READ
#ENDIF #ENDIF
#ENDIF
#IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2)) #IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2))
.ECHO "*** INVALID TMS FUNCTION TABLE ***\n" .ECHO "*** INVALID TMS FUNCTION TABLE ***\n"
!!!!! !!!!!
@ -349,11 +381,21 @@ TMS_SET:
; ;
;---------------------------------------------------------------------- ;----------------------------------------------------------------------
; SET TMS9918 READ/WRITE ADDRESS ; SET TMS9918 READ/WRITE ADDRESS
; TMS_WR SETS TMS9918 TO BEGIN WRITING TO ADDRESS SPECIFIED IN HL
; TMS_RD SETS TMS9918 TO BEGIN READING TO ADDRESS SPECIFIED IN HL
; TMS_WR SETS TMS9918 TO BEGIN WRITING AT VDU ADDRESS SPECIFIED IN HL
; TMS_RD SETS TMS9918 TO BEGIN READING AT VDU ADDRESS SPECIFIED IN HL
;---------------------------------------------------------------------- ;----------------------------------------------------------------------
; ;
TMS_WR: TMS_WR:
#IF (TMSMODE == TMSMODE_RCV9958)
; CLEAR R#14 FOR V9958
XOR A
OUT (TMS_CMDREG), A
TMS_IODELAY
LD A, $80 | 14
OUT (TMS_CMDREG), A
TMS_IODELAY
#ENDIF
PUSH HL PUSH HL
SET 6,H ; SET WRITE BIT SET 6,H ; SET WRITE BIT
CALL TMS_RD CALL TMS_RD
@ -423,8 +465,8 @@ TMS_CRTINIT1:
; ;
; INITIALIZE VDU REGISTERS ; INITIALIZE VDU REGISTERS
LD C,0 ; START WITH REGISTER 0 LD C,0 ; START WITH REGISTER 0
LD B,TMS_INIT9918LEN ; NUMBER OF REGISTERS TO INIT
LD HL,TMS_INIT9918 ; HL = POINTER TO THE DEFAULT VALUES
LD B,TMS_INITVDULEN ; NUMBER OF REGISTERS TO INIT
LD HL,TMS_INITVDU ; HL = POINTER TO THE DEFAULT VALUES
TMS_CRTINIT2: TMS_CRTINIT2:
LD A,(HL) ; GET VALUE LD A,(HL) ; GET VALUE
CALL TMS_SET ; WRITE IT CALL TMS_SET ; WRITE IT
@ -438,8 +480,8 @@ TMS_CRTINIT2:
;---------------------------------------------------------------------- ;----------------------------------------------------------------------
; ;
TMS_LOADFONT: TMS_LOADFONT:
; SET WRITE ADDRESS TO $800
LD HL,$800
; SET WRITE ADDRESS TO TMS_FNTVADDR
LD HL,TMS_FNTVADDR
CALL TMS_WR CALL TMS_WR
#IF USELZSA2 #IF USELZSA2
@ -458,8 +500,8 @@ TMS_LOADFONT:
LD HL,TMS_FONT ; START OF FONT DATA LD HL,TMS_FONT ; START OF FONT DATA
#ENDIF #ENDIF
; ;
; FILL $800 BYTES FROM FONTDATA
LD DE,$800
; FILL TMS_FNTVADDR BYTES FROM FONTDATA
LD DE,TMS_FNTVADDR
TMS_LOADFONT1: TMS_LOADFONT1:
LD A,(HL) LD A,(HL)
OUT (TMS_DATREG),A OUT (TMS_DATREG),A
@ -520,7 +562,7 @@ TMS_SETCUR0: ; MULT BY 8 FOR FONT INDEX
SLA L ; SHIFT LSB INTO CARRY SLA L ; SHIFT LSB INTO CARRY
RL H ; SHFT MSB FROM CARRY RL H ; SHFT MSB FROM CARRY
DJNZ TMS_SETCUR0 ; LOOP 3 TIMES DJNZ TMS_SETCUR0 ; LOOP 3 TIMES
LD DE,$800 ; OFFSET TO START OF FONT TABLE
LD DE,TMS_FNTVADDR ; OFFSET TO START OF FONT TABLE
ADD HL,DE ; ADD TO FONT INDEX ADD HL,DE ; ADD TO FONT INDEX
CALL TMS_RD ; SETUP TO READ GLYPH CALL TMS_RD ; SETUP TO READ GLYPH
LD B,8 ; 8 BYTES LD B,8 ; 8 BYTES
@ -533,7 +575,7 @@ TMS_SETCUR1: ; READ GLYPH LOOP
DJNZ TMS_SETCUR1 ; LOOP FOR 8 BYTES DJNZ TMS_SETCUR1 ; LOOP FOR 8 BYTES
; ;
; NOW WRITE INVERTED GLYPH INTO FONT INDEX 255 ; NOW WRITE INVERTED GLYPH INTO FONT INDEX 255
LD HL,$800 + (255 * 8) ; LOC OF GLPYPH DATA FOR CHAR 255
LD HL,TMS_FNTVADDR + (255 * 8) ; LOC OF GLPYPH DATA FOR CHAR 255
CALL TMS_WR ; SETUP TO WRITE THE INVERTED GLYPH CALL TMS_WR ; SETUP TO WRITE THE INVERTED GLYPH
LD B,8 ; 8 BYTES PER GLYPH LD B,8 ; 8 BYTES PER GLYPH
LD HL,TMS_BUF ; POINT TO BUFFER LD HL,TMS_BUF ; POINT TO BUFFER
@ -803,6 +845,11 @@ TMS_TSTINT:
RET RET
TMS_INTHNDL: TMS_INTHNDL:
;#IF MKYENABLE
; CALL MKY_INT
;#ENDIF
CALL HB_TIMINT ; RETURN NZ - HANDLED CALL HB_TIMINT ; RETURN NZ - HANDLED
OR $FF OR $FF
RET RET
@ -874,24 +921,42 @@ TMS_PORTS:
; 5S Fifth sprite (not displayed) detected. Value in FS* is valid. ; 5S Fifth sprite (not displayed) detected. Value in FS* is valid.
; INT Set at each screen update, used for interrupts. ; INT Set at each screen update, used for interrupts.
; ;
TMS_INIT9918:
#IF (TMSMODE == TMSMODE_RCV9958)
TMS_INITVDU:
.DB $04 ; REG 0 - NO EXTERNAL VID, SET M4 = 1
TMS_INITVDU_REG_1:
.DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1
.DB $03 ; REG 2 - PATTERN NAME TABLE := 0
.DB $00 ; REG 3 - NO COLOR TABLE
.DB $02 ; REG 4 - SET PATTERN GENERATOR TABLE TO (TMS_FNTVADDR -> $1000)
.DB $00 ; REG 5 - SPRITE ATTRIBUTE IRRELEVANT
.DB $00 ; REG 6 - NO SPRITE GENERATOR TABLE
.DB $F0 ; REG 7 - WHITE ON BLACK
.DB $88 ; REG 8 - COLOUR BUS INPUT, DRAM 64K
.DB $00 ; REG 9
.DB $00 ; REG 10 - COLOUR TABLE A14-A16 (TMS_FNTVADDR - $1000)
#ELSE ; TMS REGISTER SET
TMS_INITVDU:
.DB $00 ; REG 0 - NO EXTERNAL VID .DB $00 ; REG 0 - NO EXTERNAL VID
TMS_INIT9918_REG_1:
TMS_INITVDU_REG_1:
.DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1 .DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1
.DB $00 ; REG 2 - PATTERN NAME TABLE := 0 .DB $00 ; REG 2 - PATTERN NAME TABLE := 0
.DB $00 ; REG 3 - NO COLOR TABLE .DB $00 ; REG 3 - NO COLOR TABLE
.DB $01 ; REG 4 - SET PATTERN GENERATOR TABLE TO $800
.DB $01 ; REG 4 - SET PATTERN GENERATOR TABLE TO (TMS_FNTVADDR -> $0800)
.DB $00 ; REG 5 - SPRITE ATTRIBUTE IRRELEVANT .DB $00 ; REG 5 - SPRITE ATTRIBUTE IRRELEVANT
.DB $00 ; REG 6 - NO SPRITE GENERATOR TABLE .DB $00 ; REG 6 - NO SPRITE GENERATOR TABLE
.DB $F0 ; REG 7 - WHITE ON BLACK .DB $F0 ; REG 7 - WHITE ON BLACK
#ENDIF
; ;
TMS_INIT9918LEN .EQU $ - TMS_INIT9918
TMS_INITVDULEN .EQU $ - TMS_INITVDU
; ;
; ;
#IF (CPUFAM == CPU_Z180) #IF (CPUFAM == CPU_Z180)
TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED
#ENDIF #ENDIF
;
.ECHO "TMS instance data occupies " .ECHO "TMS instance data occupies "
.ECHO $ - TMS_IDAT .ECHO $ - TMS_IDAT
.ECHO " bytes\n" .ECHO " bytes\n"

BIN
Source/Images/d_bp/u0/UNZIP154.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/UNZIP186.COM

Binary file not shown.

BIN
Source/Images/d_bp/u0/UNZIPZ4.COM

Binary file not shown.

BIN
Source/Images/d_cpm22/u0/UNZIP154.COM

Binary file not shown.

BIN
Source/Images/d_cpm22/u0/UNZIP186.COM

Binary file not shown.

BIN
Source/Images/d_cpm22/u0/UNZIPZ4.COM

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/UNZIP154.COM

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/UNZIP186.COM

Binary file not shown.

BIN
Source/Images/d_zsdos/u0/UNZIPZ4.COM

Binary file not shown.

2
Source/ZCPR-DJ/Build.cmd

@ -11,5 +11,5 @@ set ZXBINDIR=%TOOLS%/cpm/bin/
set ZXLIBDIR=%TOOLS%/cpm/lib/ set ZXLIBDIR=%TOOLS%/cpm/lib/
set ZXINCDIR=%TOOLS%/cpm/include/ set ZXINCDIR=%TOOLS%/cpm/include/
zx M80 -=zcpr
zx M80 -=zcpr/l
zx L80 -zcpr,zcpr.bin/n/e zx L80 -zcpr,zcpr.bin/n/e

1
Source/ZCPR-DJ/Clean.cmd

@ -4,3 +4,4 @@ setlocal
if exist *.bin del *.bin if exist *.bin del *.bin
if exist *.lst del *.lst if exist *.lst del *.lst
if exist *.rel del *.rel if exist *.rel del *.rel
if exist *.prn del *.prn

262
Source/ZCPR-DJ/zcpr.mac

@ -1,6 +1,8 @@
TITLE ZCPR Console Command Processor - Version D&J
SUBTTL Last Modified: 5 March 1994
; DATE 05/17/21 08:34:00
; ;
; TITLE ZCPR Console Command Processor - Version D&J
; SUBTTL Last Modified: 10 August 1997
; CP/M Z80 Command Processor Replacement (CPR) Version 1.0 ; CP/M Z80 Command Processor Replacement (CPR) Version 1.0
; CCPZ CREATED AND CUSTOMIZED FOR ARIES-II BY RLC ; CCPZ CREATED AND CUSTOMIZED FOR ARIES-II BY RLC
; FURTHER MODIFIED BY RGF AS V2.0 ; FURTHER MODIFIED BY RGF AS V2.0
@ -66,6 +68,13 @@
; ;
; Added PEEK 30 August 1993. ; Added PEEK 30 August 1993.
; ;
; Added CLS 10 August 1997 and fixed two bugs. One caused the system to
; hang if the command to log into another drive was given while logged
; into a drive from which the disk had been removed. The other caused
; a warm boot to return to the prior user area if the new user number
; had been selected using the USER command (although not if the user area
; had been changed using the du: command).
;
;******** Structure Notes ******** ;******** Structure Notes ********
; ;
; This CPR is divided into a number of major sections. The following ; This CPR is divided into a number of major sections. The following
@ -86,39 +95,40 @@
; ;
; 3 Utilities ; 3 Utilities
; CRLF PRINTC PRINT PRINTS BELL ; CRLF PRINTC PRINT PRINTS BELL
; CONOUT BREAK CHKETX ABORT READF
; READ WRITE DEFDMA DMASET SEARF
; SEARDE SEARN OPENF OPEN CLOSE
; CREATE BDOSFN SUBKIL DELETE TLOGIN
; DLOGIN LOGIN NEWUSR RSTUSR SETUSR
; BDOSEA BDOSJP BDOSBC BDOSDE
; CLS CONOUT BREAK CHKETX ABORT
; READF READ WRITE DEFDMA DMASET
; SEARF SEARDE SEARN OPENF OPEN
; CLOSE CREATE BDOSFN SUBKIL DELETE
; TLOGIN DLOGIN LOGIN NEWUSR RSTUSR
; SETUSR BDOSEA BDOSJP BDOSBC BDOSDE
; ;
; 4 CPR Utilities ; 4 CPR Utilities
; PROMPT REDBUF CNVBUF UCASE SDELM ; PROMPT REDBUF CNVBUF UCASE SDELM
; ADVAN SBLANK ADDAH NUMBER A2NUM ; ADVAN SBLANK ADDAH NUMBER A2NUM
; HEXNUM USRNUM ERROR DIRPTR ULOGIN ; HEXNUM USRNUM ERROR DIRPTR ULOGIN
; SCANER SCANT SCANF CMDSER SETUDB
; SCANER SCANT SCANF CMDSER
; ;
; 5 CPR-Resident Commands and Functions ; 5 CPR-Resident Commands and Functions
; 5A DIR DIRPR PRFN ; 5A DIR DIRPR PRFN
; 5B ERA ; 5B ERA
; 5C ERAQ PRNNF ; 5C ERAQ PRNNF
; 5D SAK REPLY ; 5D SAK REPLY
; 5E BELL
; 5F LIST
; 5G TYPE PAGER
; 5H EJECT
; 5I SAVE
; 5J REN
; 5K USER SUSER
; 5L DFU
; 5M SCL
; 5N PEEK
; 5O POKE
; 5P JUMP
; 5Q COM
; 5R GO CLLPRG ERRLOG ERRJMP
; 5S GET MEMLD PRNLE
; 5E CLS
; 5F BELL
; 5G LIST
; 5H TYPE PAGER
; 5I EJECT
; 5J SAVE
; 5K REN
; 5L USER SUSER
; 5M DFU
; 5N SCL
; 5O PEEK
; 5P POKE
; 5Q JUMP
; 5R COM UPDATE
; 5S GO CLLPRG ERRLOG ERRJMP
; 5T GET MEMLD PRNLE
; BIOS BOOT ; BIOS BOOT
; ;
; ;
@ -148,8 +158,8 @@ REL EQU FALSE ;SET TO TRUE FOR MOVCPM INTEGRATION
;LEAVE ALL FALSE FOR SYSGEN IMAGE ;LEAVE ALL FALSE FOR SYSGEN IMAGE
; ;
BASE EQU 0 ;BASE OF CP/M SYSTEM BASE EQU 0 ;BASE OF CP/M SYSTEM
;P2DOS EQU 0E400H ;BASE OF BDOS/P2DOS
P2DOS EQU 0D800H ;BASE OF BDOS/P2DOS
;P2DOS EQU 0E400H ;BASE OF BDOS/P2DOS (original)
P2DOS EQU 0D800H ;BASE OF BDOS/P2DOS (Retro-Brew)
ZCPRSZ EQU 00800H ;SIZE OF ZCPR ZCPRSZ EQU 00800H ;SIZE OF ZCPR
P2DOSSZ EQU 00E00H ;SIZE OF P2DOS P2DOSSZ EQU 00E00H ;SIZE OF P2DOS
BIOS EQU P2DOS+P2DOSSZ ;BASE OF BIOS BIOS EQU P2DOS+P2DOSSZ ;BASE OF BIOS
@ -244,7 +254,7 @@ SOFLG EQU 'S' ;LIST $SYS ONLY
; ;
; List and Type command customization equates ; List and Type command customization equates
; ;
NLINES EQU 20 ;NUMBER OF LINES ON CRT PAGE
NLINES EQU 22 ;NUMBER OF LINES ON CRT PAGE
NLINEP EQU 60 ;NUMBER OF LINES ON LIST DEVICE NLINEP EQU 60 ;NUMBER OF LINES ON LIST DEVICE
FFKILL EQU TRUE ;TRUE SUPPRESSES FF UNTIL FIRST CHARACTER FFKILL EQU TRUE ;TRUE SUPPRESSES FF UNTIL FIRST CHARACTER
PGDFLG EQU 'P' ;TYPE AND LIST COMMAND DEFAULT TOGGLE PGDFLG EQU 'P' ;TYPE AND LIST COMMAND DEFAULT TOGGLE
@ -255,14 +265,17 @@ NOSTAT EQU FALSE ;SET TO TRUE IF BIOS LISTST NOT IMPLEMENTED
BUFLEN EQU 80 ;SIZE OF COMMAND INPUT BUFFER BUFLEN EQU 80 ;SIZE OF COMMAND INPUT BUFFER
MAXUSR EQU 15 ;MAXIMUM USER NUMBER ACCESSIBLE MAXUSR EQU 15 ;MAXIMUM USER NUMBER ACCESSIBLE
DEFUSR EQU 0 ;DEFAULT USER NUMBER FOR COM FILES DEFUSR EQU 0 ;DEFAULT USER NUMBER FOR COM FILES
DEFDRV EQU 'A' ;DEFAULT DRIVE FOR COM FILES
SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND
COMCHR EQU ';' ;BEGIN COMMENT CHARACTER
COMCHR EQU '%' ;BEGIN COMMENT CHARACTER
CMDCHR EQU ';' ;BEGIN NEXT COMMAND CHARACTER CMDCHR EQU ';' ;BEGIN NEXT COMMAND CHARACTER
NUMBASE EQU 'H' ;CHARACTER USED TO SPECIFY HEXIDECIMAL BASE NUMBASE EQU 'H' ;CHARACTER USED TO SPECIFY HEXIDECIMAL BASE
RECFLG EQU 'R' ;CHARACTER FOR SAVE COMMAND TO SAVE RECORDS RECFLG EQU 'R' ;CHARACTER FOR SAVE COMMAND TO SAVE RECORDS
SUPRES EQU TRUE ;TRUE TO SUPPRESS USER NUMBER FOR USER 0 SUPRES EQU TRUE ;TRUE TO SUPPRESS USER NUMBER FOR USER 0
MULTPL EQU TRUE ;TRUE TO ALLOW MULTIPLE COMMANDS ON ONE LINE MULTPL EQU TRUE ;TRUE TO ALLOW MULTIPLE COMMANDS ON ONE LINE
REBOOT EQU TRUE ;TRUE TO INCLUDE BOOT COMMAND REBOOT EQU TRUE ;TRUE TO INCLUDE BOOT COMMAND
CLSCHR EQU 1AH ;CHARACTER TO CLEAR TERMINAL SCREEN
ESC EQU 1BH ;VT100 LEAD-IN CHAR. (FOR 'CLS')
; ;
IF TEST IF TEST
CPRMPT EQU '<' ;CPR PROMPT INDICATING TEST MODE CPRMPT EQU '<' ;CPR PROMPT INDICATING TEST MODE
@ -300,7 +313,7 @@ TPA EQU BASE+0100H ;BASE OF TPA
IF COMLD OR TEST IF COMLD OR TEST
LD HL,BGNXFR LD HL,BGNXFR
LD DE,CPRLOC LD DE,CPRLOC
LD BC,ENDLD-CPRLOC
LD BC,ENDLD-BGNXFR
LDIR LDIR
LD BC,(UDFLAG) LD BC,(UDFLAG)
JP CPRLOC JP CPRLOC
@ -369,15 +382,26 @@ ENTRY:
; warm boot reloads ZCPR and destroys the contents of the command buffer. ; warm boot reloads ZCPR and destroys the contents of the command buffer.
; The multiple command feature may be turned off with the SCL command. ; The multiple command feature may be turned off with the SCL command.
; ;
MBUFF: DEFB BUFLEN ;MAXIMUM BUFFER LENGTH
;MBUFF: DEFB BUFLEN ;MAXIMUM BUFFER LENGTH
MBUFF: DEFB BUFEND-CIBUFF ;MAXIMUM BUFFER LENGTH
CBUFF: DEFB 0 ;NUMBER OF CHARACTERS IN COMMAND LINE CBUFF: DEFB 0 ;NUMBER OF CHARACTERS IN COMMAND LINE
CIBUFF: DEFB ' ' ;DEFAULT (COLD BOOT) COMMAND
DEFB 0 ;COMMAND STRING TERMINATOR
DEFB ' ZCPR-D&J of 5 March 1994 '
DEFB 0 ;TERMINATOR FOR DUMP IDENTIFICATION
DEFS BUFLEN-($-CIBUFF)+1
DEFW 0 ;SENTINEL FOR STACK END
DEFS 24 ;STACK AREA
CIBUFF: DB ' ' ;DEFAULT (COLD BOOT) COMMAND 13
DEFB 0 ;COMMAND STRING TERMINATOR 14
DEFB ' ZCPR-D&J of 17 May 2021 ' ;44
DEFB 0 ;TERMINATOR FOR DUMP IDENTIFICATION 45
; DEFS BUFLEN-($-CIBUFF)+1
db 0,0,0,0,0,0,0,0 ;53
db 0,0,0,0,0,0,0,0 ;61
db 0,0,0,0,0,0,0,0 ;69
db 0,0,0,0,0,0,0,0 ;77
db 0,0,0,0,0,0,0,0 ;85
db 0,0,0,0,0,0,0,0 ;93
db 0,0,0,0,0,0,0,0 ;101
db 0,0,0,0,0,0,0,0 ;109
BUFEND EQU $
; DEFW 0 ;SENTINEL FOR STACK END
db 0,0
; DEFS 24 ;STACK AREA
STACK EQU $ ;TOP OF STACK STACK EQU $ ;TOP OF STACK
; ;
; SUBMIT FILE CONTROL BLOCK ; SUBMIT FILE CONTROL BLOCK
@ -394,22 +418,23 @@ SUBCR EQU SUBDN+32 ;CURRENT RECORD NUMBER
; ;
; COMMAND FILE CONTROL BLOCK ; COMMAND FILE CONTROL BLOCK
; ;
FCBDN: DEFS 1 ;DISK DRIVE
FCBFN: DEFS 8 ;FILE NAME
FCBFT: DEFS 3 ;FILE TYPE
FCBEX: DEFS 1 ;EXTENT NUMBER
FCBS1: DEFS 1 ;S1
FCBS2: DEFS 1 ;S2
FCBRC: DEFS 1 ;RECORD COUNT
FCBDM: DEFS 16 ;DISK GROUP MAP
FCBDN: db 0 ;DISK DRIVE
FCBFN: db 0,0,0,0,0,0,0,0 ;FILE NAME
FCBFT: db 0,0,0 ;FILE TYPE
FCBEX: db 0 ;EXTENT NUMBER
FCBS1: db 0 ;S1
FCBS2: db 0 ;S2
FCBRC: db 0 ;RECORD COUNT
FCBDM: db 0,0,0,0,0,0,0,0 ;DISK GROUP MAP
db 0,0,0,0,0,0,0,0
FCBCR: DEFS 1 ;CURRENT RECORD NUMBER FCBCR: DEFS 1 ;CURRENT RECORD NUMBER
; ;
; Type and List Variables ; Type and List Variables
; ;
CHRCNT: DEFS 1 ;CHARACTER COUNT FOR TYPE AND LIST
LNCNT: DEFS 1 ;LINE COUNT FOR TYPE AND LIST
TYPLST: DEFS 1 ;FLAG FOR TYPE OR LIST
TABCNT: DEFS 1 ;TAB COUNT FOR TYPE AND LIST
CHRCNT: db 0 ;CHARACTER COUNT FOR TYPE AND LIST
LNCNT: db 0 ;LINE COUNT FOR TYPE AND LIST
TYPLST: db 0 ;FLAG FOR TYPE OR LIST
TABCNT: db 0 ;TAB COUNT FOR TYPE AND LIST
SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG
; ;
; General Variables ; General Variables
@ -417,7 +442,7 @@ SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG
CIBPTR: DEFW CIBUFF ;POINTER TO COMMAND INPUT BUFFER CIBPTR: DEFW CIBUFF ;POINTER TO COMMAND INPUT BUFFER
CIPTR: DEFW CIBUFF ;POINTER TO CURRENT CMD FOR ERROR REPORTING CIPTR: DEFW CIBUFF ;POINTER TO CURRENT CMD FOR ERROR REPORTING
TMPUSR: DEFB 0 ;TEMPORARY USER NUMBER TMPUSR: DEFB 0 ;TEMPORARY USER NUMBER
TDRIVE: DEFB 0 ;DEFAULT DRIVE
TDRIVE: DEFB 0 ;TEMPORARY DRIVE
DFUSR: DEFB DEFUSR ;DEFAULT USER DFUSR: DEFB DEFUSR ;DEFAULT USER
LDADR: DEFW TPA ;MEMORY LOAD ADDRESS LDADR: DEFW TPA ;MEMORY LOAD ADDRESS
; ;
@ -435,11 +460,13 @@ CMDTBL:
DEFW USER DEFW USER
DC 'DFU' DC 'DFU'
DEFW DFU DEFW DFU
DC 'PAGE'
DC 'FF' ; was 'PAGE'
DEFW EJECT DEFW EJECT
DC 'BELL' DC 'BELL'
DEFW RING DEFW RING
DC 'SAK'
DC 'CLS'
DEFW CLS
DC 'WAIT' ; was 'SAK' ("strike any key")
DEFW SAK DEFW SAK
DC 'GO' DC 'GO'
DEFW GO DEFW GO
@ -459,7 +486,7 @@ CMDTBL:
DEFW PEEK DEFW PEEK
DC 'POKE' DC 'POKE'
DEFW POKE DEFW POKE
NCMNDS DEFL 17 ;NUMBER OF COMMANDS
NCMNDS DEFL 18 ;NUMBER OF COMMANDS
; ;
IF MULTPL IF MULTPL
DC 'SCL' DC 'SCL'
@ -516,14 +543,11 @@ RS3:
JR Z,RESTRT ;YES, SKIP REST OF LINE JR Z,RESTRT ;YES, SKIP REST OF LINE
CALL SCANER ;PARSE COMMAND NAME FROM COMMAND LINE CALL SCANER ;PARSE COMMAND NAME FROM COMMAND LINE
JR NZ,RS4 ;ERROR IF NAME CONTAINS A "?" JR NZ,RS4 ;ERROR IF NAME CONTAINS A "?"
CALL DEFDMA ;SET TBUFF TO DMA ADDRESS
CALL DLOGIN ;ASSURE PROPER DRIVE
CALL RSTUSR ;ASSURE PROPER USER NUMBER
CALL SETUDB ;SET UD BYTE TO MATCH USER/DRIVE
CALL CMDSER ;SCAN FOR CPR-RESIDENT COMMAND
CALL CMDSER ;SCAN FOR COMMAND
; ;
; ENTRY POINT FOR CONTINUED SCAN OF COMMAND LINE ; ENTRY POINT FOR CONTINUED SCAN OF COMMAND LINE
; ;
CALL UPDATE ;UPDATE BDOS/SYSTEM PARAMETERS
CALL ADVAN ;GET ANY CHARACTER CALL ADVAN ;GET ANY CHARACTER
JR Z,RESTRT ;NONE, END OF LINE JR Z,RESTRT ;NONE, END OF LINE
LD (CIPTR),DE ;UPDATE START OF LINE IN CASE ERROR LD (CIPTR),DE ;UPDATE START OF LINE IN CASE ERROR
@ -1024,7 +1048,7 @@ SCAN4:
LD (HL),B ;SAVE DRIVE LD (HL),B ;SAVE DRIVE
LD B,8 ;MAX OF 8 CHARACTERS LD B,8 ;MAX OF 8 CHARACTERS
XOR A ;CLEAR '?' COUNT XOR A ;CLEAR '?' COUNT
EX AF,AF ;AND SAVE
EX AF,AF' ;AND SAVE
CALL SCANF ;GET POSSIBLE NAME CALL SCANF ;GET POSSIBLE NAME
CALL SCANT ;AND POSSIBLE TYPE CALL SCANT ;AND POSSIBLE TYPE
; ;
@ -1044,7 +1068,7 @@ SCAN4:
; SCAN COMPLETE -- DE POINTS TO DELIMITER BYTE AFTER TOKEN ; SCAN COMPLETE -- DE POINTS TO DELIMITER BYTE AFTER TOKEN
; ;
LD (CIBPTR),DE LD (CIBPTR),DE
EX AF,AF ;GET NUMBER OF '?' IN FILENAME.TYP
EX AF,AF' ;GET NUMBER OF '?' IN FILENAME.TYP
RET RET
; ;
; EXTRACT FILE TYPE FROM POSSIBLE FILENAME.TYP ; EXTRACT FILE TYPE FROM POSSIBLE FILENAME.TYP
@ -1069,9 +1093,9 @@ SCAN12:
SCAN13: SCAN13:
CP '?' ;QUESTION MARK? CP '?' ;QUESTION MARK?
JR NZ,SCAN14 ;NO, JUST STORE CHARACTER JR NZ,SCAN14 ;NO, JUST STORE CHARACTER
EX AF,AF ;GET QUESTION MARK COUNT
EX AF,AF' ;GET QUESTION MARK COUNT
INC A ;COUNT IT INC A ;COUNT IT
EX AF,AF ;AND SAVE COUNT
EX AF,AF' ;AND SAVE COUNT
SCAN14: SCAN14:
INC DE ;POINT TO NEXT CHARACTER IN COMMAND LINE INC DE ;POINT TO NEXT CHARACTER IN COMMAND LINE
LD (HL),A ;STORE CHARACTER IN FCBDN LD (HL),A ;STORE CHARACTER IN FCBDN
@ -1097,15 +1121,6 @@ CMDSER:
LD A,(HL) ;LOOK FOR DRIVE SPEC LD A,(HL) ;LOOK FOR DRIVE SPEC
DEC A ;ADJUST FOR LOG IN DEC A ;ADJUST FOR LOG IN
CALL P,TLOGIN ;LOG IN DRIVE CALL P,TLOGIN ;LOG IN DRIVE
SETUDB:
LD A,(TMPUSR) ;GET CURRENT USER NUMBER
ADD A,A ;PLACE IT IN HIGH NIBBLE
ADD A,A
ADD A,A
ADD A,A
LD HL,TDRIVE ;ADD DEFAULT DRIVE NUMBER (LOW NIBBLE)
OR (HL)
LD (UDFLAG),A ;UPDATE USER/DRIVE BYTE
RET RET
CMS0: CMS0:
OR (HL) ;DRIVE OR USER NUMBER OR (HL) ;DRIVE OR USER NUMBER
@ -1125,11 +1140,10 @@ CMS2:
LD A,(DE) ;NEXT CHARACTER IN INPUT COMMAND MUST BE <SP> LD A,(DE) ;NEXT CHARACTER IN INPUT COMMAND MUST BE <SP>
CP ' ' CP ' '
JR NZ,CMS4 JR NZ,CMS4
LD A,(HL) ;FOUND COMMAND,
LD E,(HL) ;FOUND COMMAND,
INC HL ;LOAD ADDRESS, INC HL ;LOAD ADDRESS,
LD H,(HL) ;AND
LD L,A ;JUMP TO IT
JP (HL) ;COMMAND IS CPR-RESIDENT
LD D,(HL) ;AND
JR CMS6 ;UPDATE SYSTEM DATA AND EXECUTE
CMS3: CMS3:
BIT 7,(HL) ;END OF TABLE ENTRY? BIT 7,(HL) ;END OF TABLE ENTRY?
INC HL INC HL
@ -1139,7 +1153,10 @@ CMS4:
INC HL INC HL
DJNZ CMS1 ;NOT TO END OF TABLE YET DJNZ CMS1 ;NOT TO END OF TABLE YET
CMS5: CMS5:
JP COM ;COMMAND MAY BE DISK-RESIDENT
LD DE,COM ;LOAD DESTINATION AND UPDATE
CMS6:
PUSH DE ;PLACE ROUTINE ADDRESS ON STACK
JP UPDATE ;UPDATE SYSTEM DATA AND EXECUTE
; ;
;**** Section 5 **** ;**** Section 5 ****
; CPR-Resident Commands ; CPR-Resident Commands
@ -1411,6 +1428,21 @@ REPL2:
RET RET
; ;
;Section 5E ;Section 5E
;Command: CLS
;Function: To clear screen.
;Forms:
; CLS
;
CLS:
; LD A,CLSCHR ; Load clear screen character
; DEFB 21H ; and skip next instruction
; If a multi-character string is
; required to clear screen use:
CALL PRINT
DB ESC,'[2','J'+128
RET
;
;Section 5F
;Command: BELL ;Command: BELL
;Function: To ring terminal bell. ;Function: To ring terminal bell.
;Forms: ;Forms:
@ -1420,7 +1452,7 @@ RING:
LD A,BELL ; load bell into A LD A,BELL ; load bell into A
JP CONOUT ; and output it JP CONOUT ; and output it
; ;
;Section 5F
;Section 5G
;Command: LIST ;Command: LIST
;Function: To print specified file on list device. ;Function: To print specified file on list device.
;Forms: ;Forms:
@ -1437,7 +1469,7 @@ LIST:
; ;
JR TYPE1 JR TYPE1
; ;
;Section 5G
;Section 5H
;Command: TYPE ;Command: TYPE
;Function: To display specified file on console. ;Function: To display specified file on console.
;Forms: ;Forms:
@ -1560,8 +1592,8 @@ PAGER:
PAGE2: PAGE2:
JP BDOSJP ; return via bdos JP BDOSJP ; return via bdos
; ;
;Section 5H
;Command: PAGE
;Section 5I
;Command: FF (was PAGE)
;Function: To eject a page on list device via a form feed. ;Function: To eject a page on list device via a form feed.
;Forms: ;Forms:
; PAGE ; PAGE
@ -1579,7 +1611,7 @@ EJECT:
LD C,05H ; list output LD C,05H ; list output
JP BDOS ; output character and return via bdos JP BDOS ; output character and return via bdos
; ;
;Section 5I
;Section 5J
;Command: SAVE ;Command: SAVE
;Function: To save the contents of TPA onto disk as a file. Number of ;Function: To save the contents of TPA onto disk as a file. Number of
; pages or records is in decimal. Saved area begins at 100H. ; pages or records is in decimal. Saved area begins at 100H.
@ -1628,7 +1660,7 @@ SAVE3:
SAVE4: SAVE4:
JP PRNLE ;PRINT 'NO SPACE' ERROR JP PRNLE ;PRINT 'NO SPACE' ERROR
; ;
;Section 5J
;Section 5K
;Command: REN ;Command: REN
;Function: To change the name of an existing file. ;Function: To change the name of an existing file.
;Forms: ;Forms:
@ -1670,7 +1702,7 @@ NAMERR:
REN2: REN2:
JP ABORT JP ABORT
; ;
;Section 5K
;Section 5L
;Command: USER ;Command: USER
;Function: To change current user number; new user number is in decimal. ;Function: To change current user number; new user number is in decimal.
;Forms: ;Forms:
@ -1680,7 +1712,7 @@ USER:
CALL USRNUM ;EXTRACT USER NUMBER FROM COMMAND LINE CALL USRNUM ;EXTRACT USER NUMBER FROM COMMAND LINE
JP NEWUSR ;SET NEW USER NUMBER JP NEWUSR ;SET NEW USER NUMBER
; ;
;Section 5L
;Section 5M
;Command: DFU ;Command: DFU
;Function: To set the Default User Number for the command/file scanner; new ;Function: To set the Default User Number for the command/file scanner; new
; default user number is in decimal. ; default user number is in decimal.
@ -1692,7 +1724,7 @@ DFU:
LD (DFUSR),A ;PUT IT AWAY LD (DFUSR),A ;PUT IT AWAY
RET RET
; ;
;Section 5M
;Section 5N
;Command: SCL ;Command: SCL
;Function: To force ZCPR to parse only a single command per line; reset ;Function: To force ZCPR to parse only a single command per line; reset
; to multiple command format at the next ^C. ; to multiple command format at the next ^C.
@ -1709,7 +1741,7 @@ SINGLE:
ENDIF ENDIF
; ;
; ;
;Section 5N
;Section 5O
;Command: PEEK ;Command: PEEK
;Function: To display hex values beginning at a specified address. ;Function: To display hex values beginning at a specified address.
;Forms: ;Forms:
@ -1756,7 +1788,7 @@ PRHEX:
JP CONOUT ; go display value JP CONOUT ; go display value
; ;
; ;
;Section 5O
;Section 5P
;Command: POKE ;Command: POKE
;Function: To poke a string of hex values into a set of consecutive addresses. ;Function: To poke a string of hex values into a set of consecutive addresses.
;Forms: ;Forms:
@ -1777,7 +1809,7 @@ POKE1:
JR POKE1 ; go for more JR POKE1 ; go for more
; ;
; ;
;Section 5P
;Section 5Q
;Command: JUMP ;Command: JUMP
;Function: To call the program (subroutine) at the specified address ;Function: To call the program (subroutine) at the specified address
; without loading from disk. ; without loading from disk.
@ -1788,7 +1820,7 @@ JUMP:
CALL HEXNUM ;GET LOAD ADDRESS IN HL CALL HEXNUM ;GET LOAD ADDRESS IN HL
JR CLLPRG ;PERFORM CALL JR CLLPRG ;PERFORM CALL
; ;
;Section 5Q
;Section 5R
;Command: COM file processing ;Command: COM file processing
;Function: To load the specified COM file from disk and execute it. ;Function: To load the specified COM file from disk and execute it.
;Forms: ;Forms:
@ -1808,7 +1840,7 @@ COM:
CALL MEMLD ;LOAD MEMORY WITH FILE SPECIFIED CALL MEMLD ;LOAD MEMORY WITH FILE SPECIFIED
;(NO RETURN IF ERROR OR TOO BIG) ;(NO RETURN IF ERROR OR TOO BIG)
; ;
;Section 5R
;Section 5S
;Command: GO ;Command: GO
;Function: To call the program in the TPA without loading from disk. ;Function: To call the program in the TPA without loading from disk.
; Same as JUMP 100H, but more convenient, especially when ; Same as JUMP 100H, but more convenient, especially when
@ -1869,14 +1901,24 @@ COM3:
; RUN LOADED TRANSIENT PROGRAM ; RUN LOADED TRANSIENT PROGRAM
; ;
CALL CRLF ;NEW LINE CALL CRLF ;NEW LINE
CALL DEFDMA ;SET DMA TO 0080
CALL RSTUSR ;RESET TO PROPER USER NUMBER
UPDATE:
CALL DEFDMA ;SET DMA TO DEFAULT VALUE
CALL DLOGIN ;ASSURE PROPER DRIVE
CALL RSTUSR ;ASSURE PROPER USER NUMBER
LD A,E ;GET CURRENT USER NUMBER
ADD A,A ;PLACE IT IN HIGH NIBBLE
ADD A,A
ADD A,A
ADD A,A
LD HL,TDRIVE ;ADD DEFAULT DRIVE NUMBER (LOW NIBBLE)
OR (HL)
LD (UDFLAG),A ;UPDATE USER/DRIVE BYTE
; ;
; EXECUTION (CALL) OF PROGRAM (SUBROUTINE) OCCURS HERE
; EXECUTION (CALL) OF PROGRAM/SUBROUTINE/COMMAND OCCURS HERE
; ;
RET ;CALL TRANSIENT RET ;CALL TRANSIENT
; ;
;Section 5S
;Section 5T
;Command: GET ;Command: GET
;Function: To load the specified file from disk to the specified address ;Function: To load the specified file from disk to the specified address
;Forms: ;Forms:
@ -1897,9 +1939,9 @@ MEMLD:
LD (LDADR),HL ;SET LOAD ADDRESS LD (LDADR),HL ;SET LOAD ADDRESS
; ;
; MLA is a reentry point for a non-standard CP/M Modification ; MLA is a reentry point for a non-standard CP/M Modification
; This is the return point when the .COM (or GET) file is not found the
; first time, the Default User is selected for the second attempt
; and Drive A is selected for the final attempt.
; This is the return point when the .COM (or GET) file was not found
; so the Default Drive & User are selected for the final attempt
; to find the file.
; ;
MLA: MLA:
CALL ULOGIN ;LOG ANY USER CALL ULOGIN ;LOG ANY USER
@ -1907,29 +1949,22 @@ MLA:
CALL OPENF ;OPEN COMMAND.COM FILE CALL OPENF ;OPEN COMMAND.COM FILE
JR NZ,MLA1 ;FILE FOUND - LOAD IT JR NZ,MLA1 ;FILE FOUND - LOAD IT
; ;
; FILE NOT FOUND - SELECT DEFAULT USER
; FILE NOT FOUND - SELECT DEFAULT COM USER
; ;
LD A,L ;GET FCB USER
AND A ;DEFAULT USER?
JR NZ,MLA0 ;NO
LD HL,TMPUSR ;CURRENT USER SAME AS DEFAULT?
LD A,(DFUSR) ;GET DEFAULT USER LD A,(DFUSR) ;GET DEFAULT USER
CP (HL)
SET 7,A ;MAKE INTO VALID USER NUMBER SET 7,A ;MAKE INTO VALID USER NUMBER
LD (FCBS1),A ;PUT USER INTO FCB LD (FCBS1),A ;PUT USER INTO FCB
JR NZ,MLA ;AND TRY AGAIN
; ;
; FILE NOT FOUND - SELECT DRIVE A IF DEFAULT WAS SOME OTHER DRIVE
; AND SELECT DEFAULT COM DRIVE. IF DEFAULT COM DRIVE ALREADY
; SELECTED, GIVE UP AND PRINT ERROR MESSAGE
; ;
MLA0: MLA0:
LD A,(TDRIVE) ;DRIVE A DEFAULT?
AND A
LD A,DEFDRV-'@' ;A<= DEFAULT COM DRIVE
LD HL,FCBDN ;POINT TO DRIVE IN FCB
CP (HL) ;THE SAME?
JR Z,MLA3 ;YES, ERROR JR Z,MLA3 ;YES, ERROR
XOR A
LD HL,FCBDN ;POINT AT DRIVE IN FCB
OR (HL) ;DRIVE ALREADY SPECIFIED?
LD (HL),1 ;SELECT DRIVE A
JR Z,MLA ;NO, GO GIVE IT A TRY
LD (HL),A ;PUT DEFAULT COM DRIVE IN FCB
JR MLA ;GO GIVE IT A TRY
MLA3: MLA3:
CALL PRNNF ;CAN'T FIND FILE CALL PRNNF ;CAN'T FIND FILE
JR PRNLE1 JR PRNLE1
@ -1962,6 +1997,7 @@ PRNLE1:
IF (($-ENTRY) GT ZCPRSZ) IF (($-ENTRY) GT ZCPRSZ)
*ZCPR too large!!* *ZCPR too large!!*
ENDIF ENDIF
.DEPHASE
; ;
IF TEST IF TEST
LISTST: LISTST:
@ -1978,4 +2014,4 @@ ENDLD EQU $
END END
 PUSH HL ;SAVE POI


2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1 #DEFINE RMN 1
#DEFINE RUP 1 #DEFINE RUP 1
#DEFINE RTP 0 #DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.77"
#DEFINE BIOSVER "3.1.1-pre.83"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1 rup equ 1
rtp equ 0 rtp equ 0
biosver macro biosver macro
db "3.1.1-pre.77"
db "3.1.1-pre.83"
endm endm

Loading…
Cancel
Save