mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
@@ -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)
|
||||
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)
|
||||
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)
|
||||
;
|
||||
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
Normal file
33
Source/HBIOS/Config/SBC_mbc.asm
Normal file
@@ -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)
|
||||
@@ -22,8 +22,9 @@ else
|
||||
OBJECTS += RCZ80_std.rom RCZ80_std.com RCZ80_std.upd
|
||||
OBJECTS += RCZ80_skz.rom RCZ80_skz.com RCZ80_skz.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_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_130.rom SCZ180_130.com SCZ180_130.upd
|
||||
OBJECTS += SCZ180_131.rom SCZ180_131.com SCZ180_131.upd
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
@@ -72,6 +72,7 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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_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)
|
||||
@@ -73,6 +73,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
@@ -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)
|
||||
PPKKBLOUT .EQU KBD_US ; PPK 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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
@@ -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)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
PPKKBLOUT .EQU KBD_US ; PPK 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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
@@ -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)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
PPKKBLOUT .EQU KBD_US ; PPK 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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU TRUE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
@@ -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)
|
||||
FIFO_BASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
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
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
@@ -75,6 +75,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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)
|
||||
@@ -80,6 +80,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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_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)
|
||||
@@ -74,6 +74,8 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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_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)
|
||||
PPKKBLOUT .EQU KBD_US ; PPK 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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VGASIZ .EQU V80X25 ; VGA: DISPLAY FORMAT [V80X25|V80X30|V80X43]
|
||||
@@ -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)
|
||||
UFBASE .EQU $0C ; UF: REGISTERS BASE ADR
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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
|
||||
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
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
NECENABLE .EQU FALSE ; NEC: ENABLE NEC UPD7220 VIDEO/KBD DRIVER (NEC.ASM)
|
||||
TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8]
|
||||
TMSMODE .EQU TMSMODE_RC ; TMS: DRIVER MODE: TMSMODE_[SCG/N8/RC/RCV9958]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
|
||||
;
|
||||
AY38910ENABLE .EQU FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AY_CLK .EQU CPUOSC / 4 ; DEFAULT TO CPUOSC / 4
|
||||
AYMODE .EQU AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG/N8/RCZ80/RCZ180]
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; SPK: ENABLE RTC LATCH IOBIT SOUND DRIVER (SPK.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
|
||||
;
|
||||
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!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (USUALLY 0)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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_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
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
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)
|
||||
|
||||
@@ -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
|
||||
;
|
||||
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)
|
||||
;
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RAM_RESERVE .EQU 0 ; RESERVE FIRST N KB OF RAM (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_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)
|
||||
@@ -73,6 +73,7 @@ BOOTCON .EQU 0 ; BOOT CONSOLE DEVICE
|
||||
CRTACT .EQU FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; VDA EMULATION: EMUTYP_[TTY|ANSI]
|
||||
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)
|
||||
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)
|
||||
;
|
||||
RP5RTCENABLE .EQU FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; ENABLE SIMH TIMER SUPPORT
|
||||
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)
|
||||
;
|
||||
AUDIOTRACE .EQU FALSE ; ENABLE TRACING TO CONSOLE OF 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
|
||||
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)
|
||||
|
||||
@@ -743,7 +743,14 @@ FD_INIT0:
|
||||
; DOES NOT ATTEMPT TO DETERMINE THE ACTUAL VARIANT.
|
||||
;
|
||||
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
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CP $80
|
||||
JR Z,FD_DETECT1 ; $80 IS OK
|
||||
CP $D0
|
||||
@@ -751,7 +758,10 @@ FD_DETECT:
|
||||
RET ; NOPE, ABORT WITH ZF=NZ
|
||||
;
|
||||
FD_DETECT1:
|
||||
CALL DLY32 ; WAIT A BIT FOR FDC
|
||||
IN A,(FDC_MSR) ; READ MSR AGAIN
|
||||
;CALL PC_SPACE ; *DEBUG*
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
CP $80
|
||||
RET ; $80 OK, ELSE NOT PRESENT
|
||||
;
|
||||
@@ -1309,7 +1319,7 @@ FC_SETUPSPECIFY:
|
||||
;
|
||||
; SET FST_DOR
|
||||
;
|
||||
FC_SETDOR
|
||||
FC_SETDOR:
|
||||
LD (FST_DOR),A
|
||||
OUT (FDC_DOR),A
|
||||
#IF (FDTRACE >= 3)
|
||||
|
||||
@@ -116,8 +116,6 @@ MODCNT .SET MODCNT + 1
|
||||
#IF (INTMODE == 3)
|
||||
; Z280 MODE 3 INTERRUPT HANDLING (INTA, C/T 0, & UART RCVR ENABLED)
|
||||
#DEFINE HB_DI DI
|
||||
;#DEFINE HB_DI .DB $ED,$77,$7F
|
||||
;#DEFINE HB_EI EI
|
||||
#DEFINE HB_EI .DB $ED,$7F,$0B
|
||||
#ELSE
|
||||
; Z280 MODE 1/2 INTERRUPT HANDLING
|
||||
@@ -327,13 +325,13 @@ HBX_INVOKE:
|
||||
;
|
||||
LD A,(HB_CURBNK) ; GET CURRENT BANK
|
||||
LD (HB_INVBNK),A ; SAVE INVOCATION BANK
|
||||
;
|
||||
;
|
||||
LD A,BID_BIOS ; HBIOS BANK
|
||||
LD (HB_CURBNK),A ; SET AS CURRENT BANK
|
||||
;
|
||||
.DB $ED,$71 ; SC
|
||||
.DW HB_DISPATCH ; SC PARAMETER
|
||||
;
|
||||
;
|
||||
PUSH AF
|
||||
LD A,(HB_INVBNK)
|
||||
LD (HB_CURBNK),A
|
||||
@@ -486,6 +484,39 @@ HBX_ROM:
|
||||
RET ; DONE
|
||||
#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
|
||||
; 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.
|
||||
;
|
||||
EX (SP),HL ; SAVE HL AND GET INT JP TABLE OFFSET
|
||||
|
||||
|
||||
; SAVE STATE (HL SAVED PREVIOUSLY ON ORIGINAL STACK FRAME)
|
||||
PUSH AF ; SAVE AF
|
||||
PUSH BC ; SAVE BC
|
||||
@@ -814,7 +845,7 @@ HBX_INT: ; COMMON INTERRUPT ROUTING CODE
|
||||
CALL HBX_RETI ; RETI FOR Z80 PERIPHERALS
|
||||
RETIL
|
||||
;
|
||||
HBX_RETI:
|
||||
HBX_RETI:
|
||||
RETI
|
||||
;
|
||||
#ELSE
|
||||
@@ -859,7 +890,7 @@ HBX_INT_SP .EQU $ - 2
|
||||
RETI ; AND RETURN
|
||||
;
|
||||
#ENDIF
|
||||
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
; SMALL TEMPORARY STACK FOR USE BY HBX_BNKCPY
|
||||
@@ -1095,13 +1126,13 @@ Z280_BOOTPDRTBL:
|
||||
;
|
||||
Z280_INITZ:
|
||||
;
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
; RESTORE I/O PAGE TO $00
|
||||
LD L,$00 ; NORMAL I/O REG IS $00
|
||||
LD C,Z280_IOPR ; REG C POINTS TO I/O PAGE REGISTER
|
||||
LDCTL (C),HL
|
||||
;
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
@@ -1152,7 +1183,7 @@ Z280_INITZ:
|
||||
;
|
||||
; SET DEFAULT CSIO SPEED (INTERNAL CLOCK, SLOW AS POSSIBLE)
|
||||
LD A,Z180_CNTR_DEF ; DIV 1280, 14KHZ @ 18MHZ CLK
|
||||
OUT0 (Z180_CNTR),A
|
||||
OUT0 (Z180_CNTR),A
|
||||
#ENDIF
|
||||
;
|
||||
#ENDIF
|
||||
@@ -1588,8 +1619,7 @@ HB_CPU2:
|
||||
#ENDIF
|
||||
;
|
||||
#IF (KIOENABLE)
|
||||
LD A,%11111001 ; RESET ALL DEVICES, SET DAISYCHAIN
|
||||
OUT (KIOBASE+$0E),A ; DO IT
|
||||
CALL KIO_PREINIT
|
||||
#ENDIF
|
||||
;
|
||||
#IF (CTCENABLE)
|
||||
@@ -1738,7 +1768,7 @@ NOT_REC_M0:
|
||||
;
|
||||
XOR A ; FAILSAFE VALUE FOR BOOT CONSOLE DEVICE
|
||||
LD (CB_CONDEV),A ; SAVE IT
|
||||
;
|
||||
;
|
||||
LD A,(CIO_CNT) ; GET COUNT OF CHAR DEVICES
|
||||
CP BOOTCON + 1 ; COUNT - (DEVICE + 1)
|
||||
JR C,HB_CONRDY ; IF TOO HIGH, JUST USE FAILSAFE
|
||||
@@ -1881,7 +1911,7 @@ HB_Z280BUS1:
|
||||
; DISPLAY CPU CONFIG
|
||||
;
|
||||
CALL NEWLINE
|
||||
|
||||
|
||||
#IF (CPUFAM == CPU_Z280)
|
||||
LD A,Z280_MEMLOWAIT
|
||||
CALL PRTDECB
|
||||
@@ -2239,6 +2269,9 @@ HB_PCINITTBLLEN .EQU (($ - HB_PCINITTBL) / 2)
|
||||
;==================================================================================================
|
||||
;
|
||||
HB_INITTBL:
|
||||
#IF (KIOENABLE)
|
||||
.DW KIO_INIT
|
||||
#ENDIF
|
||||
#IF (CTCENABLE)
|
||||
.DW CTC_INIT
|
||||
#ENDIF
|
||||
@@ -2285,6 +2318,9 @@ HB_INITTBL:
|
||||
.DW PCF8584_INIT
|
||||
.DW DS7RTC_INIT
|
||||
#ENDIF
|
||||
#IF (RP5RTCENABLE)
|
||||
.DW RP5RTC_INIT
|
||||
#ENDIF
|
||||
#IF (VDUENABLE)
|
||||
.DW VDU_INIT
|
||||
#ENDIF
|
||||
@@ -2963,7 +2999,7 @@ SYS_RESINT:
|
||||
;
|
||||
SYS_RESWARM:
|
||||
CALL SYS_RESINT
|
||||
;
|
||||
;
|
||||
#IF (MEMMGR == MM_Z280)
|
||||
JP INITSYS4
|
||||
#ELSE
|
||||
@@ -3752,6 +3788,10 @@ HB_TICK1:
|
||||
; PULSE WATCHDOG
|
||||
OUT (WDOGIO),A ; VALUE IS IRRELEVANT
|
||||
#ENDIF
|
||||
;
|
||||
#IF MKYENABLE
|
||||
CALL MKY_INT
|
||||
#ENDIF
|
||||
;
|
||||
OR $FF ; NZ SET TO INDICATE INT HANDLED
|
||||
RET
|
||||
@@ -3909,13 +3949,13 @@ Z280_PRIVINST:
|
||||
LD (HB_MSRSAV),HL ; SAVE IT
|
||||
POP HL ; RECOVER HL, POP STACK
|
||||
EX (SP),HL ; GET ADR, SAVE HL
|
||||
;
|
||||
;
|
||||
PUSH AF
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
;
|
||||
;
|
||||
.DB $ED,$96 ; LDUP A,(HL)
|
||||
;
|
||||
;
|
||||
; HANDLE DI
|
||||
CP $F3 ; DI?
|
||||
JR NZ,Z280_PRIVINST2
|
||||
@@ -4251,7 +4291,7 @@ Z280_BNKSEL:
|
||||
PUSH HL ; SAVE IT
|
||||
LD L,$FF ; NEW I/O PAGE
|
||||
LDCTL (C),HL
|
||||
;
|
||||
;
|
||||
; CONVERT BANK ID TO TOP 12 BITS OF PHYSICAL ADDRESS
|
||||
; WITH $0A IN THE LOW ORDER NIBBLE:
|
||||
; BANK ID: R000 BBBB
|
||||
@@ -4263,7 +4303,7 @@ Z280_BNKSEL:
|
||||
JR Z,Z280_BNKSEL2 ; IF NOT, ALL DONE
|
||||
RES 6,H ; OTHERWISE, MOVE RAM BIT
|
||||
SET RAMLOC-16,H ; HL=0000 RBBB B000 0000
|
||||
;
|
||||
;
|
||||
Z280_BNKSEL2:
|
||||
;
|
||||
; SET LOW NIBBLE
|
||||
@@ -4332,19 +4372,19 @@ Z280_BNKCPY:
|
||||
;
|
||||
PUSH BC ; SAVE COUNT
|
||||
PUSH HL ; SAVE SOURCE ADDRESS
|
||||
;
|
||||
;
|
||||
; SELECT I/O PAGE $FF
|
||||
LD C,Z280_IOPR ; I/O PAGE REGISTER
|
||||
LDCTL HL,(C) ; GET CURRENT I/O PAGE
|
||||
LD (IOPRVAL),HL ; SAVE IT
|
||||
LD L,$FF ; I/O PAGE $FF
|
||||
LDCTL (C),HL
|
||||
;
|
||||
;
|
||||
LD C,Z280_DMA0_DSTL ; START WITH DEST REG LO
|
||||
;
|
||||
LD A,(HB_DSTBNK) ; DEST BANK TO ACCUM
|
||||
CALL Z2DMAADR ; SETUP DEST ADR REGS
|
||||
;
|
||||
;
|
||||
POP DE ; SRC ADR TO DE
|
||||
LD A,(HB_SRCBNK) ; DEST BANK TO ACCUM
|
||||
CALL Z2DMAADR ; SETUP SOURCE ADR REGS
|
||||
@@ -4399,7 +4439,7 @@ Z2DMAADR1:
|
||||
LD A,$0F ; A=0000 1111
|
||||
OR L ; A=BAAA 1111
|
||||
LD L,A ; L=BAAA 1111
|
||||
;
|
||||
;
|
||||
; MOVE THE RAM/ROM BIT.
|
||||
; RC2014 DMA HI=0000 RBBB 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
|
||||
OUTW (C),HL
|
||||
INC C ; BUMP TO NEXT REG
|
||||
;
|
||||
;
|
||||
RET
|
||||
#ENDIF
|
||||
;
|
||||
@@ -4499,6 +4539,14 @@ SIZ_INTRTC .EQU $ - ORG_INTRTC
|
||||
.ECHO " bytes.\n"
|
||||
#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)
|
||||
ORG_ASCI .EQU $
|
||||
#INCLUDE "asci.asm"
|
||||
@@ -4657,6 +4705,15 @@ SIZ_PPK .EQU $ - ORG_PPK
|
||||
.ECHO " bytes.\n"
|
||||
#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)
|
||||
ORG_PRP .EQU $
|
||||
#INCLUDE "prp.asm"
|
||||
@@ -4774,6 +4831,14 @@ SIZ_UF .EQU $ - ORG_UF
|
||||
.ECHO SIZ_UF
|
||||
.ECHO " bytes.\n"
|
||||
#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)
|
||||
ORG_CTC .EQU $
|
||||
#INCLUDE "ctc.asm"
|
||||
@@ -4944,7 +5009,7 @@ SYSCHK:
|
||||
CP DL_ERROR ; >= ERROR LEVEL
|
||||
JR C,SYSCHK1 ; IF NOT, GO HOME
|
||||
POP AF ; RESTORE INCOMING AF VALUE
|
||||
;
|
||||
;
|
||||
; DISPLAY SYSCHK MESSAGE
|
||||
PUSH DE ; PRESERVE DE VALUE
|
||||
LD DE,STR_SYSCHK ; POINT TO PREFIX STRING
|
||||
@@ -5151,7 +5216,7 @@ PS_PRTDC:
|
||||
CP 5 ; RAM DISK?
|
||||
JR Z,PS_PRTDC1 ; PRINT CAPACITY IN KB
|
||||
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
|
||||
LD B,BF_DIOCAP ; HBIOS FUNC: GET CAPACTIY
|
||||
@@ -5416,8 +5481,8 @@ PS_SOUND:
|
||||
PRTS(" $") ; PAD TO NEXT COLUMN
|
||||
|
||||
; DEVICE COLUMN
|
||||
|
||||
PUSH BC ;
|
||||
|
||||
PUSH BC ;
|
||||
LD E,C
|
||||
XOR A
|
||||
LD DE,PS_SDSND ; POINT TO DEVICE TYPE NAME TABLE
|
||||
|
||||
@@ -131,7 +131,7 @@ ERR_RANGE .EQU -6 ; PARAMETER OUT OF RANGE
|
||||
ERR_NOMEDIA .EQU -7 ; MEDIA NOT PRESENT
|
||||
ERR_NOHW .EQU -8 ; HARDWARE NOT PRESENT
|
||||
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_BADCFG .EQU -12 ; INVALID CONFIGURATION
|
||||
ERR_INTERNAL .EQU -13 ; INTERNAL ERROR
|
||||
@@ -191,6 +191,7 @@ RTCDEV_BQ .EQU $10 ; BQ4845P
|
||||
RTCDEV_SIMH .EQU $20 ; SIMH
|
||||
RTCDEV_INT .EQU $30 ; PERIODIC INT TIMER
|
||||
RTCDEV_DS7 .EQU $40 ; DS1302 (I2C)
|
||||
RTCDEV_RP5 .EQU $50 ; RP5C01
|
||||
;
|
||||
; 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_TMS .EQU $30 ; N8 ONBOARD VDA SUBSYSTEM - TMS 9918
|
||||
VDADEV_VGA .EQU $40 ; ECB VGA3 - HITACHI HD6445
|
||||
;VDADEV_V9958 .EQU $50 ; V9958 VDU
|
||||
;
|
||||
; SOUND DEVICE IDS
|
||||
;
|
||||
|
||||
92
Source/HBIOS/kio.asm
Normal file
92
Source/HBIOS/kio.asm
Normal file
@@ -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
Normal file
1155
Source/HBIOS/mky.asm
Normal file
File diff suppressed because it is too large
Load Diff
446
Source/HBIOS/rp5rtc.asm
Normal file
446
Source/HBIOS/rp5rtc.asm
Normal file
@@ -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
|
||||
|
||||
@@ -84,6 +84,7 @@ MM_N8 .EQU 3 ; Z180 CUSTOMIZED FOR N8 MEMORY EXTENSIONS
|
||||
MM_Z180 .EQU 4 ; Z180 NATIVE MEMORY MANAGER
|
||||
MM_Z280 .EQU 5 ; Z280 NATIVE MEMORY MANAGER
|
||||
MM_ZRC .EQU 6 ; ZRC BANK SWITCHING
|
||||
MM_MBC .EQU 7 ; MBC MEMORY MANAGER
|
||||
;
|
||||
; 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_SCG .EQU 1 ; SCG ECB BOARD
|
||||
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
|
||||
;
|
||||
@@ -427,7 +429,7 @@ SYSTIM .SET TM_CTC
|
||||
#IF (TMSENABLE & (INTMODE == 1))
|
||||
#IF (TMSTIMENABLE)
|
||||
SYSTIM .SET TM_TMS
|
||||
.ECHO " TMS9918"
|
||||
.ECHO " TMS9918/V9958"
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
;======================================================================
|
||||
; N8 VDU DRIVER FOR SBC PROJECT
|
||||
; TM9918 AND V9958 VDU DRIVER
|
||||
;
|
||||
; WRITTEN BY: DOUGLAS GOODALL
|
||||
; UPDATED BY: WAYNE WARTHEN -- 4/7/2013
|
||||
; UPDATED BY: DEAN NETHERTON -- 5/26/2021 - V9958 SUPPORT
|
||||
;======================================================================
|
||||
;
|
||||
; TODO:
|
||||
@@ -22,7 +23,7 @@ TMSINTEN: .EQU 5 ; INTERRUPT ENABLE BIT
|
||||
.ECHO "TMS INTERRUPTS ENABLED\n"
|
||||
#ENDIF
|
||||
|
||||
#IF (TMSMODE == TMSMODE_RC)
|
||||
#IF ((TMSMODE == TMSMODE_RC) | (TMSMODE == TMSMODE_RCV9958))
|
||||
TMS_DATREG .EQU $98 ; READ/WRITE DATA
|
||||
TMS_CMDREG .EQU $99 ; READ STATUS / WRITE REG SEL
|
||||
TMS_PPIA .EQU 0 ; PPI PORT A
|
||||
@@ -58,14 +59,21 @@ TMS_PPIX .EQU 0 ; PPI CONTROL PORT
|
||||
#ENDIF
|
||||
;
|
||||
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
|
||||
#ENDIF
|
||||
;
|
||||
#DEFINE USEFONT8X8
|
||||
#DEFINE TMS_FONT FONT8X8
|
||||
;
|
||||
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 (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
|
||||
#ELSE
|
||||
; 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
|
||||
;
|
||||
;======================================================================
|
||||
@@ -82,9 +94,9 @@ TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
;
|
||||
TMS_PREINIT:
|
||||
; DISABLE INTERRUPT GENERATION
|
||||
LD A, (TMS_INIT9918_REG_1)
|
||||
LD A, (TMS_INITVDU_REG_1)
|
||||
RES TMSINTEN, A ; RESET INTERRUPT ENABLE BIT
|
||||
LD (TMS_INIT9918_REG_1), A
|
||||
LD (TMS_INITVDU_REG_1), A
|
||||
LD C, TMSCTRL1
|
||||
JP TMS_SET
|
||||
;
|
||||
@@ -101,7 +113,21 @@ TMS_INIT:
|
||||
LD IY,TMS_IDAT ; POINTER TO INSTANCE DATA
|
||||
;
|
||||
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
|
||||
CALL PRTHEXBYTE
|
||||
CALL TMS_PROBE ; CHECK FOR HW EXISTENCE
|
||||
@@ -118,15 +144,20 @@ TMS_INIT1:
|
||||
CALL TMS_VDARES1
|
||||
#IF (TMSMODE == TMSMODE_N8)
|
||||
CALL PPK_INIT ; INITIALIZE KEYBOARD DRIVER
|
||||
#ELSE
|
||||
#IF MKYENABLE
|
||||
CALL MKY_INIT
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
#IF (INTMODE == 1 & TMSTIMENABLE)
|
||||
; ADD IM1 INT CALL LIST ENTRY
|
||||
LD HL, TMS_TSTINT ; GET INT VECTOR
|
||||
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
|
||||
LD (TMS_INIT9918_REG_1), A
|
||||
LD (TMS_INITVDU_REG_1), A
|
||||
LD C, TMSCTRL1
|
||||
CALL TMS_SET
|
||||
#ENDIF
|
||||
@@ -144,12 +175,6 @@ TMS_INIT1:
|
||||
;
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
#IF TMSTIMENABLE
|
||||
; DISABLE INTERRUPT
|
||||
TMS_INT_DIS:
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
;======================================================================
|
||||
; TMS DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS
|
||||
@@ -172,11 +197,18 @@ TMS_FNTBL:
|
||||
.DW PPK_STAT
|
||||
.DW PPK_FLUSH
|
||||
.DW PPK_READ
|
||||
#ELSE
|
||||
#IF MKYENABLE
|
||||
.DW MKY_STAT
|
||||
.DW MKY_FLUSH
|
||||
.DW MKY_READ
|
||||
|
||||
#ELSE
|
||||
.DW TMS_STAT
|
||||
.DW TMS_FLUSH
|
||||
.DW TMS_READ
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#IF (($ - TMS_FNTBL) != (VDA_FNCNT * 2))
|
||||
.ECHO "*** INVALID TMS FUNCTION TABLE ***\n"
|
||||
!!!!!
|
||||
@@ -349,11 +381,21 @@ TMS_SET:
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; 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:
|
||||
#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
|
||||
SET 6,H ; SET WRITE BIT
|
||||
CALL TMS_RD
|
||||
@@ -423,8 +465,8 @@ TMS_CRTINIT1:
|
||||
;
|
||||
; INITIALIZE VDU REGISTERS
|
||||
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:
|
||||
LD A,(HL) ; GET VALUE
|
||||
CALL TMS_SET ; WRITE IT
|
||||
@@ -438,8 +480,8 @@ TMS_CRTINIT2:
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
TMS_LOADFONT:
|
||||
; SET WRITE ADDRESS TO $800
|
||||
LD HL,$800
|
||||
; SET WRITE ADDRESS TO TMS_FNTVADDR
|
||||
LD HL,TMS_FNTVADDR
|
||||
CALL TMS_WR
|
||||
|
||||
#IF USELZSA2
|
||||
@@ -458,8 +500,8 @@ TMS_LOADFONT:
|
||||
LD HL,TMS_FONT ; START OF FONT DATA
|
||||
#ENDIF
|
||||
;
|
||||
; FILL $800 BYTES FROM FONTDATA
|
||||
LD DE,$800
|
||||
; FILL TMS_FNTVADDR BYTES FROM FONTDATA
|
||||
LD DE,TMS_FNTVADDR
|
||||
TMS_LOADFONT1:
|
||||
LD A,(HL)
|
||||
OUT (TMS_DATREG),A
|
||||
@@ -520,7 +562,7 @@ TMS_SETCUR0: ; MULT BY 8 FOR FONT INDEX
|
||||
SLA L ; SHIFT LSB INTO CARRY
|
||||
RL H ; SHFT MSB FROM CARRY
|
||||
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
|
||||
CALL TMS_RD ; SETUP TO READ GLYPH
|
||||
LD B,8 ; 8 BYTES
|
||||
@@ -533,7 +575,7 @@ TMS_SETCUR1: ; READ GLYPH LOOP
|
||||
DJNZ TMS_SETCUR1 ; LOOP FOR 8 BYTES
|
||||
;
|
||||
; 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
|
||||
LD B,8 ; 8 BYTES PER GLYPH
|
||||
LD HL,TMS_BUF ; POINT TO BUFFER
|
||||
@@ -803,6 +845,11 @@ TMS_TSTINT:
|
||||
RET
|
||||
|
||||
TMS_INTHNDL:
|
||||
|
||||
;#IF MKYENABLE
|
||||
; CALL MKY_INT
|
||||
;#ENDIF
|
||||
|
||||
CALL HB_TIMINT ; RETURN NZ - HANDLED
|
||||
OR $FF
|
||||
RET
|
||||
@@ -874,24 +921,42 @@ TMS_PORTS:
|
||||
; 5S Fifth sprite (not displayed) detected. Value in FS* is valid.
|
||||
; INT Set at each screen update, used for interrupts.
|
||||
;
|
||||
TMS_INIT9918:
|
||||
.DB $00 ; REG 0 - NO EXTERNAL VID
|
||||
TMS_INIT9918_REG_1:
|
||||
#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 $00 ; REG 2 - PATTERN NAME TABLE := 0
|
||||
.DB $03 ; REG 2 - PATTERN NAME TABLE := 0
|
||||
.DB $00 ; REG 3 - NO COLOR TABLE
|
||||
.DB $01 ; REG 4 - SET PATTERN GENERATOR TABLE TO $800
|
||||
.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
|
||||
TMS_INITVDU_REG_1:
|
||||
.DB $50 ; REG 1 - ENABLE SCREEN, SET MODE 1
|
||||
.DB $00 ; REG 2 - PATTERN NAME TABLE := 0
|
||||
.DB $00 ; REG 3 - NO COLOR TABLE
|
||||
.DB $01 ; REG 4 - SET PATTERN GENERATOR TABLE TO (TMS_FNTVADDR -> $0800)
|
||||
.DB $00 ; REG 5 - SPRITE ATTRIBUTE IRRELEVANT
|
||||
.DB $00 ; REG 6 - NO SPRITE GENERATOR TABLE
|
||||
.DB $F0 ; REG 7 - WHITE ON BLACK
|
||||
#ENDIF
|
||||
;
|
||||
TMS_INIT9918LEN .EQU $ - TMS_INIT9918
|
||||
TMS_INITVDULEN .EQU $ - TMS_INITVDU
|
||||
;
|
||||
;
|
||||
#IF (CPUFAM == CPU_Z180)
|
||||
TMS_DCNTL .DB $00 ; SAVE Z180 DCNTL AS NEEDED
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
.ECHO "TMS instance data occupies "
|
||||
.ECHO $ - TMS_IDAT
|
||||
.ECHO " bytes\n"
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -11,5 +11,5 @@ set ZXBINDIR=%TOOLS%/cpm/bin/
|
||||
set ZXLIBDIR=%TOOLS%/cpm/lib/
|
||||
set ZXINCDIR=%TOOLS%/cpm/include/
|
||||
|
||||
zx M80 -=zcpr
|
||||
zx M80 -=zcpr/l
|
||||
zx L80 -zcpr,zcpr.bin/n/e
|
||||
@@ -4,3 +4,4 @@ setlocal
|
||||
if exist *.bin del *.bin
|
||||
if exist *.lst del *.lst
|
||||
if exist *.rel del *.rel
|
||||
if exist *.prn del *.prn
|
||||
|
||||
@@ -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
|
||||
; CCPZ CREATED AND CUSTOMIZED FOR ARIES-II BY RLC
|
||||
; FURTHER MODIFIED BY RGF AS V2.0
|
||||
@@ -66,6 +68,13 @@
|
||||
;
|
||||
; 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 ********
|
||||
;
|
||||
; This CPR is divided into a number of major sections. The following
|
||||
@@ -86,39 +95,40 @@
|
||||
;
|
||||
; 3 Utilities
|
||||
; 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
|
||||
; PROMPT REDBUF CNVBUF UCASE SDELM
|
||||
; ADVAN SBLANK ADDAH NUMBER A2NUM
|
||||
; HEXNUM USRNUM ERROR DIRPTR ULOGIN
|
||||
; SCANER SCANT SCANF CMDSER SETUDB
|
||||
; SCANER SCANT SCANF CMDSER
|
||||
;
|
||||
; 5 CPR-Resident Commands and Functions
|
||||
; 5A DIR DIRPR PRFN
|
||||
; 5B ERA
|
||||
; 5C ERAQ PRNNF
|
||||
; 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
|
||||
;
|
||||
;
|
||||
@@ -148,8 +158,8 @@ REL EQU FALSE ;SET TO TRUE FOR MOVCPM INTEGRATION
|
||||
;LEAVE ALL FALSE FOR SYSGEN IMAGE
|
||||
;
|
||||
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
|
||||
P2DOSSZ EQU 00E00H ;SIZE OF P2DOS
|
||||
BIOS EQU P2DOS+P2DOSSZ ;BASE OF BIOS
|
||||
@@ -244,7 +254,7 @@ SOFLG EQU 'S' ;LIST $SYS ONLY
|
||||
;
|
||||
; 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
|
||||
FFKILL EQU TRUE ;TRUE SUPPRESSES FF UNTIL FIRST CHARACTER
|
||||
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
|
||||
MAXUSR EQU 15 ;MAXIMUM USER NUMBER ACCESSIBLE
|
||||
DEFUSR EQU 0 ;DEFAULT USER NUMBER FOR COM FILES
|
||||
DEFDRV EQU 'A' ;DEFAULT DRIVE FOR COM FILES
|
||||
SPRMPT EQU '$' ;CPR PROMPT INDICATING SUBMIT COMMAND
|
||||
COMCHR EQU ';' ;BEGIN COMMENT CHARACTER
|
||||
COMCHR EQU '%' ;BEGIN COMMENT CHARACTER
|
||||
CMDCHR EQU ';' ;BEGIN NEXT COMMAND CHARACTER
|
||||
NUMBASE EQU 'H' ;CHARACTER USED TO SPECIFY HEXIDECIMAL BASE
|
||||
RECFLG EQU 'R' ;CHARACTER FOR SAVE COMMAND TO SAVE RECORDS
|
||||
SUPRES EQU TRUE ;TRUE TO SUPPRESS USER NUMBER FOR USER 0
|
||||
MULTPL EQU TRUE ;TRUE TO ALLOW MULTIPLE COMMANDS ON ONE LINE
|
||||
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
|
||||
CPRMPT EQU '<' ;CPR PROMPT INDICATING TEST MODE
|
||||
@@ -300,7 +313,7 @@ TPA EQU BASE+0100H ;BASE OF TPA
|
||||
IF COMLD OR TEST
|
||||
LD HL,BGNXFR
|
||||
LD DE,CPRLOC
|
||||
LD BC,ENDLD-CPRLOC
|
||||
LD BC,ENDLD-BGNXFR
|
||||
LDIR
|
||||
LD BC,(UDFLAG)
|
||||
JP CPRLOC
|
||||
@@ -369,15 +382,26 @@ ENTRY:
|
||||
; warm boot reloads ZCPR and destroys the contents of the command buffer.
|
||||
; 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
|
||||
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
|
||||
;
|
||||
; SUBMIT FILE CONTROL BLOCK
|
||||
@@ -394,22 +418,23 @@ SUBCR EQU SUBDN+32 ;CURRENT RECORD NUMBER
|
||||
;
|
||||
; 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
|
||||
;
|
||||
; 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
|
||||
;
|
||||
; General Variables
|
||||
@@ -417,7 +442,7 @@ SYSTST: DEFB 0 ;LIST SYSTEM FILES IN DIRECTORY FLAG
|
||||
CIBPTR: DEFW CIBUFF ;POINTER TO COMMAND INPUT BUFFER
|
||||
CIPTR: DEFW CIBUFF ;POINTER TO CURRENT CMD FOR ERROR REPORTING
|
||||
TMPUSR: DEFB 0 ;TEMPORARY USER NUMBER
|
||||
TDRIVE: DEFB 0 ;DEFAULT DRIVE
|
||||
TDRIVE: DEFB 0 ;TEMPORARY DRIVE
|
||||
DFUSR: DEFB DEFUSR ;DEFAULT USER
|
||||
LDADR: DEFW TPA ;MEMORY LOAD ADDRESS
|
||||
;
|
||||
@@ -435,11 +460,13 @@ CMDTBL:
|
||||
DEFW USER
|
||||
DC 'DFU'
|
||||
DEFW DFU
|
||||
DC 'PAGE'
|
||||
DC 'FF' ; was 'PAGE'
|
||||
DEFW EJECT
|
||||
DC 'BELL'
|
||||
DEFW RING
|
||||
DC 'SAK'
|
||||
DC 'CLS'
|
||||
DEFW CLS
|
||||
DC 'WAIT' ; was 'SAK' ("strike any key")
|
||||
DEFW SAK
|
||||
DC 'GO'
|
||||
DEFW GO
|
||||
@@ -459,7 +486,7 @@ CMDTBL:
|
||||
DEFW PEEK
|
||||
DC 'POKE'
|
||||
DEFW POKE
|
||||
NCMNDS DEFL 17 ;NUMBER OF COMMANDS
|
||||
NCMNDS DEFL 18 ;NUMBER OF COMMANDS
|
||||
;
|
||||
IF MULTPL
|
||||
DC 'SCL'
|
||||
@@ -516,14 +543,11 @@ RS3:
|
||||
JR Z,RESTRT ;YES, SKIP REST OF LINE
|
||||
CALL SCANER ;PARSE COMMAND NAME FROM COMMAND LINE
|
||||
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
|
||||
;
|
||||
CALL UPDATE ;UPDATE BDOS/SYSTEM PARAMETERS
|
||||
CALL ADVAN ;GET ANY CHARACTER
|
||||
JR Z,RESTRT ;NONE, END OF LINE
|
||||
LD (CIPTR),DE ;UPDATE START OF LINE IN CASE ERROR
|
||||
@@ -1024,7 +1048,7 @@ SCAN4:
|
||||
LD (HL),B ;SAVE DRIVE
|
||||
LD B,8 ;MAX OF 8 CHARACTERS
|
||||
XOR A ;CLEAR '?' COUNT
|
||||
EX AF,AF ;AND SAVE
|
||||
EX AF,AF' ;AND SAVE
|
||||
CALL SCANF ;GET POSSIBLE NAME
|
||||
CALL SCANT ;AND POSSIBLE TYPE
|
||||
;
|
||||
@@ -1044,7 +1068,7 @@ SCAN4:
|
||||
; SCAN COMPLETE -- DE POINTS TO DELIMITER BYTE AFTER TOKEN
|
||||
;
|
||||
LD (CIBPTR),DE
|
||||
EX AF,AF ;GET NUMBER OF '?' IN FILENAME.TYP
|
||||
EX AF,AF' ;GET NUMBER OF '?' IN FILENAME.TYP
|
||||
RET
|
||||
;
|
||||
; EXTRACT FILE TYPE FROM POSSIBLE FILENAME.TYP
|
||||
@@ -1069,9 +1093,9 @@ SCAN12:
|
||||
SCAN13:
|
||||
CP '?' ;QUESTION MARK?
|
||||
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
|
||||
EX AF,AF ;AND SAVE COUNT
|
||||
EX AF,AF' ;AND SAVE COUNT
|
||||
SCAN14:
|
||||
INC DE ;POINT TO NEXT CHARACTER IN COMMAND LINE
|
||||
LD (HL),A ;STORE CHARACTER IN FCBDN
|
||||
@@ -1097,15 +1121,6 @@ CMDSER:
|
||||
LD A,(HL) ;LOOK FOR DRIVE SPEC
|
||||
DEC A ;ADJUST FOR LOG IN
|
||||
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
|
||||
CMS0:
|
||||
OR (HL) ;DRIVE OR USER NUMBER
|
||||
@@ -1125,11 +1140,10 @@ CMS2:
|
||||
LD A,(DE) ;NEXT CHARACTER IN INPUT COMMAND MUST BE <SP>
|
||||
CP ' '
|
||||
JR NZ,CMS4
|
||||
LD A,(HL) ;FOUND COMMAND,
|
||||
LD E,(HL) ;FOUND COMMAND,
|
||||
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:
|
||||
BIT 7,(HL) ;END OF TABLE ENTRY?
|
||||
INC HL
|
||||
@@ -1139,7 +1153,10 @@ CMS4:
|
||||
INC HL
|
||||
DJNZ CMS1 ;NOT TO END OF TABLE YET
|
||||
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 ****
|
||||
; CPR-Resident Commands
|
||||
@@ -1411,6 +1428,21 @@ REPL2:
|
||||
RET
|
||||
;
|
||||
;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
|
||||
;Function: To ring terminal bell.
|
||||
;Forms:
|
||||
@@ -1420,7 +1452,7 @@ RING:
|
||||
LD A,BELL ; load bell into A
|
||||
JP CONOUT ; and output it
|
||||
;
|
||||
;Section 5F
|
||||
;Section 5G
|
||||
;Command: LIST
|
||||
;Function: To print specified file on list device.
|
||||
;Forms:
|
||||
@@ -1437,7 +1469,7 @@ LIST:
|
||||
;
|
||||
JR TYPE1
|
||||
;
|
||||
;Section 5G
|
||||
;Section 5H
|
||||
;Command: TYPE
|
||||
;Function: To display specified file on console.
|
||||
;Forms:
|
||||
@@ -1560,8 +1592,8 @@ PAGER:
|
||||
PAGE2:
|
||||
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.
|
||||
;Forms:
|
||||
; PAGE
|
||||
@@ -1579,7 +1611,7 @@ EJECT:
|
||||
LD C,05H ; list output
|
||||
JP BDOS ; output character and return via bdos
|
||||
;
|
||||
;Section 5I
|
||||
;Section 5J
|
||||
;Command: SAVE
|
||||
;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.
|
||||
@@ -1628,7 +1660,7 @@ SAVE3:
|
||||
SAVE4:
|
||||
JP PRNLE ;PRINT 'NO SPACE' ERROR
|
||||
;
|
||||
;Section 5J
|
||||
;Section 5K
|
||||
;Command: REN
|
||||
;Function: To change the name of an existing file.
|
||||
;Forms:
|
||||
@@ -1670,7 +1702,7 @@ NAMERR:
|
||||
REN2:
|
||||
JP ABORT
|
||||
;
|
||||
;Section 5K
|
||||
;Section 5L
|
||||
;Command: USER
|
||||
;Function: To change current user number; new user number is in decimal.
|
||||
;Forms:
|
||||
@@ -1680,7 +1712,7 @@ USER:
|
||||
CALL USRNUM ;EXTRACT USER NUMBER FROM COMMAND LINE
|
||||
JP NEWUSR ;SET NEW USER NUMBER
|
||||
;
|
||||
;Section 5L
|
||||
;Section 5M
|
||||
;Command: DFU
|
||||
;Function: To set the Default User Number for the command/file scanner; new
|
||||
; default user number is in decimal.
|
||||
@@ -1692,7 +1724,7 @@ DFU:
|
||||
LD (DFUSR),A ;PUT IT AWAY
|
||||
RET
|
||||
;
|
||||
;Section 5M
|
||||
;Section 5N
|
||||
;Command: SCL
|
||||
;Function: To force ZCPR to parse only a single command per line; reset
|
||||
; to multiple command format at the next ^C.
|
||||
@@ -1709,7 +1741,7 @@ SINGLE:
|
||||
ENDIF
|
||||
;
|
||||
;
|
||||
;Section 5N
|
||||
;Section 5O
|
||||
;Command: PEEK
|
||||
;Function: To display hex values beginning at a specified address.
|
||||
;Forms:
|
||||
@@ -1756,7 +1788,7 @@ PRHEX:
|
||||
JP CONOUT ; go display value
|
||||
;
|
||||
;
|
||||
;Section 5O
|
||||
;Section 5P
|
||||
;Command: POKE
|
||||
;Function: To poke a string of hex values into a set of consecutive addresses.
|
||||
;Forms:
|
||||
@@ -1777,7 +1809,7 @@ POKE1:
|
||||
JR POKE1 ; go for more
|
||||
;
|
||||
;
|
||||
;Section 5P
|
||||
;Section 5Q
|
||||
;Command: JUMP
|
||||
;Function: To call the program (subroutine) at the specified address
|
||||
; without loading from disk.
|
||||
@@ -1788,7 +1820,7 @@ JUMP:
|
||||
CALL HEXNUM ;GET LOAD ADDRESS IN HL
|
||||
JR CLLPRG ;PERFORM CALL
|
||||
;
|
||||
;Section 5Q
|
||||
;Section 5R
|
||||
;Command: COM file processing
|
||||
;Function: To load the specified COM file from disk and execute it.
|
||||
;Forms:
|
||||
@@ -1808,7 +1840,7 @@ COM:
|
||||
CALL MEMLD ;LOAD MEMORY WITH FILE SPECIFIED
|
||||
;(NO RETURN IF ERROR OR TOO BIG)
|
||||
;
|
||||
;Section 5R
|
||||
;Section 5S
|
||||
;Command: GO
|
||||
;Function: To call the program in the TPA without loading from disk.
|
||||
; Same as JUMP 100H, but more convenient, especially when
|
||||
@@ -1869,14 +1901,24 @@ COM3:
|
||||
; RUN LOADED TRANSIENT PROGRAM
|
||||
;
|
||||
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
|
||||
;
|
||||
;Section 5S
|
||||
;Section 5T
|
||||
;Command: GET
|
||||
;Function: To load the specified file from disk to the specified address
|
||||
;Forms:
|
||||
@@ -1897,9 +1939,9 @@ MEMLD:
|
||||
LD (LDADR),HL ;SET LOAD ADDRESS
|
||||
;
|
||||
; 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:
|
||||
CALL ULOGIN ;LOG ANY USER
|
||||
@@ -1907,29 +1949,22 @@ MLA:
|
||||
CALL OPENF ;OPEN COMMAND.COM FILE
|
||||
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
|
||||
CP (HL)
|
||||
SET 7,A ;MAKE INTO VALID USER NUMBER
|
||||
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:
|
||||
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
|
||||
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:
|
||||
CALL PRNNF ;CAN'T FIND FILE
|
||||
JR PRNLE1
|
||||
@@ -1962,6 +1997,7 @@ PRNLE1:
|
||||
IF (($-ENTRY) GT ZCPRSZ)
|
||||
*ZCPR too large!!*
|
||||
ENDIF
|
||||
.DEPHASE
|
||||
;
|
||||
IF TEST
|
||||
LISTST:
|
||||
@@ -1978,4 +2014,4 @@ ENDLD EQU $
|
||||
|
||||
END
|
||||
|
||||
PUSH HL ;SAVE POI
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 1
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.1.1-pre.77"
|
||||
#DEFINE BIOSVER "3.1.1-pre.83"
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 1
|
||||
rup equ 1
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.1.1-pre.77"
|
||||
db "3.1.1-pre.83"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user