Details | Last modification | View Log | RSS feed
Rev | Author | Line No. | Line |
---|---|---|---|
716 | lvd | 1 | #pragma once |
2 | |||
3 | struct ATM_KBD |
||
4 | { |
||
5 | union { |
||
6 | unsigned char zxkeys[8]; |
||
7 | unsigned zxdata[2]; |
||
8 | }; |
||
9 | unsigned char mode, R7, lastscan, cmd; |
||
10 | unsigned char kR1, kR2, kR3, kR4, kR5; |
||
11 | |||
12 | void processzx(unsigned scancode, unsigned char pressed); |
||
13 | unsigned char read(unsigned char scan, unsigned char zxdata); |
||
14 | void setkey(unsigned scancode, unsigned char pressed); |
||
15 | void reset(); |
||
16 | void clear(); |
||
17 | }; |
||
18 | |||
19 | struct K_INPUT |
||
20 | { |
||
21 | #pragma pack(push, 1) |
||
22 | union |
||
23 | { |
||
24 | volatile unsigned char kbd[16]; |
||
25 | volatile unsigned kbd_x4[4]; |
||
26 | }; |
||
27 | |||
28 | union |
||
29 | { // without keymatrix effect |
||
30 | volatile unsigned char rkbd[16]; |
||
31 | volatile unsigned rkbd_x4[4]; |
||
32 | }; |
||
33 | #pragma pack(pop) |
||
34 | |||
35 | unsigned lastkey, nomouse; |
||
36 | |||
37 | enum { KM_DEFAULT, KM_KEYSTICK, KM_PASTE_HOLD, KM_PASTE_RELEASE } keymode; |
||
38 | |||
39 | int msx, msy, msx_prev, msy_prev, ay_x0, ay_y0; |
||
40 | unsigned ay_reset_t; |
||
41 | unsigned char mbuttons, ayR14; |
||
42 | |||
43 | volatile unsigned char kjoy; |
||
44 | unsigned char mousejoy; |
||
45 | unsigned char kbdled, mouse_joy_led; |
||
46 | unsigned char firedelay, firestate; // autofire vars |
||
47 | |||
48 | ATM_KBD atm51; |
||
49 | |||
50 | unsigned stick_delay; |
||
51 | int prev_wheel; |
||
52 | |||
53 | unsigned char *textbuffer; |
||
54 | unsigned textoffset, textsize; |
||
55 | unsigned char tdelay, tdata, wheel; //0.36.6 from 0.35b2 |
||
56 | |||
57 | unsigned char kempston_mx(); |
||
58 | unsigned char kempston_my(); |
||
59 | |||
60 | unsigned char aymouse_rd(); |
||
61 | void aymouse_wr(unsigned char val); |
||
62 | |||
63 | void clear_zx(); |
||
64 | inline void press_zx(unsigned char key); |
||
65 | bool process_pc_layout(); |
||
66 | void make_matrix(); |
||
67 | char readdevices(); |
||
68 | unsigned char read(unsigned char scan); |
||
69 | u8 read_quorum(u8 scan); |
||
70 | void paste(); |
||
71 | |||
72 | K_INPUT() |
||
73 | { |
||
74 | textbuffer = 0; |
||
75 | // random data on coords -> some programs detects mouse by this |
||
76 | ay_x0 = msx = 31, |
||
77 | ay_y0 = msy = 85; |
||
78 | |||
79 | nomouse = 0; |
||
80 | } |
||
81 | }; |