Top secrets sources NedoPC pentevo

Rev

Rev 799 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

#include "std.h"

#include "emul.h"
#include "vars.h"
#include "inputpc.h"
const unsigned short dik_scan[256] =
{    //thims zxevo_ps/2
    0x0000,
    0x0076, // DIK_ESCAPE
    0x0016, // DIK_1              
    0x001E, // DIK_2              
    0x0026, // DIK_3              
    0x0025, // DIK_4              
    0x002E, // DIK_5              
    0x0036, // DIK_6              
    0x003D, // DIK_7              
    0x003E, // DIK_8              
    0x0046, // DIK_9              
    0x0045, // DIK_0
    0x004E, // DIK_MINUS
    0x0055, // DIK_EQUALS          
    0x0066, // DIK_BACK
    0x000D, // DIK_TAB            
    0x0015, // DIK_Q              
    0x001D, // DIK_W              
    0x0024, // DIK_E              
    0x002D, // DIK_R              
    0x002C, // DIK_T              
    0x0035, // DIK_Y              
    0x003C, // DIK_U              
    0x0043, // DIK_I              
    0x0044, // DIK_O              
    0x004D, // DIK_P
    0x0054, // DIK_LBRACKET        
    0x005B, // DIK_RBRACKET        
    0x005A, // DIK_RETURN
    0x0014, // DIK_LCONTROL        
    0x001C, // DIK_A              
    0x001B, // DIK_S              
    0x0023, // DIK_D              
    0x002B, // DIK_F              
    0x0034, // DIK_G              
    0x0033, // DIK_H              
    0x003B, // DIK_J              
    0x0042, // DIK_K              
    0x004B, // DIK_L
    0x004C, // DIK_SEMICOLON      
    0x0052, // DIK_APOSTROPHE      
    0x000E, // DIK_GRAVE
    0x0012, // DIK_LSHIFT          
    0x005D, // DIK_BACKSLASH      
    0x001A, // DIK_Z              
    0x0022, // DIK_X              
    0x0021, // DIK_C              
    0x002A, // DIK_V              
    0x0032, // DIK_B              
    0x0031, // DIK_N              
    0x003A, // DIK_M
    0x0041, // DIK_COMMA          
    0x0049, // DIK_PERIOD              /* . on main keyboard */
    0x004A, // DIK_SLASH               /* / on main keyboard */
    0x0059, // DIK_RSHIFT          
    0x007C, // DIK_MULTIPLY            /* * on numeric keypad */
    0x0011, // DIK_LMENU               /* left Alt */
    0x0029, // DIK_SPACE          
    0x0058, // DIK_CAPITAL        
    0x0005, // DIK_F1              
    0x0006, // DIK_F2              
    0x0004, // DIK_F3              
    0x000C, // DIK_F4              
    0x0003, // DIK_F5              
    0x000B, // DIK_F6              
    0x0083, // DIK_F7              
    0x000A, // DIK_F8              
    0x0001, // DIK_F9              
    0x0009, // DIK_F10            
    0x0077, // DIK_NUMLOCK        
    0x007E, // DIK_SCROLL              /* Scroll Lock */
    0x006C, // DIK_NUMPAD7        
    0x0075, // DIK_NUMPAD8        
    0x007D, // DIK_NUMPAD9        
    0x007B, // DIK_SUBTRACT            /* - on numeric keypad */
    0x006B, // DIK_NUMPAD4        
    0x0073, // DIK_NUMPAD5        
    0x0074, // DIK_NUMPAD6        
    0x0079, // DIK_ADD                 /* + on numeric keypad */
    0x0069, // DIK_NUMPAD1        
    0x0072, // DIK_NUMPAD2        
    0x007A, // DIK_NUMPAD3        
    0x0070, // DIK_NUMPAD0        
    0x0071, // DIK_DECIMAL             /* . on numeric keypad */
    0x0000,
    0x0000,
    0x0000, // DIK_OEM_102             /* <> or \| on RT 102-key keyboard (Non-U.S.) */
    0x0078, // DIK_F11            
    0x0007, // DIK_F12
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_F13                 /*                     (NEC PC98) */
    0x0000, // DIK_F14                 /*                     (NEC PC98) */
    0x0000, // DIK_F15                 /*                     (NEC PC98) */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_KANA                /* (Japanese keyboard)            */
    0x0000,
    0x0000,
    0x0000, // DIK_ABNT_C1             /* /? on Brazilian keyboard */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_CONVERT             /* (Japanese keyboard)            */
    0x0000,
    0x0000, // DIK_NOCONVERT           /* (Japanese keyboard)            */
    0x0000,
    0x0000, // DIK_YEN                 /* (Japanese keyboard)            */
    0x0000, // DIK_ABNT_C2             /* Numpad . on Brazilian keyboard */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_NUMPADEQUALS        /* = on numeric keypad (NEC PC98) */
    0x0000,
    0x0000,
    0x0000, // DIK_PREVTRACK           /* Previous Track (DIK_CIRCUMFLEX on Japanese keyboard) */
    0x0000, // DIK_AT                  /*                     (NEC PC98) */
    0x0000, // DIK_COLON               /*                     (NEC PC98) */
    0x0000, // DIK_UNDERLINE           /*                     (NEC PC98) */
    0x0000, // DIK_KANJI               /* (Japanese keyboard)            */
    0x0000, // DIK_STOP                /*                     (NEC PC98) */
    0x0000, // DIK_AX                  /*                     (Japan AX) */
    0x0000, // DIK_UNLABELED           /*                        (J3100) */
    0x0000,
    0x0000, // DIK_NEXTTRACK           /* Next Track */
    0x0000,
    0x0000,
    0x015A, // DIK_NUMPADENTER         /* Enter on numeric keypad */
    0x0114, // DIK_RCONTROL        
    0x0000,
    0x0000,
    0x0000, // DIK_MUTE                /* Mute */
    0x0000, // DIK_CALCULATOR          /* Calculator */
    0x0000, // DIK_PLAYPAUSE           /* Play / Pause */
    0x0000,
    0x0000, // DIK_MEDIASTOP           /* Media Stop */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_VOLUMEDOWN          /* Volume - */
    0x0000,
    0x0000, // DIK_VOLUMEUP            /* Volume + */
    0x0000,
    0x0000, // DIK_WEBHOME             /* Web home */
    0x0000, // DIK_NUMPADCOMMA         /* , on numeric keypad (NEC PC98) */
    0x0000,
    0x014A, // DIK_DIVIDE              /* / on numeric keypad */
    0x0000,
    0x0112, // DIK_SYSRQ          
    0x0111, // DIK_RMENU               /* right Alt */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000, // DIK_PAUSE               /* Pause */
    0x0000,
    0x016C, // DIK_HOME                /* Home on arrow keypad */
    0x0175, // DIK_UP                  /* UpArrow on arrow keypad */
    0x017D, // DIK_PRIOR               /* PgUp on arrow keypad */
    0x0000,
    0x016B, // DIK_LEFT                /* LeftArrow on arrow keypad */
    0x0000,
    0x0174, // DIK_RIGHT               /* RightArrow on arrow keypad */
    0x0000,
    0x0169, // DIK_END                 /* End on arrow keypad */
    0x0172, // DIK_DOWN                /* DownArrow on arrow keypad */
    0x017A, // DIK_NEXT                /* PgDn on arrow keypad */
    0x0170, // DIK_INSERT              /* Insert on arrow keypad */
    0x0171, // DIK_DELETE              /* Delete on arrow keypad */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x011F, // DIK_LWIN                /* Left Windows key */
    0x0127, // DIK_RWIN                /* Right Windows key */
    0x012F, // DIK_APPS                /* AppMenu key */
    0x0137, // DIK_POWER               /* System Power */
    0x013F, // DIK_SLEEP               /* System Sleep */
    0x0000,
    0x0000,
    0x0000,
    0x015E, // DIK_WAKE                /* System Wake */
    0x0000,
    0x0000, // DIK_WEBSEARCH           /* Web Search */
    0x0000, // DIK_WEBFAVORITES        /* Web Favorites */
    0x0000, // DIK_WEBREFRESH          /* Web Refresh */
    0x0000, // DIK_WEBSTOP             /* Web Stop */
    0x0000, // DIK_WEBFORWARD          /* Web Forward */
    0x0000, // DIK_WEBBACK             /* Web Back */
    0x0000, // DIK_MYCOMPUTER          /* My Computer */
    0x0000, // DIK_MAIL                /* Mail */
    0x0000, // DIK_MEDIASELECT         /* Media Select */
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000,
    0x0000
};
const PC_KEY pc_layout[] =
{
   { DIK_1, 0x31, 0xB1 },
   { DIK_2, 0x32, 0xB2 },
   { DIK_3, 0x33, 0xB3 },
   { DIK_4, 0x34, 0xB4 },
   { DIK_5, 0x35, 0xB5 },
   { DIK_6, 0x45, 0xE5 },
   { DIK_7, 0x44, 0xC5 },
   { DIK_8, 0x43, 0xF5 },
   { DIK_9, 0x42, 0xC3 },
   { DIK_0, 0x41, 0xC2 },
   { DIK_MINUS, 0xE4, 0xC1 }, // -_
   { DIK_EQUALS, 0xE2, 0xE3 }, // =+

   { DIK_Q, 0x21, 0x29 },
   { DIK_W, 0x22, 0x2A },
   { DIK_E, 0x23, 0x2B },
   { DIK_R, 0x24, 0x2C },
   { DIK_T, 0x25, 0x2D },
   { DIK_Y, 0x55, 0x5D },
   { DIK_U, 0x54, 0x5C },
   { DIK_I, 0x53, 0x5B },
   { DIK_O, 0x52, 0x5A },
   { DIK_P, 0x51, 0x59 },
//   { DIK_LBRACKET, 0xD5, 0x94 }, // [{
//   { DIK_RBRACKET, 0xD4, 0x95 }, // ]}

   { DIK_A, 0x11, 0x19 },
   { DIK_S, 0x12, 0x1A },
   { DIK_D, 0x13, 0x1B },
   { DIK_F, 0x14, 0x1C },
   { DIK_G, 0x15, 0x1D },
   { DIK_H, 0x65, 0x6D },
   { DIK_J, 0x64, 0x6C },
   { DIK_K, 0x63, 0x6B },
   { DIK_L, 0x62, 0x6A },
   { DIK_SEMICOLON, 0xD2, 0x82 }, // ;:
   { DIK_APOSTROPHE, 0xC4, 0xD1 }, // '"

   { DIK_Z, 0x02, 0x0A },
   { DIK_X, 0x03, 0x0B },
   { DIK_C, 0x04, 0x0C },
   { DIK_V, 0x05, 0x0D },
   { DIK_B, 0x75, 0x7D },
   { DIK_N, 0x74, 0x7C },
   { DIK_M, 0x73, 0x7B },
   { DIK_COMMA, 0xF4, 0xA4 }, // ,<
   { DIK_PERIOD, 0xF3, 0xA5 }, // .>
   { DIK_SLASH, 0x85, 0x84 }, // /?
   { DIK_BACKSLASH, 0x93, 0x92 }, // \|
};

const size_t pc_layout_count = _countof(pc_layout);