Blame | Last modification | View Log | Download | RSS feed | ?url?
1=pressed
39 38 37 36 35 34 33 32
byte0 = { KEY_SP, KEY_EN, KEY_P , KEY_0 , KEY_1 , KEY_Q , KEY_A , KEY_CS }
31 30 29 28 27 26 25 24
byte1 = { KEY_SS, KEY_L , KEY_O , KEY_9 , KEY_2 , KEY_W , KEY_S , KEY_Z }
23 22 21 20 19 18 17 16
byte2 = { KEY_M , KEY_K , KEY_I , KEY_8 , KEY_3 , KEY_E , KEY_D , KEY_X }
15 14 13 12 11 10 09 08
byte3 = { KEY_N , KEY_J , KEY_U , KEY_7 , KEY_4 , KEY_R , KEY_F , KEY_C }
07 06 05 04 03 02 01 00
byte4 = { KEY_B , KEY_H , KEY_Y , KEY_6 , KEY_5 , KEY_T , KEY_G , KEY_V }
lsbit first
byte4 first
#define NO_KEY 0xFF
#define RST_48 0xFE
#define RST128 0xFD
#define RSTRDS 0xFC
#define RSTSYS 0xFB
#define CLRKYS 0xFA
struct zx {
UBYTE counters[40];
UBYTE map[5]; // send order: LSbit first, from [4] to [0]
UBYTE reset_type;
};
void init_zx(void);
void to_zx(UBYTE scancode, UBYTE was_E0, UBYTE was_release);
void update_keys(UBYTE zxcode, UBYTE was_release);
void zx_task(void);
#endif