Diff for /np2/io/serial.c between versions 1.9 and 1.10

version 1.9, 2004/02/07 21:23:22 version 1.10, 2004/02/11 17:39:59
Line 86  static void keybrd_out(REG8 data) { Line 86  static void keybrd_out(REG8 data) {
   
 // ----  // ----
   
         UINT8   keystat[0x80];  static  UINT8   keystat[0x80];
   
 void keystat_reset(void) {  void keystat_reset(void) {
   
Line 98  void keystat_senddata(REG8 data) { Line 98  void keystat_senddata(REG8 data) {
   
         REG8    key;          REG8    key;
         BOOL    keynochange;          BOOL    keynochange;
   const UINT8     *user;
           UINT    i;
   
         key = data & 0x7f;          key = data & 0x7f;
         keynochange = FALSE;          keynochange = FALSE;
Line 110  void keystat_senddata(REG8 data) { Line 112  void keystat_senddata(REG8 data) {
                 data = key | (keystat[key] & 0x80);                  data = key | (keystat[key] & 0x80);
                 keystat[key] ^= 0x80;                  keystat[key] ^= 0x80;
         }          }
           else if ((key == 0x76) || (key == 0x77)) {              // user key
                   user = np2cfg.userkey[key - 0x76];
                   for (i=0; i<user[0]; i++) {
                           key = user[i+1] & 0x7f;
                           if (!((keystat[key] ^ data) & 0x80)) {
                                   keystat[key] ^= 0x80;
                                   keybrd_out((REG8)(key | (data & 0x80)));
                           }
                   }
                   return;
           }
         else {          else {
                 if ((np2cfg.XSHIFT) &&                  if ((np2cfg.XSHIFT) &&
                         (((key == 0x70) && (np2cfg.XSHIFT & 1)) ||                          (((key == 0x70) && (np2cfg.XSHIFT & 1)) ||
Line 150  void keystat_senddata(REG8 data) { Line 163  void keystat_senddata(REG8 data) {
         }          }
 }  }
   
   void keystat_forcerelease(REG8 value) {
   
           REG8    key;
   const UINT8     *user;
           UINT    i;
   
           key = value & 0x7f;
           if ((key != 0x76) && (key != 0x77)) {
                   if (keystat[key] & 0x80) {
                           keystat[key] &= ~0x80;
                           keybrd_out((REG8)(key | 0x80));
                   }
           }
           else {
                   user = np2cfg.userkey[key - 0x76];
                   for (i=0; i<user[0]; i++) {
                           key = user[i+1] & 0x7f;
                           if (keystat[key] & 0x80) {
                                   keystat[key] &= ~0x80;
                                   keybrd_out((REG8)(key | 0x80));
                           }
                   }
           }
   }
   
 void keystat_resetcopyhelp(void) {  void keystat_resetcopyhelp(void) {
   
         REG8    i;          REG8    i;
Line 174  void keystat_allrelease(void) { Line 212  void keystat_allrelease(void) {
         }          }
 }  }
   
 void keystat_forcerelease(REG8 value) {  
   
         if (keystat[value & 0x7f] & 0x80) {  
                 keystat[value & 0x7f] &= ~0x80;  
                 keybrd_out((REG8)(value | 0x80));  
         }  
 }  
   
 void keystat_resetjoykey(void) {  void keystat_resetjoykey(void) {
   
         int             i;          int             i;

Removed from v.1.9  
changed lines
  Added in v.1.10


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