From 086957fd3f1bd0a78dd8e0ccf08c25336be67d3a Mon Sep 17 00:00:00 2001 From: Wayne Warthen Date: Tue, 23 Jul 2019 18:16:30 -0700 Subject: [PATCH] SIO Fixes --- Source/HBIOS/sio.asm | 32 ++++++++++++++++++++++++-------- Source/HBIOS/std.asm | 2 ++ 2 files changed, 26 insertions(+), 8 deletions(-) diff --git a/Source/HBIOS/sio.asm b/Source/HBIOS/sio.asm index 43160908..a2fe6d13 100644 --- a/Source/HBIOS/sio.asm +++ b/Source/HBIOS/sio.asm @@ -24,6 +24,22 @@ SIO_SIO .EQU 1 SIO_RTSON .EQU $EA SIO_RTSOFF .EQU $E8 ; +#IF (INTMODE == 2) +; +#IF ((PLATFORM == PLT_N8) | (PLATFORM == PLT_MK4) | (PLATFORM == PLT_RCZ180)) +SIO0_IVT .EQU HB_IVT0D +SIO1_IVT .EQU HB_IVT0E +SIO0_VEC .EQU IVT_SER2 +SIO1_VEC .EQU IVT_SER3 +#ELSE +SIO0_IVT .EQU HB_IVT07 +SIO1_IVT .EQU HB_IVT08 +SIO0_VEC .EQU IVT_SER0 +SIO1_VEC .EQU IVT_SER1 +#ENDIF +; +#ENDIF +; #IF (SIO0MODE == SIOMODE_RC) SIO0A_CMD .EQU SIO0BASE + $00 SIO0A_DAT .EQU SIO0BASE + $01 @@ -46,10 +62,10 @@ SIO0B_DAT .EQU SIO0BASE + $05 #ENDIF ; #IF (SIO0MODE == SIOMODE_EZZ80) -SIO0A_CMD .EQU SIO1BASE + $01 -SIO0A_DAT .EQU SIO1BASE + $00 -SIO0B_CMD .EQU SIO1BASE + $03 -SIO0B_DAT .EQU SIO1BASE + $02 +SIO0A_CMD .EQU SIO0BASE + $01 +SIO0A_DAT .EQU SIO0BASE + $00 +SIO0B_CMD .EQU SIO0BASE + $03 +SIO0B_DAT .EQU SIO0BASE + $02 #ENDIF ; #IF (SIOCNT >= 2) @@ -139,11 +155,11 @@ SIO_PREINIT2: #IF (INTMODE == 2) ; SETUP IM2 VECTORS LD HL,SIO_INT0 - LD (HB_IVT07 + 1),HL ; IVT INDEX 7 + LD (SIO0_IVT + 1),HL ; IVT INDEX ; #IF (SIOCNT >= 2) LD HL,SIO_INT1 - LD (HB_IVT08 + 1),HL ; IVT INDEX 8 + LD (SIO1_IVT + 1),HL ; IVT INDEX #ENDIF ; #ENDIF @@ -581,9 +597,9 @@ BROK: #IF (INTMODE == 2) LD A,(IY+2) ; CHIP / CHANNEL SRL A ; SHIFT AWAY CHANNEL BIT - LD E,IVT_SER0 ; ASSUME CHIP 0 + LD E,SIO0_VEC ; ASSUME CHIP 0 JR Z,SIO_IVT1 ; IF SO, DO IT - LD E,IVT_SER1 ; ASSUME CHIP 1 + LD E,SIO1_VEC ; ASSUME CHIP 1 DEC A ; CHIP 1? JR Z,SIO_IVT1 ; IF SO, TO IT CALL PANIC ; IMPOSSIBLE SITUATION diff --git a/Source/HBIOS/std.asm b/Source/HBIOS/std.asm index a8de2f26..35dad128 100644 --- a/Source/HBIOS/std.asm +++ b/Source/HBIOS/std.asm @@ -266,6 +266,8 @@ IVT_PIO0 .EQU 18 IVT_PIO1 .EQU 20 IVT_PIO2 .EQU 22 IVT_PIO3 .EQU 24 +IVT_SER2 .EQU 26 +IVT_SER3 .EQU 28 ; #INCLUDE "build.inc" ; INCLUDE USER CONFIG, ADD VARIANT, TIMESTAMP, & ROMSIZE ;