Fix Keyboard Driver Init Calls, Issue #648

Keyboard driver initialization calls were doubled up when the refactored driver framework.  This should resolve that.

Thanks and credit to @b3rendsh.
This commit is contained in:
Wayne Warthen
2026-01-08 13:08:25 -08:00
parent 8353115e21
commit 895490a780
8 changed files with 43 additions and 20 deletions

View File

@@ -15,12 +15,15 @@ ORG_CHUKB .EQU $
.DW SIZ_CHUKB ; MODULE SIZE
.DW CHUKB_INITPHASE ; ADR OF INIT PHASE HANDLER
;
; WARNING: KEYBOARD DRIVERS ARE INITIALIZED BY VDA DRIVERS
; AND SHOULD NOT BE INITIALIZED BY INITPHASE CALLS.
;
CHUKB_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,CHUKB_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,CHUKB_INIT ; DO INIT
;CP HB_PHASE_INIT ; INIT PHASE?
;JP Z,CHUKB_INIT ; DO INIT
RET ; DONE
#IF (!CHNATIVEENABLE)

View File

@@ -8891,6 +8891,15 @@ HB_PRTSUM_END .EQU $
; DEVICE DRIVERS
;==================================================================================================
;
; *** ORDER OF MODULES INCLUDED BELOW MATTERS!!! ***
;
; THE ORDER OF INCLUSION BELOW DICTATES THE ORDER IN WHICH THE INIT
; HANDLER OF EACH MODULE IS CALLED. THE ORDER THAT DRIVERS ARE
; REGISTERED IS AFFECTED BY THIS.
;
; EACH MODULE INCLUDED BELOW **MUST** HAVE THE STANDARD MODULE HEADER
; AND TRAILER.
;
HB_DRIVERS_BEG .EQU $
;
HB_MODSTART .EQU $
@@ -8909,8 +8918,6 @@ HB_MODSTART .EQU $
; - EZ80SYSTMP
;
#IF (CPUFAM == CPU_EZ80)
;;;; MEMECHO "EZ80 DRIVERS\n"
;;;ORG_EZ80DRVS .EQU $
#INCLUDE "ez80cpu.asm"
#ENDIF
;
@@ -8939,7 +8946,6 @@ HB_MODSTART .EQU $
#ENDIF
;
#IF (CPUFAM == CPU_EZ80)
;;; MEMECHO "EZ80 DRIVERS\n"
#INCLUDE "ez80tmr.asm"
#ENDIF
;
@@ -9232,10 +9238,12 @@ HB_MODSTART .EQU $
; TERMINAL MODULES
;--------------------------------------------------------------------------------------------------
;
; - TERM
; NOTE: TERM MODULE IS ALWAYS INCLUDED!!! CONDITIONALS IN THE TERM
; DRIVER SOURCE DETERMINE THE CODE THAT IS ACTUALLY INCLUDED.
;
; TERM IS ALWAYS INCLUDED
#INCLUDE "term.asm"
#IF (TRUE)
#INCLUDE "term.asm"
#ENDIF
;
;--------------------------------------------------------------------------------------------------
; DISK / STORAGE MODULES

View File

@@ -59,12 +59,15 @@ ORG_KBD .EQU $
.DW SIZ_KBD ; MODULE SIZE
.DW KBD_INITPHASE ; ADR OF INIT PHASE HANDLER
;
; WARNING: KEYBOARD DRIVERS ARE INITIALIZED BY VDA DRIVERS
; AND SHOULD NOT BE INITIALIZED BY INITPHASE CALLS.
;
KBD_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
CP HB_PHASE_PREINIT ; PREINIT PHASE?
JP Z,KBD_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,KBD_INIT ; DO INIT
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,KBD_PREINIT ; DO PREINIT
;CP HB_PHASE_INIT ; INIT PHASE?
;JP Z,KBD_INIT ; DO INIT
RET ; DONE
;__________________________________________________________________________________________________
; DATA

View File

@@ -165,12 +165,15 @@ ORG_MKY .EQU $
.DW SIZ_MKY ; MODULE SIZE
.DW MKY_INITPHASE ; ADR OF INIT PHASE HANDLER
;
; WARNING: KEYBOARD DRIVERS ARE INITIALIZED BY VDA DRIVERS
; AND SHOULD NOT BE INITIALIZED BY INITPHASE CALLS.
;
MKY_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,MKY_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,MKY_INIT ; DO INIT
;CP HB_PHASE_INIT ; INIT PHASE?
;JP Z,MKY_INIT ; DO INIT
RET ; DONE
SCANCODE_TBL:

View File

@@ -40,12 +40,15 @@ ORG_NABUKB .EQU $
.DW SIZ_NABUKB ; MODULE SIZE
.DW NABUKB_INITPHASE ; ADR OF INIT PHASE HANDLER
;
; WARNING: KEYBOARD DRIVERS ARE INITIALIZED BY VDA DRIVERS
; AND SHOULD NOT BE INITIALIZED BY INITPHASE CALLS.
;
NABUKB_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,NABUKB_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,NABUKB_INIT ; DO INIT
;CP HB_PHASE_INIT ; INIT PHASE?
;JP Z,NABUKB_INIT ; DO INIT
RET ; DONE
;
; INITIALZIZE THE KEYBOARD CONTROLLER.

View File

@@ -44,12 +44,15 @@ ORG_PPK .EQU $
.DW SIZ_PPK ; MODULE SIZE
.DW PPK_INITPHASE ; ADR OF INIT PHASE HANDLER
;
; WARNING: KEYBOARD DRIVERS ARE INITIALIZED BY VDA DRIVERS
; AND SHOULD NOT BE INITIALIZED BY INITPHASE CALLS.
;
PPK_INITPHASE:
; INIT PHASE HANDLER, A=PHASE
;CP HB_PHASE_PREINIT ; PREINIT PHASE?
;JP Z,PPK_PREINIT ; DO PREINIT
CP HB_PHASE_INIT ; INIT PHASE?
JP Z,PPK_INIT ; DO INIT
;CP HB_PHASE_INIT ; INIT PHASE?
;JP Z,PPK_INIT ; DO INIT
RET ; DONE
;
;__________________________________________________________________________________________________

View File

@@ -2,7 +2,7 @@
#DEFINE RMN 6
#DEFINE RUP 0
#DEFINE RTP 0
#DEFINE BIOSVER "3.6.0-dev.50"
#DEFINE BIOSVER "3.6.0-dev.51"
#define rmj RMJ
#define rmn RMN
#define rup RUP

View File

@@ -3,5 +3,5 @@ rmn equ 6
rup equ 0
rtp equ 0
biosver macro
db "3.6.0-dev.50"
db "3.6.0-dev.51"
endm