OSDN Git Service

[INITIAL] Import 20141226 version of http://homepage3.nifty.com/takeda-toshiya/common...
[csp-qt/common_source_project-fm7.git] / source / src / vm / tk80bs / keyboard.h
1 /*\r
2         NEC TK-80BS (COMPO BS/80) Emulator 'eTK-80BS'\r
3 \r
4         Author : Takeda.Toshiya\r
5         Date   : 2008.08.26 -\r
6 \r
7         [ keyboard ]\r
8 */\r
9 \r
10 #ifndef _KEYBOARD_H_\r
11 #define _KEYBOARD_H_\r
12 \r
13 #include "../vm.h"\r
14 #include "../../emu.h"\r
15 #include "../device.h"\r
16 \r
17 #define SIG_KEYBOARD_COLUMN     0\r
18 \r
19 class KEYBOARD : public DEVICE\r
20 {\r
21 private:\r
22         DEVICE *d_pio_b, *d_pio_t, *d_cpu;\r
23         \r
24         uint8* key_stat;\r
25         uint8 prev_type, prev_brk, prev_kana;\r
26         bool kana_lock;\r
27         uint32 column, kb_type;\r
28         \r
29         void update_tk80();\r
30         \r
31 public:\r
32         KEYBOARD(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
33         ~KEYBOARD() {}\r
34         \r
35         // common functions\r
36         void initialize();\r
37         void reset();\r
38         void write_signal(int id, uint32 data, uint32 mask);\r
39         uint32 intr_ack();\r
40         uint32 read_signal(int ch)\r
41         {\r
42                 return kb_type & 3;\r
43         }\r
44         \r
45         // unique functions\r
46         void set_context_pio_b(DEVICE* device)\r
47         {\r
48                 d_pio_b = device;\r
49         }\r
50         void set_context_pio_t(DEVICE* device)\r
51         {\r
52                 d_pio_t = device;\r
53         }\r
54         void set_context_cpu(DEVICE* device)\r
55         {\r
56                 d_cpu = device;\r
57         }\r
58         void key_down(int code);\r
59         void key_up(int code);\r
60 };\r
61 \r
62 #endif\r
63 \r