mirror of
https://github.com/wwarthen/RomWBW.git
synced 2026-02-06 14:11:48 -06:00
Easy Z80 Platform
Make Easy Z80 a separate platform.
This commit is contained in:
@@ -1070,6 +1070,10 @@ HINIT:
|
||||
LD DE,PLT_RC
|
||||
CP $07 ; RC2014
|
||||
JR Z,RTC_INIT2
|
||||
CP $08 ; RC2014 w/ Z180
|
||||
JR Z,RTC_INIT2
|
||||
CP $09 ; Easy Z80
|
||||
JR Z,RTC_INIT2
|
||||
;
|
||||
; Unknown platform
|
||||
LD DE,PLTERR ; BIOS error message
|
||||
@@ -1654,7 +1658,7 @@ UBTAG .TEXT "UNA UBIOS"
|
||||
PLT_SBC .TEXT ", SBC/Zeta RTC Latch Port 0x70\r\n$"
|
||||
PLT_N8 .TEXT ", N8 RTC Latch Port 0x88\r\n$"
|
||||
PLT_MK4 .TEXT ", Mark 4 RTC Latch Port 0x8A\r\n$"
|
||||
PLT_RC .TEXT ", RC2014 RTC Latch Port 0xC0\r\n$"
|
||||
PLT_RC .TEXT ", RC2014 RTC Module Latch Port 0xC0\r\n$"
|
||||
|
||||
;
|
||||
; Generic FOR-NEXT loop algorithm
|
||||
|
||||
@@ -87,6 +87,9 @@ TYPMYM .EQU 3 ; FILTYP value for MYM sound file
|
||||
LD DE,MSGRC ; Message for RC2014 platform
|
||||
CP 7 ; RC2014?
|
||||
JR Z,_SETP ; If so, set ports
|
||||
LD DE,MSGEZ ; Message for Easy Z80 platform
|
||||
CP 9 ; Easy Z80?
|
||||
JR Z,_SETP ; If so, same ports as RC2014
|
||||
LD HL,$9D9C ; For N8, RSEL=9C, RDAT=9D
|
||||
LD DE,MSGN8 ; Message for N8 platform
|
||||
CP 4 ; N8?
|
||||
@@ -610,9 +613,10 @@ MSGHW .DB "Hardware error, sound chip not detected!",0
|
||||
MSGNAM .DB "Sound filename invalid (must be .PT2, .PT3, or .MYM)",0
|
||||
MSGFIL .DB "Sound file not found!",0
|
||||
MSGSIZ .DB "Sound file too large to load!",0
|
||||
MSGRC .DB "RC2014 Ed Brindley Sound Module",0
|
||||
MSGRC .DB "RC2014 w/ Ed Brindley Sound Module",0
|
||||
MSGEZ .DB "Easy Z80 w/ Ed Brindley Sound Module",0
|
||||
MSGN8 .DB "RetroBrew N8 Onboard Sound System",0
|
||||
MSGSCG .DB "RetroBrew SCG ECB Adapter",0
|
||||
MSGSCG .DB "RetroBrew SCG ECB Adapter Sound System",0
|
||||
MSGTIM .DB ", timer mode",0
|
||||
MSGDLY .DB ", delay mode",0
|
||||
MSGPLY .DB "Playing...",0
|
||||
|
||||
@@ -133,6 +133,8 @@ MINIT1:
|
||||
JR Z,RCINIT ; Handle RC2014 special
|
||||
CP 8 ; Check for RC2014 w/ Z180
|
||||
JR Z,ARCINIT ; Handle RC2014 w/ Z180
|
||||
CP 9 ; Check for Easy Z80
|
||||
JR Z,RCINIT ; Treat same as RC2014 for now
|
||||
;
|
||||
; Check for Z180 which implies ASCI serial port
|
||||
LD DE,00202H ; D := 2, E := 2
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 9
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "2.9.1-pre.11"
|
||||
#DEFINE BIOSVER "2.9.1-pre.12"
|
||||
|
||||
@@ -28,8 +28,8 @@ param([string]$Platform = "", [string]$Config = "", [string]$RomSize = "512", [s
|
||||
$Platform = $Platform.ToUpper()
|
||||
while ($true)
|
||||
{
|
||||
if (($Platform -eq "SBC") -or ($Platform -eq "ZETA") -or ($Platform -eq "ZETA2") -or ($Platform -eq "RC") -or ($Platform -eq "RC180") -or ($Platform -eq "N8") -or ($Platform -eq "MK4") -or ($Platform -eq "UNA")) {break}
|
||||
$Platform = (Read-Host -prompt "Platform [SBC|ZETA|ZETA2|RC|RC180|N8|MK4|UNA]").Trim().ToUpper()
|
||||
if (($Platform -eq "SBC") -or ($Platform -eq "ZETA") -or ($Platform -eq "ZETA2") -or ($Platform -eq "RC") -or ($Platform -eq "EZZ80") -or ($Platform -eq "RC180") -or ($Platform -eq "N8") -or ($Platform -eq "MK4") -or ($Platform -eq "UNA")) {break}
|
||||
$Platform = (Read-Host -prompt "Platform [SBC|ZETA|ZETA2|RC|EZZ80|RC180|N8|MK4|UNA]").Trim().ToUpper()
|
||||
}
|
||||
|
||||
#
|
||||
|
||||
9
Source/HBIOS/Config/EZZ80_std.asm
Normal file
9
Source/HBIOS/Config/EZZ80_std.asm
Normal file
@@ -0,0 +1,9 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; EASY Z80 STANDARD CONFIGURATION
|
||||
;==================================================================================================
|
||||
;
|
||||
#include "cfg_ezz80.asm"
|
||||
;
|
||||
CPUOSC .SET 10000000 ; CPU OSC FREQ
|
||||
DEFSERCFG .SET SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE)
|
||||
@@ -1,23 +0,0 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; RC2014 - EASY Z80 CONFIGURATION
|
||||
;==================================================================================================
|
||||
;
|
||||
#include "cfg_rc.asm"
|
||||
;
|
||||
CPUOSC .SET 10000000 ; CPU OSC FREQ
|
||||
DEFSIOCLK .SET 1843200 ; SIO CLOCK FREQ
|
||||
DEFSERCFG .SET SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE)
|
||||
;
|
||||
SIOENABLE .SET TRUE ; TRUE TO AUTO-DETECT ZILOG SIO/2
|
||||
SIOMODE .SET SIOMODE_EZZ80 ; TYPE OF SIO/2 TO DETECT: SIOMODE_RC, SIOMODE_SMB, SIOMODE_EZZ80
|
||||
ACIAENABLE .SET FALSE ; TRUE TO AUTO-DETECT MOTOROLA 6850 ACIA
|
||||
;
|
||||
FDENABLE .SET FALSE ; TRUE FOR FLOPPY SUPPORT
|
||||
FDMODE .SET FDMODE_RCWDC ; FDMODE_RCSMC, FDMODE_RCWDC
|
||||
;
|
||||
IDEENABLE .SET TRUE ; TRUE FOR IDE DEVICE SUPPORT (CF MODULE)
|
||||
IDEMODE .SET IDEMODE_RC ; TYPE OF CF MODULE: IDEMODE_RC, IDEMODE_SMB
|
||||
PPIDEENABLE .SET FALSE ; TRUE FOR PPIDE DEVICE SUPPORT (PPIDE MODULE)
|
||||
;
|
||||
DSRTCENABLE .SET FALSE ; DS-1302 CLOCK DRIVER
|
||||
86
Source/HBIOS/cfg_ezz80.asm
Normal file
86
Source/HBIOS/cfg_ezz80.asm
Normal file
@@ -0,0 +1,86 @@
|
||||
;
|
||||
;==================================================================================================
|
||||
; ROMWBW 2.X CONFIGURATION DEFAULTS FOR EASY Z80
|
||||
;==================================================================================================
|
||||
;
|
||||
; BUILD CONFIGURATION OPTIONS
|
||||
;
|
||||
CPUOSC .EQU 10000000 ; CPU OSC FREQ
|
||||
RAMSIZE .EQU 512 ; SIZE OF RAM IN KB, MUST MATCH YOUR HARDWARE!!!
|
||||
DEFSERCFG .EQU SER_115200_8N1 ; DEFAULT SERIAL LINE CONFIG (SHOULD MATCH ABOVE)
|
||||
INTMODE .EQU 1 ; 0=NONE, 1=INT MODE 1, 2=INT MODE 2
|
||||
;
|
||||
CRTACT .EQU FALSE ; CRT ACTIVATION AT STARTUP
|
||||
VDAEMU .EQU EMUTYP_ANSI ; DEFAULT VDA EMULATION (EMUTYP_TTY, EMUTYP_ANSI, ...)
|
||||
;
|
||||
DSKYENABLE .EQU FALSE ; TRUE FOR DSKY SUPPORT (DO NOT COMBINE WITH PPIDE)
|
||||
;
|
||||
HTIMENABLE .EQU FALSE ; TRUE FOR SIMH TIMER SUPPORT
|
||||
SIMRTCENABLE .EQU FALSE ; SIMH CLOCK DRIVER
|
||||
DSRTCENABLE .EQU FALSE ; DS-1302 CLOCK DRIVER
|
||||
DSRTCMODE .EQU DSRTCMODE_STD ; DSRTCMODE_STD, DSRTCMODE_MFPIC
|
||||
DSRTCCHG .EQU FALSE ; DS-1302 CONFIGURE CHARGE ON (TRUE) OR OFF (FALSE)
|
||||
;
|
||||
ASCIENABLE .EQU FALSE ; TRUE FOR Z180 ASCI SUPPORT
|
||||
UARTENABLE .EQU FALSE ; TRUE FOR UART SUPPORT (ALMOST ALWAYS WANT THIS TO BE TRUE)
|
||||
UARTOSC .EQU 1843200 ; UART OSC FREQUENCY
|
||||
ACIAENABLE .EQU FALSE ; TRUE FOR MOTOROLA 6850 ACIA SUPPORT
|
||||
;
|
||||
SIOENABLE .EQU TRUE ; TRUE FOR ZILOG SIO SUPPORT
|
||||
SIOMODE .EQU SIOMODE_EZZ80 ; SIOMODE_RC, SIOMODE_SMB, SIOMODE_ZP
|
||||
DEFSIOACFG .EQU DEFSERCFG ; DEFAULT SERIAL LINE CONFIG
|
||||
DEFSIOBCFG .EQU DEFSERCFG ; DEFAULT SERIAL LINE CONFIG
|
||||
DEFSIODIV .EQU 1 ; 1=RC2014/SMB, 2/4/8/16/32/64/128/256=ZP depending on jumper X5
|
||||
DEFSIOCLK .EQU 1843200 ; 2457600/4915200=ZP,7372800=RC/SMB - SIO FIXED OSC FREQUENCY
|
||||
SIODEBUG .EQU FALSE ;PS
|
||||
;
|
||||
VDUENABLE .EQU FALSE ; TRUE FOR VDU BOARD SUPPORT
|
||||
CVDUENABLE .EQU FALSE ; TRUE FOR CVDU BOARD SUPPORT
|
||||
NECENABLE .EQU FALSE ; TRUE FOR uPD7220 BOARD SUPPORT
|
||||
TMSENABLE .EQU FALSE ; TRUE FOR N8 (TMS9918) VIDEO/KBD SUPPORT
|
||||
VGAENABLE .EQU FALSE ; TRUE FOR VGA VIDEO/KBD SUPPORT
|
||||
;
|
||||
SPKENABLE .EQU FALSE ; TRUE FOR RTC LATCH IOBIT SOUND
|
||||
AYENABLE .EQU FALSE ; TRUE FOR AY PSG SOUND
|
||||
;
|
||||
MDENABLE .EQU TRUE ; TRUE FOR ROM/RAM DISK SUPPORT (ALMOST ALWAYS WANT THIS ENABLED)
|
||||
MDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF MDENABLE = TRUE)
|
||||
;
|
||||
FDENABLE .EQU FALSE ; TRUE FOR FLOPPY SUPPORT
|
||||
FDMODE .EQU FDMODE_RCWDC ; FDMODE_DIO, FDMODE_ZETA, FDMODE_DIDE, FDMODE_N8, FDMODE_DIO3
|
||||
FDTRACE .EQU 1 ; 0=SILENT, 1=FATAL ERRORS, 2=ALL ERRORS, 3=EVERYTHING (ONLY RELEVANT IF FDENABLE = TRUE)
|
||||
FDMEDIA .EQU FDM144 ; FDM720, FDM144, FDM360, FDM120 (ONLY RELEVANT IF FDENABLE = TRUE)
|
||||
FDMEDIAALT .EQU FDM720 ; ALTERNATE MEDIA TO TRY, SAME CHOICES AS ABOVE (ONLY RELEVANT IF FDMAUTO = TRUE)
|
||||
FDMAUTO .EQU TRUE ; SELECT BETWEEN MEDIA OPTS ABOVE AUTOMATICALLY
|
||||
;
|
||||
RFENABLE .EQU FALSE ; TRUE FOR RAM FLOPPY SUPPORT
|
||||
;
|
||||
IDEENABLE .EQU TRUE ; TRUE FOR IDE SUPPORT
|
||||
IDEMODE .EQU IDEMODE_RC ; IDEMODE_DIO, IDEMODE_DIDE, IDEMODE_RC
|
||||
IDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
IDE8BIT .EQU TRUE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
|
||||
;
|
||||
PPIDEENABLE .EQU FALSE ; TRUE FOR PPIDE SUPPORT (DO NOT COMBINE WITH DSKYENABLE)
|
||||
PPIDEMODE .EQU PPIDEMODE_RC ; PPIDEMODE_SBC, PPPIDEMODE_DIO3, PPIDEMODE_MFP, PPIDEMODE_N8, PPIDEMODE_RC
|
||||
PPIDETRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPIDEENABLE = TRUE)
|
||||
PPIDE8BIT .EQU FALSE ; USE IDE 8BIT TRANSFERS (PROBABLY ONLY WORKS FOR CF CARDS!)
|
||||
;
|
||||
SDENABLE .EQU FALSE ; TRUE FOR SD SUPPORT
|
||||
SDMODE .EQU SDMODE_PPI ; SDMODE_JUHA, SDMODE_CSIO, SDMODE_UART, SDMODE_PPI, SDMODE_DSD
|
||||
SDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF IDEENABLE = TRUE)
|
||||
SDCSIOFAST .EQU FALSE ; TABLE-DRIVEN BIT INVERTER
|
||||
;
|
||||
PRPENABLE .EQU FALSE ; TRUE FOR PROPIO SUPPORT
|
||||
;
|
||||
PPPENABLE .EQU FALSE ; TRUE FOR PARPORTPROP SUPPORT
|
||||
PPPSDENABLE .EQU TRUE ; TRUE FOR PARPORTPROP SD SUPPORT
|
||||
PPPSDTRACE .EQU 1 ; 0=SILENT, 1=ERRORS, 2=EVERYTHING (ONLY RELEVANT IF PPPENABLE = TRUE)
|
||||
PPPCONENABLE .EQU TRUE ; TRUE FOR PROPIO CONSOLE SUPPORT (PS/2 KBD & VGA VIDEO)
|
||||
;
|
||||
HDSKENABLE .EQU FALSE ; TRUE FOR SIMH HDSK SUPPORT
|
||||
;
|
||||
TERMENABLE .EQU FALSE ; TERM PSEUDO DEVICE, WILL BE ENABLED IF A VDA IS ENABLED
|
||||
;
|
||||
BOOTTYPE .EQU BT_MENU ; BT_MENU (WAIT FOR KEYPRESS), BT_AUTO (BOOT_DEFAULT AFTER BOOT_TIMEOUT SECS)
|
||||
BOOT_TIMEOUT .EQU 20 ; APPROX TIMEOUT IN SECONDS FOR AUTOBOOT, 0 FOR IMMEDIATE
|
||||
BOOT_DEFAULT .EQU 'Z' ; SELECTION TO INVOKE AT TIMEOUT
|
||||
@@ -290,7 +290,7 @@ HBX_ROM:
|
||||
OUT (MPCL_ROM),A ; SET ROM PAGE SELECTOR
|
||||
RET ; DONE
|
||||
#ENDIF
|
||||
#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180))
|
||||
#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180) | (PLATFORM == PLT_EZZ80))
|
||||
BIT 7,A ; BIT 7 SET REQUESTS RAM PAGE
|
||||
JR Z,HBX_ROM ; NOT SET, SELECT ROM PAGE
|
||||
RES 7,A ; RAM PAGE REQUESTED: CLEAR ROM BIT
|
||||
@@ -715,7 +715,7 @@ HB_START:
|
||||
|
||||
#ENDIF
|
||||
;
|
||||
#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180))
|
||||
#IF ((PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_RC180) | (PLATFORM == PLT_EZZ80))
|
||||
; SET PAGING REGISTERS
|
||||
#IFDEF ROMBOOT
|
||||
XOR A
|
||||
@@ -1089,7 +1089,7 @@ INITSYS1:
|
||||
; IF PLATFORM HAS A CONFIG JUMPER, CHECK TO SEE IF IT IS JUMPERED.
|
||||
; IF SO, BYPASS SWITCH TO CRT CONSOLE (FAILSAFE MODE)
|
||||
;
|
||||
#IF ((PLATFORM != PLT_N8) & (PLATFORM != PLT_MK4) & (PLATFORM != PLT_RC) & (PLATFORM != PLT_RC180))
|
||||
#IF ((PLATFORM != PLT_N8) & (PLATFORM != PLT_MK4) & (PLATFORM != PLT_RC) & (PLATFORM != PLT_RC180) & (PLATFORM != PLT_EZZ80))
|
||||
IN A,(RTC) ; RTC PORT, BIT 6 HAS STATE OF CONFIG JUMPER
|
||||
BIT 6,A ; BIT 6 HAS CONFIG JUMPER STATE
|
||||
JR Z,INITSYS3 ; Z=SHORTED, BYPASS CONSOLE SWITCH
|
||||
@@ -2498,7 +2498,7 @@ HB_WAITSEC:
|
||||
; RETURN SECS VALUE IN A, LOOP COUNT IN DE
|
||||
LD DE,0 ; INIT LOOP COUNTER
|
||||
HB_WAITSEC1:
|
||||
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2)| (PLATFORM == PLT_RC))
|
||||
#IF ((PLATFORM == PLT_SBC) | (PLATFORM == PLT_ZETA) | (PLATFORM == PLT_ZETA2) | (PLATFORM == PLT_RC) | (PLATFORM == PLT_EZZ80))
|
||||
; LOOP TARGET IS 4000 T-STATES, SO CPU FREQ IN KHZ = LOOP COUNT * 4
|
||||
CALL DLY32
|
||||
CALL DLY8
|
||||
|
||||
11
Source/HBIOS/plt_ezz80.inc
Normal file
11
Source/HBIOS/plt_ezz80.inc
Normal file
@@ -0,0 +1,11 @@
|
||||
;
|
||||
; EASY Z80 HARDWARE DEFINITIONS
|
||||
;
|
||||
MPGSEL_0 .EQU $78 ; BANK_0 PAGE SELECT REGISTER (WRITE ONLY)
|
||||
MPGSEL_1 .EQU $79 ; BANK_1 PAGE SELECT REGISTER (WRITE ONLY)
|
||||
MPGSEL_2 .EQU $7A ; BANK_2 PAGE SELECT REGISTER (WRITE ONLY)
|
||||
MPGSEL_3 .EQU $7B ; BANK_3 PAGE SELECT REGISTER (WRITE ONLY)
|
||||
MPGENA .EQU $7C ; PAGING ENABLE REGISTER - BIT 0 = 1 (WRITE ONLY)
|
||||
;
|
||||
RTC .EQU $C0 ; RTC PORT address
|
||||
SIOBASE .EQU $80 ; RC OR SMB SIO DEFAULT
|
||||
@@ -19,4 +19,4 @@ MPGENA .EQU SBC_BASE + $1C ; PAGING ENABLE REGISTER - BIT 0 = 1 (WRITE ONLY)
|
||||
;
|
||||
RTC .EQU SBC_BASE + $10 ; ADDRESS OF RTC LATCH AND INPUT PORT
|
||||
PPIBASE .EQU SBC_BASE + $00 ; PPI 82C55 I/O IS DECODED TO PORT 60-67
|
||||
SIOBASE .EQU $B0 ; ZILOG PERIPHERALS DEFAULT ;PS
|
||||
SIOBASE .EQU $B0 ; ZILOG PERIPHERALS DEFAULT ;PS
|
||||
|
||||
@@ -35,6 +35,7 @@ PLT_MK4 .EQU 5 ; MARK IV
|
||||
PLT_UNA .EQU 6 ; UNA BIOS
|
||||
PLT_RC .EQU 7 ; RC2014
|
||||
PLT_RC180 .EQU 8 ; RC2014 W/ Z180
|
||||
PLT_EZZ80 .EQU 9 ; EASY Z80
|
||||
;
|
||||
#IF (PLATFORM != PLT_UNA)
|
||||
#INCLUDE "hbios.inc"
|
||||
@@ -276,6 +277,9 @@ IVT_PIO3 .EQU 24
|
||||
#IF (PLATFORM == PLT_RC180)
|
||||
#DEFINE PLATFORM_NAME "RC2014 Z180"
|
||||
#ENDIF
|
||||
#IF (PLATFORM == PLT_EZZ80)
|
||||
#DEFINE PLATFORM_NAME "EASY Z80"
|
||||
#ENDIF
|
||||
;
|
||||
; INCLUDE PLATFORM SPECIFIC HARDWARE DEFINITIONS
|
||||
;
|
||||
@@ -303,6 +307,10 @@ IVT_PIO3 .EQU 24
|
||||
#INCLUDE "plt_rc180.inc"
|
||||
#ENDIF
|
||||
;
|
||||
#IF (PLATFORM == PLT_EZZ80)
|
||||
#INCLUDE "plt_ezz80.inc"
|
||||
#ENDIF
|
||||
;
|
||||
; SETUP DEFAULT CPU SPEED VALUES
|
||||
;
|
||||
CPUKHZ .EQU CPUOSC / 1000 ; CPU FREQ IN KHZ
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
#DEFINE RMN 9
|
||||
#DEFINE RUP 1
|
||||
#DEFINE RTP 0
|
||||
#DEFINE BIOSVER "2.9.1-pre.11"
|
||||
#DEFINE BIOSVER "2.9.1-pre.12"
|
||||
|
||||
@@ -95,6 +95,7 @@ to determine the <plt> component of the configuration filename:
|
||||
N8 N8_std.rom
|
||||
Mark IV MK4_std.rom
|
||||
RC2014 RC_std.rom
|
||||
Easy Z80 EZZ80_std.rom
|
||||
|
||||
You can use any name you choose for the <cfg> component of the
|
||||
configuration filename. So, let's say you want to create a custom
|
||||
|
||||
Reference in New Issue
Block a user