OSDN Git Service

[VM][STATE] Use namespace {VMNAME} to separate per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pasopia7 / keyboard.h
1 /*
2         TOSHIBA PASOPIA 7 Emulator 'EmuPIA7'
3
4         Author : Takeda.Toshiya
5         Date   : 2006.09.20 -
6
7         [ keyboard ]
8 */
9
10 #ifndef _KEYBOARD_H_
11 #define _KEYBOARD_H_
12
13 #include "../vm.h"
14 #include "../../emu.h"
15 #include "../device.h"
16
17 #define SIG_KEYBOARD_Z80PIO_A   0
18
19 namespace PASOPIA7 {
20
21 class KEYBOARD : public DEVICE
22 {
23 private:
24         DEVICE* d_pio;
25         
26         const uint8_t* key_stat;
27         void create_key();
28         uint8_t sel;
29         
30 public:
31         KEYBOARD(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
32         {
33                 set_device_name(_T("Keyboard"));
34         }
35         ~KEYBOARD() {}
36         
37         // common functions
38         void initialize();
39         void write_signal(int id, uint32_t data, uint32_t mask);
40         void event_frame();
41         bool process_state(FILEIO* state_fio, bool loading);
42         
43         // unique function
44         void set_context_pio(DEVICE* device)
45         {
46                 d_pio = device;
47         }
48 };
49
50 }
51 #endif
52