Diff for /xmil/keystat.c between versions 1.3 and 1.4

version 1.3, 2005/02/04 06:42:07 version 1.4, 2008/06/02 20:07:30
Line 5 Line 5
 #include        "keystat.tbl"  #include        "keystat.tbl"
   
   
 // キーコードがないので PC-98シリーズのキーコードをベースとする  /* キーコードがないので PC-98シリーズのキーコードをベースとする */
 // … つまり猫のがそのまま使える  /* … つまり猫のがそのまま使える */
   
   
         KEYSTAT         keystat;          KEYSTAT         keystat;
Line 60  UINT keystat_getflag(void) { Line 60  UINT keystat_getflag(void) {
         kc = 0;          kc = 0;
         if (ks & 0x40) {          if (ks & 0x40) {
                 kf = keyflag[keystat.lastkey];                  kf = keyflag[keystat.lastkey];
                 ks |= (kf & 0x80);                                                              // function                  ks |= (kf & 0x80);                                                              /* function */
                 if (ks & 0x04) {                                                                // kana                  if (ks & 0x04) {                                                                /* kana */
                         if (!(ks & 0x02)) {                                                     // shift                          if (!(ks & 0x02)) {                                                     /* shift */
                                 tbl = 4;                                  tbl = 4;
                         }                          }
                         else {                          else {
                                 tbl = 5;                                  tbl = 5;
                         }                          }
                 }                  }
                 else if (ks & 0x01) {                                                   // ctrl                  else if (ks & 0x01) {                                                   /* ctrl */
                         tbl = 3;                          tbl = 3;
                 }                  }
                 else if (ks & 0x10) {                                                   // grph                  else if (ks & 0x10) {                                                   /* grph */
                         tbl = 2;                          tbl = 2;
                 }                  }
                 else if (ks & 0x02) {                                                   // shift                  else if (ks & 0x02) {                                                   /* shift */
                         tbl = 1;                          tbl = 1;
                 }                  }
                 else {                  else {
                         tbl = 0;                          tbl = 0;
                 }                  }
                 kc = keytbl[tbl][keystat.lastkey];                  kc = keytbl[tbl][keystat.lastkey];
                 if (ks & 0x08) {                                                                // caps                  if (ks & 0x08) {                                                                /* caps */
                         if (((kc >= 'A') && (kc <= 'Z')) ||                          if (((kc >= 'A') && (kc <= 'Z')) ||
                                 ((kc >= 'a') && (kc <= 'z'))) {                                  ((kc >= 'a') && (kc <= 'z'))) {
                                 kc ^= 0x20;                                  kc ^= 0x20;
Line 103  REG8 keystat_getjoy(void) { Line 103  REG8 keystat_getjoy(void) {
 }  }
   
   
 // ----  /* extension */
   
 void keystat_keydown(REG8 ref) {  void keystat_keydown(REG8 ref) {
   
Line 179  void keystat_allrelease(void) { Line 179  void keystat_allrelease(void) {
         }          }
 }  }
   
   
 // ----  
   
 // キーコード変更  
   
 static REG8 cnvnewcode(REG8 oldcode) {  static REG8 cnvnewcode(REG8 oldcode) {
   
         switch(oldcode) {          switch(oldcode) {
                 case 0x71:                              // 通常caps                  case 0x71:                              /* 通常caps */
                         return(0x81);                          return(0x81);
   
                 case 0x72:                              // 通常カナ                  case 0x72:                              /* 通常カナ */
                         return(0x82);                          return(0x82);
   
                 case 0x79:                              // メカニカルロックcaps                  case 0x79:                              /* メカニカルロックcaps */
                         return(0x71);                          return(0x71);
   
                 case 0x7a:                              // メカニカルロックcaps                  case 0x7a:                              /* メカニカルロックcaps */
                         return(0x72);                          return(0x72);
   
                 case 0x76:                  case 0x76:
                         return(0x90);           // NKEY_USER + 0                          return(0x90);           /* NKEY_USER + 0 */
   
                 case 0x77:                  case 0x77:
                         return(0x91);           // NKEY_USER + 1                          return(0x91);           /* NKEY_USER + 1 */
   
                 default:                  default:
                         return(oldcode);                          return(oldcode);
Line 224  void keystat_senddata(REG8 data) { Line 219  void keystat_senddata(REG8 data) {
 }  }
   
   
 //              0x80 --> 0x01  /*              0x80 --> 0x01
 //              Q  W  E  A  D  Z  X  C   *              Q  W  E  A  D  Z  X  C
 //              [7] [4] [1] [8] [2] [9] [6] [3]   *              [7] [4] [1] [8] [2] [9] [6] [3]
 //              ESC 1  [-] [+] [*] TAB ' ' Ent   *              ESC 1  [-] [+] [*] TAB ' ' Ent */

Removed from v.1.3  
changed lines
  Added in v.1.4


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