joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.64k stars 373 forks source link

IBM Model F/M '122-key terminal keyboard' #4127

Open Torinde opened 1 year ago

Torinde commented 1 year ago

Is your feature request related to a problem? Please describe.

DOSbox-X supports IBM PC keys for US, Europe, Korea, Japan, Windows, if I understand correctly. What's missing are:

What you want

Some rare games (flight simulators?) and software could make use of these extended F-keys

Since I couldn't find games using the extra terminal keys - what about utilizing the keys for new DOS development?

Current (and old) Apple Keyboards have up to F19 (F20-F24 codes can be remapped), work under Windows (even support remapping of extra keys via PowerToys?), I assume will work under Linux as well - so hardware is available (besides remapping and virtual keyboard #1953) image

Another "use case"/testing option (fringe of fringe): with Mainframe simulators / emulators

Describe alternatives you've considered

No response

Additional information

What I googled:

Have you checked that no similar feature request(s) exist?

Code of Conduct & Contributing Guidelines

joncampbell123 commented 1 year ago

Do you know with any certainty what the scan codes of F13 and beyond are? Do you know what the braille scan codes are?

There are already keys defined in the mapper for F13-F24, it's just a matter of mapping them and producing the right scan codes.

maron2000 commented 1 year ago

At least on Windows version that I can test now, OEM102 (nonUS backslash) and ABNT C1(International 1) is already supported on Dosbox-x. On a JP keyboard, International 1 is Ro key, and if I switch to Brazilian keyboard by keyb br the key will act as slash key which is just as expected.

Torinde commented 1 year ago

For the scancodes this seems helpful: http://www.quadibloc.com/comp/scan.htm

Brazil - there is one extra numpad key "INT 5", which is also present on the 122-key terminal keyboard.

Terminal keyboard - besides the extra 12 F-keys it has 8 other additional keys (1 above in the block above the arrows, 7 in the two rows to the left of the main keys).

Another key, which is present on more recent Windows/Mac keyboards is "Clear" - not sure how it fits with everything else (I think it has different code from the "Clear" on the Terminal keyboard): image

Torinde commented 1 year ago

Missing keys in Mapper?

Also missing:

Torinde commented 1 year ago

Tested "Clear" key - it got detected by the mapper as Esc. Not sure if there are different keyboard models/nuances here or that Numpad "Clear" key is just a label/for clarity... and the key is just a normal Escape one...

maron2000 commented 1 year ago

What is displayed in the mapper screen when Clear key is pressed? Are there any difference between SDL1 and SDL2 builds? I believe you are running it on Windows. On Mac, NumLock is allocated to Clear key so maybe the same for Windows as well.

Torinde commented 1 year ago

"Clear" key on the numpad of modern Microsoft keyboard (on normal PC keyboards on that position is NumLock, but on the keyboard I tested NumLock is moved elsewhere and replaced by "Clear"): Mapper SDL1 gives:

Ua2: scan=1 sym=27 mod=0h u=0h name=escape Win32: VK=0x1b kn=Esc

Mapper SDL2 gives:

U61: scan=41 sym=27 mod=1000h name=Escape

And the key behaves like "Escape" also outside DOSbox... so it seems it's just a "convenience label" and no real "Clear" signal exists... but I couldn't find documentation about that.

PS. The same keyboard has various other "extra" keys (some physical, some via Fn+ layer).

It seems all of those behaviors are as expected, I'm just sharing the info - don't think it's an error.

maron2000 commented 1 year ago

Ok so I see that there is nothing we can do for the Clear key on Windows, it's merely an Escape key.

Torinde commented 12 months ago

@fire-lizard, you mention:

Could you please add [PC 3270 (aka IBM 5271)] I believe Borland had driver for it in all versions of Turbo Pascal/Turbo C++ so it would be a nice addition to 86Box. point of interest is not the machine itself, but its graphics card.

Does Borland use the extra keys in PC 3270? Or only the special graphics card (3270PCDA listed at #4139)?

fire-lizard commented 12 months ago

@fire-lizard, you mention:

Could you please add [PC 3270 (aka IBM 5271)] I believe Borland had driver for it in all versions of Turbo Pascal/Turbo C++ so it would be a nice addition to 86Box. point of interest is not the machine itself, but its graphics card.

Does Borland use the extra keys in PC 3270? Or only the special graphics card (3270PCDA listed at #4139)?

BGI (Borland Graphics Interface) drivers are responsible for graphics only, not for keyboard etc.

Torinde commented 11 months ago

SVN 268 "patch supports BREAK over telnet for DOS terminal emulators like msKermit 3.15 using nullmodem and modem serial connections. Tested connecting to a SIMH emulator."

Seems related, but don't know if that may help here.