|
|
| version 1.3, 2003/10/19 14:56:15 | version 1.15, 2004/01/23 17:37:39 |
|---|---|
| Line 6 | Line 6 |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #if defined(NP2GCC) | |
| #include "mousemng.h" | |
| #include "menu.h" | |
| #include "sysmng.h" | |
| #endif | |
| #define NC 0xff | #define NC 0xff |
| Line 24 static const BYTE keymac[128] = { | Line 29 static const BYTE keymac[128] = { |
| 0x24,0x26,0x28,0x30,0x32,0x2e,0x2f,0x31, | 0x24,0x26,0x28,0x30,0x32,0x2e,0x2f,0x31, |
| // TAB, SPC, , BS, , ESC, , apl ; 0x30 | // TAB, SPC, , BS, , ESC, , apl ; 0x30 |
| 0x0f,0x34, NC,0x0e, NC,0x00, NC, NC, | 0x0f,0x34, NC,0x0e, NC,0x00, NC, NC, |
| // sft, ctl, alt, cps, , , , ; 0x38 | // sft, cps, alt, ctl, , , , ; 0x38 |
| 0x70,0x74,0x73,0x79, NC, NC, NC, NC, | 0x70,0x79,0x73,0x74, NC, NC, NC, NC, // for CW |
| // , [.], , [*], , , [+], ; 0x40 | // , [.], , [*], , [+], , ; 0x40 |
| NC,0x50, NC,0x45, NC, NC,0x49, NC, | NC,0x50, NC,0x45, NC,0x49, NC, NC, |
| // , , , , ret, , [-], clr ; 0x48 | // , , , [/], ret, , [-], clr ; 0x48 |
| NC, NC, NC, NC,0x1c, NC,0x40,0x3e, | NC, NC, NC,0x41,0x1c, NC,0x40,0x3e, |
| // , [=], [0], [1], [2], [3], [4], [5] ; 0x50 | // , [=], [0], [1], [2], [3], [4], [5] ; 0x50 |
| NC,0x4d,0x4e,0x4a,0x4b,0x4c,0x46,0x47, | NC,0x4d,0x4e,0x4a,0x4b,0x4c,0x46,0x47, |
| // [6], [7], , [8], [9], ¡ï, ¡², [,] ; 0x58 | // [6], [7], , [8], [9], ¡ï, ¡², [,] ; 0x58 |
| 0x48,0x42, NC,0x43,0x44,0x0d,0x33,0x4f, | 0x48,0x42, NC,0x43,0x44,0x0d,0x33,0x4f, |
| // F5, F6, F7, F3, F8, F9, , F11 ; 0x60 | // F5, F6, F7, F3, F8, F9,EISU, F11 ; 0x60 |
| 0x66,0x67,0x68,0x64,0x69,0x6a, NC,0x72, | 0x66,0x67,0x68,0x64,0x69,0x6a,0x51,0x72, |
| // , F13, , F14, , F10, , F12 ; 0x68 | // KANA, F13, , F14, , F10, , F12 ; 0x68 |
| NC, NC, NC, NC, NC,0x6b, NC, NC, | 0x35, NC, NC, NC, NC,0x6b, NC, NC, |
| // , F15, hlp, hom, ru, del, F4, end ; 0x70 | // , F15, hlp, hom, ru, del, F4, end ; 0x70 |
| NC, NC,0x3f,0x3e,0x37,0x39,0x65,0x3f, | NC, NC,0x3f,0x3e,0x37,0x39,0x65,0x3f, |
| // F2, rd, F1, ¢«, ¢ª, ¢, ¢¬, ; 0x78 | // F2, rd, F1, ¢«, ¢ª, ¢, ¢¬, ; 0x78 |
| Line 59 static const BYTE keymac2[128] = { | Line 64 static const BYTE keymac2[128] = { |
| NC, NC, NC, NC, NC, NC, NC, NC, | NC, NC, NC, NC, NC, NC, NC, NC, |
| // TAB, SPC, , BS, , ESC, , apl ; 0x30 | // TAB, SPC, , BS, , ESC, , apl ; 0x30 |
| NC, NC, NC, NC, NC, NC, NC, NC, | NC, NC, NC, NC, NC, NC, NC, NC, |
| // sft, ctl, alt, cps, , , , ; 0x38 | // sft, cps, alt, ctl, , , , ; 0x38 |
| NC, NC, NC, NC, NC, NC, NC, NC, | NC, NC, NC, NC, NC, NC, NC, NC, |
| // , [.], , [*], , , [+], ; 0x40 | // , [.], , [*], , , [+], ; 0x40 |
| NC, NC, NC, NC, NC, NC, NC, NC, | NC, NC, NC, NC, NC, NC, NC, NC, |
| Line 79 static const BYTE keymac2[128] = { | Line 84 static const BYTE keymac2[128] = { |
| NC, NC, NC, NC, NC, NC, NC, NC}; | NC, NC, NC, NC, NC, NC, NC, NC}; |
| static BYTE keymap[16]; | typedef struct { |
| static UINT32 shiftchktick = 0; | BYTE f11[4]; |
| BYTE f12[4]; | |
| void mackbd_initialize(void) { | } BINDTBL; |
| shiftchktick = GETTICK(); | static const BINDTBL bindtbl = { |
| ZeroMemory(&keymap, sizeof(keymap)); | // ¥«¥Ê Stop [¡á] NFER |
| {0x72, 0x60, 0x4d, 0x51}, | |
| // Copy [¡¤] XFER | |
| {NC, 0x61, 0x4f, 0x35}}; | |
| void mackbd_initialize(void) { }; | |
| void mackbd_keydown(int keycode) { | |
| BYTE data; | |
| data = NC; | |
| if (keycode == 0x67) { | |
| if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { | |
| data = bindtbl.f11[np2oscfg.F11KEY]; | |
| } | |
| } | |
| else if (keycode == 0x6f) { | |
| if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { | |
| data = bindtbl.f12[np2oscfg.F12KEY]; | |
| if (data == NC) { | |
| mousemng_toggle(MOUSEPROC_SYSTEM); | |
| menu_setmouse(np2oscfg.MOUSE_SW ^ 1); | |
| sysmng_update(SYS_UPDATECFG); | |
| } | |
| } | |
| } | |
| else { | |
| data = keymac[keycode]; | |
| } | |
| if (data != NC) { | |
| keystat_senddata(data); | |
| } | |
| } | } |
| void mackbd_callback(void) { | void mackbd_keyup(int keycode) { |
| UINT32 tick; | BYTE data; |
| BYTE key[16]; | |
| UINT i; | |
| BYTE update; | |
| UINT j; | |
| BYTE keycode; | |
| tick = GETTICK(); | data = NC; |
| if (shiftchktick == tick) { | if (keycode == 0x67) { |
| return; | if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { |
| data = bindtbl.f11[np2oscfg.F11KEY]; | |
| } | |
| } | } |
| shiftchktick = tick; | else if (keycode == 0x6f) { |
| #if TARGET_API_MAC_CARBON | if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { |
| GetKeys((long *)key); | data = bindtbl.f12[np2oscfg.F12KEY]; |
| #else | |
| GetKeys((unsigned long *)key); | |
| #endif | |
| for (i=0; i<16; i++) { | |
| update = keymap[i] ^ key[i]; | |
| if (update) { | |
| keymap[i] = key[i]; | |
| for (j=0; j<8; j++) { | |
| if (update & (1 << j)) { | |
| keycode = keymac[i * 8 + j]; | |
| if (keycode != NC) { | |
| if (key[i] & (1 << j)) { | |
| keystat_senddata(keycode); | |
| } | |
| else { | |
| keystat_senddata(keycode + 0x80); | |
| } | |
| } | |
| } | |
| } | |
| } | } |
| } | } |
| else { | |
| data = keymac[keycode]; | |
| } | |
| if (data != NC) { | |
| keystat_senddata(data | 0x80); | |
| return; | |
| } | |
| } | } |
| void mackbd_f12down(int keycode) { | void mackbd_resetf11(void) { |
| if (keycode == 0x6f) { | UINT i; |
| if (np2oscfg.F12COPY == 1) { | |
| keystat_senddata(0x61); | for (i=1; i<(sizeof(bindtbl.f11)/sizeof(BYTE)); i++) { |
| } | keystat_forcerelease(bindtbl.f11[i]); |
| else if (np2oscfg.F12COPY == 2) { | |
| keystat_senddata(0x60); | |
| } | |
| } | } |
| } | } |
| void mackbd_f12up(int keycode) { | void mackbd_resetf12(void) { |
| if (keycode == 0x6f) { | UINT i; |
| if (np2oscfg.F12COPY == 1) { | |
| keystat_senddata(0x61 | 0x80); | for (i=1; i<(sizeof(bindtbl.f12)/sizeof(BYTE)); i++) { |
| } | keystat_forcerelease(bindtbl.f12[i]); |
| else if (np2oscfg.F12COPY == 2) { | |
| keystat_senddata(0x60 | 0x80); | |
| } | |
| } | } |
| } | } |