Browse Source

SIO Fixes

pull/48/head
Wayne Warthen 7 years ago
parent
commit
086957fd3f
  1. 32
      Source/HBIOS/sio.asm
  2. 2
      Source/HBIOS/std.asm

32
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

2
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
;

Loading…
Cancel
Save