Diff for /np2/macos9/mackbd.cpp between versions 1.2 and 1.12

version 1.2, 2003/11/09 23:42:06 version 1.12, 2004/02/18 06:19:01
Line 2 Line 2
 #include        "np2.h"  #include        "np2.h"
 #include        "dosio.h"  #include        "dosio.h"
 #include        "mackbd.h"  #include        "mackbd.h"
 #include        "memory.h"  #include        "keystat.h"
 #include        "pccore.h"  
 #include        "iocore.h"  
   
   
 #define         NC              0xff  #define         NC              0xff
   
   typedef struct {
           UINT8   f11[5];
           UINT8   f12[5];
   } BINDTBL;
   
   static const BINDTBL bindtbl = {
                                                   //   ¥«¥Ê  Stop  [¡á]  NFER  USER
                                                           {0x72, 0x60, 0x4d, 0x51, 0x76},
                                                   //         Copy  [¡¤]  XFER
                                                           {NC,   0x61, 0x4f, 0x35, 0x77}};
   
   void mackbd_resetf11(void) {
   
           UINT    i;
   
           for (i=1; i<(sizeof(bindtbl.f11)/sizeof(UINT8)); i++) {
                   keystat_forcerelease(bindtbl.f11[i]);
           }
   }
   
   void mackbd_resetf12(void) {
   
           UINT    i;
   
           for (i=1; i<(sizeof(bindtbl.f12)/sizeof(UINT8)); i++) {
                   keystat_forcerelease(bindtbl.f12[i]);
           }
   }
   
   
   #if TARGET_API_MAC_CARBON
   
   typedef struct {
           UINT32  tick;
           BYTE    keymap[16];
           BOOL    active;
           UINT32  repbase;
           UINT32  reptick;
           BYTE    repkey;
   } 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 24  static const BYTE keymac[128] = { Line 65  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,
                         //          , [.],    , [*],    ,    , [+],             ; 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 43  static const BYTE keymac[128] = { Line 84  static const BYTE keymac[128] = {
                         //        F2,  rd,  F1,  ¢«,  ¢ª,  ¢­,  ¢¬,             ; 0x78                          //        F2,  rd,  F1,  ¢«,  ¢ª,  ¢­,  ¢¬,             ; 0x78
                                 0x63,0x36,0x62,0x3b,0x3c,0x3d,0x3a,  NC};                                  0x63,0x36,0x62,0x3b,0x3c,0x3d,0x3a,  NC};
   
 #if 0  static const BYTE repkey[16] = {
 // ÎӸ饭¡¼²¡²¼                  0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0x7f,
 static const BYTE keymac2[128] = {                  0xff, 0xff, 0xc1, 0xff, 0xc0, 0x0f, 0x07, 0x07};
                         //        £Á,  £Ó,  £Ä,  £Æ,  £È,  £Ç,  £Ú,  £Ø         ; 0x00  
                                   NC,  NC,  NC,  NC,0x3f,  NC,  NC,  NC,  
                         //        £Ã,  £Ö,    ,  £Â,  £Ñ,  £×,  £Å,  £Ò         ; 0x08  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //        £Ù,  £Ô,  £±,  £²,  £³,  £´,  £¶,  £µ         ; 0x10  
                                   NC,  NC,0x62,0x63, 0x64,0x65,0x67,0x66,  
                         //        ¡°,  £¹,  £·,  ¡Ý,  £¸,  £°,  ¡Î,  £Ï         ; 0x18  
                                   NC,0x6a,0x68,  NC,0x69,0x6b,  NC,  NC,  
                         //        £Õ,  ¡÷,  £É,  £Ð, ret,  £Ì,  £Ê,  ¡§         ; 0x20  
                                   NC,  NC,  NC,  NC,  NC,0x3e,  NC,  NC,  
                         //        £Ë,  ¡¨,  ¡Ï,  ¡¤,  ¡¿,  £Î,  £Í,  ¡¥         ; 0x28  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //       TAB, SPC,    ,  BS,    , ESC,    , apl         ; 0x30  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //       sft, ctl, alt, cps,    ,    ,    ,             ; 0x38  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //          , [.],    , [*],    ,    , [+],             ; 0x40  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //          ,    ,    ,    , ret,    , [-], clr         ; 0x48  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //          , [=], [0], [1], [2], [3], [4], [5]         ; 0x50  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //       [6], [7],    , [8], [9],  ¡ï,  ¡², [,]         ; 0x58  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //        F5,  F6,  F7,  F3,  F8,  F9,    , F11         ; 0x60  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //          , F13,    , F14,    , F10,    , F12         ; 0x68  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,  
                         //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70  
                                   NC,  NC,  NC,  NC,  NC,0x38,  NC,  NC,  
                         //        F2,  rd,  F1,  ¢«,  ¢ª,  ¢­,  ¢¬,             ; 0x78  
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};  
 #endif  
   
   
 #if TARGET_API_MAC_CARBON  
   
 static  BYTE    keymap[16];  
 static  UINT32  shiftchktick = 0;  
   
 void mackbd_initialize(void) {  void mackbd_initialize(void) {
   
         shiftchktick = GETTICK();          mackbd.tick = GETTICK();
         ZeroMemory(&keymap, sizeof(keymap));          ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap));
           mackbd.active = TRUE;
           mackbd.repkey = NC;
 }  }
   
 void mackbd_callback(void) {  void mackbd_callback(void) {
Line 101  void mackbd_callback(void) { Line 106  void mackbd_callback(void) {
         UINT    j;          UINT    j;
         BYTE    keycode;          BYTE    keycode;
   
           if (!mackbd.active) {
                   return;
           }
   
         tick = GETTICK();          tick = GETTICK();
         if (shiftchktick == tick) {          if (mackbd.tick == tick) {
                 return;                  return;
         }          }
         shiftchktick = tick;          mackbd.tick = tick;
 #if TARGET_API_MAC_CARBON  #if TARGET_API_MAC_CARBON
         GetKeys((long *)key);          GetKeys((long *)key);
 #else  #else
         GetKeys((unsigned long *)key);          GetKeys((unsigned long *)key);
 #endif  #endif
         for (i=0; i<16; i++) {          for (i=0; i<16; i++) {
                 update = keymap[i] ^ key[i];                  update = mackbd.keymap[i] ^ key[i];
                 if (update) {                  if (update) {
                         keymap[i] = key[i];                          mackbd.keymap[i] = key[i];
                         for (j=0; j<8; j++) {                          for (j=0; j<8; j++) {
                                 if (update & (1 << j)) {                                  if (update & (1 << j)) {
                                         keycode = keymac[i * 8 + j];                                          keycode = keymac[i * 8 + j];
                                         if (keycode != NC) {                                          if (keycode != NC) {
                                                 if (key[i] & (1 << j)) {                                                  if (key[i] & (1 << j)) {
                                                         keystat_senddata(keycode);                                                          keystat_senddata(keycode);
                                                           if ((repkey[keycode >> 3] << (keycode & 7))
                                                                                                                                           & 0x80) {
                                                                   mackbd.repkey = keycode;
                                                                   mackbd.repbase = tick;
                                                                   mackbd.reptick = 500;
                                                           }
                                                 }                                                  }
                                                 else {                                                  else {
                                                           if (mackbd.repkey == keycode) {
                                                                   mackbd.repkey = NC;
                                                           }
                                                         keystat_senddata(keycode + 0x80);                                                          keystat_senddata(keycode + 0x80);
                                                 }                                                  }
                                         }                                          }
Line 130  void mackbd_callback(void) { Line 148  void mackbd_callback(void) {
                         }                          }
                 }                  }
         }          }
   
           // ¥­¡¼¥ê¥Ô¡¼¥È½èÍý
           if (mackbd.repkey != NC) {
                   if ((tick - mackbd.repbase) >= mackbd.reptick) {
                           keystat_senddata(mackbd.repkey);                // keystat¦¤Çbreak¤¹¤ë
                           mackbd.repbase = tick;
                           mackbd.reptick = 40;
                   }
           }
 }  }
   
 BOOL mackbd_keydown(int keycode) {  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(UINT8))) {
                 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(UINT8))) {
                           data = bindtbl.f12[np2oscfg.F12KEY];
                   }
         }          }
           if (data != NC) {
                   keystat_senddata(data);
                   return(TRUE);
           }
           (void)cmd;
         return(FALSE);          return(FALSE);
 }  }
   
 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(UINT8))) {
                 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(UINT8))) {
                           data = bindtbl.f12[np2oscfg.F12KEY];
                   }
           }
           if (data != NC) {
                   keystat_senddata(data | 0x80);
                   return(TRUE);
           }
         return(FALSE);          return(FALSE);
 }  }
   
   void mackbd_activate(BOOL active) {
   
           if (mackbd.active != active) {
                   mackbd.active = active;
                   if (!active) {
                           ZeroMemory(&mackbd.keymap, sizeof(mackbd.keymap));
                           keystat_allrelease();
                   }
           }
   }
   
 #else  #else
   
 enum {  enum {
Line 186  static const KEYSEA keysea[] = { Line 239  static const KEYSEA keysea[] = {
                                         {kMac_Basebit(kMac_alt),        0x73},                                          {kMac_Basebit(kMac_alt),        0x73},
                                         {kMac_Basebit(kMac_ctrl),       0x74}};                                          {kMac_Basebit(kMac_ctrl),       0x74}};
   
   static const BYTE keymac[128] = {
                           //        £Á,  £Ó,  £Ä,  £Æ,  £È,  £Ç,  £Ú,  £Ø         ; 0x00
                                   0x1d,0x1e,0x1f,0x20,0x22,0x21,0x29,0x2a,
                           //        £Ã,  £Ö,    ,  £Â,  £Ñ,  £×,  £Å,  £Ò         ; 0x08
                                   0x2b,0x2c,  NC,0x2d,0x10,0x11,0x12,0x13,
                           //        £Ù,  £Ô,  £±,  £²,  £³,  £´,  £¶,  £µ         ; 0x10
                                   0x15,0x14,0x01,0x02,0x03,0x04,0x06,0x05,
                           //        ¡°,  £¹,  £·,  ¡Ý,  £¸,  £°,  ¡Î,  £Ï         ; 0x18
                                   0x0c,0x09,0x07,0x0b,0x08,0x0a,0x1b,0x18,
                           //        £Õ,  ¡÷,  £É,  £Ð, ret,  £Ì,  £Ê,  ¡§         ; 0x20
                                   0x16,0x1a,0x17,0x19,0x1c,0x25,0x23,0x27,
                           //        £Ë,  ¡¨,  ¡Ï,  ¡¤,  ¡¿,  £Î,  £Í,  ¡¥         ; 0x28
                                   0x24,0x26,0x28,0x30,0x32,0x2e,0x2f,0x31,
                           //       TAB, SPC,    ,  BS,    , ESC,    , apl         ; 0x30
                                   0x0f,0x34,  NC,0x0e,  NC,0x00,  NC,  NC,
                           //       sft, cps, alt, ctl,    ,    ,    ,             ; 0x38
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          , [.],    , [*],    , [+],    ,             ; 0x40
                                     NC,0x50,  NC,0x45,  NC,0x49,  NC,  NC,
                           //          ,    ,    , [/], ret,    , [-], clr         ; 0x48
                                     NC,  NC,  NC,0x41,0x1c,  NC,0x40,0x3e,
                           //          , [=], [0], [1], [2], [3], [4], [5]         ; 0x50
                                     NC,0x4d,0x4e,0x4a,0x4b,0x4c,0x46,0x47,
                           //       [6], [7],    , [8], [9],  ¡ï,  ¡², [,]         ; 0x58
                                   0x48,0x42,  NC,0x43,0x44,0x0d,0x33,0x4f,
                           //        F5,  F6,  F7,  F3,  F8,  F9,    , F11         ; 0x60
                                   0x66,0x67,0x68,0x64,0x69,0x6a,  NC,  NC,
                           //          , F13,    , F14,    , F10,    , F12         ; 0x68
                                     NC,  NC,  NC,  NC,  NC,0x6b,  NC,  NC,
                           //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70
                                     NC,  NC,0x3f,0x3e,0x37,0x39,0x65,0x3f,
                           //        F2,  rd,  F1,  ¢«,  ¢ª,  ¢­,  ¢¬,             ; 0x78
                                   0x63,0x36,0x62,0x3b,0x3c,0x3d,0x3a,  NC};
   
   // ÎӸ饭¡¼²¡²¼
   static const BYTE keymac2[128] = {
                           //        £Á,  £Ó,  £Ä,  £Æ,  £È,  £Ç,  £Ú,  £Ø         ; 0x00
                                     NC,  NC,  NC,  NC,0x3f,  NC,  NC,  NC,
                           //        £Ã,  £Ö,    ,  £Â,  £Ñ,  £×,  £Å,  £Ò         ; 0x08
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //        £Ù,  £Ô,  £±,  £²,  £³,  £´,  £¶,  £µ         ; 0x10
                                     NC,  NC,0x62,0x63, 0x64,0x65,0x67,0x66,
                           //        ¡°,  £¹,  £·,  ¡Ý,  £¸,  £°,  ¡Î,  £Ï         ; 0x18
                                     NC,0x6a,0x68,  NC,0x69,0x6b,  NC,  NC,
                           //        £Õ,  ¡÷,  £É,  £Ð, ret,  £Ì,  £Ê,  ¡§         ; 0x20
                                     NC,  NC,  NC,  NC,  NC,0x3e,  NC,  NC,
                           //        £Ë,  ¡¨,  ¡Ï,  ¡¤,  ¡¿,  £Î,  £Í,  ¡¥         ; 0x28
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //       TAB, SPC,    ,  BS,    , ESC,    , apl         ; 0x30
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //       sft, cps, alt, ctl,    ,    ,    ,             ; 0x38
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          , [.],    , [*],    , [+],    ,             ; 0x40
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          ,    ,    ,    , ret,    , [-], clr         ; 0x48
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          , [=], [0], [1], [2], [3], [4], [5]         ; 0x50
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //       [6], [7],    , [8], [9],  ¡ï,  ¡², [,]         ; 0x58
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //        F5,  F6,  F7,  F3,  F8,  F9,    , F11         ; 0x60
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          , F13,    , F14,    , F10,    , F12         ; 0x68
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                           //          , F15, hlp, hom,  ru, del,  F4, end         ; 0x70
                                     NC,  NC,  NC,  NC,  NC,0x38,  NC,  NC,
                           //        F2,  rd,  F1,  ¢«,  ¢ª,  ¢­,  ¢¬,             ; 0x78
                                     NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};
   
 typedef struct {  typedef struct {
         UINT32  tick;          UINT32  tick;
         UINT16  shift;          UINT16  shift;
           BOOL    active;
 } MACKBD;  } MACKBD;
   
 static  MACKBD          mackbd;  static  MACKBD          mackbd;
Line 196  static MACKBD  mackbd; Line 319  static MACKBD  mackbd;
 void mackbd_initialize(void) {  void mackbd_initialize(void) {
   
         ZeroMemory(&mackbd, sizeof(mackbd));          ZeroMemory(&mackbd, sizeof(mackbd));
           mackbd.active = TRUE;
 }  }
   
 void mackbd_callback(void) {  void mackbd_callback(void) {
Line 206  void mackbd_callback(void) { Line 330  void mackbd_callback(void) {
         UINT16  shiftchg;          UINT16  shiftchg;
         UINT    i;          UINT    i;
   
           if (!mackbd.active) {
                   return;
           }
   
         tick = GETTICK();          tick = GETTICK();
         if (mackbd.tick != tick) {          if (mackbd.tick != tick) {
                 mackbd.tick = tick;                  mackbd.tick = tick;
Line 226  void mackbd_callback(void) { Line 354  void mackbd_callback(void) {
         }          }
 }  }
   
 BOOL mackbd_keydown(int keycode) {  BOOL mackbd_keydown(int keycode, BOOL cmd) {
   
         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(UINT8))) {
                         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(UINT8))) {
                           data = bindtbl.f12[np2oscfg.F12KEY];
                 }                  }
         }          }
         else if (keycode < 0x80) {          else if (keycode < 0x80) {
                 data = keymac[keycode];                  if (!cmd) {
                           data = keymac[keycode];
                   }
                   else {
                           data = keymac2[keycode];
                   }
         }          }
         if (data != NC) {          if (data != NC) {
                 keystat_senddata(data);                  keystat_senddata(data);
Line 254  BOOL mackbd_keydown(int keycode) { Line 389  BOOL mackbd_keydown(int keycode) {
 BOOL mackbd_keyup(int keycode) {  BOOL mackbd_keyup(int keycode) {
   
         BYTE    data;          BYTE    data;
           BOOL    ret;
   
         data = NC;          data = NC;
         if (keycode == 0x6f) {          ret = FALSE;
                 if (np2oscfg.F12COPY == 1) {          if (keycode == 0x67) {
                         data = 0x61;                  if (np2oscfg.F11KEY < (sizeof(bindtbl.f11)/sizeof(UINT8))) {
                           data = bindtbl.f11[np2oscfg.F11KEY];
                 }                  }
                 else if (np2oscfg.F12COPY == 2) {          }
                         data = 0x60;          else if (keycode == 0x6f) {
                   if (np2oscfg.F12KEY < (sizeof(bindtbl.f12)/sizeof(UINT8))) {
                           data = bindtbl.f12[np2oscfg.F12KEY];
                 }                  }
         }          }
         else if (keycode < 0x80) {          else if (keycode < 0x80) {
                 data = keymac[keycode];                  data = keymac[keycode];
                   if (data != NC) {
                           keystat_senddata(data | 0x80);
                           ret = TRUE;
                   }
                   data = keymac2[keycode];
         }          }
         if (data != NC) {          if (data != NC) {
                 keystat_senddata(data | 0x80);                  keystat_senddata(data | 0x80);
                 return(TRUE);                  ret = TRUE;
         }          }
         else {          return(ret);
                 return(FALSE);  }
   
   void mackbd_activate(BOOL active) {
   
           if (mackbd.active != active) {
                   mackbd.active = active;
                   if (!active) {
                           keystat_allrelease();
                   }
         }          }
 }  }
   

Removed from v.1.2  
changed lines
  Added in v.1.12


RetroPC.NET-CVS <cvs@retropc.net>