Merge branch 'master' into master

This commit is contained in:
Wayne Warthen
2024-12-08 13:46:24 -08:00
committed by GitHub
17 changed files with 41 additions and 63 deletions

View File

@@ -921,11 +921,3 @@ CVDU_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB CVDU_KBDST
.DB CVDU_KBDDATA
;
; IF WE ARE USING PS2 INTERRUPTS, WE NEED TO PASS THE INSTANCE
; DATA POINTER TO PS2IFACE.INC VIA KBDIDAT FOR USE BY THE INTERRUPT
; HANDLER IN PS2IFACE.INC.
;
#IF (KBDINTS)
KBDIDAT .EQU CVDU_IDAT
#ENDIF

View File

@@ -350,11 +350,3 @@ GDC_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB GDC_KBDST
.DB GDC_KBDDATA
;
; IF WE ARE USING PS2 INTERRUPTS, WE NEED TO PASS THE INSTANCE
; DATA POINTER TO PS2IFACE.INC VIA KBDIDAT FOR USE BY THE INTERRUPT
; HANDLER IN PS2IFACE.INC.
;
#IF (KBDINTS)
KBDIDAT .EQU GDC_IDAT
#ENDIF

View File

@@ -3030,8 +3030,6 @@ HB_SPDTST:
;--------------------------------------------------------------------------------------------------
; ENABLE INTERRUPTS
;--------------------------------------------------------------------------------------------------
;
;;;CALL HB_PREINT_HOOKS ; HACK TO ALLOW SOME DRIVERS TO DO PRE INTERRUPT STUFF
;
#IFDEF TESTING
;
@@ -9374,15 +9372,6 @@ SIZ_EZ80DRVS .EQU $ - ORG_EZ80DRVS
MEMECHO "RTCDEF="
MEMECHO RTCDEF
MEMECHO "\n"
;;;;
;;;; PRE-INTERRUPT HOOKS
;;;;
;;;HB_PREINT_HOOKS:
;;;;
;;;#IF (KBDENABLE)
;;; CALL KBD_PREINT_HOOK
;;;#ENDIF
;;; RET
;
HB_DRIVERS_END .EQU $
;

View File

@@ -6,6 +6,16 @@
; ROMWBW ADAPTATION BY WAYNE WARTHEN
; INTERRUPT DRIVER ADDITION BY PHIL SUMMERS
;
; THIS DRIVER IS INVOKED BY VIDEO DRIVERS AS NEEDED. WHEN INVOKED,
; THE VIDEO DRIVER IS RESPONSIBLE FOR SETTING IY TO THE INSTANCE
; DATA FOR IT'S INSTANCE OF THE KBD DRIVER. THIS ALLOWS THIS CODE
; TO BE REUSED BY MULTIPLE VIDEO DRIVERS USING MULTIPLE PS/2 KBD
; INTERFACES IN A SINGLE SYSTEM.
;
; WARNING: WHEN INTERRUPTS ARE ENABLED FOR THIS DRIVER (KBDINTS), IT IS
; *NOT* POSSIBLE TO HAVE MULTIPLE VIDEO DRIVERS USING THIS KBD DRIVER
; ACTIVELY IN A SYSTEM. THE USE OF INTERRUPTS IMPLIES ONLY ONE PS/2
; KBD INTERFACE CAN BE USED CONCURRENTLY.
;
; IN DEBUG MODE:
; >>nn SHOWS HEX COMMAND nn BEING WRITTEN TO THE COMMAND PORT
@@ -70,12 +80,22 @@ KBD_IDLE .DB 0 ; IDLE COUNT
;__________________________________________________________________________________________________
;
#INCLUDE "ps2iface.inc"
;
;__________________________________________________________________________________________________
; KEYBOARD PRE-INITIALIZATION
;__________________________________________________________________________________________________
;
; TO BE CALLED PRIOR TO INITERRUPTS BEING ENABLED
; MUST BE CALLED FROM VIDEO DRIVER PREINIT WITH IY SET
; THIS PREVENTS INTRERRUPT ISSUES IF 8242 HAS INTERRUPTS ENABLED
;
; AT STARTUP. NOT USING IT FOR NOW BECAUSE IT IS NOT A PROBLEM IF
; YOU DON'T USE THE KEYBOARD DURING BOOT.
;
;;;KBD_PREINT:
;;;;
;;;; HACK TO ENSURE PS/2 CONTROLLER INTERRUPTS ARE TURNED OFF!!!
;;;;
;;;KBD_PREINT_HOOK:
;;;#IF (KBDINTS)
;;; LD IY,KBDIDAT
;;; LD A,$60 ; SET COMMAND REGISTER
;;; CALL KBD_PUTCMD ; SEND IT
;;; LD A,$20 ; XLAT DISABLED, MOUSE DISABLED, NO INTS
@@ -87,7 +107,7 @@ KBD_IDLE .DB 0 ; IDLE COUNT
;;; CALL KBD_IN_P
;;; DJNZ KBD_PREINT_HOOK1
;;;#ENDIF
RET
;;; RET
;
;__________________________________________________________________________________________________
; KEYBOARD INITIALIZATION
@@ -127,6 +147,7 @@ KBD_INIT:
KBD_INIT1:
#IF ((INTMODE == 2) & KBDINTS)
; CALL KBDQINIT ; INITIALIZE QUEUE
LD (KBD_IDAT),IY ; SAVE IY FOR INT HANDLER
LD HL,KBD_INT ; INSTALL VECTOR
LD (IVT(INT_PS2KB)),HL ; IVT INDEX
#ENDIF
@@ -770,6 +791,10 @@ KBD_STR_MODEPS2 .TEXT "PS2$"
KBD_STR_MODEVRC .TEXT "VRC$"
KBD_STR_MODEUNK .TEXT "???$"
;
#IF ((INTMODE == 2) & KBDINTS)
KBD_IDAT .DW 0 ; ADR OF INSTANCE DATA FOR INTS
#ENDIF
;
;
;
#IF (KBDKBLOUT == KBD_US)

View File

@@ -38,7 +38,7 @@ KBDQ .FILL KBDQSIZ,0 ; CIRCULAR KEYBOARD BUFFER ; BUFFERED. ONE KEY PRESS CAN
;
KBD_INT:
; CALL KBDQDBG
LD IY,KBDIDAT ; POINT TO PORT TABLE
LD IY,(KBD_IDAT) ; POINT TO INSTANCE DATA
;
CALL KBD_IST_P ; READ CONTROLLER STATUS
RET Z ; EXIT IF NOTHINGTO READ

View File

@@ -905,7 +905,7 @@ setcon:
jp nz,err_invcmd ; abort on error
;
ld a,d ; mask off current
and $11100000 ; baud rate
and %11100000 ; baud rate
ld hl,newspeed ; and load in new
or (hl) ; baud rate
ld d,a
@@ -2496,7 +2496,7 @@ str_help .db "\r\n"
.db "\r\n R - Reboot System"
#if (BIOS == BIOS_WBW)
.db "\r\n W - RomWBW Configure"
.db "\r\n I <u> [<c>] - Set Console Interface/Baud code"
.db "\r\n I <u> [<c>] - Set Console Interface/Baud Rate"
.db "\r\n V [<n>] - View/Set HBIOS Diagnostic Verbosity"
#endif
.db "\r\n <u>[.<s>] - Boot Disk Unit/Slice"

View File

@@ -1189,14 +1189,6 @@ TMS_IDAT:
.DB TMS_DATREG
.DB TMS_CMDREG
;
; IF WE ARE USING PS2 INTERRUPTS, WE NEED TO PASS THE INSTANCE
; DATA POINTER TO PS2IFACE.INC VIA KBDIDAT FOR USE BY THE INTERRUPT
; HANDLER IN PS2IFACE.INC.
;
#IF ((TMSKBD == TMSKBD_KBD) & KBDINTS)
KBDIDAT .EQU TMS_IDAT
#ENDIF
;
;==================================================================================================
; TMS DRIVER - TMS9918 REGISTER INITIALIZATION
;==================================================================================================

View File

@@ -1056,11 +1056,3 @@ VGA_IDAT:
.DB KBDMODE_PS2 ; PS/2 8242 KEYBOARD CONTROLLER
.DB VGA_KBDST
.DB VGA_KBDDATA
;
; IF WE ARE USING PS2 INTERRUPTS, WE NEED TO PASS THE INSTANCE
; DATA POINTER TO PS2IFACE.INC VIA KBDIDAT FOR USE BY THE INTERRUPT
; HANDLER IN PS2IFACE.INC.
;
#IF (KBDINTS)
KBDIDAT .EQU VGA_IDAT
#ENDIF

View File

@@ -675,11 +675,3 @@ VRC_IDAT:
.DB KBDMODE_VRC ; VGARC KEYBOARD CONTROLLER
.DB VRC_KBDST
.DB VRC_KBDDATA
;
; IF WE ARE USING PS2 INTERRUPTS, WE NEED TO PASS THE INSTANCE
; DATA POINTER TO PS2IFACE.INC VIA KBDIDAT FOR USE BY THE INTERRUPT
; HANDLER IN PS2IFACE.INC.
;
#IF (KBDINTS)
KBDIDAT .EQU VRC_IDAT
#ENDIF