Browse Source

Enable ACIA on Interrupt Modes 2 & 3

ACIA driver will now allow use of the driver in interrupt modes 2 & 3, but will operate in polling mode.
pull/199/head
Wayne Warthen 5 years ago
parent
commit
c43283b3ec
  1. 2
      Source/HBIOS/Config/RCZ280_nat.asm
  2. 24
      Source/HBIOS/acia.asm
  3. 2
      Source/ver.inc
  4. 2
      Source/ver.lib

2
Source/HBIOS/Config/RCZ280_nat.asm

@ -40,7 +40,7 @@ Z280_INTWAIT .SET 0 ; Z280: INT ACK WAIT STATUS (0-3)
;
Z2UENABLE .SET TRUE ; Z2U: ENABLE Z280 UART SERIAL DRIVER (Z2U.ASM)
UARTENABLE .SET TRUE ; UART: ENABLE 8250/16550-LIKE SERIAL DRIVER (UART.ASM)
ACIAENABLE .SET FALSE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
ACIAENABLE .SET TRUE ; ACIA: ENABLE MOTOROLA 6850 ACIA DRIVER (ACIA.ASM)
SIOENABLE .SET TRUE ; SIO: ENABLE ZILOG SIO SERIAL DRIVER (SIO.ASM)
;
IDEENABLE .SET TRUE ; IDE: ENABLE IDE DISK DRIVER (IDE.ASM)

24
Source/HBIOS/acia.asm

@ -57,11 +57,6 @@ ACIA_ACIA .EQU 1
ACIA_RTSON .EQU %00000000 ; BIT MASK TO ASSERT RTS
ACIA_RTSOFF .EQU %01000000 ; BIT MASK TO DEASSERT RTS
;
#IF (INTMODE > 1)
.ECHO "*** ERROR: UNSUPPORTED INTMODE FOR ACIA DRIVER!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
;
;
ACIA_PREINIT:
@ -119,11 +114,6 @@ ACIA_INITUNIT:
LD H,(IY+9) ; ... INTO HL
CALL HB_ADDIM1 ; ADD TO IM1 CALL LIST
#ENDIF
;
#IF (INTMODE > 1)
.ECHO "*** ERROR: ACIA DEVICE DOES NOT SUPPORT INTMODE 2!!!\n"
!!! ; FORCE AN ASSEMBLY ERROR
#ENDIF
;
; IT IS EASY TO SPECIFY A SERIAL CONFIG THAT CANNOT BE IMPLEMENTED
; DUE TO THE CONSTRAINTS OF THE ACIA. HERE WE FORCE A GENERIC
@ -158,7 +148,7 @@ ACIA_INIT1:
;
; INTERRUPT HANDLERS
;
#IF (INTMODE == 0)
#IF (INTMODE != 1)
;
; NO INTERRUPT HANDLERS UNDER INTMODE 0. GENERATE A PANIC
; IF SOMETHING TRIES TO CALL THEM.
@ -169,7 +159,7 @@ ACIA1_INT:
;
#ENDIF
;
#IF (INTMODE > 0)
#IF (INTMODE == 1)
;
ACIA0_INT:
LD IY,ACIA0_CFG ; POINT TO ACIA0 CFG
@ -263,7 +253,7 @@ ACIA_FNTBL:
;
;
;
#IF (INTMODE == 0)
#IF (INTMODE != 1)
;
ACIA_IN:
CALL ACIA_IST ; CHAR WAITING?
@ -336,7 +326,7 @@ ACIA_OUT:
;
;
;
#IF (INTMODE == 0)
#IF (INTMODE != 1)
;
ACIA_IST:
LD C,(IY+3) ; STATUS PORT
@ -510,7 +500,7 @@ ACIA_INITSAFE:
;
ACIA_INITGO:
;
#IF (INTMODE > 0)
#IF (INTMODE == 1)
OR %10000000 ; ENABLE RCV INT
#ENDIF
;
@ -530,7 +520,7 @@ ACIA_INITGO:
LD A,(ACIA_CMD) ; RESTORE CONFIG VALUE
OUT (C),A ; DO IT
;
#IF (INTMODE > 0)
#IF (INTMODE == 1)
;
; RESET THE RECEIVE BUFFER
LD E,(IY+6)
@ -657,7 +647,7 @@ ACIA_STR_ACIA .DB "ACIA$"
ACIA_DEV .DB 0 ; DEVICE NUM USED DURING INIT
ACIA_CMD .DB 0 ; COMMAND PORT SHADOW REGISTER
;
#IF (INTMODE == 0)
#IF (INTMODE != 1)
;
ACIA0_RCVBUF .EQU 0
ACIA1_RCVBUF .EQU 0

2
Source/ver.inc

@ -2,4 +2,4 @@
#DEFINE RMN 1
#DEFINE RUP 1
#DEFINE RTP 0
#DEFINE BIOSVER "3.1.1-pre.38"
#DEFINE BIOSVER "3.1.1-pre.39"

2
Source/ver.lib

@ -3,5 +3,5 @@ rmn equ 1
rup equ 1
rtp equ 0
biosver macro
db "3.1.1-pre.38"
db "3.1.1-pre.39"
endm

Loading…
Cancel
Save