mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-07 15:03:13 -06:00
Compare commits
9 Commits
v3.3.0-dev
...
v3.3.0-dev
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d445c4a015 | ||
|
|
e32002545b | ||
|
|
7ac88efac1 | ||
|
|
9f71fe05aa | ||
|
|
ad3c533145 | ||
|
|
e43a939f54 | ||
|
|
e5b7409f44 | ||
|
|
9100f199b1 | ||
|
|
bcc50a31a9 |
@@ -3,6 +3,8 @@ Version 3.3
|
||||
- WBW: Support Front Panel switches
|
||||
- A?C: Preliminary support for Z80-Retro
|
||||
- A?C: Support for SD PIO
|
||||
- A?C: Support for Z80-Retro SD interface
|
||||
- WBW: Support per-drive floppy configuration
|
||||
|
||||
Version 3.2.1
|
||||
-------------
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -3,7 +3,7 @@
|
||||
**RomWBW ReadMe** \
|
||||
Version 3.3 \
|
||||
Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \
|
||||
16 Apr 2023
|
||||
03 May 2023
|
||||
|
||||
# Overview
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
RomWBW ReadMe
|
||||
Wayne Warthen (wwarthen@gmail.com)
|
||||
16 Apr 2023
|
||||
03 May 2023
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -2221,7 +2221,7 @@ rate of the ASCI port(s) will be affected.
|
||||
|
||||
| **Entry Parameters** | **Returned Values** |
|
||||
|----------------------------------------|----------------------------------------|
|
||||
| B: 0xF8 | A: Status |
|
||||
| B: 0xF9 | A: Status |
|
||||
| C: 0xF4 | |
|
||||
| L: LEDs | |
|
||||
|
||||
|
||||
@@ -3923,5 +3923,6 @@ may be discovered by RomWBW in your system.
|
||||
| USB-FIFO | Char | FT232H-based ECB USB FIFO |
|
||||
| VDU | Video | MC6845 Family Video Display Controller |
|
||||
| VGA | Video | HD6445CP4-based Video Display Controller |
|
||||
| VRC | Video | VGARC Video Display Controller s |
|
||||
| YM | Audio | YM2612 Programmable Sound Generator |
|
||||
| Z2U | Char | Zilog Z280 CPU Built-in Serial Ports |
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
;
|
||||
@@ -48,6 +49,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
;
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
CPUOSC .SET 18432000 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z180 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
;
|
||||
@@ -48,9 +49,9 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ180 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
SN76489ENABLE .SET FALSE ; SN: ENABLE SN76489 SOUND DRIVER
|
||||
|
||||
@@ -30,7 +30,8 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 1 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z2 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
;
|
||||
@@ -47,6 +48,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -30,7 +30,8 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
|
||||
;
|
||||
@@ -47,6 +48,7 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -32,7 +32,8 @@ CPUOSC .SET 12000000 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
|
||||
;
|
||||
@@ -53,7 +54,8 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
|
||||
@@ -32,7 +32,8 @@ CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 3 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
MEMMGR .SET MM_Z280 ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180|Z280]
|
||||
;
|
||||
@@ -61,7 +62,8 @@ SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
|
||||
TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
|
||||
@@ -33,13 +33,12 @@ CPUOSC .SET 10000000 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
WDOGMODE .SET WDOG_EZZ80 ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
WDOGIO .SET $6F ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
;
|
||||
@@ -62,6 +61,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -30,7 +30,8 @@ CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
@@ -57,6 +58,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
SKZENABLE .SET TRUE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
SKZDIV .SET DIV_12 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
|
||||
@@ -52,6 +53,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -29,7 +29,8 @@
|
||||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
RP5RTCENABLE .SET FALSE ; RP5C01 RTC BASED CLOCK (RP5RTC.ASM)
|
||||
@@ -43,6 +44,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -33,13 +33,13 @@ CPUOSC .SET 16000000 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
INTMODE .SET 2 ; INTERRUPTS: 0=NONE, 1=MODE 1, 2=MODE 2, 3=MODE 3 (Z280)
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
EIPCENABLE .SET TRUE ; EIPC: ENABLE Z80 EIPC (Z84C15) INITIALIZATION
|
||||
WDOGMODE .SET WDOG_EZZ80 ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
WDOGIO .SET $6F ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
LEDENABLE .SET TRUE ; ENABLES STATUS LED (SINGLE LED)
|
||||
LEDPORT .SET $6E ; STATUS LED PORT ADDRESS
|
||||
;
|
||||
@@ -67,6 +67,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -30,7 +30,8 @@
|
||||
CPUOSC .SET 14745600 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
RAMSIZE .SET 1536 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
MEMMGR .SET MM_ZRC ; MEMORY MANAGER: MM_[SBC|Z2|N8|Z180]
|
||||
@@ -44,7 +45,8 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
AYMODE .SET AYMODE_RCZ80 ; AY: DRIVER MODE: AYMODE_[SCG|N8|RCZ80|RCZ180|MSX|LINC]
|
||||
|
||||
@@ -31,7 +31,8 @@
|
||||
CPUOSC .SET 7372800 ; CPU OSC FREQ IN MHZ
|
||||
CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
RAMSIZE .SET 2048 ; SIZE OF RAM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
ROMSIZE .SET 0 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
@@ -48,6 +49,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET TRUE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET FALSE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -35,7 +35,8 @@ USELZSA2 .SET TRUE ; ENABLE FONT COMPRESSION
|
||||
;
|
||||
KIOENABLE .SET TRUE ; ENABLE ZILOG KIO SUPPORT
|
||||
;
|
||||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
DSKYENABLE .SET TRUE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
;
|
||||
|
||||
@@ -35,9 +35,9 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
|
||||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
|
||||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .SET $0D ; DIAGNOSTIC PORT ADDRESS
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPLED_IO .SET $0D ; FP: PORT ADDRESS FOR FP LEDS
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
@@ -51,6 +51,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -35,8 +35,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
|
||||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
|
||||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
|
||||
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
@@ -50,6 +52,7 @@ TMSENABLE .SET FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSTIMENABLE .SET FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
TMSMODE .SET TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
MKYENABLE .SET FALSE ; MSX 5255 PPI KEYBOARD COMPATIBLE DRIVER (REQUIRES TMS VDA DRIVER)
|
||||
VRCENABLE .SET FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
VDAEMU_SERKBD .SET 0 ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
;
|
||||
AY38910ENABLE .SET TRUE ; AY: AY-3-8910 / YM2149 SOUND DRIVER
|
||||
|
||||
@@ -34,8 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
|
||||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
|
||||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
|
||||
DIAGENABLE .SET FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
;
|
||||
DSRTCENABLE .SET FALSE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
|
||||
@@ -34,11 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
|
||||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
|
||||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .SET $A0 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
FPLED_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
|
||||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .SET $A0 ; DIAGNOSTIC PORT ADDRESS
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
|
||||
@@ -34,11 +34,10 @@ Z180_CLKDIV .SET 1 ; Z180: CHK DIV: 0=OSC/2, 1=OSC, 2=OSC*2
|
||||
Z180_MEMWAIT .SET 0 ; Z180: MEMORY WAIT STATES (0-3)
|
||||
Z180_IOWAIT .SET 1 ; Z180: I/O WAIT STATES TO ADD ABOVE 1 W/S BUILT-IN (0-3)
|
||||
;
|
||||
FPENABLE .SET TRUE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .SET $A0 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
FPLED_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPSW_ENABLE .SET TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
LEDENABLE .SET TRUE ; ENABLE STATUS LED (SINGLE LED)
|
||||
DIAGENABLE .SET TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .SET $A0 ; DIAGNOSTIC PORT ADDRESS
|
||||
;
|
||||
DSRTCENABLE .SET TRUE ; DSRTC: ENABLE DS-1302 CLOCK DRIVER (DSRTC.ASM)
|
||||
INTRTCENABLE .SET TRUE ; ENABLE PERIODIC INTERRUPT CLOCK DRIVER (INTRTC.ASM)
|
||||
|
||||
@@ -32,4 +32,4 @@ CRTACT .SET FALSE ; ACTIVATE CRT (VDU,CVDU,PROPIO,ETC) AT STARTUP
|
||||
;
|
||||
UARTENABLE .SET FALSE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
|
||||
;
|
||||
SDENABLE .SET FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDENABLE .SET TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
|
||||
@@ -634,9 +634,9 @@ ANSI_BEL:
|
||||
ANSI_BS:
|
||||
LD A,(ANSI_COL) ; GET CURRENT COLUMN
|
||||
DEC A ; BACK IT UP BY ONE
|
||||
RET C ; IF CARRY, MARGIN EXCEEDED, ABORT
|
||||
RET M ; IF CARRY, MARGIN EXCEEDED, ABORT
|
||||
LD (ANSI_COL),A ; SAVE NEW COLUMN
|
||||
JP ANSI_XY ; UDPATE CUSROR AND RETURN
|
||||
JP ANSI_XY ; UDPATE CURSOR AND RETURN
|
||||
;
|
||||
ANSI_CR:
|
||||
XOR A ; ZERO ACCUM
|
||||
|
||||
@@ -66,11 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -174,6 +175,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -185,9 +187,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_DYNO ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -227,7 +229,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -95,11 +95,12 @@ SKZDIV .EQU DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
WDOGIO .EQU $6F ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -228,6 +229,7 @@ TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|M
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -239,9 +241,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_NONE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -282,7 +284,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_NONE ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -60,11 +60,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU TRUE ; ENABLES STATUS LED
|
||||
@@ -156,6 +157,7 @@ TMSMODE .EQU TMSMODE_MBC ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -168,9 +170,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_MBC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -211,7 +213,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -66,11 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -167,6 +168,7 @@ TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -178,9 +180,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_DIDE ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -221,7 +223,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_MK4 ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -68,11 +68,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -169,6 +170,7 @@ TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSX
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -180,9 +182,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_N8 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -223,7 +225,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU N8_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -71,6 +71,13 @@ FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
;
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -174,6 +181,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -185,9 +193,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -227,7 +235,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -20,7 +20,7 @@ CPUFAM .EQU CPU_Z280 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_WBW ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
BATCOND .EQU FALSE ; ENABLE LOW BATTERY WARNING MESSAGE
|
||||
HBIOS_MUTEX .EQU FALSE ; ENABLE REENTRANT CALLS TO HBIOS (ADDS OVERHEAD)
|
||||
USELZSA2 .EQU TRUE ; ENABLE FONT COMPRESSION
|
||||
USELZSA2 .EQU FALSE ; ENABLE FONT COMPRESSION
|
||||
TICKFREQ .EQU 50 ; DESIRED PERIODIC TIMER INTERRUPT FREQUENCY (HZ)
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
@@ -66,11 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -184,6 +185,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -195,9 +197,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -237,7 +239,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -65,11 +65,12 @@ SKZDIV .EQU DIV_1 ; UART CLK (CLK2) DIVIDER FOR Z80-512K
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
WDOGIO .EQU $6E ; WATCHDOG REGISTER ADR
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -86,8 +87,8 @@ VDAEMU_SERKBD .EQU $FF ; VDA EMULATION: SERIAL KBD UNIT #, OR $FF FOR HW KBD
|
||||
ANSITRACE .EQU 1 ; ANSI DRIVER TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
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]
|
||||
PPKKBLOUT .EQU KBD_US ; PPK 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]
|
||||
;
|
||||
@@ -178,6 +179,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -189,9 +191,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -231,7 +233,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_MT ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 2 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -66,11 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -158,6 +159,7 @@ TMSMODE .EQU TMSMODE_N8 ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSX
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -169,9 +171,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_N8 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -212,7 +214,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_CSIO ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU RPH_PPI0 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -60,11 +60,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -156,6 +157,7 @@ TMSMODE .EQU TMSMODE_SCG ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MS
|
||||
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]
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -163,14 +165,13 @@ MDRAM .EQU TRUE ; MD: ENABLE RAM DISK
|
||||
MDTRACE .EQU 1 ; MD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
MDFFENABLE .EQU FALSE ; MD: ENABLE FLASH FILE SYSTEM
|
||||
;
|
||||
;
|
||||
FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_DIO3 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
RFCNT .EQU 1 ; RF: NUMBER OF RAM FLOPPY UNITS (1-4)
|
||||
@@ -211,7 +212,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_JUHA ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -66,11 +66,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $0D ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU TRUE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $0D ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU TRUE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $0D ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED (SINGLE LED)
|
||||
@@ -174,6 +175,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_MSX ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -185,9 +187,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_RCWDC ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 2 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -227,7 +229,7 @@ PPIDE2A8BIT .EQU FALSE ; PPIDE 2A (MASTER): 8 BIT XFER
|
||||
PPIDE2B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_SC ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -19,7 +19,9 @@
|
||||
CPUFAM .EQU CPU_Z80 ; CPU FAMILY: CPU_[Z80|Z180|Z280]
|
||||
BIOS .EQU BIOS_UNA ; HARDWARE BIOS: BIOS_[WBW|UNA]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
BOOT_TIMEOUT .EQU -1 ; AUTO BOOT TIMEOUT IN SECONDS, -1 TO DISABLE, 0 FOR IMMEDIATE
|
||||
;
|
||||
@@ -34,5 +36,3 @@ ROMSIZE .EQU 512 ; SIZE OF ROM IN KB (MUST MATCH YOUR HARDWARE!!!)
|
||||
RTCIO .EQU $70 ; RTC LATCH REGISTER ADR
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; ENABLES DSKY (DO NOT COMBINE WITH PPIDE)
|
||||
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
|
||||
@@ -63,11 +63,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -158,6 +159,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -169,9 +171,9 @@ FDENABLE .EQU FALSE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_ZETA2 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -184,9 +186,8 @@ PPIDE0BASE .EQU $60 ; PPIDE 0: PPI REGISTERS BASE ADR
|
||||
PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDENABLE .EQU TRUE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_Z80R ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
SDCSIOFAST .EQU FALSE ; SD: ENABLE TABLE-DRIVEN BIT INVERTER IN CSIO MODE
|
||||
|
||||
@@ -52,11 +52,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -128,6 +129,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -139,9 +141,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_ZETA ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -155,7 +157,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -63,11 +63,12 @@ SKZENABLE .EQU FALSE ; ENABLE SERGEY'S Z80-512K FEATURES
|
||||
;
|
||||
WDOGMODE .EQU WDOG_NONE ; WATCHDOG MODE: WDOG_[NONE|EZZ80|SKZ]
|
||||
;
|
||||
FPENABLE .EQU FALSE ; ENABLES FRONT PANEL SWITCHES
|
||||
FPBASE .EQU $00 ; FRONT PANEL I/O PORT BASE ADDRESS
|
||||
DIAGENABLE .EQU FALSE ; ENABLES OUTPUT TO 8 BIT LED DIAGNOSTIC PORT
|
||||
DIAGPORT .EQU $00 ; DIAGNOSTIC PORT ADDRESS
|
||||
DIAGDISKIO .EQU TRUE ; ENABLES DISK I/O ACTIVITY ON DIAGNOSTIC LEDS
|
||||
FPLED_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL LEDS
|
||||
FPLED_IO .EQU $00 ; FP: PORT ADDRESS FOR FP LEDS
|
||||
FPLED_DSKACT .EQU TRUE ; FP: ENABLES DISK I/O ACTIVITY ON FP LEDS
|
||||
FPSW_ENABLE .EQU FALSE ; FP: ENABLES FRONT PANEL SWITCHES
|
||||
FPSW_IO .EQU $00 ; FP: PORT ADDRESS FOR FP SWITCHES
|
||||
;
|
||||
DIAGLVL .EQU DL_CRITICAL ; ERROR LEVEL REPORTING
|
||||
;
|
||||
LEDENABLE .EQU FALSE ; ENABLES STATUS LED
|
||||
@@ -139,6 +140,7 @@ TMSENABLE .EQU FALSE ; TMS: ENABLE TMS9918 VIDEO/KBD DRIVER (TMS.ASM)
|
||||
TMSMODE .EQU TMSMODE_NONE ; TMS: DRIVER MODE: TMSMODE_[SCG|N8|MBC|MSX|MSX9958|MSXKBD|COLECO]
|
||||
TMSTIMENABLE .EQU FALSE ; TMS: ENABLE TIMER INTERRUPTS (REQUIRES IM1)
|
||||
VGAENABLE .EQU FALSE ; VGA: ENABLE VGA VIDEO/KBD DRIVER (VGA.ASM)
|
||||
VRCENABLE .EQU FALSE ; VRC: ENABLE VGARC VIDEO/KBD DRIVER (VRC.ASM)
|
||||
;
|
||||
MDENABLE .EQU TRUE ; MD: ENABLE MEMORY (ROM/RAM) DISK DRIVER (MD.ASM)
|
||||
MDROM .EQU TRUE ; MD: ENABLE ROM DISK
|
||||
@@ -150,9 +152,9 @@ FDENABLE .EQU TRUE ; FD: ENABLE FLOPPY DISK DRIVER (FD.ASM)
|
||||
FDMODE .EQU FDMODE_ZETA2 ; FD: DRIVER MODE: FDMODE_[DIO|ZETA|ZETA2|DIDE|N8|DIO3|RCSMC|RCWDC|DYNO|EPFDC|MBC]
|
||||
FDCNT .EQU 1 ; FD: NUMBER OF FLOPPY DRIVES ON THE INTERFACE (1-2)
|
||||
FDTRACE .EQU 1 ; FD: TRACE LEVEL (0=NO,1=FATAL,2=ERRORS,3=ALL)
|
||||
FDMEDIA .EQU FDM144 ; FD: DEFAULT MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMEDIAALT .EQU FDM720 ; FD: ALTERNATE MEDIA FORMAT FDM[720|144|360|120|111]
|
||||
FDMAUTO .EQU TRUE ; FD: AUTO SELECT DEFAULT/ALTERNATE MEDIA FORMATS
|
||||
FD0TYPE .EQU FDT_3HD ; FD 0: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
FD1TYPE .EQU FDT_3HD ; FD 1: DRIVE TYPE: FDT_[3DD|3HD|5DD|5HD|8]
|
||||
;
|
||||
RFENABLE .EQU FALSE ; RF: ENABLE RAM FLOPPY DRIVER
|
||||
;
|
||||
@@ -166,7 +168,7 @@ PPIDE0A8BIT .EQU FALSE ; PPIDE 0A (MASTER): 8 BIT XFER
|
||||
PPIDE0B8BIT .EQU FALSE ; PPIDE 0B (SLAVE): 8 BIT XFER
|
||||
;
|
||||
SDENABLE .EQU FALSE ; SD: ENABLE SD CARD DISK DRIVER (SD.ASM)
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|USR]
|
||||
SDMODE .EQU SDMODE_PPI ; SD: DRIVER MODE: SDMODE_[JUHA|N8|CSIO|PPI|UART|DSD|MK4|SC|MT|PIO|Z80R|USR]
|
||||
SDPPIBASE .EQU $60 ; SD: BASE I/O ADDRESS OF PPI FOR PPI MODDE
|
||||
SDCNT .EQU 1 ; SD: NUMBER OF SD CARD DEVICES (1-2), FOR DSD/SC/MT ONLY
|
||||
SDTRACE .EQU 1 ; SD: TRACE LEVEL (0=NO,1=ERRORS,2=ALL)
|
||||
|
||||
@@ -902,5 +902,6 @@ CVDU_INIT8563:
|
||||
;==================================================================================================
|
||||
;
|
||||
CVDU_IDAT:
|
||||
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
|
||||
.DB CVDU_KBDST
|
||||
.DB CVDU_KBDDATA
|
||||
|
||||
@@ -109,7 +109,7 @@ FRC_TOSEEKWT .EQU -15H ; EB
|
||||
; FD DEVICE CONFIGURATION
|
||||
;
|
||||
FD_DEVCNT .EQU FDCNT ; 2 DEVICES SUPPORTED
|
||||
FD_CFGSIZ .EQU 8 ; SIZE OF CFG TBL ENTRIES
|
||||
FD_CFGSIZ .EQU 9 ; SIZE OF CFG TBL ENTRIES
|
||||
;
|
||||
; PER DEVICE DATA OFFSETS
|
||||
; ; OFFSET OF...
|
||||
@@ -121,25 +121,28 @@ FD_HST .EQU 4 ; HOSTS SEEK POSITION
|
||||
FD_HSTTRK .EQU FD_HST + 0 ; HOST TRACK (WORD)
|
||||
FD_HSTSEC .EQU FD_HST + 2 ; HOST SECTOR (BYTE)
|
||||
FD_HSTHD .EQU FD_HST + 3 ; HOST HEAD (BYTE)
|
||||
FD_TYPE .EQU 8 ; FLOPPY DSIK TYPE (BYTE)
|
||||
;
|
||||
FD_CFGTBL:
|
||||
; DEVICE 0, PRIMARY MASTER
|
||||
.DB 0 ; DEVICE NUMBER
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB FDMEDIA ; MEDIA TYPE
|
||||
.DB $FF ; CURRENT MEDIA TYPE (INIT TO NONE)
|
||||
.DB $FF ; CURRENT TRACK
|
||||
.DW 0 ; HOST TRACK
|
||||
.DB 0 ; HOST SECTOR
|
||||
.DB 0 ; HOST HEAD
|
||||
.DB FD0TYPE ; DRIVE TYPE
|
||||
#IF (FD_DEVCNT >= 2)
|
||||
; DEVICE 1, PRIMARY SLAVE
|
||||
.DB 1 ; DRIVER DEVICE NUMBER
|
||||
.DB 0 ; DEVICE STATUS
|
||||
.DB FDMEDIA ; MEDIA TYPE
|
||||
.DB $FF ; CURRENT MEDIA TYPE (INIT TO NONE)
|
||||
.DB $FF ; CURRENT TRACK
|
||||
.DW 0 ; HOST TRACK
|
||||
.DB 0 ; HOST SECTOR
|
||||
.DB 0 ; HOST HEAD
|
||||
.DB FD1TYPE ; DRIVE TYPE
|
||||
#ENDIF
|
||||
;
|
||||
#IF ($ - FD_CFGTBL) != (FD_DEVCNT * FD_CFGSIZ)
|
||||
@@ -199,6 +202,42 @@ FSST_ENTSIZ .EQU $ - FSST
|
||||
FSST_COUNT .EQU (($ - FSST) / FSST_ENTSIZ) ; # ENTRIES IN TABLE
|
||||
#ENDIF
|
||||
;
|
||||
; FDC DRIVE TYPE MEDIA OPTIONS
|
||||
;
|
||||
; THIS TABLE LISTS THE TYPES OF MEDIA THAT SHOULD BE ATTEMPTED
|
||||
; FOR EACH POSSIBLE DRIVE TYPE. THE ENTRIES MATCH THE ORDER OF THE
|
||||
; FDT_ VALUES DEFINED IN STD.ASM
|
||||
;
|
||||
FD_MEDIAMAP:
|
||||
.DW FDMM_NONE ; NO DRIVE TYPE
|
||||
.DW FDMM_3DD
|
||||
.DW FDMM_3HD
|
||||
.DW FDMM_5DD
|
||||
.DW FDMM_5HD
|
||||
.DW FDMM_8
|
||||
;
|
||||
FDMM_NONE .DB $FF
|
||||
FDMM_3DD .DB FDM720, $FF
|
||||
FDMM_3HD .DB FDM144, FDM720, $FF
|
||||
FDMM_5DD .DB FDM360, $FF
|
||||
FDMM_5HD .DB FDM120, FDM360, $FF
|
||||
FDMM_8 .DB FDM111, $FF
|
||||
;
|
||||
; FDC DRIVE TYPE ATTRIBUTES
|
||||
;
|
||||
; LOOKUP TABLE TO MAP THE DEVICE ATTRIBUTES BYTE RETURNED
|
||||
; BY THE FD_DEVICE FUNCTION BASED ON THE DRIVE TYPE.
|
||||
; THE ENTRIES MATCH THE ORDER OF THE
|
||||
; FDT_ VALUES DEFINED IN STD.ASM
|
||||
;
|
||||
FD_DEVATTR:
|
||||
.DB %11100000 ; DRIVE TYPE NONE
|
||||
.DB %11010100 ; DRIVE TYPE 3.5 DD
|
||||
.DB %11011000 ; DRIVE TYPE 3.5 HD
|
||||
.DB %10110100 ; DRIVE TYPE 5.25 DD
|
||||
.DB %10111000 ; DRIVE TYPE 5.25 HD
|
||||
.DB %10010100 ; DRIVE TYPE 8
|
||||
;
|
||||
; FDC COMMANDS
|
||||
;
|
||||
CFD_READ .EQU 00000110B ; CMD,HDS/DS,C,H,R,N,EOT,GPL,DTL --> ST0,ST1,ST2,C,H,R,N
|
||||
@@ -498,21 +537,11 @@ FD_DEFMED:
|
||||
FD_DEVICE:
|
||||
LD D,DIODEV_FD ; D := DEVICE TYPE
|
||||
LD E,(IY+FD_DEV) ; E := PHYSICAL DEVICE NUMBER
|
||||
#IF (FDMEDIA == FDM720)
|
||||
LD C,%11010100 ; 3.5" DS/DD
|
||||
#ENDIF
|
||||
#IF (FDMEDIA == FDM144)
|
||||
LD C,%11011000 ; 3.5" DS/HD
|
||||
#ENDIF
|
||||
#IF (FDMEDIA == FDM360)
|
||||
LD C,%10110100 ; 5.25" DS/DD
|
||||
#ENDIF
|
||||
#IF (FDMEDIA == FDM120)
|
||||
LD C,%10111000 ; 5.25" DS/HD
|
||||
#ENDIF
|
||||
#IF (FDMEDIA == FDM111)
|
||||
LD C,%10010100 ; 8" DS/DD
|
||||
#ENDIF
|
||||
|
||||
LD A,(IY+FD_TYPE) ; DRIVE TYPE
|
||||
LD HL,FD_DEVATTR ; DEVICE ATTR TABLE
|
||||
CALL ADDHLA ; POINT TO ENTRY
|
||||
LD C,(HL) ; GET IT
|
||||
LD H,FDMODE ; H := MODE
|
||||
LD L,FDC_MSR ; L := BASE I/O ADDRESS
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -527,9 +556,7 @@ FD_MEDIA:
|
||||
|
||||
#IF (FDMAUTO)
|
||||
; SETUP TO READ TRK 0, HD 0, SEC 0
|
||||
;LD A,C ; C STILL HAS REQUESTED DRIVE
|
||||
LD A,(IY+FD_DEV) ; GET DRIVE UNIT
|
||||
;AND 0FH
|
||||
LD (FCD_DS),A
|
||||
LD A,0
|
||||
LD (FCD_C),A
|
||||
@@ -538,53 +565,77 @@ FD_MEDIA:
|
||||
LD (FCD_R),A
|
||||
LD A,DOP_READID
|
||||
LD (FCD_DOP),A
|
||||
#ENDIF
|
||||
|
||||
#IF (FDTRACE < 3)
|
||||
|
||||
LD A,(IY+FD_TYPE) ; GET DRIVE TYPE VALUE
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
LD HL,FD_MEDIAMAP ; POINT TO MEDIA MAP TABLE
|
||||
ADD A,A ; TABLE IS WORD SIZED
|
||||
CALL ADDHLA ; LOOKUP ENTRY
|
||||
LD A,(HL) ; DEREFERENCE
|
||||
INC HL
|
||||
LD H,(HL)
|
||||
LD L,A
|
||||
|
||||
#IF (FDMAUTO)
|
||||
#IF (FDTRACE < 3)
|
||||
; SUPPRESS TRACING FOR MEDIA TESTS
|
||||
LD A,0
|
||||
LD (FCD_TRACE),A
|
||||
#ENDIF
|
||||
|
||||
LD B,5
|
||||
#ENDIF
|
||||
|
||||
LD B,5 ; 5 ATTEMPTS
|
||||
FD_MEDIARETRY:
|
||||
; TRY PRIMARY MEDIA CHOICE FIRST
|
||||
LD A,FDMEDIA
|
||||
CALL FD_TESTMEDIA
|
||||
JR Z,FD_MEDIA3 ; IF SUCCESS, WE ARE DONE
|
||||
|
||||
; TRY ALTERNATE MEDIA CHOICE
|
||||
LD A,FDMEDIAALT
|
||||
CALL FD_TESTMEDIA
|
||||
JR Z,FD_MEDIA3 ; IF SUCCESS, WE ARE DONE
|
||||
|
||||
DJNZ FD_MEDIARETRY
|
||||
PUSH HL ; SAVE MEDIA MAP PTR
|
||||
CALL FD_MEDIALOOP ; TRY IT
|
||||
POP HL ; RECOVER MEDIA MAP PTR
|
||||
JR Z,FD_MEDIA3 ; CONTINUE ON SUCCESS
|
||||
DJNZ FD_MEDIARETRY ; LOOP TILL DONE
|
||||
|
||||
FD_MEDIARETRY1:
|
||||
; NO JOY, RETURN WITH E=0 (NO MEDIA)
|
||||
;LD HL,(FDDS_MEDIAADR)
|
||||
;LD (HL),0 ; SET TO NO MEDIA
|
||||
LD (IY+FD_MEDTYP),0 ; SET DRIVE = NO MEDIA
|
||||
LD E,0
|
||||
LD (IY+FD_MEDTYP),$FF ; SET MEDIA TYPE TO UNDEFINED
|
||||
LD E,0 ; NO MEDIA FLAG
|
||||
LD A,ERR_NOMEDIA ; SIGNAL ERROR
|
||||
OR A ; SET FLAGS
|
||||
RET
|
||||
|
||||
FD_MEDIALOOP:
|
||||
LD A,(HL) ; LOAD NEXT MEDIA TYPE TO TRY
|
||||
CP $FF ; END OF MEDIA TYPES TO TRY?
|
||||
JR Z,FD_MEDIALOOP1 ; NO MORE TO TRY, LOOP EXIT
|
||||
CALL FD_TESTMEDIA ; TRY IT
|
||||
RET Z ; RETURN ON SUCCESS
|
||||
INC HL ; NEXT MEDIA TYPE TO TRY
|
||||
JR FD_MEDIALOOP ; LOOP
|
||||
FD_MEDIALOOP1:
|
||||
OR $FF ; SIGNAL FAILURE
|
||||
RET ; RETURN
|
||||
|
||||
FD_TESTMEDIA:
|
||||
;LD HL,(FDDS_MEDIAADR)
|
||||
;LD (HL),A
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
LD (IY+FD_MEDTYP),A
|
||||
PUSH HL
|
||||
PUSH BC
|
||||
CALL FD_START
|
||||
POP BC
|
||||
POP HL
|
||||
;CALL PRTHEXBYTE ; *DEBUG*
|
||||
RET
|
||||
|
||||
FD_MEDIA3:
|
||||
|
||||
#IF (FDTRACE < 3)
|
||||
#IF (FDTRACE < 3)
|
||||
; RESTORE TRACING FOR MEDIA TESTS
|
||||
LD A,FDTRACE
|
||||
LD (FCD_TRACE),A
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#ELSE
|
||||
|
||||
LD A,(HL)
|
||||
LD (IY+FD_MEDTYP),A
|
||||
|
||||
#ENDIF
|
||||
|
||||
FD_MEDIA4:
|
||||
@@ -778,7 +829,7 @@ FD_DETECT1:
|
||||
;
|
||||
FD_INITUNIT:
|
||||
LD (IY+FD_STAT),0 ; CLEAR STATUS
|
||||
LD (IY+FD_MEDTYP),FDMEDIA ; SET DEFAULT MEDIA TYPE
|
||||
LD (IY+FD_MEDTYP),$FF ; SET UNKNOWN MEDIA TYPE
|
||||
LD (IY+FD_CURTRK),$FE ; SPECIAL VALUE FOR CURTRK
|
||||
RET
|
||||
;
|
||||
@@ -1285,7 +1336,8 @@ FC_SETUPIO:
|
||||
LD (DE),A
|
||||
INC DE
|
||||
|
||||
LD A,(FCD_EOT)
|
||||
;LD A,(FCD_EOT)
|
||||
LD A,(FCD_R) ; READ ONLY ONE SECTOR
|
||||
LD (DE),A
|
||||
INC DE
|
||||
|
||||
@@ -1397,15 +1449,17 @@ FC_RESETFDC:
|
||||
; PULSE TERMCT TO TERMINATE ANY ACTIVE EXECUTION PHASE
|
||||
;
|
||||
FC_PULSETC:
|
||||
#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC))
|
||||
IN A,(FDC_TC)
|
||||
#ELSE
|
||||
LD A,(FST_DOR)
|
||||
SET 0,A
|
||||
OUT (FDC_DOR),A
|
||||
RES 0,A
|
||||
OUT (FDC_DOR),A
|
||||
#ENDIF
|
||||
; PULSING TC NO LONGER REQUIRED BECAUSE WE ONLY READ A SINGLE SECTOR
|
||||
;
|
||||
;#IF ((FDMODE == FDMODE_DIDE) | (FDMODE == FDMODE_N8) | (FDMODE == FDMODE_ZETA2) | (FDMODE == FDMODE_RCWDC) | (FDMODE == FDMODE_DYNO) | (FDMODE == FDMODE_EPFDC) | (FDMODE == FDMODE_MBC))
|
||||
; IN A,(FDC_TC)
|
||||
;#ELSE
|
||||
; LD A,(FST_DOR)
|
||||
; SET 0,A
|
||||
; OUT (FDC_DOR),A
|
||||
; RES 0,A
|
||||
; OUT (FDC_DOR),A
|
||||
;#ENDIF
|
||||
RET
|
||||
;
|
||||
; SET FST_DOR FOR MOTOR CONTROL ON
|
||||
@@ -1694,7 +1748,7 @@ FXR_TO: ; TIMEOUT
|
||||
;
|
||||
FXR_ABORT: ; EXECUTION ABORTED
|
||||
HB_EI ; INTERRUPTS OK AGAIN
|
||||
JR FOP_RES ; GET RSEULTS, NO NEED TO PULSE TC
|
||||
JR FOP_RES ; GET RESULTS, NO NEED TO PULSE TC
|
||||
;
|
||||
FXR_END: ; EXECUTION COMPLETED NORMALLY
|
||||
CALL FC_PULSETC ; PULSE TC TO END EXECUTION
|
||||
@@ -1828,7 +1882,9 @@ FOP_EVALST1:
|
||||
|
||||
LD C,FRC_ENDCYL
|
||||
BIT 7,A
|
||||
JR NZ,FOP_SETFST
|
||||
; THI IS NORMAL BECAUSE WE NOW READ ONLY A SINGLE SECTOR
|
||||
;JR NZ,FOP_SETFST
|
||||
JR NZ,FOP_EXIT
|
||||
|
||||
LD C,FRC_DATAERR
|
||||
BIT 5,A
|
||||
|
||||
@@ -325,5 +325,6 @@ GDC_POS .DW 0 ; CURRENT DISPLAY POSITION
|
||||
;==================================================================================================
|
||||
;
|
||||
GDC_IDAT:
|
||||
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
|
||||
.DB GDC_KBDST
|
||||
.DB GDC_KBDDATA
|
||||
|
||||
@@ -105,10 +105,11 @@ MODCNT .SET MODCNT + 1
|
||||
;
|
||||
;
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
#IF (FPLED_ENABLE)
|
||||
#DEFINE DIAG(N) PUSH AF
|
||||
#DEFCONT \ LD A,N
|
||||
#DEFCONT \ OUT (DIAGPORT),A
|
||||
; #DEFCONT \ OUT (DIAGPORT),A
|
||||
#DEFCONT \ CALL FP_SETLEDS
|
||||
#DEFCONT \ POP AF
|
||||
#ELSE
|
||||
#DEFINE DIAG(N) \;
|
||||
@@ -1109,16 +1110,9 @@ HB_START:
|
||||
;
|
||||
#IFDEF APPBOOT
|
||||
#IF (MEMMGR == MM_Z280)
|
||||
LD A,DIAG_01
|
||||
OUT (DIAGPORT),A
|
||||
LD DE,Z280_BOOTERR
|
||||
LD C,9
|
||||
LD A,DIAG_02
|
||||
OUT (DIAGPORT),A
|
||||
CALL $0005
|
||||
LD A,DIAG_04
|
||||
OUT (DIAGPORT),A
|
||||
RET
|
||||
LD DE,Z280_BOOTERR ; POINT TO ERROR MESSAGE
|
||||
LD C,9 ; BDOS FUNC 9: WRITE STR
|
||||
JP $0005 ; DO IT AND RETURN TO OS
|
||||
;
|
||||
Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 native memory management!!!\r\n\r\n$"
|
||||
#ENDIF
|
||||
@@ -1144,9 +1138,10 @@ Z280_BOOTERR .TEXT "\r\n\r\n*** Application mode boot not supported under Z280 n
|
||||
OUT0 (RPH_ACR),A ; ... REGISTER IS INITIALIZED
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
#IF (FPLED_ENABLE)
|
||||
; NO STACK YET, SO CAN'T USE DIAG() MACRO
|
||||
LD A,DIAG_01
|
||||
OUT (DIAGPORT),A
|
||||
OUT (FPLED_IO),A
|
||||
#ENDIF
|
||||
#IF (LEDENABLE)
|
||||
#IF (LEDMODE == LEDMODE_STD)
|
||||
@@ -1255,8 +1250,6 @@ Z280_INITZ:
|
||||
LD A,Z180_BASE
|
||||
OUT0 ($3F),A ; AT RESET, ICR IS AT $3F
|
||||
|
||||
DIAG(DIAG_02)
|
||||
|
||||
; DISABLE REFRESH
|
||||
XOR A
|
||||
OUT0 (Z180_RCR),A
|
||||
@@ -1349,10 +1342,12 @@ Z280_INITZ:
|
||||
; NOT WANT TO EFFECT RAM UNTIL AFTER THE BACKUP BATTERY STATUS CHECK
|
||||
; IS PERFORMED NEXT.
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
#IF (FPLED_ENABLE)
|
||||
; NO STACK YET, SO CAN'T USE DIAG() MACRO
|
||||
LD A,DIAG_02
|
||||
OUT (DIAGPORT),A
|
||||
OUT (FPLED_IO),A
|
||||
#ENDIF
|
||||
|
||||
;
|
||||
; WE USE THE TWO BYTES IMMEDIATELY BELOW THE PROXY TO STORE A COUPLE
|
||||
; VALUES TEMPORARILY BECAUSE WE MAY BE OPERATING IN ROM AT THIS POINT.
|
||||
@@ -2232,29 +2227,6 @@ NOT_REC_M0:
|
||||
CALL DSKY_SHOW
|
||||
#ENDIF
|
||||
;
|
||||
#IF FPENABLE
|
||||
;
|
||||
; IF FRONT PANEL IS ENABLED IN CONFIG, WE NEED TO CHECK TO SEE IF THE
|
||||
; HARDWARE REALLY EXISTS. THE ONLY WAY TO DO THAT IS TO SEE IF THE
|
||||
; FRONT PANEL PORT SEEMS TO BE VALID (NOT FLOATING). HERE WE JUST
|
||||
; DO THE CHECKING AND RECORD WHETHER THE FP SWITCHES ARE USEABLE.
|
||||
;
|
||||
; THE SWITCH HARDWARE MAY OR MAY NOT BE INSTALLED. SO, HERE WE
|
||||
; ATTEMPT TO CONFIRM WE HAVE A VALID PORT. CREDIT TO STEPHEN
|
||||
; COUSINS FOR THIS APPROACH.
|
||||
LD C,FPBASE ; ADR OF SWITCH PORT
|
||||
IN C,(C) ; READ IT USING IN (C)
|
||||
IN A,(FPBASE) ; READ IT USING IN (PORT)
|
||||
CP C ; PORT FLOATING ON MISMATCH
|
||||
JR NZ,HB_SWZ ; ABORT IF FLOATING
|
||||
CP $FF ; $FF ALSO MEANS PORT INACTIVE
|
||||
JR Z,HB_SWZ ; ABORT IF SO
|
||||
OR $FF ; SIGNAL FP EXISTS
|
||||
LD (HB_HASFP),A ; AND SAVE IT
|
||||
HB_SWZ:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF FALSE
|
||||
;
|
||||
; TEST DEBUG ***************************************************************************************
|
||||
@@ -2792,7 +2764,12 @@ HB_WDZ:
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF FPENABLE
|
||||
; THIS IS A GOOD PLACE TO DETERMINE IF FRONT PANEL HARDWARE REALLY
|
||||
; EXISTS.
|
||||
;
|
||||
CALL FP_DETECT
|
||||
;
|
||||
#IF (FPSW_ENABLE)
|
||||
;
|
||||
; IF WE HAVE FRONT PANEL SWITCHES, THIS IS THE RIGHT PLACE TO HANDLE
|
||||
; ANY CONSOLE CHANGE REQUESTS. THE FRONT PANEL HAS TWO SWITCHES
|
||||
@@ -2802,12 +2779,12 @@ HB_WDZ:
|
||||
; DEVICE.
|
||||
;
|
||||
PRTS("\r\nFP: IO=0x$")
|
||||
LD A,FPBASE
|
||||
LD A,FPSW_IO
|
||||
CALL PRTHEXBYTE
|
||||
;
|
||||
; THE EXISTENCE OF THE FP WAS TESTED EARLIER. IF IT DOESN'T
|
||||
; EXIST, BAIL OUT.
|
||||
LD A,(HB_HASFP) ; GET FP EXISTENCE FLAG
|
||||
LD A,(FPSW_ACTIVE) ; GET FP EXISTENCE FLAG
|
||||
OR A ; SET FLAGS
|
||||
JR NZ,HB_FP1 ; IF WE HAVE ONE, CONTINUE
|
||||
;
|
||||
@@ -2823,7 +2800,7 @@ HB_FP1:
|
||||
; OF A CRT DEVICE -- IT WILL JUST FAILBACK TO FIRST SERIAL
|
||||
; PORT.
|
||||
PRTS(" SWITCHES=0x$") ; TAG
|
||||
IN A,(FPBASE) ; GET SWITCH SETTINGS
|
||||
CALL FP_GETSWITCHES ; GET SWITCH SETTINGS
|
||||
CALL PRTHEXBYTE ; DISPLAY VALUE
|
||||
LD B,A ; SAVE IN REG B
|
||||
AND SW_CRT ; TEST CRT BIT
|
||||
@@ -3232,6 +3209,9 @@ HB_INITTBL:
|
||||
#IF (TMSENABLE)
|
||||
.DW TMS_INIT
|
||||
#ENDIF
|
||||
#IF (VRCENABLE)
|
||||
.DW VRC_INIT
|
||||
#ENDIF
|
||||
;#IF (DSKYENABLE)
|
||||
; .DW DSKY_INIT
|
||||
;#ENDIF
|
||||
@@ -3488,7 +3468,7 @@ HB_DSKREAD:
|
||||
;
|
||||
LD (HB_DSKCMD),BC ; SAVE HBIOS FUNC & UNIT
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
#IF (FPLED_ENABLE & FPLED_DSKACT)
|
||||
; SAVE DISK UNIT NUMBER BIT MASK
|
||||
LD A,C ; GET DISK UNIT NUMBER
|
||||
LD B,A ; PUT IN B FOR LOOP COUNTER
|
||||
@@ -3578,7 +3558,7 @@ HB_DSKWRITE:
|
||||
;
|
||||
LD (HB_DSKCMD),BC ; SAVE HBIOS FUNC & UNIT
|
||||
;
|
||||
#IF (DIAGENABLE)
|
||||
#IF (FPLED_ENABLE & FPLED_DSKACT)
|
||||
; SAVE DISK UNIT NUMBER BIT MASK
|
||||
LD A,C ; GET DISK UNIT NUMBER
|
||||
LD B,A ; PUT IN B FOR LOOP COUNTER
|
||||
@@ -3675,9 +3655,9 @@ HB_DSKIOX:
|
||||
;
|
||||
HB_DSKFN:
|
||||
PUSH BC ; SAVE COUNTERS
|
||||
#IF (DIAGENABLE & DIAGDISKIO)
|
||||
#IF (FPLED_ENABLE & FPLED_DSKACT)
|
||||
LD A,(HB_DSKBIT) ; LOAD UNIT DISK BIT MASK
|
||||
OUT (DIAGPORT),A ; DISPLAY ON DIAG LEDS
|
||||
CALL FP_SETLEDS ; DISPLAY ON DIAG LEDS
|
||||
#ENDIF
|
||||
#IF (LEDENABLE & LEDDISKIO)
|
||||
LED(%00000101) ; BIT 0 FOR TINY Z80 & MBC, BIT 2 FOR SCXXX
|
||||
@@ -3685,8 +3665,8 @@ HB_DSKFN:
|
||||
LD E,1 ; ONE SECTOR
|
||||
HB_DSKFNADR .EQU $+1
|
||||
CALL PANIC ; READ ONE SECTOR
|
||||
#IF (DIAGENABLE & DIAGDISKIO)
|
||||
DIAG(DIAG_00) ; CLEAR DIAG LEDS
|
||||
#IF (FPLED_ENABLE & FPLED_DSKACT)
|
||||
DIAG($00) ; CLEAR DIAG LEDS
|
||||
#ENDIF
|
||||
#IF (LEDENABLE & LEDDISKIO)
|
||||
LED($00)
|
||||
@@ -4536,11 +4516,11 @@ SYS_GETCPUSPD1:
|
||||
;
|
||||
SYS_GETPANEL:
|
||||
;
|
||||
#IF FPENABLE
|
||||
LD A,(HB_HASFP) ; GET FP EXISTS FLAG
|
||||
#IF (FPSW_ENABLE)
|
||||
LD A,(FPSW_ACTIVE) ; FP SWITCHES ACTIVE?
|
||||
OR A ; SET FLAGS
|
||||
JR Z,SYS_GETPANEL1 ; HANDLE NOT EXISTS
|
||||
IN A,(FPBASE) ; READ SWITCHES
|
||||
CALL FP_GETSWITCHES ; READ SWITCHES
|
||||
LD H,0 ; FOR FUTURE
|
||||
LD L,A ; PUT SWITCHES VALUE IN L
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
@@ -4848,9 +4828,9 @@ SYS_SETCPUSPD_ERR:
|
||||
;
|
||||
SYS_SETPANEL:
|
||||
;
|
||||
#IF DIAGENABLE
|
||||
#IF (FPLED_ENABLE)
|
||||
LD A,L
|
||||
OUT (DIAGPORT),A
|
||||
CALL FP_SETLEDS
|
||||
XOR A
|
||||
RET
|
||||
#ELSE
|
||||
@@ -6181,6 +6161,15 @@ SIZ_GDC .EQU $ - ORG_GDC
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (VRCENABLE)
|
||||
ORG_VRC .EQU $
|
||||
#INCLUDE "vrc.asm"
|
||||
SIZ_VRC .EQU $ - ORG_VRC
|
||||
.ECHO "VRC occupies "
|
||||
.ECHO SIZ_VRC
|
||||
.ECHO " bytes.\n"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (DMAENABLE)
|
||||
ORG_DMA .EQU $
|
||||
#INCLUDE "dma.asm"
|
||||
@@ -6241,7 +6230,7 @@ SIZ_FONTS .EQU $ - ORG_FONTS
|
||||
.ECHO SIZ_FONTS
|
||||
.ECHO " bytes.\n"
|
||||
;
|
||||
#IF (CVDUENABLE | VGAENABLE) | GDCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC)))
|
||||
#IF (CVDUENABLE | VGAENABLE | GDCENABLE | VRCENABLE | (TMSENABLE & ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC))))
|
||||
ORG_KBD .EQU $
|
||||
#INCLUDE "kbd.asm"
|
||||
SIZ_KBD .EQU $ - ORG_KBD
|
||||
@@ -6438,11 +6427,101 @@ SIZ_YM2612 .EQU $ - ORG_YM2612
|
||||
;
|
||||
; INCLUDE LZSA2 decompression engine if required.
|
||||
;
|
||||
#IF ((VGAENABLE | CVDUENABLE | TMSENABLE | GDCENABLE) & USELZSA2)
|
||||
#IF ((VGAENABLE | CVDUENABLE | TMSENABLE | GDCENABLE | VRCENABLE) & USELZSA2)
|
||||
#INCLUDE "unlzsa2s.asm"
|
||||
#ENDIF
|
||||
;
|
||||
; DETECT CPU SPEED USING DS-1302 RTC
|
||||
;==================================================================================================
|
||||
; FRONT PANEL SUPPORT
|
||||
;==================================================================================================
|
||||
;
|
||||
; FRONT PANEL HARDWARE DETECTION
|
||||
;
|
||||
; WE ARE REALLY JUST CHECKING FOR SWITCHES. NO WAY TO QUERY FOR
|
||||
; LEDS. WE CHECK FOR I/O CONFLICT WITH VGARC IF ACTIVE.
|
||||
;
|
||||
FP_DETECT:
|
||||
; D: LEDS ACTIVE, E: SWITCHES ACTIVE
|
||||
LD D,TRUE ; ASSUME ACTIVE FOR NOW
|
||||
LD E,TRUE ; ASSUME ACTIVE FOR NOW
|
||||
;
|
||||
; IF VGARC IS ENABLED, CHECK IF IT IS ACTIVE. IF SO AND THE
|
||||
; I/O PORTS CONFLICT, DEACTIVATE FRONT PANEL.
|
||||
;
|
||||
#IF (VRCENABLE)
|
||||
LD A,(VRC_ACTIVE) ; GET VGARC ACTIVE STATUS
|
||||
OR A ; SET FLAGS
|
||||
JR Z,FP_DETECT1 ; IF NO, CONTINUE
|
||||
#IF ((FPLED_IO >= $00) & (FPLED_IO <= $0F))
|
||||
; CONFLICT, DEACTIVATE LEDS
|
||||
LD D,FALSE ; FP LEDS NOT ACTIVE
|
||||
#ENDIF
|
||||
#IF ((FPSW_IO >= $00) & (FPSW_IO <= $0F))
|
||||
; CONFLICT, DEACTIVATE SWITCHES
|
||||
LD E,FALSE ; FP SWITCHES NOT ACTIVE
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
;
|
||||
FP_DETECT1:
|
||||
; THE SWITCH HARDWARE MAY OR MAY NOT BE INSTALLED. SO, HERE WE
|
||||
; ATTEMPT TO CONFIRM WE HAVE A VALID PORT. CREDIT TO STEPHEN
|
||||
; COUSINS FOR THIS APPROACH.
|
||||
LD C,FPSW_IO ; ADR OF SWITCH PORT
|
||||
IN C,(C) ; READ IT USING IN (C)
|
||||
IN A,(FPSW_IO) ; READ IT USING IN (PORT)
|
||||
CP C ; PORT FLOATING ON MISMATCH
|
||||
JR NZ,FP_DETECT2 ; NO H/W, SET FLAG
|
||||
CP $FF ; PORT FLOATING ON $FF
|
||||
JR Z,FP_DETECT2 ; NO H/W, SET FLAG
|
||||
JR FP_DETECTZ ; H/W EXISTS, DONE
|
||||
;
|
||||
FP_DETECT2:
|
||||
LD E,FALSE ; RECORD NOT PRESENT
|
||||
;
|
||||
FP_DETECTZ:
|
||||
LD (FP_ACTIVE),DE ; RECORD RESULTS
|
||||
RET ; DONE
|
||||
;
|
||||
#IF (FPLED_ENABLE)
|
||||
;
|
||||
; SET FRONT PANEL LEDS FROM VALUE IN A
|
||||
;
|
||||
FP_SETLEDS:
|
||||
PUSH HL ; SAVE HL
|
||||
LD L,A ; LED VALUE TO L
|
||||
LD A,(FPLED_ACTIVE) ; LEDS ACTIVE?
|
||||
OR A ; SET FLAGS
|
||||
LD A,L ; RESTORE REG A
|
||||
JR Z,FP_SETLEDS1 ; BAIL OUT IF NOT ACTIVE
|
||||
OUT (FPLED_IO),A ; WRITE
|
||||
FP_SETLEDS1:
|
||||
POP HL ; RESTORE HL
|
||||
RET ; DONE
|
||||
;
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
#IF (FPSW_ENABLE)
|
||||
;
|
||||
; GET FRONT PANEL SWITCH SETTINGS
|
||||
;
|
||||
FP_GETSWITCHES:
|
||||
LD A,(FPSW_ACTIVE) ; SWITCHES ACTIVE?
|
||||
OR A ; SET FLAGS
|
||||
RET Z ; BAIL OUT IF NOT ACTIVE
|
||||
IN A,(FPSW_IO) ; READ SWITCHES
|
||||
RET ; DONE
|
||||
;
|
||||
;
|
||||
#ENDIF
|
||||
;
|
||||
FP_ACTIVE:
|
||||
FPSW_ACTIVE .DB TRUE
|
||||
FPLED_ACTIVE .DB TRUE
|
||||
;
|
||||
;==================================================================================================
|
||||
; CPU SPEED DETECTION USING DS-1302 RTC
|
||||
;==================================================================================================
|
||||
;
|
||||
HB_CPUSPD:
|
||||
;
|
||||
@@ -6558,116 +6637,6 @@ HB_CPUSPD2:
|
||||
OR $FF ; SIGNAL ERROR
|
||||
RET ; AND DONE
|
||||
;
|
||||
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE?
|
||||
;
|
||||
SYSCHKA:
|
||||
; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY
|
||||
PUSH AF ; PRESERVE INCOMING AF VALUE
|
||||
LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL
|
||||
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
|
||||
CALL WRITESTR ; PRINT IT
|
||||
POP DE ; RESTORE DE VALUE
|
||||
CALL XREGDMP ; DUMP REGISTERS
|
||||
|
||||
; DISPLAY ERROR CODE. IT IS AT RETURN ADDRESS+1 .. LD A,XX
|
||||
EX (SP),HL ; GET RETURN ADDRESS
|
||||
INC HL ; POINT TO THE ERROR CODE
|
||||
PUSH AF
|
||||
LD A,(HL) ; DISPLAY
|
||||
CALL PRTHEXBYTE
|
||||
POP AF
|
||||
DEC HL ; RESTORE RETURN ADDRESS
|
||||
EX (SP),HL
|
||||
;
|
||||
JR CONTINUE ; CHECK W/ USER
|
||||
;
|
||||
SYSCHK1:
|
||||
; RETURN IF MESSAGING BYPASSED BY DIAG LEVEL
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; PANIC: DUMP MACHINE STATE AND HALT
|
||||
;
|
||||
PANIC:
|
||||
PUSH DE
|
||||
LD DE,STR_PANIC
|
||||
CALL WRITESTR
|
||||
POP DE
|
||||
CALL XREGDMP ; DUMP REGISTERS
|
||||
JR SYSHALT ; FULL STOP
|
||||
;
|
||||
;
|
||||
;
|
||||
CONTINUE:
|
||||
PUSH AF
|
||||
CONTINUE1:
|
||||
PUSH DE
|
||||
LD DE,STR_CONTINUE
|
||||
CALL WRITESTR
|
||||
POP DE
|
||||
CALL CIN
|
||||
RES 5,A ; FORCE UPPERCASE (IMPERFECTLY)
|
||||
CALL COUT ; ECHO
|
||||
CP 'Y'
|
||||
JR Z,CONTINUE3
|
||||
CP 'N'
|
||||
JR Z,SYSHALT
|
||||
JR CONTINUE1
|
||||
CONTINUE3:
|
||||
CALL NEWLINE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
SYSHALT:
|
||||
LD DE,STR_HALT
|
||||
CALL WRITESTR
|
||||
DI
|
||||
HALT
|
||||
;
|
||||
; PRINT VALUE OF HL AS THOUSANDTHS, IE. 0.000
|
||||
;
|
||||
PRTD3M:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD E,'0'
|
||||
LD BC,-10000
|
||||
CALL PRTD3M1
|
||||
LD E,0
|
||||
LD BC,-1000
|
||||
CALL PRTD3M1
|
||||
CALL PC_PERIOD
|
||||
LD BC,-100
|
||||
CALL PRTD3M1
|
||||
LD C,-10
|
||||
CALL PRTD3M1
|
||||
LD C,-1
|
||||
CALL PRTD3M1
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
PRTD3M1:
|
||||
LD A,'0' - 1
|
||||
PRTD3M2:
|
||||
INC A
|
||||
ADD HL,BC
|
||||
JR C,PRTD3M2
|
||||
SBC HL,BC
|
||||
CP E
|
||||
JR Z,PRTD3M3
|
||||
LD E,0
|
||||
CALL COUT
|
||||
PRTD3M3:
|
||||
RET
|
||||
;==================================================================================================
|
||||
; DISPLAY SUMMARY OF ATTACHED UNITS/DEVICES
|
||||
;==================================================================================================
|
||||
@@ -7221,6 +7190,7 @@ PS_VDCVDU .TEXT "CVDU$"
|
||||
PS_VDGDC .TEXT "GDC$"
|
||||
PS_VDTMS .TEXT "TMS$"
|
||||
PS_VDVGA .TEXT "VGA$"
|
||||
PS_VDVRC .TEXT "VRC$"
|
||||
;
|
||||
; VIDEO TYPE STRINGS
|
||||
;
|
||||
@@ -7360,7 +7330,7 @@ CST2:
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; MISCELLANEOUS UTILITY FUNCTIONS
|
||||
; INTERNAL UTILITY FUNCTIONS
|
||||
;==================================================================================================
|
||||
;
|
||||
; SET HL TO IY+A, A IS TRASHED
|
||||
@@ -7397,6 +7367,117 @@ HB_CHS2LBA:
|
||||
XOR A
|
||||
RET
|
||||
;
|
||||
; SYSTEM CHECK: DUMP MACHINE STATE AND CONTINUE?
|
||||
;
|
||||
SYSCHKA:
|
||||
; CHECK DIAG LEVEL TO SEE IF WE SHOULD DISPLAY
|
||||
PUSH AF ; PRESERVE INCOMING AF VALUE
|
||||
LD A,(CB_DIAGLVL) ; GET DIAGNOSTIC LEVEL
|
||||
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
|
||||
CALL WRITESTR ; PRINT IT
|
||||
POP DE ; RESTORE DE VALUE
|
||||
CALL XREGDMP ; DUMP REGISTERS
|
||||
|
||||
; DISPLAY ERROR CODE. IT IS AT RETURN ADDRESS+1 .. LD A,XX
|
||||
EX (SP),HL ; GET RETURN ADDRESS
|
||||
INC HL ; POINT TO THE ERROR CODE
|
||||
PUSH AF
|
||||
LD A,(HL) ; DISPLAY
|
||||
CALL PRTHEXBYTE
|
||||
POP AF
|
||||
DEC HL ; RESTORE RETURN ADDRESS
|
||||
EX (SP),HL
|
||||
;
|
||||
JR CONTINUE ; CHECK W/ USER
|
||||
;
|
||||
SYSCHK1:
|
||||
; RETURN IF MESSAGING BYPASSED BY DIAG LEVEL
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
; PANIC: DUMP MACHINE STATE AND HALT
|
||||
;
|
||||
PANIC:
|
||||
PUSH DE
|
||||
LD DE,STR_PANIC
|
||||
CALL WRITESTR
|
||||
POP DE
|
||||
CALL XREGDMP ; DUMP REGISTERS
|
||||
JR SYSHALT ; FULL STOP
|
||||
;
|
||||
;
|
||||
;
|
||||
CONTINUE:
|
||||
PUSH AF
|
||||
CONTINUE1:
|
||||
PUSH DE
|
||||
LD DE,STR_CONTINUE
|
||||
CALL WRITESTR
|
||||
POP DE
|
||||
CALL CIN
|
||||
RES 5,A ; FORCE UPPERCASE (IMPERFECTLY)
|
||||
CALL COUT ; ECHO
|
||||
CP 'Y'
|
||||
JR Z,CONTINUE3
|
||||
CP 'N'
|
||||
JR Z,SYSHALT
|
||||
JR CONTINUE1
|
||||
CONTINUE3:
|
||||
CALL NEWLINE
|
||||
POP AF
|
||||
RET
|
||||
;
|
||||
;
|
||||
;
|
||||
SYSHALT:
|
||||
LD DE,STR_HALT
|
||||
CALL WRITESTR
|
||||
DI
|
||||
HALT
|
||||
;
|
||||
; PRINT VALUE OF HL AS THOUSANDTHS, IE. 0.000
|
||||
;
|
||||
PRTD3M:
|
||||
PUSH BC
|
||||
PUSH DE
|
||||
PUSH HL
|
||||
LD E,'0'
|
||||
LD BC,-10000
|
||||
CALL PRTD3M1
|
||||
LD E,0
|
||||
LD BC,-1000
|
||||
CALL PRTD3M1
|
||||
CALL PC_PERIOD
|
||||
LD BC,-100
|
||||
CALL PRTD3M1
|
||||
LD C,-10
|
||||
CALL PRTD3M1
|
||||
LD C,-1
|
||||
CALL PRTD3M1
|
||||
POP HL
|
||||
POP DE
|
||||
POP BC
|
||||
RET
|
||||
PRTD3M1:
|
||||
LD A,'0' - 1
|
||||
PRTD3M2:
|
||||
INC A
|
||||
ADD HL,BC
|
||||
JR C,PRTD3M2
|
||||
SBC HL,BC
|
||||
CP E
|
||||
JR Z,PRTD3M3
|
||||
LD E,0
|
||||
CALL COUT
|
||||
PRTD3M3:
|
||||
RET
|
||||
;
|
||||
;==================================================================================================
|
||||
; HBIOS GLOBAL DATA
|
||||
;==================================================================================================
|
||||
|
||||
@@ -338,7 +338,7 @@ VDADEV_CVDU .EQU $10 ; ECB COLOR VDU - MOS 8563
|
||||
VDADEV_GDC .EQU $20 ; GRAPHICS DISPLAY CTLR - 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
|
||||
VDADEV_VRC .EQU $50 ; VGARC
|
||||
;
|
||||
; SOUND DEVICE IDS
|
||||
;
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -14,9 +14,10 @@
|
||||
;
|
||||
; DRIVER DATA OFFSETS (FROM IY)
|
||||
;
|
||||
KBD_ST .EQU 0 ; BYTE, STATUS PORT NUM (R)
|
||||
KBD_MODE .EQU 0 ; BYTE, KEYBOARD MODE (STD OR VRC)
|
||||
KBD_ST .EQU 1 ; BYTE, STATUS PORT NUM (R)
|
||||
KBD_CMD .EQU KBD_ST ; BYTE, CMD PORT NUM (W)
|
||||
KBD_DAT .EQU 1 ; BYTE, DATA PORT NUM (R/W)
|
||||
KBD_DAT .EQU 2 ; BYTE, DATA PORT NUM (R/W)
|
||||
;
|
||||
; TIMING CONSTANTS
|
||||
;
|
||||
@@ -69,17 +70,33 @@ KBD_INIT:
|
||||
LD (KBD_REPEAT),A ; SAVE IT
|
||||
LD A,KBD_DEFSTATE ; GET DEFAULT STATE
|
||||
LD (KBD_STATE),A ; SAVE IT
|
||||
|
||||
;
|
||||
LD A,(IY+KBD_MODE) ; GET KBD MODE BYTE
|
||||
CP KBDMODE_VRC ; VRC?
|
||||
JR Z,KBD_INIT1 ; IF SO, MUST ASSUME PRESENT
|
||||
;
|
||||
LD A,$AA ; CONTROLLER SELF TEST
|
||||
CALL KBD_PUTCMD ; SEND IT
|
||||
CALL KBD_GETDATA ; CONTROLLER SHOULD RESPOND WITH $55 (ACK)
|
||||
|
||||
;
|
||||
CP $55 ; IS IT THERE?
|
||||
JR Z,KBD_INIT1 ; IF SO, CONTINUE
|
||||
PRTS(" NOT PRESENT$") ; DIAGNOSE PROBLEM
|
||||
RET ; BAIL OUT
|
||||
|
||||
;
|
||||
KBD_INIT1:
|
||||
PRTS(" MODE=$") ; TAG
|
||||
LD A,(IY+KBD_MODE) ; GET MODE VALUE
|
||||
LD DE,KBD_STR_MODEPS2
|
||||
CP KBDMODE_PS2
|
||||
JR Z,KBD_INIT2
|
||||
LD DE,KBD_STR_MODEVRC
|
||||
CP KBDMODE_VRC
|
||||
JR Z,KBD_INIT2
|
||||
LD DE,KBD_STR_MODEUNK
|
||||
KBD_INIT2:
|
||||
CALL WRITESTR
|
||||
;
|
||||
LD A,$60 ; SET COMMAND REGISTER
|
||||
CALL KBD_PUTCMD ; SEND IT
|
||||
; LD A,$60 ; XLAT ENABLED, MOUSE DISABLED, NO INTS
|
||||
@@ -88,11 +105,6 @@ KBD_INIT1:
|
||||
|
||||
CALL KBD_GETDATA ; GOBBLE UP $AA FROM POWER UP, AS NEEDED
|
||||
|
||||
; LD A,$AE ; COMMAND = ENABLE KEYBOARD
|
||||
; CALL KBD_PUTCMD ; SEND IT
|
||||
; LD A,$A7 ; COMMAND = DISABLE MOUSE
|
||||
; CALL KBD_PUTCMD ; SEND IT
|
||||
|
||||
CALL KBD_RESET ; RESET THE KEYBOARD
|
||||
CALL KBD_SETLEDS ; UPDATE LEDS BASED ON CURRENT TOGGLE STATE BITS
|
||||
CALL KBD_SETRPT ; UPDATE REPEAT RATE BASED ON CURRENT SETTING
|
||||
@@ -177,6 +189,9 @@ KBD_PUTCMD:
|
||||
; PUT A CMD BYTE FROM A TO THE KEYBOARD INTERFACE WITH TIMEOUT
|
||||
;
|
||||
LD E,A ; SAVE INCOMING VALUE IN E
|
||||
LD A,(IY+KBD_MODE) ; GET MODE BYTE
|
||||
CP KBDMODE_VRC ; VGARC KEYBOARD?
|
||||
JR Z,KBD_PUTCMD2 ; BAIL OUT
|
||||
LD B,KBD_WAITTO ; SETUP TO LOOP
|
||||
KBD_PUTCMD0:
|
||||
CALL KBD_OST ; GET OUTPUT REGISTER STATUS
|
||||
@@ -194,6 +209,7 @@ KBD_PUTCMD1:
|
||||
#ENDIF
|
||||
LD C,(IY+KBD_CMD) ; COMMAND PORT
|
||||
OUT (C),A ; WRITE IT
|
||||
KBD_PUTCMD2:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
@@ -203,6 +219,9 @@ KBD_PUTDATA:
|
||||
; PUT A DATA BYTE FROM A TO THE KEYBOARD INTERFACE WITH TIMEOUT
|
||||
;
|
||||
LD E,A ; SAVE INCOMING VALUE IN E
|
||||
LD A,(IY+KBD_MODE) ; GET MODE BYTE
|
||||
CP KBDMODE_VRC ; VGARC KEYBOARD?
|
||||
JR Z,KBD_PUTDATA2 ; BAIL OUT
|
||||
LD B,KBD_WAITTO ; SETUP TO LOOP
|
||||
KBD_PUTDATA0:
|
||||
CALL KBD_OST ; GET OUTPUT REGISTER STATUS
|
||||
@@ -219,6 +238,7 @@ KBD_PUTDATA1:
|
||||
#ENDIF
|
||||
LD C,(IY+KBD_DAT) ; DATA PORT
|
||||
OUT (C),A ; WRITE IT
|
||||
KBD_PUTDATA2:
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
@@ -681,11 +701,21 @@ KBD_DECNEW: ; START NEW KEYPRESS (CLEAR ALL STATUS BITS)
|
||||
LD (KBD_STATUS),A ; CLEAR STATUS
|
||||
JP KBD_DEC1 ; RESTART THE ENGINE
|
||||
;
|
||||
; DRIVER DATA
|
||||
;
|
||||
KBD_STR_MODEPS2 .TEXT "PS2$"
|
||||
KBD_STR_MODEVRC .TEXT "VRC$"
|
||||
KBD_STR_MODEUNK .TEXT "???$"
|
||||
;
|
||||
;
|
||||
;
|
||||
#IF (KBDKBLOUT == KBD_US)
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; MAPPING TABLES US/ENGLISH
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
KBD_MAPSTD: ; SCANCODE IS INDEX INTO TABLE TO RESULTANT LOOKUP KEYCODE
|
||||
.DB $FF,$E8,$FF,$E4,$E2,$E0,$E1,$EB,$FF,$E9,$E7,$E5,$E3,$09,'`',$FF
|
||||
.DB $FF,$B4,$B0,$FF,$B2,'q','1',$FF,$FF,$FF,'z','s','a','w','2',$FF
|
||||
@@ -722,7 +752,9 @@ KBD_MAPNUMPAD: ; KEYCODE TRANSLATION FROM NUMPAD RANGE TO STD ASCII/KEYCODES
|
||||
.DB $F3,$F7,$F5,$F8,$FF,$F9,$F2,$F6,$F4,$F0,$F1,$2F,$2A,$2D,$2B,$0D
|
||||
.DB $31,$32,$33,$34,$35,$36,$37,$38,$39,$30,$2E,$2F,$2A,$2D,$2B,$0D
|
||||
#ENDIF
|
||||
;
|
||||
#IF (KBDKBLOUT == KBD_DE)
|
||||
;
|
||||
;__________________________________________________________________________________________________
|
||||
;
|
||||
; MAPPING TABLES GERMAN
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1352,20 +1352,24 @@ diskread:
|
||||
;
|
||||
clrled:
|
||||
#if (BIOS == BIOS_WBW)
|
||||
#if (DIAGENABLE)
|
||||
xor a ; zero accum
|
||||
out (DIAGPORT),a ; clear diag leds
|
||||
#if (FPLED_ENABLE)
|
||||
;xor a ; zero accum
|
||||
;out (FPLED_IO),a ; clear diag leds
|
||||
ld b,BF_SYSSET ; HBIOS SysGet
|
||||
ld c,BF_SYSSET_PANEL ; ... Panel swiches value
|
||||
ld l,$00 ; all LEDs off
|
||||
rst 08 ; do it
|
||||
#endif
|
||||
#if (LEDENABLE)
|
||||
#if (LEDMODE == LEDMODE_STD)
|
||||
ld a,$FF ; led is inverted
|
||||
out (LEDPORT),a ; clear led
|
||||
ld a,$FF ; led is inverted
|
||||
out (LEDPORT),a ; clear led
|
||||
#endif
|
||||
#if (LEDMODE == LEDMODE_RTC)
|
||||
; Bits 0 and 1 of the RTC latch are for the LEDs.
|
||||
ld a,(HB_RTCVAL)
|
||||
and ~%00000011
|
||||
out (RTCIO),a ; clear led
|
||||
out (RTCIO),a ; clear led
|
||||
ld (HB_RTCVAL),a
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -333,6 +333,27 @@ SD_DDRVAL .EQU %00001101 ; DATA DIRECTION REGISTER VALUE
|
||||
SD_INVCS .EQU FALSE ; INVERT CS
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SDMODE == SDMODE_Z80R) ; Z80 Retro
|
||||
;
|
||||
; SPLIT OVER TWO REGISTERS TO DRIVE CLK. THE CS LINE IS ON THE GPIO
|
||||
; WHICH IS THE SAME LATCHES THAT CONTROL MMU ON/OFF, SO DON;T GLITCH
|
||||
; THEM WHEN UPDATING!
|
||||
;
|
||||
SD_DEVMAX .EQU 1 ; NUMBER OF PHYSICAL UNITS (SOCKETS)
|
||||
SD_OPRDEF .EQU %00000001 ; OUTPUT PORT DEFAULT STATE
|
||||
SD_OPRMSK .EQU %00000101 ; OUTPUT PORT MASK
|
||||
SD_OPRREG .EQU $64 ; CS VIA GPIO
|
||||
SD_IOBASE .EQU $68 ; 68/69 FOR OUTPUT
|
||||
SD_IOREG .EQU SD_IOBASE ; INPUT REGISTER
|
||||
SD_IOCLK .EQU SD_IOBASE+1 ; CLOCK IS OFF A0
|
||||
SD_GPIO .EQU $64 ; MISO IS ON THE GPIO
|
||||
SD_CS0 .EQU %00000100 ; SELECT
|
||||
SD_DI .EQU %00000001 ; DATA IN (CARD <- CPU) MOSI
|
||||
SD_DO .EQU %00000001 ; DATA OUT (CARD -> CPU) MISO
|
||||
SD_CINIT .EQU FALSE ; INITIALIZE OUTPUT PORT
|
||||
SD_INVCS .EQU FALSE ; INVERT CS
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SD_DEVCNT > SD_DEVMAX)
|
||||
.ECHO "*** ERROR: SDCNT EXCEEDS MAXIMUM SUPPORTED BY INTERFACE!!!\n"
|
||||
!!! ; FORCE AN ASSEMBLY ERROR
|
||||
@@ -546,6 +567,15 @@ SD_INIT:
|
||||
CALL PRTHEXBYTE
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SDMODE == SDMODE_Z80R)
|
||||
PRTS(" MODE=Z80R$")
|
||||
PRTS(" IO=0x$")
|
||||
LD A,SD_IOBASE
|
||||
CALL PRTHEXBYTE
|
||||
LD A,SD_OPRDEF
|
||||
LD (SD_OPRVAL),A
|
||||
#ENDIF
|
||||
;
|
||||
#IF (SDMODE == SDMODE_USR)
|
||||
PRTS(" MODE=USER$")
|
||||
PRTS(" IO=0x$")
|
||||
@@ -1910,7 +1940,7 @@ SD_DESELECT:
|
||||
AND ~SD_CS0
|
||||
#ENDIF
|
||||
; ADJUST BIT(S) FOR INTERFACES USING INVERTED CS BITS
|
||||
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC) | (SDMODE == SDMODE_PIO))
|
||||
#IF ((SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_UART) | (SDMODE == SDMODE_SC) | (SDMODE == SDMODE_PIO) | (SDMODE == SDMODE_Z80R))
|
||||
#IF ((SDMODE == SDMODE_SC) & (SD_DEVCNT > 1))
|
||||
XOR SD_CS0 | SD_CS1
|
||||
#ELSE
|
||||
@@ -1957,9 +1987,48 @@ SD_PUT:
|
||||
SET 4,A ; SET TRANSMIT ENABLE
|
||||
OUT0 (SD_CNTR),A
|
||||
#ELSE
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
|
||||
#IF (SDMODE == SDMODE_Z80R)
|
||||
; USE C - THE CALLING CODE FOR COMMAND SEND FAILS TO SAVE HL/DE
|
||||
; WHILST THE OTHER PATHS DO ?
|
||||
LD C,A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
RL C
|
||||
RLA
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
#ELSE
|
||||
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
XOR $FF ; DI IS INVERTED ON UART
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
LD C,A ; C=BYTE TO SEND
|
||||
LD B,8 ; SEND 8 BITS (LOOP 8 TIMES)
|
||||
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
|
||||
@@ -1975,6 +2044,7 @@ SD_PUT1:
|
||||
DJNZ SD_PUT1 ; REPEAT FOR ALL 8 BITS
|
||||
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
|
||||
OUT (SD_OPRREG),A ; LEAVE WITH CLOCK LOW
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
RET ; DONE
|
||||
@@ -1997,34 +2067,83 @@ SD_GET:
|
||||
CALL MIRROR ; MSB<-->LSB MIRROR BITS
|
||||
LD A,C ; KEEP RESULT
|
||||
#ELSE
|
||||
#IF (SDMODE == SDMODE_Z80R)
|
||||
; MUST PRESERVE HL,DE
|
||||
PUSH DE
|
||||
LD A,1
|
||||
LD C,SD_GPIO
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
OUT (SD_IOREG),A
|
||||
OUT (SD_IOCLK),A
|
||||
IN B,(C)
|
||||
RR B
|
||||
RL E
|
||||
LD A,E
|
||||
POP DE
|
||||
#ELSE
|
||||
LD B,8 ; RECEIVE 8 BITS (LOOP 8 TIMES)
|
||||
LD A,(SD_OPRVAL) ; LOAD CURRENT OPR VALUE
|
||||
SD_GET1:
|
||||
XOR SD_CLK ; TOGGLE CLOCK
|
||||
OUT (SD_OPRREG),A ; UPDATE CLOCK
|
||||
IN A,(SD_INPREG) ; READ THE DATA WHILE CLOCK IS ACTIVE
|
||||
#IF ((SDMODE == SDMODE_JUHA) | (SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_PIO))
|
||||
#IF ((SDMODE == SDMODE_JUHA) | (SDMODE == SDMODE_PPI) | (SDMODE == SDMODE_PIO))
|
||||
RLA ; ROTATE INP:7 INTO CF
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_N8)
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_N8)
|
||||
RLA ; ROTATE INP:6 INTO CF
|
||||
RLA ; "
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
RLA ; ROTATE INP:5 INTO CF
|
||||
RLA ; "
|
||||
RLA ; "
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_DSD)
|
||||
#ENDIF
|
||||
#IF (SDMODE == SDMODE_DSD)
|
||||
RRA ; ROTATE INP:0 INTO CF
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
RL C ; ROTATE CF INTO C:0
|
||||
LD A,(SD_OPRVAL) ; BACK TO INITIAL VALUES (TOGGLE CLOCK)
|
||||
OUT (SD_OPRREG),A ; DO IT
|
||||
DJNZ SD_GET1 ; REPEAT FOR ALL 8 BITS
|
||||
LD A,C ; GET BYTE RECEIVED INTO A
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
#IF (SDMODE == SDMODE_UART)
|
||||
XOR $FF ; DO IS INVERTED ON UART
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
#ENDIF
|
||||
|
||||
@@ -69,8 +69,8 @@ SIO0B_DAT .EQU SIO0BASE + $05
|
||||
;
|
||||
#IF (SIO0MODE == SIOMODE_Z80R)
|
||||
SIO0A_CMD .EQU SIO0BASE + $03
|
||||
SIO0A_DAT .EQU SIO0BASE + $02
|
||||
SIO0B_CMD .EQU SIO0BASE + $01
|
||||
SIO0A_DAT .EQU SIO0BASE + $01
|
||||
SIO0B_CMD .EQU SIO0BASE + $02
|
||||
SIO0B_DAT .EQU SIO0BASE + $00
|
||||
#ENDIF
|
||||
;
|
||||
@@ -106,8 +106,8 @@ SIO1B_DAT .EQU SIO1BASE + $05
|
||||
;
|
||||
#IF (SIO1MODE == SIOMODE_Z80R)
|
||||
SIO1A_CMD .EQU SIO0BASE + $03
|
||||
SIO1A_DAT .EQU SIO0BASE + $02
|
||||
SIO1B_CMD .EQU SIO0BASE + $01
|
||||
SIO1A_DAT .EQU SIO0BASE + $01
|
||||
SIO1B_CMD .EQU SIO0BASE + $02
|
||||
SIO1B_DAT .EQU SIO0BASE + $00
|
||||
#ENDIF
|
||||
;
|
||||
|
||||
@@ -92,6 +92,15 @@ FDM360 .EQU 2 ; 5.25" FLOPPY, 360KB, 2 SIDES, 40 TRKS, 9 SECTORS
|
||||
FDM120 .EQU 3 ; 5.25" FLOPPY, 1.2MB, 2 SIDES, 80 TRKS, 15 SECTORS
|
||||
FDM111 .EQU 4 ; 8" FLOPPY, 1.11MB, 2 SIDES, 74 TRKS, 15 SECTORS
|
||||
;
|
||||
; FLOPPY DISK TYPE
|
||||
;
|
||||
FDT_NONE .EQU 0 ; NONE
|
||||
FDT_3DD .EQU 1 ; 3.5" FLOPPY, DOUBLE DENSITY
|
||||
FDT_3HD .EQU 2 ; 3.5" FLOPPY, HIGH DENSITY
|
||||
FDT_5DD .EQU 3 ; 5.25" FLOPPY, DOUBLE DENSITY
|
||||
FDT_5HD .EQU 4 ; 5.25" FLOPPY, HIGH DNSITY
|
||||
FDT_8 .EQU 5 ; 8" FLOPPY, DOUBLE DENSITY
|
||||
;
|
||||
; ZILOG CTC MODE SELECTIONS
|
||||
;
|
||||
CTCMODE_NONE .EQU 0 ; NO CTC
|
||||
@@ -185,6 +194,7 @@ SDMODE_SC .EQU 8 ; SC (Steve Cousins)
|
||||
SDMODE_MT .EQU 9 ; MT (Shift register SPI WIZNET for RCBUS)
|
||||
SDMODE_USR .EQU 10 ; USER DEFINED (in sd.asm) (NOT COMPLETE)
|
||||
SDMODE_PIO .EQU 11 ; Z80 PIO bitbang
|
||||
SDMODE_Z80R .EQU 12 ; Z80 Retro
|
||||
;
|
||||
; AY SOUND CHIP MODE SELECTIONS
|
||||
;
|
||||
@@ -247,6 +257,12 @@ DMAMODE_Z280 .EQU 3 ; Z280 INTEGRATED DMA
|
||||
DMAMODE_RC .EQU 4 ; RCBUS Z80 DMA
|
||||
DMAMODE_MBC .EQU 5 ; MBC
|
||||
;
|
||||
; KEYBOARD MODE SELECTIONS
|
||||
;
|
||||
KBDMODE_NONE .EQU 0
|
||||
KBDMODE_PS2 .EQU 1 ; PS/2 KEYBOARD CONTROLLER
|
||||
KBDMODE_VRC .EQU 2 ; VGARC KEYBOARD CONTROLLER
|
||||
;
|
||||
; SERIAL DEVICE CONFIGURATION CONSTANTS
|
||||
;
|
||||
SER_DATA5 .EQU 0 << 0
|
||||
|
||||
@@ -942,10 +942,10 @@ TMS_IDAT:
|
||||
.DB TMS_PPIX ; PPI CONTROL PORT
|
||||
#ENDIF
|
||||
#IF ((TMSMODE == TMSMODE_MSXKBD) | (TMSMODE == TMSMODE_MBC))
|
||||
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
|
||||
.DB TMS_KBDST ; 8242 CMD/STATUS PORT
|
||||
.DB TMS_KBDDATA ; 8242 DATA PORT
|
||||
.DB 0 ; FILLER
|
||||
.DB 0 ; FILER
|
||||
#ENDIF
|
||||
;
|
||||
.DB TMS_DATREG
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
; WARNING: This code does not seem to be working on Z280. WBW - 5/3/2023
|
||||
;
|
||||
; Size-optimized LZSA2 decompressor by spke & uniabis (134 bytes)
|
||||
;
|
||||
|
||||
@@ -1039,5 +1039,6 @@ REGS_VGA:
|
||||
;==================================================================================================
|
||||
;
|
||||
VGA_IDAT:
|
||||
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
|
||||
.DB VGA_KBDST
|
||||
.DB VGA_KBDDATA
|
||||
|
||||
647
Source/HBIOS/vrc.asm
Normal file
647
Source/HBIOS/vrc.asm
Normal file
@@ -0,0 +1,647 @@
|
||||
;======================================================================
|
||||
; VIDEO DRIVER FOR VGARC
|
||||
; https://www.retrobrewcomputers.org/doku.php?id=builderpages:plasmo:vgarc1:vgarc1home
|
||||
;
|
||||
; WRITTEN BY: WAYNE WARTHEN -- 5/1/2023
|
||||
;======================================================================
|
||||
;
|
||||
; TODO:
|
||||
;
|
||||
;======================================================================
|
||||
; VGARC DRIVER - CONSTANTS
|
||||
;======================================================================
|
||||
;
|
||||
VRC_BASE .EQU $00 ; FIRST CHAR DATA PORT
|
||||
VRC_FONTBASE .EQU VRC_BASE + $0C ; FIRST FONT PORT
|
||||
VRC_SCROLLIO .EQU $F5 ; SCROLL REG PORT
|
||||
;
|
||||
VRC_KBDDATA .EQU $F4
|
||||
VRC_KBDST .EQU $F5
|
||||
;
|
||||
VRC_ROWS .EQU 48
|
||||
VRC_COLS .EQU 64
|
||||
;
|
||||
#DEFINE USEFONT8X8
|
||||
#DEFINE VRC_FONT FONT8X8
|
||||
;
|
||||
TERMENABLE .SET TRUE ; INCLUDE TERMINAL PSEUDODEVICE DRIVER
|
||||
;
|
||||
;======================================================================
|
||||
; VRC DRIVER - INITIALIZATION
|
||||
;======================================================================
|
||||
;
|
||||
VRC_INIT:
|
||||
LD IY,VRC_IDAT ; POINTER TO INSTANCE DATA
|
||||
;
|
||||
CALL NEWLINE ; FORMATTING
|
||||
PRTS("VRC: IO=0x$")
|
||||
LD A,VRC_BASE
|
||||
CALL PRTHEXBYTE
|
||||
CALL VRC_PROBE ; CHECK FOR HW PRESENCE
|
||||
JR Z,VRC_INIT1 ; CONTINUE IF HW PRESENT
|
||||
;
|
||||
; HARDWARE NOT PRESENT
|
||||
PRTS(" NOT PRESENT$")
|
||||
OR $FF ; SIGNAL FAILURE
|
||||
RET
|
||||
;
|
||||
VRC_INIT1:
|
||||
; RECORD DRIVER ACTIVE
|
||||
OR $FF
|
||||
LD (VRC_ACTIVE),A
|
||||
; DISPLAY CONSOLE DIMENSIONS
|
||||
LD A,VRC_COLS
|
||||
CALL PC_SPACE
|
||||
CALL PRTDECB
|
||||
LD A,'X'
|
||||
CALL COUT
|
||||
LD A,VRC_ROWS
|
||||
CALL PRTDECB
|
||||
PRTS(" TEXT$")
|
||||
|
||||
; HARDWARE INITIALIZATION
|
||||
CALL VRC_CRTINIT ; SETUP THE VGARC CHIP REGISTERS
|
||||
CALL VRC_LOADFONT ; LOAD FONT DATA FROM ROM TO VGARC STORAGE
|
||||
CALL VRC_VDARES ; RESET
|
||||
CALL KBD_INIT ; INITIALIZE KEYBOARD DRIVER
|
||||
|
||||
; ADD OURSELVES TO VDA DISPATCH TABLE
|
||||
LD BC,VRC_FNTBL ; BC := FUNCTION TABLE ADDRESS
|
||||
LD DE,VRC_IDAT ; DE := VGARC INSTANCE DATA PTR
|
||||
CALL VDA_ADDENT ; ADD ENTRY, A := UNIT ASSIGNED
|
||||
|
||||
; INITIALIZE EMULATION
|
||||
LD C,A ; C := ASSIGNED VIDEO DEVICE NUM
|
||||
LD DE,VRC_FNTBL ; DE := FUNCTION TABLE ADDRESS
|
||||
LD HL,VRC_IDAT ; HL := VGARC INSTANCE DATA PTR
|
||||
CALL TERM_ATTACH ; DO IT
|
||||
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
;
|
||||
;======================================================================
|
||||
; VGARC DRIVER - VIDEO DISPLAY ADAPTER (VDA) FUNCTIONS
|
||||
;======================================================================
|
||||
;
|
||||
VRC_FNTBL:
|
||||
.DW VRC_VDAINI
|
||||
.DW VRC_VDAQRY
|
||||
.DW VRC_VDARES
|
||||
.DW VRC_VDADEV
|
||||
.DW VRC_VDASCS
|
||||
.DW VRC_VDASCP
|
||||
.DW VRC_VDASAT
|
||||
.DW VRC_VDASCO
|
||||
.DW VRC_VDAWRC
|
||||
.DW VRC_VDAFIL
|
||||
.DW VRC_VDACPY
|
||||
.DW VRC_VDASCR
|
||||
.DW KBD_STAT
|
||||
.DW KBD_FLUSH
|
||||
.DW KBD_READ
|
||||
.DW VRC_VDARDC
|
||||
#IF (($ - VRC_FNTBL) != (VDA_FNCNT * 2))
|
||||
.ECHO "*** INVALID VRC FUNCTION TABLE ***\n"
|
||||
!!!!!
|
||||
#ENDIF
|
||||
|
||||
VRC_VDAINI:
|
||||
; RESET VDA
|
||||
; CURRENTLY IGNORES VIDEO MODE AND BITMAP DATA
|
||||
CALL VRC_VDARES ; RESET VDA
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDAQRY:
|
||||
LD C,$00 ; MODE ZERO IS ALL WE KNOW
|
||||
LD D,VRC_ROWS ; ROWS
|
||||
LD E,VRC_COLS ; COLS
|
||||
LD HL,0 ; EXTRACTION OF CURRENT BITMAP DATA NOT SUPPORTED YET
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDARES:
|
||||
XOR A ; CLEAR ATTRIBUTES (REV VIDEO OFF)
|
||||
LD (VRC_ATTR),A ; SAVE IT
|
||||
DEC A ; INIT CUR NESTING, INIT TO HIDDEN
|
||||
LD (VRC_CURSOR),A ; SAVE IT
|
||||
LD HL,0 ; ZERO THE SCROLL OFFSET
|
||||
LD (VRC_OFF),HL ; SAVE VALUE
|
||||
XOR A ; ZERO
|
||||
LD (VRC_LOFF),A ; SCROLL OFFSET (LINES)
|
||||
LD A,' ' ; BLANK THE SCREEN
|
||||
LD DE,VRC_ROWS*VRC_COLS ; FILL ENTIRE BUFFER
|
||||
CALL VRC_FILL ; DO IT
|
||||
LD DE,0 ; ROW = 0, COL = 0
|
||||
CALL VRC_XY ; SEND CURSOR TO TOP LEFT
|
||||
CALL VRC_SHOWCUR ; NOW SHOW THE CURSOR
|
||||
;
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDADEV:
|
||||
LD D,VDADEV_VRC ; D := DEVICE TYPE
|
||||
LD E,0 ; E := PHYSICAL UNIT IS ALWAYS ZERO
|
||||
LD H,0 ; H := 0, DRIVER HAS NO MODES
|
||||
LD L,VRC_BASE ; L := BASE I/O ADDRESS
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDASCS:
|
||||
SYSCHKERR(ERR_NOTIMPL) ; NOT IMPLEMENTED (YET)
|
||||
RET
|
||||
|
||||
VRC_VDASCP:
|
||||
CALL VRC_XY ; SET CURSOR POSITION
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDASAT:
|
||||
; INCOMING IS: -----RUB (R=REVERSE, U=UNDERLINE, B=BLINK)
|
||||
;
|
||||
; ALL WE SUPPORT IS REVERSE. MOVE BIT TO BIT 7 OF ATTR BYTE
|
||||
LD A,E ; GET ATTR VALUE
|
||||
RRCA ; ROTATE TO BIT 7
|
||||
RRCA
|
||||
RRCA
|
||||
AND $80 ; ENSURE ONLY BIT 7
|
||||
LD (VRC_ATTR),A ; SAVE IT
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; DONE
|
||||
|
||||
VRC_VDASCO:
|
||||
; INCOMING IS: IBGRIBGR (I=INTENSITY, B=BLUE, G=GREEN, R=RED)
|
||||
;
|
||||
; NONE SUPPORTED, IGNORE
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET ; DONE
|
||||
|
||||
VRC_VDAWRC:
|
||||
LD A,E ; CHARACTER TO WRITE GOES IN A
|
||||
CALL VRC_PUTCHAR ; PUT IT ON THE SCREEN
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDAFIL:
|
||||
LD A,E ; FILL CHARACTER GOES IN A
|
||||
EX DE,HL ; FILL LENGTH GOES IN DE
|
||||
CALL VRC_FILL ; DO THE FILL
|
||||
XOR A ; SIGNAL SUCCESS
|
||||
RET
|
||||
|
||||
VRC_VDACPY:
|
||||
; LENGTH IN HL, SOURCE ROW/COL IN DE, DEST IS VRC_POS
|
||||
; BLKCPY USES: HL=SOURCE, DE=DEST, BC=COUNT
|
||||
PUSH HL ; SAVE LENGTH
|
||||
CALL VRC_XY2IDX ; ROW/COL IN DE -> SOURCE ADR IN HL
|
||||
POP BC ; RECOVER LENGTH IN BC
|
||||
LD DE,(VRC_POS) ; PUT DEST IN DE
|
||||
JP VRC_BLKCPY ; DO A BLOCK COPY
|
||||
|
||||
VRC_VDASCR:
|
||||
LD A,E ; LOAD E INTO A
|
||||
OR A ; SET FLAGS
|
||||
RET Z ; IF ZERO, WE ARE DONE
|
||||
PUSH DE ; SAVE E
|
||||
JP M,VRC_VDASCR1 ; E IS NEGATIVE, REVERSE SCROLL
|
||||
CALL VRC_SCROLL ; SCROLL FORWARD ONE LINE
|
||||
POP DE ; RECOVER E
|
||||
DEC E ; DECREMENT IT
|
||||
JR VRC_VDASCR ; LOOP
|
||||
VRC_VDASCR1:
|
||||
CALL VRC_RSCROLL ; SCROLL REVERSE ONE LINE
|
||||
POP DE ; RECOVER E
|
||||
INC E ; INCREMENT IT
|
||||
JR VRC_VDASCR ; LOOP
|
||||
|
||||
;----------------------------------------------------------------------
|
||||
; READ VALUE AT CURRENT VDU BUFFER POSITION
|
||||
; RETURN E = CHARACTER, B = COLOUR, C = ATTRIBUTES
|
||||
;----------------------------------------------------------------------
|
||||
|
||||
VRC_VDARDC:
|
||||
OR $FF ; UNSUPPORTED FUNCTION
|
||||
RET
|
||||
;
|
||||
;======================================================================
|
||||
; VGARC DRIVER - PRIVATE DRIVER FUNCTIONS
|
||||
;======================================================================
|
||||
;
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; PROBE FOR VGARC HARDWARE
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
; ON RETURN, ZF SET INDICATES HARDWARE FOUND
|
||||
;
|
||||
VRC_PROBE:
|
||||
LD C,VRC_BASE + 1 ; +1 AVOIDS LEDS
|
||||
LD B,$00
|
||||
LD A,$AA
|
||||
OUT (C),A
|
||||
INC B
|
||||
LD A,$55
|
||||
OUT (C),A
|
||||
DEC B
|
||||
IN A,(C)
|
||||
CP $AA
|
||||
RET NZ
|
||||
INC B
|
||||
IN A,(C)
|
||||
CP $55
|
||||
RET
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; CRTC DISPLAY CONTROLLER CHIP INITIALIZATION
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_CRTINIT:
|
||||
XOR A ; ZERO ACCUM
|
||||
LD A,$80 ; ACTIVATE AND ZERO HW SCROLL
|
||||
OUT (VRC_SCROLLIO),A ; RESET HW SCROLL
|
||||
RET ; DONE
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; LOAD FONT DATA
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_LOADFONT:
|
||||
;
|
||||
#IF USELZSA2
|
||||
LD (VRC_STACK),SP ; SAVE STACK
|
||||
LD HL,(VRC_STACK) ; AND SHIFT IT
|
||||
LD DE,$2000 ; DOWN 4KB TO
|
||||
OR A ; CREATE A
|
||||
SBC HL,DE ; DECOMPRESSION BUFFER
|
||||
LD SP,HL ; HL POINTS TO BUFFER
|
||||
EX DE,HL ; START OF STACK BUFFER
|
||||
PUSH DE ; SAVE IT
|
||||
LD HL,VRC_FONT ; START OF FONT DATA
|
||||
CALL DLZSA2 ; DECOMPRESS TO DE
|
||||
POP HL ; RECALL STACK BUFFER POSITION
|
||||
#ELSE
|
||||
LD HL,VRC_FONT ; START OF FONT DATA
|
||||
#ENDIF
|
||||
;
|
||||
LD DE,0+(128*8)-1 ; LENGTH OF FONT DATA - 1
|
||||
ADD HL,DE ; ADD TO HL
|
||||
; LD HL,ENDFONT-1
|
||||
LD BC,VRC_FONTBASE+3 ; WORK BACKWARDS
|
||||
OTDR ; DO 4 PAGES
|
||||
DEC C
|
||||
OTDR
|
||||
DEC C
|
||||
OTDR
|
||||
DEC C
|
||||
OTDR
|
||||
DEC C
|
||||
;
|
||||
#IF USELZSA2
|
||||
LD HL,(VRC_STACK) ; ERASE DECOMPRESS BUFFER
|
||||
LD SP,HL ; BY RESTORING THE STACK
|
||||
RET ; DONE
|
||||
VRC_STACK .DW 0
|
||||
#ELSE
|
||||
RET
|
||||
#ENDIF
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; SET CURSOR POSITION TO ROW IN D AND COLUMN IN E
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_XY:
|
||||
PUSH DE ; SAVE NEW POSITION FOR NOW
|
||||
CALL VRC_HIDECUR ; HIDE THE CURSOR
|
||||
POP DE ; RECOVER INCOMING ROW/COL
|
||||
CALL VRC_XY2IDX ; CONVERT ROW/COL TO BUF IDX
|
||||
LD (VRC_POS),HL ; SAVE THE RESULT (DISPLAY POSITION)
|
||||
JP VRC_SHOWCUR ; SHOW THE CURSOR AND EXIT
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; CONVERT XY COORDINATES IN DE INTO LINEAR INDEX IN HL
|
||||
; D=ROW, E=COL
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_XY2IDX:
|
||||
LD A,E ; SAVE COLUMN NUMBER IN A
|
||||
LD H,D ; SET H TO ROW NUMBER
|
||||
LD E,VRC_COLS ; SET E TO ROW LENGTH
|
||||
CALL MULT8 ; MULTIPLY TO GET ROW OFFSET, H * E = HL, E=0, B=0
|
||||
LD E,A ; GET COLUMN BACK
|
||||
ADD HL,DE ; ADD IT IN
|
||||
|
||||
LD DE,(VRC_OFF) ; SCREEN OFFSET
|
||||
ADD HL,DE ; ADJUST
|
||||
;
|
||||
PUSH HL ; SAVE IT
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; SUBTRACT FROM HL
|
||||
JR C,VRC_XY2IDX1 ; BYPASS IF NO WRAP
|
||||
POP DE ; THROW AWAY TOS
|
||||
RET ; DONE
|
||||
VRC_XY2IDX1:
|
||||
POP HL ; NO WRAP, RESTORE
|
||||
RET ; RETURN
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; SHOW OR HIDE CURSOR
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
; VGARC USES HIGH BIT OF CHAR VALUE FOR INVERSE VIDEO. WE HAVE NO
|
||||
; HARDWARE CURSOR, SO WE LEVERAGE THE INVERSE VIDEO TO SHOW A CURSOR.
|
||||
; SINCE ANY OPERATION THAT POTENTIALLY OVERWERITES THE CURSOR POSITION
|
||||
; COULD DESTROY THE CURSOR, WE HAVE A COUPLE FUNCTIONS TO SHOW AND
|
||||
; HIDE THE CURSOR. A VARIABLE IS USED TO TRACK THE SHOW/HIDE
|
||||
; OPERATIONS BECAUSE WE MAY HAVE NESTED CALLS. ZERO MEANS SHOW
|
||||
; REAL CURSOR. ANY VALUE LESS THAN ZERO MEANS HIDDEN.
|
||||
;
|
||||
VRC_SHOWCUR:
|
||||
LD A,(VRC_CURSOR) ; GET CURRENT NESTING VALUE
|
||||
INC A ; INCREMENT TO SHOW
|
||||
LD (VRC_CURSOR),A ; SAVE IT
|
||||
RET NZ ; ALREADY SHOWN, NOTHING TO DO
|
||||
;
|
||||
; WE TRANSITIONED FROM NON-ZERO TO ZERO. NEED TO ACTUALLY
|
||||
; SHOW THE CURSOR NOW.
|
||||
;
|
||||
JR VRC_FLIPCUR
|
||||
;
|
||||
VRC_HIDECUR:
|
||||
LD A,(VRC_CURSOR) ; GET CURRENT NESTING VALUE
|
||||
DEC A ; DECREMENT TO HIDE
|
||||
LD (VRC_CURSOR),A ; SAVE IT
|
||||
INC A ; BACK TO ORIGINAL VALUE
|
||||
RET NZ ; ALREADY HIDDEN, NOTHING TO DO
|
||||
;
|
||||
; WE TRANSITIONED FROM ZERO TO NEGATIVE. NEED TO ACTUALLY
|
||||
; HIDE THE CURSOR NOW. SINCE SHOWING AND HIDING ARE THE
|
||||
; SAME OPERATION (FLIP REV VID BIT), WE REUSE CODE ABOVE.
|
||||
;
|
||||
JR VRC_FLIPCUR
|
||||
;
|
||||
VRC_FLIPCUR:
|
||||
; SHOWING OR HIDING THE CURSOR IS THE SAME OPERATION.
|
||||
; SO WE USE COMMON CODE TO FLIP THE REV VID BIT.
|
||||
LD HL,(VRC_POS) ; CURSOR POSITION
|
||||
LD B,L ; INVERT FOR I/O
|
||||
LD C,H
|
||||
IN A,(C) ; GET VALUE
|
||||
XOR $80 ; FLIP REV VID BIT
|
||||
OUT (C),A ; WRITE NEW VALUE
|
||||
RET
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; WRITE VALUE IN A TO CURRENT VDU BUFFER POSITION, ADVANCE CURSOR
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_PUTCHAR:
|
||||
; WRITE CHAR AT CURRENT CURSOR POSITION. SINCE THE CURSOR
|
||||
; IS JUST THE HIGH BIT (REV VIDEO), WE FIRST TURN OFF THE
|
||||
; CURSOR, WRITE THE CHAR, UPDATE THE CURSOR POSITION, AND
|
||||
; FINALLY TURN THE CURSOR BACK ON AT THE NEW POSITION.
|
||||
;
|
||||
PUSH AF ; SAVE INCOMING CHAR
|
||||
CALL VRC_HIDECUR ; HIDE CURSOR
|
||||
POP AF
|
||||
LD HL,(VRC_POS) ; GET CUR BUF POSITION
|
||||
LD B,L ; INVERT FOR I/O
|
||||
LD C,H
|
||||
AND $7F ; SUPPRESS ATTRIBUTE (HI BIT)
|
||||
LD L,A ; PUT VALUE IN L
|
||||
LD A,(VRC_ATTR) ; GET CURRENT ATTRIBUTE
|
||||
OR L ; COMBINE WITH CHAR VALUE
|
||||
OUT (C),A ; WRITE VALUE TO BUFFER
|
||||
;
|
||||
; SET CURSOR AT NEW POSITION
|
||||
LD HL,(VRC_POS) ; GET CURRENT BUF OFFSET
|
||||
INC HL ; INCREMENT
|
||||
PUSH HL ; SAVE IT
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; SUBTRACT FROM HL
|
||||
JR C,VRC_PUTCHAR1 ; BYPASS IF NO WRAP
|
||||
POP DE ; THROW AWAY TOS
|
||||
LD HL,0 ; BACK TO START
|
||||
JR VRC_PUTCHAR2 ; CONTINUE
|
||||
VRC_PUTCHAR1:
|
||||
POP HL ; NO WRAP, RESTORE
|
||||
VRC_PUTCHAR2:
|
||||
LD (VRC_POS),HL ; SAVE NEW POSITION
|
||||
JP VRC_SHOWCUR ; SHOW IT AND RETURN
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; FILL AREA IN BUFFER WITH SPECIFIED CHARACTER AND CURRENT COLOR/ATTRIBUTE
|
||||
; STARTING AT THE CURRENT FRAME BUFFER POSITION
|
||||
; A: FILL CHARACTER
|
||||
; DE: NUMBER OF CHARACTERS TO FILL
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_FILL:
|
||||
LD (VRC_FILL1+1),A ; SAVE FILL CHAR
|
||||
PUSH DE ; SAVE INCOMING DE
|
||||
CALL VRC_HIDECUR ; HIDE CURSOR
|
||||
POP DE ; RESTORE INCOMING DE
|
||||
LD HL,(VRC_POS) ; STARTING POSITION
|
||||
;
|
||||
VRC_FILL1:
|
||||
LD A,$FF ; FILL CHAR
|
||||
LD B,L ; INVERT FOR I/O
|
||||
LD C,H
|
||||
OUT (C),A ; PUT CHAR TO BUF
|
||||
;
|
||||
DEC DE ; DECREMENT COUNT
|
||||
LD A,D ; TEST FOR ZERO
|
||||
OR E
|
||||
JP Z,VRC_SHOWCUR ; EXIT VIA SHOW CURSOR IF DONE
|
||||
;
|
||||
INC HL ; INCREMENT
|
||||
PUSH HL ; SAVE IT
|
||||
LD BC,VRC_ROWS * VRC_COLS ; BC := BUF SIZE
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,BC ; SUBTRACT FROM HL
|
||||
JR C,VRC_FILL2 ; BYPASS IF NO WRAP
|
||||
POP BC ; THROW AWAY TOS
|
||||
LD HL,0 ; BACK TO START
|
||||
JR VRC_FILL3 ; CONTINUE
|
||||
VRC_FILL2:
|
||||
POP HL ; NO WRAP, RESTORE
|
||||
VRC_FILL3:
|
||||
LD (VRC_POS),HL ; SAVE NEW POSITION
|
||||
JR VRC_FILL1 ; LOOP TILL DONE
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; SCROLL ENTIRE SCREEN FORWARD BY ONE LINE (CURSOR POSITION UNCHANGED)
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_SCROLL:
|
||||
; SCROLL DOWN 1 LINE VIA HARDWARE
|
||||
CALL VRC_HIDECUR ; SUPPRESS CURSOR
|
||||
LD A,(VRC_LOFF) ; GET LINE OFFSET
|
||||
INC A ; BUMP
|
||||
CP VRC_ROWS ; OVERFLOW?
|
||||
JR C,VRC_SCROLL1 ; IF NOT, SKIP
|
||||
XOR A ; ELSE, BACK TO ZERO
|
||||
VRC_SCROLL1:
|
||||
LD (VRC_LOFF),A ; SAVE NEW VALUE
|
||||
OR $80 ; SET HW SCROLL ENABLE BIT
|
||||
OUT (VRC_SCROLLIO),A ; DO IT
|
||||
;
|
||||
; ADJUST BUFFER OFFSET
|
||||
LD HL,(VRC_OFF) ; BUFFER OFFSET
|
||||
LD DE,VRC_COLS ; COLUMNS
|
||||
ADD HL,DE ; ADD TO GET NEW OFFSET
|
||||
PUSH HL ; SAVE IT
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DE := BUF SIZE
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; SUBTRACT FROM HL
|
||||
JR C,VRC_SCROLL2 ; BYPASS IF NO WRAP
|
||||
POP DE ; BURN TOS
|
||||
JR VRC_SCROLL3 ; CONTINUE
|
||||
VRC_SCROLL2:
|
||||
POP HL ; NO WRAP, RESTORE HL
|
||||
VRC_SCROLL3:
|
||||
LD (VRC_OFF),HL ; SAVE NEW OFFSET
|
||||
;
|
||||
; FILL EXPOSED LINE
|
||||
LD HL,(VRC_POS) ; GET CURSOR POS
|
||||
PUSH HL ; SAVE IT
|
||||
LD D,VRC_ROWS - 1 ; LAST ROW
|
||||
LD E,0 ; FIRST COLUMN
|
||||
CALL VRC_XY2IDX ; HL = START OF LAST LINE
|
||||
LD (VRC_POS),HL ; SET FILL POSITION
|
||||
LD A,' ' ; FILL WITH BLANKS
|
||||
LD DE,VRC_COLS ; FILL ONE LINE
|
||||
CALL VRC_FILL ; FILL LAST LINE
|
||||
POP HL ; RECOVER CURSOR POS
|
||||
LD (VRC_POS),HL ; PUT VALUE BACK
|
||||
;
|
||||
; ADJUST CURSOR POSITION
|
||||
LD HL,(VRC_POS) ; CURSOR POSITION
|
||||
LD DE,VRC_COLS ; COLUMNS
|
||||
ADD HL,DE ; NEW CURSOR POS
|
||||
PUSH HL ; SAVE IT
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DE := DISPLAY SIZE
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; SUBTRACT FROM HL
|
||||
JR C,VRC_SCROLL4 ; BYPASS IF NO WRAP
|
||||
POP DE ; BURN TOS
|
||||
JR VRC_SCROLL5 ; CONTINUE
|
||||
VRC_SCROLL4:
|
||||
POP HL ; NO WRAP, RESTORE HL
|
||||
VRC_SCROLL5:
|
||||
LD (VRC_POS),HL ; SAVE NEW CURSOR POS
|
||||
JP VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; REVERSE SCROLL ENTIRE SCREEN BY ONE LINE (CURSOR POSITION UNCHANGED)
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_RSCROLL:
|
||||
; SCROLL UP 1 LINE VIA HARDWARE
|
||||
CALL VRC_HIDECUR ; SUPPRESS CURSOR
|
||||
LD A,(VRC_LOFF) ; GET LINE OFFSET
|
||||
DEC A ; BUMP
|
||||
CP $FF ; OVERFLOW?
|
||||
JR NZ,VRC_RSCROLL1 ; IF NOT, SKIP
|
||||
LD A,VRC_ROWS - 1 ; ELSE, BACK TO LAST ROW
|
||||
VRC_RSCROLL1:
|
||||
LD (VRC_LOFF),A ; SAVE NEW VALUE
|
||||
OR $80 ; SET HW SCROLL ENABLE BIT
|
||||
OUT (VRC_SCROLLIO),A ; DO IT
|
||||
;
|
||||
; ADJUST BUFFER OFFSET
|
||||
LD HL,(VRC_OFF) ; BUFFER OFFSET
|
||||
LD DE,VRC_COLS ; COLUMNS
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; SUBTRACT TO GET NEW OFFSET
|
||||
PUSH HL ; SAVE IT
|
||||
JR NC,VRC_RSCROLL2 ; BYPASS IF NO WRAP
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DISPLAY SIZE
|
||||
ADD HL,DE ; HANDLE WRAP
|
||||
POP DE ; BURN TOS
|
||||
JR VRC_RSCROLL3 ; CONTINUE
|
||||
VRC_RSCROLL2:
|
||||
POP HL ; NO WRAP, RESTORE HL
|
||||
VRC_RSCROLL3:
|
||||
LD (VRC_OFF),HL ; SAVE NEW OFFSET
|
||||
;
|
||||
; FILL EXPOSED LINE
|
||||
LD HL,(VRC_POS) ; GET CURSOR POS
|
||||
PUSH HL ; SAVE IT
|
||||
LD D,0 ; FIRST ROW
|
||||
LD E,0 ; FIRST COLUMN
|
||||
CALL VRC_XY2IDX ; HL = START OF FIRST LINE
|
||||
LD (VRC_POS),HL ; SET FILL POSITION
|
||||
LD A,' ' ; FILL WITH BLANKS
|
||||
LD DE,VRC_COLS ; FILL ONE LINE
|
||||
CALL VRC_FILL ; FILL FIRST LINE
|
||||
POP HL ; RECOVER CURSOR POS
|
||||
LD (VRC_POS),HL ; PUT VALUE BACK
|
||||
;
|
||||
; ADJUST CURSOR POSITION
|
||||
LD HL,(VRC_POS) ; CURSOR POSITION
|
||||
LD DE,VRC_COLS ; COLUMNS
|
||||
OR A ; CLEAR CARRY
|
||||
SBC HL,DE ; NEW CURSOR POS
|
||||
PUSH HL ; SAVE IT
|
||||
JR NC,VRC_RSCROLL4 ; BYPASS IF NO WRAP
|
||||
LD DE,VRC_ROWS * VRC_COLS ; DISPLAY SIZE
|
||||
ADD HL,DE ; HANDLE WRAP
|
||||
POP DE ; BURN TOS
|
||||
JR VRC_RSCROLL5 ; CONTINUE
|
||||
VRC_RSCROLL4:
|
||||
POP HL ; NO WRAP, RESTORE HL
|
||||
VRC_RSCROLL5:
|
||||
LD (VRC_POS),HL ; SAVE NEW CURSOR POS
|
||||
JP VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
|
||||
;
|
||||
;----------------------------------------------------------------------
|
||||
; BLOCK COPY BC BYTES FROM HL TO DE
|
||||
;----------------------------------------------------------------------
|
||||
;
|
||||
VRC_BLKCPY:
|
||||
PUSH BC
|
||||
PUSH HL
|
||||
CALL VRC_HIDECUR
|
||||
POP HL
|
||||
POP BC
|
||||
;
|
||||
VRC_BLKCPY1:
|
||||
LD A,B
|
||||
OR C
|
||||
JP Z,VRC_SHOWCUR ; EXIT VIA SHOW CURSOR
|
||||
;
|
||||
PUSH BC ; SAVE LOOP CTL
|
||||
LD B,L ; INVERT FOR I/O
|
||||
LD C,H
|
||||
IN A,(C) ; GET SOURCE CHAR
|
||||
LD B,E ; INVERT FOR I/O
|
||||
LD C,D
|
||||
OUT (C),A ; WRITE DEST CHAR
|
||||
POP BC ; RESTORE LOOP CTL
|
||||
;
|
||||
INC HL ; NEXT SRC CHAR
|
||||
INC DE ; NEXT DEST CHAR
|
||||
DEC BC ; DEC COUNT
|
||||
JR VRC_BLKCPY1 ; LOOP TILL DONE
|
||||
;
|
||||
;==================================================================================================
|
||||
; VGARC DRIVER - DATA
|
||||
;==================================================================================================
|
||||
;
|
||||
VRC_ATTR .DB 0 ; CURRENT COLOR
|
||||
VRC_POS .DW 0 ; CURRENT DISPLAY POSITION
|
||||
VRC_OFF .DW 0 ; SCREEN START OFFSET INTO DISP BUF
|
||||
VRC_LOFF .DB 0 ; LINE OFFSET INTO DISP BUF
|
||||
VRC_CURSOR .DB 0 ; CURSOR NESTING LEVEL
|
||||
VRC_ACTIVE .DB FALSE ; FLAG FOR DRIVER ACTIVE
|
||||
;
|
||||
;==================================================================================================
|
||||
; VGA DRIVER - INSTANCE DATA
|
||||
;==================================================================================================
|
||||
;
|
||||
VRC_IDAT:
|
||||
.DB KBDMODE_VRC ; VGARC KEYBOARD CONTROLLER
|
||||
.DB VRC_KBDST
|
||||
.DB VRC_KBDDATA
|
||||
@@ -2,7 +2,7 @@
|
||||
#DEFINE RMN 3
|
||||
#DEFINE RUP 0
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "3.3.0-dev.1"
|
||||
#DEFINE BIOSVER "3.3.0-dev.10"
|
||||
#define rmj RMJ
|
||||
#define rmn RMN
|
||||
#define rup RUP
|
||||
|
||||
@@ -3,5 +3,5 @@ rmn equ 3
|
||||
rup equ 0
|
||||
rtp equ 0
|
||||
biosver macro
|
||||
db "3.3.0-dev.1"
|
||||
db "3.3.0-dev.10"
|
||||
endm
|
||||
|
||||
Reference in New Issue
Block a user