From ba07c2bc98fdba991b6d6444d57f0f897cf5959f Mon Sep 17 00:00:00 2001 From: schneefux Date: Sun, 12 Jun 2016 20:08:57 +0200 Subject: import full project --- src/key.c | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 src/key.c (limited to 'src/key.c') diff --git a/src/key.c b/src/key.c new file mode 100644 index 0000000..9083fbd --- /dev/null +++ b/src/key.c @@ -0,0 +1,39 @@ +int OSVersionAsInt(void) +{ + unsigned char mainversion; + unsigned char minorversion; + unsigned short release; + unsigned short build; + GlibGetOSVersionInfo( &mainversion, &minorversion, &release, &build ); + return ( ( mainversion << 24 ) & 0xFF000000 ) | ( ( minorversion << 16 ) & 0x00FF0000 ) | ( release & 0x0000FFFF ); +} + +#define isOS2 (OSVersionAsInt() >= 0x02020000) + +const unsigned short* keyboardregister = (unsigned short*)0xA44B0000; + +unsigned short key[8]; + +int KeyDown(int keycode) +{ + if(isOS2) + { + int row, col, word, bit; + + row = keycode%10; + col = keycode/10-1; + word = row>>1; + bit = col + 8*(row&1); + + memcpy(&key, keyboardregister, 8 * sizeof(unsigned short)); + + return (0 != (key[word] & 1<> 4 ) == keycode; + } +} + -- cgit v1.3.1