diff --git a/Doc/RomWBW Applications.pdf b/Doc/RomWBW Applications.pdf index 1b72ee92..6b792df2 100644 Binary files a/Doc/RomWBW Applications.pdf and b/Doc/RomWBW Applications.pdf differ diff --git a/Doc/RomWBW Disk Catalog.pdf b/Doc/RomWBW Disk Catalog.pdf index d027baf4..bcb35b0b 100644 Binary files a/Doc/RomWBW Disk Catalog.pdf and b/Doc/RomWBW Disk Catalog.pdf differ diff --git a/Doc/RomWBW Errata.pdf b/Doc/RomWBW Errata.pdf index cf7fd521..e6c3a0f3 100644 Binary files a/Doc/RomWBW Errata.pdf and b/Doc/RomWBW Errata.pdf differ diff --git a/Doc/RomWBW System Guide.pdf b/Doc/RomWBW System Guide.pdf index a921c556..45836989 100644 Binary files a/Doc/RomWBW System Guide.pdf and b/Doc/RomWBW System Guide.pdf differ diff --git a/Doc/RomWBW User Guide.pdf b/Doc/RomWBW User Guide.pdf index befcc36e..badced4a 100644 Binary files a/Doc/RomWBW User Guide.pdf and b/Doc/RomWBW User Guide.pdf differ diff --git a/ReadMe.md b/ReadMe.md index d5b340a1..a492391b 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -3,7 +3,7 @@ **RomWBW ReadMe** \ Version 3.5 \ Wayne Warthen ([wwarthen@gmail.com](mailto:wwarthen@gmail.com)) \ -05 Dec 2024 +08 Dec 2024 # Overview diff --git a/ReadMe.txt b/ReadMe.txt index e4df4fbc..31fb331b 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -1,6 +1,6 @@ RomWBW ReadMe Wayne Warthen (wwarthen@gmail.com) -05 Dec 2024 +08 Dec 2024 diff --git a/Source/Doc/UserGuide.md b/Source/Doc/UserGuide.md index f19d0365..df026e77 100644 --- a/Source/Doc/UserGuide.md +++ b/Source/Doc/UserGuide.md @@ -573,14 +573,15 @@ For example, typing `H` will display a short command summary: Boot [H=Help]: h L - List ROM Applications - D - Disk Device Inventory + D - Device Inventory R - Reboot System - I [] - Set Console Interface/Baud code + W - RomWBW Configure + I [] - Set Console Interface/Baud Rate V [] - View/Set HBIOS Diagnostic Verbosity [.] - Boot Disk Unit/Slice ``` -Likewise the `L` command will display the list of ROM Applications that +Likewise the `L` command (List ROM Applications) will display the list of ROM Applications that you can launch right from the Boot Loader: ``` @@ -600,6 +601,9 @@ ROM Applications: U: User App ``` +A more complete description of these options is found below in +[System Management]. + ## Starting Applications from ROM To start a ROM application you just enter the corresponding letter at diff --git a/Source/HBIOS/cvdu.asm b/Source/HBIOS/cvdu.asm index d33e96e8..8fce3e31 100644 --- a/Source/HBIOS/cvdu.asm +++ b/Source/HBIOS/cvdu.asm @@ -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 diff --git a/Source/HBIOS/gdc.asm b/Source/HBIOS/gdc.asm index 9be0bcd4..6e0fc085 100644 --- a/Source/HBIOS/gdc.asm +++ b/Source/HBIOS/gdc.asm @@ -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 diff --git a/Source/HBIOS/hbios.asm b/Source/HBIOS/hbios.asm index f94bfbc5..53333209 100644 --- a/Source/HBIOS/hbios.asm +++ b/Source/HBIOS/hbios.asm @@ -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 $ ; diff --git a/Source/HBIOS/kbd.asm b/Source/HBIOS/kbd.asm index 3b963e87..3d1e9f44 100644 --- a/Source/HBIOS/kbd.asm +++ b/Source/HBIOS/kbd.asm @@ -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) diff --git a/Source/HBIOS/ps2iface.inc b/Source/HBIOS/ps2iface.inc index 6dff5ee3..13d746a2 100644 --- a/Source/HBIOS/ps2iface.inc +++ b/Source/HBIOS/ps2iface.inc @@ -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 diff --git a/Source/HBIOS/romldr.asm b/Source/HBIOS/romldr.asm index 0df121d1..7386e798 100644 --- a/Source/HBIOS/romldr.asm +++ b/Source/HBIOS/romldr.asm @@ -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 [] - Set Console Interface/Baud code" + .db "\r\n I [] - Set Console Interface/Baud Rate" .db "\r\n V [] - View/Set HBIOS Diagnostic Verbosity" #endif .db "\r\n [.] - Boot Disk Unit/Slice" diff --git a/Source/HBIOS/tms.asm b/Source/HBIOS/tms.asm index 577ad721..1da1d4cd 100644 --- a/Source/HBIOS/tms.asm +++ b/Source/HBIOS/tms.asm @@ -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 ;================================================================================================== diff --git a/Source/HBIOS/vga.asm b/Source/HBIOS/vga.asm index c977415a..1b5e023b 100644 --- a/Source/HBIOS/vga.asm +++ b/Source/HBIOS/vga.asm @@ -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 diff --git a/Source/HBIOS/vrc.asm b/Source/HBIOS/vrc.asm index e0986f7a..98b12a59 100644 --- a/Source/HBIOS/vrc.asm +++ b/Source/HBIOS/vrc.asm @@ -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