Finalize v2.9.1 Prerelease 9

Stability fixes.
This commit is contained in:
Wayne Warthen
2019-02-19 13:41:14 -08:00
parent 931d33eb11
commit 0fe4c5e6f8
9 changed files with 96 additions and 46 deletions

View File

@@ -51,6 +51,8 @@ ACIA_RTSOFF .EQU %11010110 ; RCV INT, RTS DEASSERTED, 8N1, CLK/64 BAUD
ACIA_PREINIT:
;
; SETUP THE DISPATCH TABLE ENTRIES
; NOTE: INTS WILL BE DISABLED WHEN PREINIT IS CALLED AND THEY MUST REMIAIN
; DISABLED.
;
LD B,ACIA_CNT ; LOOP CONTROL
LD C,0 ; PHYSICAL UNIT INDEX
@@ -116,7 +118,9 @@ ACIA_INITUNIT:
; SET DEFAULT CONFIG
LD DE,-1 ; LEAVE CONFIG ALONE
JP ACIA_INITDEV ; IMPLEMENT IT AND RETURN
; CALL INITDEV TO IMPLEMENT CONFIG, BUT NOTE THAT WE CALL
; THE INITDEV ENTRY POINT THAT DOES NOT ENABLE/DISABLE INTS!
JP ACIA_INITDEVX ; IMPLEMENT IT AND RETURN
;
;
;
@@ -167,7 +171,8 @@ ACIAA_INT00:
LD E,A ; SAVE BYTE READ
LD A,(ACIAA_BUFCNT) ; GET CURRENT BUFFER USED COUNT
CP ACIAA_BUFSZ ; COMPARE TO BUFFER SIZE
RET Z ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
;RET Z ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
JR Z,ACIAA_INT2 ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
INC A ; INCREMENT THE COUNT
LD (ACIAA_BUFCNT),A ; AND SAVE IT
CP ACIAA_BUFSZ - 5 ; BUFFER GETTING FULL?
@@ -186,6 +191,7 @@ ACIAA_INT1:
INC HL ; INCREMENT HEAD POINTER
LD (ACIAA_HD),HL ; SAVE IT
;
ACIAA_INT2:
; CHECK FOR MORE PENDING...
IN A,(C) ; GET STATUS
RRA ; READY BIT TO CF
@@ -210,7 +216,8 @@ ACIAB_INT00:
LD E,A ; SAVE BYTE READ
LD A,(ACIAB_BUFCNT) ; GET CURRENT BUFFER USED COUNT
CP ACIAB_BUFSZ ; COMPARE TO BUFFER SIZE
RET Z ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
;RET Z ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
JR Z,ACIAB_INT2 ; BAIL OUT IF BUFFER FULL, RCV BYTE DISCARDED
INC A ; INCREMENT THE COUNT
LD (ACIAB_BUFCNT),A ; AND SAVE IT
CP ACIAB_BUFSZ - 5 ; BUFFER GETTING FULL?
@@ -229,6 +236,7 @@ ACIAB_INT1:
INC HL ; INCREMENT HEAD POINTER
LD (ACIAB_HD),HL ; SAVE IT
;
ACIAB_INT2:
; CHECK FOR MORE PENDING...
IN A,(C) ; GET STATUS
RRA ; READY BIT TO CF
@@ -396,6 +404,14 @@ ACIA_OST:
;
ACIA_INITDEV:
HB_DI ; AVOID CONFLICTS
CALL ACIA_INITDEVX ; DO THE REAL WORK
HB_EI ; INTS BACK ON
RET ; DONE
;
ACIA_INITDEVX:
;
; THIS ENTRY POINT BYPASSES DISABLING/ENABLING INTS WHICH IS REQUIRED BY
; PREINIT ABOVE. PREINIT IS NOT ALLOWED TO ENABLE INTS!
;
; PROGRAM THE ACIA CHIP
LD C,(IY+3) ; COMMAND PORT
@@ -428,7 +444,6 @@ ACIA_INITDEV:
;
#ENDIF
;
HB_EI ; READY FOR INTS AGAIN
XOR A ; SIGNAL SUCCESS
RET ; RETURN
;