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.
This commit is contained in:
Wayne Warthen
2021-02-01 09:48:46 -08:00
parent b91ad2aba0
commit c43283b3ec
4 changed files with 10 additions and 20 deletions

View File

@@ -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)

View File

@@ -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

View File

@@ -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"

View File

@@ -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