Rev 292 | Details | Compare with Previous | Last modification | View Log | RSS feed
| Rev | Author | Line No. | Line |
|---|---|---|---|
| 220 | chrv | 1 | #ifndef __KB_MAP_H__ |
| 2 | #define __KB_MAP_H__ |
||
| 3 | |||
| 4 | /** |
||
| 5 | * @file |
||
| 6 | * @brief PS/2 to ZX keyboard mapping support. |
||
| 7 | * @author http://www.nedopc.com |
||
| 8 | * |
||
| 9 | * PS/2 to ZX keyboard mapping support. |
||
| 10 | */ |
||
| 11 | |||
| 12 | /** ZX keyboard values */ |
||
| 13 | // |
||
| 14 | #define KEY_SP 0 |
||
| 15 | #define KEY_EN 1 |
||
| 16 | #define KEY_P 2 |
||
| 17 | #define KEY_0 3 |
||
| 18 | #define KEY_1 4 |
||
| 19 | #define KEY_Q 5 |
||
| 20 | #define KEY_A 6 |
||
| 21 | #define KEY_CS 7 |
||
| 22 | // |
||
| 23 | #define KEY_SS 8 |
||
| 24 | #define KEY_L 9 |
||
| 25 | #define KEY_O 10 |
||
| 26 | #define KEY_9 11 |
||
| 27 | #define KEY_2 12 |
||
| 28 | #define KEY_W 13 |
||
| 29 | #define KEY_S 14 |
||
| 30 | #define KEY_Z 15 |
||
| 31 | // |
||
| 32 | #define KEY_M 16 |
||
| 33 | #define KEY_K 17 |
||
| 34 | #define KEY_I 18 |
||
| 35 | #define KEY_8 19 |
||
| 36 | #define KEY_3 20 |
||
| 37 | #define KEY_E 21 |
||
| 38 | #define KEY_D 22 |
||
| 39 | #define KEY_X 23 |
||
| 40 | // |
||
| 41 | #define KEY_N 24 |
||
| 42 | #define KEY_J 25 |
||
| 43 | #define KEY_U 26 |
||
| 44 | #define KEY_7 27 |
||
| 45 | #define KEY_4 28 |
||
| 46 | #define KEY_R 29 |
||
| 47 | #define KEY_F 30 |
||
| 48 | #define KEY_C 31 |
||
| 49 | // |
||
| 50 | #define KEY_B 32 |
||
| 51 | #define KEY_H 33 |
||
| 52 | #define KEY_Y 34 |
||
| 53 | #define KEY_6 35 |
||
| 54 | #define KEY_5 36 |
||
| 55 | #define KEY_T 37 |
||
| 56 | #define KEY_G 38 |
||
| 57 | #define KEY_V 39 |
||
| 58 | // |
||
| 59 | #define NO_KEY 0x7F |
||
| 292 | chrv | 60 | //#define RST_48 0x7E |
| 61 | //#define RST128 0x7D |
||
| 62 | //#define RSTRDS 0x7C |
||
| 63 | //#define RSTSYS 0x7B |
||
| 220 | chrv | 64 | #define CLRKYS 0x7A |
| 65 | // |
||
| 66 | |||
| 67 | /** Pointer to map. */ |
||
| 299 | chrv | 68 | //extern UBYTE* kbmap; |
| 220 | chrv | 69 | /** Pointer to map (extent E0). */ |
| 299 | chrv | 70 | //extern UBYTE* kbmap_E0; |
| 220 | chrv | 71 | |
| 299 | chrv | 72 | /** Pointer to default map. */ |
| 73 | //extern const UBYTE default_kbmap[]; |
||
| 74 | /** Pointer to default map (extent E0). */ |
||
| 75 | //extern const UBYTE default_kbmap_E0[]; |
||
| 76 | |||
| 220 | chrv | 77 | /** Init keyboard mapping. */ |
| 78 | void kbmap_init(void); |
||
| 79 | |||
| 299 | chrv | 80 | /** Data type for map values. */ |
| 81 | typedef union |
||
| 82 | { |
||
| 83 | struct |
||
| 84 | { |
||
| 85 | UBYTE b1; |
||
| 86 | UBYTE b2; |
||
| 87 | } tb; |
||
| 88 | UWORD tw; |
||
| 89 | } |
||
| 90 | KBMAP_VALUE; |
||
| 220 | chrv | 91 | |
| 299 | chrv | 92 | /** |
| 93 | * Get keyboard map value. |
||
| 94 | * @return map values |
||
| 95 | * @param scancode [in] - code from PS/2 keyboard |
||
| 96 | * @param was_E0 [in] - 0: code without prefix, >0: code with prefix E0 |
||
| 97 | */ |
||
| 98 | KBMAP_VALUE kbmap_get(UBYTE scancode, UBYTE was_E0); |
||
| 99 | |||
| 220 | chrv | 100 | #endif //__KB_MAP_H__ |