| version 1.6, 2003/11/24 07:40:02 | version 1.10, 2004/01/22 01:10:04 | 
| Line 9 | Line 9 | 
 |  |  | 
 | #define         NC              0xff | #define         NC              0xff | 
 |  |  | 
 |  | typedef struct { | 
 |  | BYTE    f11[4]; | 
 |  | BYTE    f12[4]; | 
 |  | } BINDTBL; | 
 |  |  | 
 |  | static const BINDTBL bindtbl = { | 
 |  | //   ¥«¥Ê  Stop  [¡á]  NFER | 
 |  | {0x72, 0x60, 0x4d, 0x51}, | 
 |  | //         Copy  [¡¤]  XFER | 
 |  | {NC,   0x61, 0x4f, 0x35}}; | 
 |  |  | 
 |  | void mackbd_resetf11(void) { | 
 |  |  | 
 |  | UINT    i; | 
 |  |  | 
 |  | for (i=1; i<(sizeof(bindtbl.f11)/sizeof(BYTE)); i++) { | 
 |  | keystat_forcerelease(bindtbl.f11[i]); | 
 |  | } | 
 |  | } | 
 |  |  | 
 |  | void mackbd_resetf12(void) { | 
 |  |  | 
 |  | UINT    i; | 
 |  |  | 
 |  | for (i=1; i<(sizeof(bindtbl.f12)/sizeof(BYTE)); i++) { | 
 |  | keystat_forcerelease(bindtbl.f12[i]); | 
 |  | } | 
 |  | } | 
 |  |  | 
 |  |  | 
 | #if TARGET_API_MAC_CARBON | #if TARGET_API_MAC_CARBON | 
 |  |  | 
| Line 23  typedef struct { | Line 52  typedef struct { | 
 |  |  | 
 | static  MACKBD          mackbd; | static  MACKBD          mackbd; | 
 |  |  | 
 |  |  | 
 | static const BYTE keymac[128] = { | static const BYTE keymac[128] = { | 
 | //        £Á,  £Ó,  £Ä,  £Æ,  £È,  £Ç,  £Ú,  £Ø         ; 0x00 | //        £Á,  £Ó,  £Ä,  £Æ,  £È,  £Ç,  £Ú,  £Ø         ; 0x00 | 
 | 0x1d,0x1e,0x1f,0x20,0x22,0x21,0x29,0x2a, | 0x1d,0x1e,0x1f,0x20,0x22,0x21,0x29,0x2a, | 
| Line 41  static const BYTE keymac[128] = { | Line 69  static const BYTE keymac[128] = { | 
 | 0x0f,0x34,  NC,0x0e,  NC,0x00,  NC,  NC, | 0x0f,0x34,  NC,0x0e,  NC,0x00,  NC,  NC, | 
 | //       sft, cps, alt, ctl,    ,    ,    ,             ; 0x38 | //       sft, cps, alt, ctl,    ,    ,    ,             ; 0x38 | 
 | 0x70,0x79,0x73,0x74,  NC,  NC,  NC,  NC, | 0x70,0x79,0x73,0x74,  NC,  NC,  NC,  NC, | 
| //          , [.],    , [*],    ,    , [+],             ; 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,    , F11         ; 0x60 | 
| 0x66,0x67,0x68,0x64,0x69,0x6a,  NC,0x72, | 0x66,0x67,0x68,0x64,0x69,0x6a,  NC,  NC, | 
 | //          , F13,    , F14,    , F10,    , F12         ; 0x68 | //          , F13,    , F14,    , F10,    , F12         ; 0x68 | 
 | NC,  NC,  NC,  NC,  NC,0x6b,  NC,  NC, | NC,  NC,  NC,  NC,  NC,0x6b,  NC,  NC, | 
 | //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70 | //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70 | 
| Line 135  void mackbd_callback(void) { | Line 163  void mackbd_callback(void) { | 
 |  |  | 
 | BOOL mackbd_keydown(int keycode, BOOL cmd) { | BOOL mackbd_keydown(int keycode, BOOL cmd) { | 
 |  |  | 
| if (keycode == 0x6f) { | BYTE    data; | 
| if (np2oscfg.F12COPY == 1) { |  | 
| keystat_senddata(0x61); | data = NC; | 
| return(TRUE); | if (keycode == 0x67) { | 
| } | if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { | 
| else if (np2oscfg.F12COPY == 2) { | data = bindtbl.f11[np2oscfg.F11KEY]; | 
| keystat_senddata(0x60); | } | 
| return(TRUE); | } | 
| } | else if (keycode == 0x6f) { | 
|  | if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { | 
|  | data = bindtbl.f12[np2oscfg.F12KEY]; | 
|  | } | 
|  | } | 
|  | if (data != NC) { | 
|  | keystat_senddata(data); | 
|  | return(TRUE); | 
 | } | } | 
 | (void)cmd; | (void)cmd; | 
 | return(FALSE); | return(FALSE); | 
| Line 151  BOOL mackbd_keydown(int keycode, BOOL cm | Line 186  BOOL mackbd_keydown(int keycode, BOOL cm | 
 |  |  | 
 | BOOL mackbd_keyup(int keycode) { | BOOL mackbd_keyup(int keycode) { | 
 |  |  | 
| if (keycode == 0x6f) { | BYTE    data; | 
| if (np2oscfg.F12COPY == 1) { |  | 
| keystat_senddata(0x61 | 0x80); | data = NC; | 
| return(TRUE); | if (keycode == 0x67) { | 
| } | if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { | 
| else if (np2oscfg.F12COPY == 2) { | data = bindtbl.f11[np2oscfg.F11KEY]; | 
| keystat_senddata(0x60 | 0x80); |  | 
| return(TRUE); |  | 
 | } | } | 
 | } | } | 
 |  | else if (keycode == 0x6f) { | 
 |  | if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { | 
 |  | data = bindtbl.f12[np2oscfg.F12KEY]; | 
 |  | } | 
 |  | } | 
 |  | if (data != NC) { | 
 |  | keystat_senddata(data | 0x80); | 
 |  | return(TRUE); | 
 |  | } | 
 | return(FALSE); | return(FALSE); | 
 | } | } | 
 |  |  | 
| Line 216  static const BYTE keymac[128] = { | Line 258  static const BYTE keymac[128] = { | 
 | 0x0f,0x34,  NC,0x0e,  NC,0x00,  NC,  NC, | 0x0f,0x34,  NC,0x0e,  NC,0x00,  NC,  NC, | 
 | //       sft, cps, alt, ctl,    ,    ,    ,             ; 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,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,    , F11         ; 0x60 | 
| 0x66,0x67,0x68,0x64,0x69,0x6a,  NC,0x72, | 0x66,0x67,0x68,0x64,0x69,0x6a,  NC,  NC, | 
 | //          , F13,    , F14,    , F10,    , F12         ; 0x68 | //          , F13,    , F14,    , F10,    , F12         ; 0x68 | 
 | NC,  NC,  NC,  NC,  NC,0x6b,  NC,  NC, | NC,  NC,  NC,  NC,  NC,0x6b,  NC,  NC, | 
 | //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70 | //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70 | 
| Line 251  static const BYTE keymac2[128] = { | Line 293  static const BYTE keymac2[128] = { | 
 | NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC, | NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC, | 
 | //       sft, cps, alt, ctl,    ,    ,    ,             ; 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, | 
 | //          ,    ,    ,    , ret,    , [-], clr         ; 0x48 | //          ,    ,    ,    , ret,    , [-], clr         ; 0x48 | 
 | NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC, | NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC, | 
| Line 319  BOOL mackbd_keydown(int keycode, BOOL cm | Line 361  BOOL mackbd_keydown(int keycode, BOOL cm | 
 | BYTE    data; | BYTE    data; | 
 |  |  | 
 | data = NC; | data = NC; | 
| if (keycode == 0x6f) { | if (keycode == 0x67) { | 
| if (np2oscfg.F12COPY == 1) { | if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { | 
| data = 0x61; | data = bindtbl.f11[np2oscfg.F11KEY]; | 
 | } | } | 
| else if (np2oscfg.F12COPY == 2) { | } | 
| data = 0x60; | else if (keycode == 0x6f) { | 
|  | if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { | 
|  | data = bindtbl.f12[np2oscfg.F12KEY]; | 
 | } | } | 
 | } | } | 
 | else if (keycode < 0x80) { | else if (keycode < 0x80) { | 
| Line 351  BOOL mackbd_keyup(int keycode) { | Line 395  BOOL mackbd_keyup(int keycode) { | 
 |  |  | 
 | data = NC; | data = NC; | 
 | ret = FALSE; | ret = FALSE; | 
| if (keycode == 0x6f) { | if (keycode == 0x67) { | 
| if (np2oscfg.F12COPY == 1) { | if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(BYTE))) { | 
| data = 0x61; | data = bindtbl.f11[np2oscfg.F11KEY]; | 
 | } | } | 
| else if (np2oscfg.F12COPY == 2) { | } | 
| data = 0x60; | else if (keycode == 0x6f) { | 
|  | if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(BYTE))) { | 
|  | data = bindtbl.f12[np2oscfg.F12KEY]; | 
 | } | } | 
 | } | } | 
 | else if (keycode < 0x80) { | else if (keycode < 0x80) { |