1 #ifndef LIBRETRO_VKBD_H
2 #define LIBRETRO_VKBD_H
3 
4 extern void print_vkbd(unsigned short int *pixels);
5 extern int check_vkey(int x, int y);
6 
7 typedef struct
8 {
9    char normal[5];
10    char shift[5];
11    int value;
12 } retro_vkeys;
13 
14 static retro_vkeys vkeys[VKBDX * VKBDY] =
15 {
16    /* 0 */
17    { "1"  ,"!"   ,RETROK_1},
18    { "2"  ,"\""  ,RETROK_2},
19    { "3"  ,"#"   ,RETROK_3},
20    { "4"  ,"$"   ,RETROK_4},
21    { "5"  ,"%"   ,RETROK_5},
22    { "6"  ,"&"   ,RETROK_6},
23    { "7"  ,"'"   ,RETROK_7},
24    { "8"  ,"("   ,RETROK_8},
25    { "9"  ,")"   ,RETROK_9},
26 #ifdef __XPLUS4__
27    { "0"  ,{26}  ,RETROK_0},
28 #else
29    { "0"  ,"0"   ,RETROK_0},
30 #endif
31 #ifdef __XPLUS4__
32    { "F1" ,"F4"  ,RETROK_F1},
33 #else
34    { "f1" ,"f2"  ,RETROK_F1},
35 #endif
36 
37    /* 11 */
38    { "Q"  ,"Q"   ,RETROK_q},
39    { "W"  ,"W"   ,RETROK_w},
40    { "E"  ,"E"   ,RETROK_e},
41    { "R"  ,"R"   ,RETROK_r},
42    { "T"  ,"T"   ,RETROK_t},
43    { "Y"  ,"Y"   ,RETROK_y},
44    { "U"  ,"U"   ,RETROK_u},
45    { "I"  ,"I"   ,RETROK_i},
46    { "O"  ,"O"   ,RETROK_o},
47    { "P"  ,"P"   ,RETROK_p},
48 #ifdef __XPLUS4__
49    { "F2" ,"F5"  ,RETROK_F2},
50 #else
51    { "f3" ,"f4"  ,RETROK_F3},
52 #endif
53 
54    /* 22 */
55    { "A"  ,"A"   ,RETROK_a},
56    { "S"  ,"S"   ,RETROK_s},
57    { "D"  ,"D"   ,RETROK_d},
58    { "F"  ,"F"   ,RETROK_f},
59    { "G"  ,"G"   ,RETROK_g},
60    { "H"  ,"H"   ,RETROK_h},
61    { "J"  ,"J"   ,RETROK_j},
62    { "K"  ,"K"   ,RETROK_k},
63    { "L"  ,"L"   ,RETROK_l},
64    { {31} ,{31}  ,RETROK_INSERT}, /* £ */
65 #ifdef __XPLUS4__
66    { "F3" ,"F6"  ,RETROK_F3},
67 #else
68    { "f5" ,"f6"  ,RETROK_F5},
69 #endif
70 
71    /* 33 */
72    { "Z"  ,"Z"   ,RETROK_z},
73    { "X"  ,"X"   ,RETROK_x},
74    { "C"  ,"C"   ,RETROK_c},
75    { "V"  ,"V"   ,RETROK_v},
76    { "B"  ,"B"   ,RETROK_b},
77    { "N"  ,"N"   ,RETROK_n},
78    { "M"  ,"M"   ,RETROK_m},
79    { ","  ,"<"   ,RETROK_COMMA},
80    { "."  ,">"   ,RETROK_PERIOD},
81    { "/"  ,"?"   ,RETROK_SLASH},
82 #ifdef __XPLUS4__
83    { "HLP" ,"F7" ,RETROK_F8},
84 #else
85    { "f7" ,"f8"  ,RETROK_F7},
86 #endif
87 
88    /* 44 */
89 #ifdef __XPLUS4__
90    { "ESC","ESC" ,RETROK_BACKQUOTE},
91 #else
92    { {25} ,{25}  ,RETROK_BACKQUOTE}, /* Left arrow */
93 #endif
94    { "CTR","CTR" ,RETROK_TAB},
95    { "+"  ,"+"   ,RETROK_MINUS},
96    { "-"  ,"-"   ,RETROK_EQUALS},
97    { "@"  ,"@"   ,RETROK_LEFTBRACKET},
98    { "*"  ,"*"   ,RETROK_RIGHTBRACKET},
99    { {26} ,{7}   ,RETROK_DELETE}, /* Up arrow / Pi */
100    { ":"  ,"["   ,RETROK_SEMICOLON},
101    { ";"  ,"]"   ,RETROK_QUOTE},
102    { "="  ,"="   ,RETROK_BACKSLASH},
103    { "STB","STB" ,-3}, /* Statusbar */
104 
105    /* 55 */
106    { {24} ,{24}  ,RETROK_LCTRL},
107    { "R/S","R/S" ,RETROK_ESCAPE},
108    { "S/L","S/L" ,-5}, /* ShiftLock */
109    { "LSH","LSH" ,RETROK_LSHIFT},
110    { "RSH","RSH" ,RETROK_RSHIFT},
111    { "RST","RST" ,RETROK_PAGEUP},
112    { "CLR","CLR" ,RETROK_HOME},
113    { "DEL","DEL" ,RETROK_BACKSPACE},
114    { {30} ,{30}  ,RETROK_UP},
115    { "RET","RET" ,RETROK_RETURN},
116    { "JOY","JOY" ,-4}, /* Switch joyport */
117 
118    /* 66 */
119    { {17} ,{17}  ,-2},  /* Reset */
120    { {19} ,{19}  ,-15}, /* Datasette RESET */
121    { {20} ,{20}  ,-12}, /* Datasette PLAY */
122    { {21} ,{21}  ,-14}, /* Datasette RWD */
123    { {22} ,{22}  ,-13}, /* Datasette FWD */
124    { {23} ,{23}  ,-11}, /* Datasette STOP */
125    { {18} ,{18}  ,RETROK_SPACE},
126    { {27} ,{27}  ,RETROK_LEFT},
127    { {28} ,{28}  ,RETROK_DOWN},
128    { {29} ,{29}  ,RETROK_RIGHT},
129    { "TRF","TRF" ,-20}, /* Toggle turbo fire */
130 };
131 
132 #endif /* LIBRETRO_VKBD_H */
133