reset, read/write commands, self test. reset keyboard
and enable scanning correction(wasn't enabling).
interface test bug to do, but here's these in the meantime.
Logged In: YES
do you know of any game that actually uses this stuff ?
Btw the patch is a bit "dirty" as it has an active LOG_MSG
Logged In: YES
None that I'm aware, though not that I tested. I've been
running pctools si. I noticed echo is incorrect, should
return ee. I can comment out the log then if you havn't
already done so. More likely to affect some games, dosbox
fails much of the tests for timer, dma & pic. I intend to
poke around to see what's up. ps/2 docs give a clear rundown
of what pause/break & prn screen/sysrq do, so I'll be
looking at adding those as well.
The current work in progress; keyboardv2.diff. fixed echo,
log commented out, added handling of non-typematic keys,
psuedo code for pause and printscreen keys, fix tickhandler
to not process everything all the time(old first check only
prevented processing for just the first iteration of
non-keypress), much shorter addkey from reordering key
enumeration to scancode order.
I grafted qemu's keyboard handler onto dosbox to test since qemu doesn't have the input dropping issue that dosbox has. Bug is still there, but figure someone might be curious what that looks like so I've attached it. rename qemukeyboard.cpp to keyboard.cpp. I'm testing with amidiag now. Dosbox looses input from keyboard after the keyboard clock line test. Like pctools si, input is restored after exiting to the command line.
v2 looks good.
But personally I think the pause/break printscreen handling
belongs in bios_keyboard instead of the hardware keyboard
about that losing keys: did you check that the mapper
actually delivers the key ?
The interrupt functions were always intended to go in the
int section. For the stuff outside of them.. maybe. How
are they going to get checked? pause is currently handled
through addhandler and screenshot checked with every render
update. addhandlers for break and sysrq?
My testing was compiling and running dosbox but no
exhaustive check for every key. The enum was reordered to
the order of the case statement from KEYBOARD_AddKey so the
opportunity for error is me applying that index to the enum,
and maybe the case ranges.
One of the commands I added isn't handled correctly which I
fixed long ago but havn't uploaded an update yet so I guess
I'll prep that.
The command correction + some code simplifications.
Logged In: YES
keyboardrv3.diff still has a bug 'keyboard locked' in Windows
3.1x (normal & dynamic core).
win3.11 bug confirmed.
it's in the keyboard read control command (port 64 case
0x20.) Commenting that one out makes it work
(win3.11 disables keyboard before issuing that command)
So win3.11 doesn't like the control word emulation.
(the current handler ignores this command) and windows seems
to timeout after a while.