OSDN Git Service

[VM][General] Merge upstream 2016-02-13. Still don't implement OSD/Gui part of joysti...
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz2500 / keyboard.h
1 /*
2         SHARP MZ-80B Emulator 'EmuZ-80B'
3         SHARP MZ-2200 Emulator 'EmuZ-2200'
4         SHARP MZ-2500 Emulator 'EmuZ-2500'
5
6         Author : Takeda.Toshiya
7         Date   : 2006.12.01 -
8
9         [ keyboard ]
10 */
11
12 #ifndef _KEYBOARD_H_
13 #define _KEYBOARD_H_
14
15 #include "../vm.h"
16 #include "../../emu.h"
17 #include "../device.h"
18
19 #define SIG_KEYBOARD_COLUMN     0
20
21 class KEYBOARD : public DEVICE
22 {
23 private:
24         DEVICE *d_pio_i, *d_pio;        // i8255, z80pio
25         
26         // keyboard
27         const uint8* key_stat;
28         uint8 keys[16];
29         uint8 column;
30         void create_keystat();
31         
32 public:
33         KEYBOARD(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}
34         ~KEYBOARD() {}
35         
36         // common functions
37         void initialize();
38         void write_signal(int id, uint32 data, uint32 mask);
39         void event_frame();
40         void save_state(FILEIO* state_fio);
41         bool load_state(FILEIO* state_fio);
42         
43         // unique function
44         void set_context_pio_i(DEVICE* device)
45         {
46                 d_pio_i = device;
47         }
48         void set_context_pio(DEVICE* device)
49         {
50                 d_pio = device;
51         }
52 };
53
54 #endif
55