--- np2/keystat.h 2004/02/18 03:24:48 1.1 +++ np2/keystat.h 2005/03/18 09:23:10 1.12 @@ -121,27 +121,90 @@ enum { }; #endif +enum { + NKEY_SYSTEM = 0x90, + + NKEY_USER = 0x90, + NKEY_USERKEYS = 2, + + NKEYREF_uPD8255 = 0xf7, + NKEYREF_USER = 0xf8, + NKEYREF_SOFTKBD = 0xf9, + NKEYREF_NC = 0xff +}; + + +typedef struct { + UINT8 keys; + UINT8 key[1]; +} NKEYM; + +typedef struct { + UINT8 keys; + UINT8 key[3]; +} NKEYM3; + +typedef struct { + UINT8 keys; + UINT8 key[15]; +} NKEYM15; + +typedef struct { + NKEYM3 key[NKEY_SYSTEM]; + NKEYM15 user[NKEY_USERKEYS]; +} NKEYTBL; + +typedef struct { + UINT8 reqparam; + UINT8 mode; + UINT8 kbdtype; + UINT8 keyrep; + UINT8 capsref; + UINT8 kanaref; +} KEYCTRL; + #ifdef __cplusplus extern "C" { #endif -void keystat_reset(void); -void keystat_senddata(REG8 data); +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 OEMCHAR *filename); + +void keystat_ctrlreset(void); +void keystat_ctrlsend(REG8 dat); + +void keystat_keydown(REG8 ref); +void keystat_keyup(REG8 ref); void keystat_allrelease(void); -void keystat_forcerelease(REG8 value); -void keystat_resetcopyhelp(void); +void keystat_releaseref(REG8 ref); +void keystat_releasekey(REG8 key); void keystat_resetjoykey(void); // ---- I/O +void keystat_down(const UINT8 *key, REG8 keys, REG8 ref); +void keystat_up(const UINT8 *key, REG8 keys, REG8 ref); void keystat_resendstat(void); -void keystat_sync(void); REG8 keystat_getjoy(void); REG8 keystat_getmouse(SINT16 *x, SINT16 *y); + + +// ---- Çѻߴؿô + +void keystat_senddata(REG8 data); +void keystat_forcerelease(REG8 data); + #ifdef __cplusplus } #endif