From 7ba9bd6e67d9e17be97a21c87e10268b7a88629d Mon Sep 17 00:00:00 2001 From: Sergey Kiselev Date: Wed, 27 Feb 2019 09:38:05 -0800 Subject: [PATCH] Add support for Eazy Z80 Signed-off-by: Sergey Kiselev --- Source/HBIOS/Config/RC_ez80.asm | 22 ++++++++++++++++++++++ Source/HBIOS/sio.asm | 17 +++++++++++++++-- Source/HBIOS/std.asm | 1 + 3 files changed, 38 insertions(+), 2 deletions(-) create mode 100644 Source/HBIOS/Config/RC_ez80.asm diff --git a/Source/HBIOS/Config/RC_ez80.asm b/Source/HBIOS/Config/RC_ez80.asm new file mode 100644 index 00000000..057a5547 --- /dev/null +++ b/Source/HBIOS/Config/RC_ez80.asm @@ -0,0 +1,22 @@ +; +;================================================================================================== +; RC2014 - EASY Z80 CONFIGURATION +;================================================================================================== +; +#include "cfg_rc.asm" +; +CPUOSC .SET 10000000 ; CPU OSC 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_EZ80 ; TYPE OF SIO/2 TO DETECT: SIOMODE_RC, SIOMODE_SMB, SIOMODE_EZ80 +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 diff --git a/Source/HBIOS/sio.asm b/Source/HBIOS/sio.asm index e5a44ab7..02a0ddd9 100644 --- a/Source/HBIOS/sio.asm +++ b/Source/HBIOS/sio.asm @@ -40,6 +40,13 @@ SIOB_CMD .EQU SIOBASE + $07 SIOB_DAT .EQU SIOBASE + $05 #ENDIF ; +#IF (SIOMODE == SIOMODE_EZ80) +SIOA_CMD .EQU SIOBASE + $01 +SIOA_DAT .EQU SIOBASE + $00 +SIOB_CMD .EQU SIOBASE + $03 +SIOB_DAT .EQU SIOBASE + $02 +#ENDIF +; ; CONDITIONALS THAT DETERMINE THE ENCODED VALUE OF THE BAUD RATE ; #INCLUDE "siobaud.inc" @@ -276,6 +283,9 @@ SIO_IN: #IF ((SIOMODE == SIOMODE_SMB) | (SIOMODE == SIOMODE_ZP)) DEC C ; DECREMENT CMD PORT TWICE TO GET DATA PORT DEC C +#ENDIF +#IF (SIOMODE == SIOMODE_EZ80) + DEC C ; DECREMENT CMD PORT TO GET DATA PORT #ENDIF IN E,(C) ; GET CHAR XOR A ; SIGNAL SUCCESS @@ -358,8 +368,11 @@ SIO_OUT: INC C ; BUMP TO DATA PORT #ENDIF #IF ((SIOMODE == SIOMODE_SMB) | (SIOMODE == SIOMODE_ZP)) - DEC C ; DECREMENT CMD PORT TWICE TO GET DATA PORT - DEC C + DEC C ; DECREMENT CMD PORT TWICE TO GET DATA PORT + DEC C +#ENDIF +#IF (SIOMODE == SIOMODE_EZ80) + DEC C ; DECREMENT CMD PORT TO GET DATA PORT #ENDIF OUT (C),E ; SEND CHAR FROM E XOR A ; SIGNAL SUCCESS diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index cc37b3fc..9287f195 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -78,6 +78,7 @@ SIOMODE_NONE .EQU 0 SIOMODE_RC .EQU 1 ; RC2014 SIO MODULE (SPENCER OWEN) SIOMODE_SMB .EQU 2 ; RC2014 SIO MODULE (SCOTT BAKER) SIOMODE_ZP .EQU 3 ; ECB-ZILOG PERIPHERALS BOARD +SIOMODE_EZ80 .EQU 4 ; EASY Z80 ON-BOARD SIO/0 ; ; PIO MODE SELECTIONS ;