Diff for /np2/win9x/winkbd.cpp between versions 1.3 and 1.10

version 1.3, 2003/10/30 18:09:06 version 1.10, 2005/02/07 14:46:14
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
 #include        "np2.h"  #include        "np2.h"
 #include        "winkbd.h"  #include        "winkbd.h"
 #include        "pccore.h"  #include        "keystat.h"
 #include        "iocore.h"  
   
   
 #define         NC              0xff  #define         NC              0xff
   
 static const BYTE key106[256] = {  static UINT8 key106[256] = {
                         //          ,    ,    ,STOP,    ,    ,    ,             ; 0x00                          //          ,    ,    ,STOP,    ,    ,    ,             ; 0x00
                                   NC,  NC,  NC,0x60,  NC,  NC,  NC,  NC,                                    NC,  NC,  NC,0x60,  NC,  NC,  NC,  NC,
                         //        BS, TAB,    ,    , CLR, ENT,    ,             ; 0x08                          //        BS, TAB,    ,    , CLR, ENT,    ,             ; 0x08
Line 35  static const BYTE key106[256] = { Line 34  static const BYTE key106[256] = {
                         //      <£°>,<£±>,<£²>,<£³>,<£´>,<£µ>,<£¶>,<£·>         ; 0x60                          //      <£°>,<£±>,<£²>,<£³>,<£´>,<£µ>,<£¶>,<£·>         ; 0x60
                                 0x4e,0x4a,0x4b,0x4c,0x46,0x47,0x48,0x42,                                  0x4e,0x4a,0x4b,0x4c,0x46,0x47,0x48,0x42,
                         //      <£¸>,<£¹>,<¡ö>,<¡Ü>,<¡¤>,<¡Ý>,<¡¥>,<¡¿>         ; 0x68                          //      <£¸>,<£¹>,<¡ö>,<¡Ü>,<¡¤>,<¡Ý>,<¡¥>,<¡¿>         ; 0x68
                                 0x43,0x44,0x45,0x49,  NC,0x40,0x50,0x41,                                  0x43,0x44,0x45,0x49,0x4f,0x40,0x50,0x41,
                         //       f.1, f.2, f.3, f.4, f.5, f.6, f.7, f.8         ; 0x70                          //       f.1, f.2, f.3, f.4, f.5, f.6, f.7, f.8         ; 0x70
                                 0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,                                  0x62,0x63,0x64,0x65,0x66,0x67,0x68,0x69,
                         //       f.9, f10, f11, f12, f13, f14, f15, f16         ; 0x78                          //       f.9, f10, f11, f12, f13, f14, f15, f16         ; 0x78
Line 62  static const BYTE key106[256] = { Line 61  static const BYTE key106[256] = {
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,                                    NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                         //          ,    ,    ,    ,    ,    ,    ,             ; 0xd0                          //          ,    ,    ,    ,    ,    ,    ,             ; 0xd0
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,                                    NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                         //          ,    ,    ,  ¡Î,  ¡ï,  ¡Ï,  ¡°,             ; 0xd8                          //          ,    ,    ,  ¡Î,  ¡ï,  ¡Ï,  ¡°,  ¡²         ; 0xd8
                                   NC,  NC,  NC,0x1b,0x0d,0x28,0x0c,  NC,                                    NC,  NC,  NC,0x1b,0x0d,0x28,0x0c,0x33,
                         //          ,    ,  ¡²,    ,    ,    ,    ,             ; 0xe0                          //          ,    ,  ¡²,    ,    ,    ,    ,             ; 0xe0
                                   NC,  NC,0x33,  NC,  NC,  NC,  NC,  NC,                                    NC,  NC,0x33,  NC,  NC,  NC,  NC,  NC,
                         //          ,    ,    ,    ,    ,    ,    ,             ; 0xe8                          //          ,    ,    ,    ,    ,    ,    ,             ; 0xe8
Line 73  static const BYTE key106[256] = { Line 72  static const BYTE key106[256] = {
                         //          ,    ,    ,    ,    ,    ,    ,             ; 0xf8                          //          ,    ,    ,    ,    ,    ,    ,             ; 0xf8
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};                                    NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};
   
 static const BYTE key106ext[256] = {  static const UINT8 key106ext[256] = {
                         //          ,    ,    ,STOP,    ,    ,    ,             ; 0x00                          //          ,    ,    ,STOP,    ,    ,    ,             ; 0x00
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,                                    NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC,
                         //        BS, TAB,    ,    , CLR, ENT,    ,             ; 0x08                          //        BS, TAB,    ,    , CLR, ENT,    ,             ; 0x08
Line 139  static const BYTE key106ext[256] = { Line 138  static const BYTE key106ext[256] = {
                         //          ,    ,    ,    ,    ,    ,    ,             ; 0xf8                          //          ,    ,    ,    ,    ,    ,    ,             ; 0xf8
                                   NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};                                    NC,  NC,  NC,  NC,  NC,  NC,  NC,  NC};
   
 static const BYTE f12keys[] = {  static const UINT8 f12keys[] = {
                         0x61, 0x60, 0x4d, 0x4f};                          0x61, 0x60, 0x4d, 0x4f, 0x76, 0x77};
   
   
 static BYTE getf12key(void) {  
   
         UINT    key;  
   
         key = np2oscfg.F12COPY - 1;  
         if (key < (sizeof(f12keys)/sizeof(BYTE))) {  
                 return(f12keys[key]);  
         }  
         else {  
                 return(NC);  
         }  
 }  
   
 void winkbd_keydown(WPARAM wParam, LPARAM lParam) {  void winkbd_keydown(WPARAM wParam, LPARAM lParam) {
   
         BYTE    data;          UINT8   data;
   
         if (wParam != VK_F12) {          data = key106[wParam & 0xff];
                 data = key106[wParam & 0xff];  
         }  
         else {  
                 data = getf12key();  
         }  
         if (data != NC) {          if (data != NC) {
                 if ((data == 0x73) &&                  if ((data == 0x73) &&
                                 (np2oscfg.KEYBOARD == KEY_KEY101) &&                                  (np2oscfg.KEYBOARD == KEY_KEY101) &&
Line 190  void winkbd_keydown(WPARAM wParam, LPARA Line 171  void winkbd_keydown(WPARAM wParam, LPARA
   
 void winkbd_keyup(WPARAM wParam, LPARAM lParam) {  void winkbd_keyup(WPARAM wParam, LPARAM lParam) {
   
         BYTE    data;          UINT8   data;
   
         if (wParam != VK_F12) {          data = key106[wParam & 0xff];
                 data = key106[wParam & 0xff];  
         }  
         else {  
                 data = getf12key();  
         }  
         if (data != NC) {          if (data != NC) {
                 if ((data == 0x73) &&                  if ((data == 0x73) &&
                                 (np2oscfg.KEYBOARD == KEY_KEY101) &&                                  (np2oscfg.KEYBOARD == KEY_KEY101) &&
Line 210  void winkbd_keyup(WPARAM wParam, LPARAM  Line 186  void winkbd_keyup(WPARAM wParam, LPARAM 
                         keystat_senddata(0x70 | 0x80);                          // PC/AT only                          keystat_senddata(0x70 | 0x80);                          // PC/AT only
                         data = key106ext[wParam & 0xff];                          data = key106ext[wParam & 0xff];
                 }                  }
                 keystat_senddata((BYTE)(data | 0x80));                  keystat_senddata((UINT8)(data | 0x80));
         }          }
         else {                                                                                          // ver0.28          else {                                                                                          // ver0.28
                 if ((np2oscfg.KEYBOARD != KEY_PC98) && (wParam == 0x0c)) {                  if ((np2oscfg.KEYBOARD != KEY_PC98) && (wParam == 0x0c)) {
Line 220  void winkbd_keyup(WPARAM wParam, LPARAM  Line 196  void winkbd_keyup(WPARAM wParam, LPARAM 
         }          }
 }  }
   
   void winkbd_roll(BOOL pcat) {
   
           if (pcat) {
                   key106[0x21] = 0x36;
                   key106[0x22] = 0x37;
           }
           else {
                   key106[0x21] = 0x37;
                   key106[0x22] = 0x36;
           }
   }
   
   void winkbd_setf12(UINT f12key) {
   
           UINT8   key;
   
           f12key--;
           if (f12key < NELEMENTS(f12keys)) {
                   key = f12keys[f12key];
           }
           else {
                   key = NC;
           }
           key106[0x7b] = key;
   }
   
 void winkbd_resetf12(void) {  void winkbd_resetf12(void) {
   
         UINT    i;          UINT    i;
   
         for (i=0; i<(sizeof(f12keys)/sizeof(BYTE)); i++) {          for (i=0; i<NELEMENTS(f12keys); i++) {
                 keystat_forcerelease(f12keys[i]);                  keystat_forcerelease(f12keys[i]);
         }          }
 }  }

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


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