--- np2/keystat.h 2004/02/19 11:32:11 1.4 +++ np2/keystat.h 2004/03/28 19:50:25 1.7 @@ -121,12 +121,19 @@ enum { }; #endif +#if 0 enum { NKEY_USER1 = 0x76, NKEY_USER2 = 0x77 }; +#endif enum { + NKEY_SYSTEM = 0x90, + + NKEY_USER = 0x90, + NKEY_USERKEYS = 2, + NKEYREF_USER = 0xf8, NKEYREF_SOFTKBD = 0xf9, NKEYREF_NC = 0xff @@ -135,6 +142,11 @@ enum { typedef struct { UINT8 keys; + UINT8 key[1]; +} NKEYM; + +typedef struct { + UINT8 keys; UINT8 key[3]; } NKEYM3; @@ -144,21 +156,30 @@ typedef struct { } NKEYM15; typedef struct { - NKEYM3 key[0x80]; - NKEYM15 user[2]; + NKEYM3 key[NKEY_SYSTEM]; + NKEYM15 user[NKEY_USERKEYS]; } NKEYTBL; +typedef struct { + UINT8 mode; + UINT8 reqparam; + UINT8 kbdtype; + UINT8 led; +} KEYCTRL; + #ifdef __cplusplus extern "C" { #endif extern NKEYTBL nkeytbl; +extern KEYCTRL keyctrl; void keystat_initialize(void); void keystat_tblreset(void); +void keystat_tblset(REG8 ref, const UINT8 *key, UINT cnt); void keystat_tblload(const char *filename); void keystat_keydown(REG8 ref); @@ -182,10 +203,8 @@ REG8 keystat_getmouse(SINT16 *x, SINT16 // ---- Çѻߴؿô -#define keystat_reset keystat_initialize -#define keystat_sync() -#define keystat_forcerelease(k) keystat_releasekey(k) void keystat_senddata(REG8 data); +void keystat_forcerelease(REG8 data); #ifdef __cplusplus }