The two input form of KEYBOARDON makes is so that if you run KEYBOARDVALUE from either instruction list, you get the keyboard code for the key that was pressed/released. As of FMSLogo 7.0.0, KEYBOARDVALUE outputs different codes for the "keydown" and "keyup" instructionlist on non-US keyboards when keys outside of the ASCII range are typed. This includes Cyrillic, Greek, and some Croatian characters. The one from "keydown" is correct. The one from "keyup" is not.
How Reproducible:
Every Time
Steps to Reproduce:
1) Configure the system language for Windows to be Russian/Greek/Croatian.
2) Install the corresponding Russian/Greek/Croatian build of FMSLogo.
3) Run test\keyboardmouse-interactive.lgo
4) Type Russian/Greek/Croatian keys (which aren't in Latin-1). For example, press and release a "ъ" on a Russian keyboard, which is where the ] character is on a US keyboard.
What Happens:
The top label says KeyDown=221, Char=]
The second label says KeyDown=250, Char=Unknown
Expected Result:
The top label says KeyDown=221, Char=], as before
The second label says KeyDown=221, Char=]
[r4726] fixes this. This will be released in FMSLogo 7.4.0.
Related
Commit: [r4726]