pet graph keyboard map - double shift + char
Versatile Commodore Emulator
Brought to you by:
blackystardust,
gpz
I have an own keyboard scan routine, that also checks if the user uses both Shift keys at the same time to emulate a Ctrl key. What I found is that I can enter all (alpha) character with Ctrl, but:
-e
-h
-m
-n
-p
-t
-w
-z
When I try to press both shift plus one of those keys, the keyboard looks as if nothing has been pressed.
This can be re-created / tested with the plain xpet -model 4032: just press both shift and then one char. For the ones listed above nothing happens, for the others the shifted character appears.
Add. notes:
- Host Keyboard mapping is "German (de)"
- Machine keyboard setting is "Graphics (US)"
Add. notes:
The same happens with "xpet -model 8032":
- Host keyboard mapping again German (de)
- Machine keyboard mapping is "Business (UK)"
Similarly, just checked in "x64" - seems to be the same thing
Last edit: Andre Fachat 2024-05-24
I see similar things, yes. I say "similar" because I tried it first on my $WORK-Mac (which is restricted in what I am allowed to install, but Homebrew packages are allowed) . All of the letters that I tried worked with two shifts, and after letting go of the shift keys, the shift key "stuck" until I pressed and released them again (it seemed unclear if I needed to do that left, or right, or both in some order). That was with gtk3.
On my NetBSD machine, it worked more like you describe (with US key layout, but not exactly the same list of letters, my fails were for c, m, t, x, y, z), and that's when I tested with gtk3 too, not even SDL2.
So there is definitely something going on, and it doesn't at first seem to be n-key rollover due to the emulated keyboard matrix. Maybe n-key-rollover in the host keyboard matrix?
Hm actually, trying the same in an xterm also results in the same failures... that probably explains why we have different sets of keys failing for different tests.
To debug this properly, it would be really useful to have a test program similar to the C64 ones (eg ciaports.prg) - ie show the raw result of what the chip "sees" of the keyboard matrix
I tried in X with xev, and also in a text console (no X), I also don't get key presses from double-shift + ZXCV and some more letters), so for my case at least it must be the keyboard, and not some driver or keymap in X which suppresses these.