OSDN Git Service

[VM][I286] Save cpustate without StateBuffer().
[csp-qt/common_source_project-fm7.git] / source / src / vm / m5 / cmt.h
1 /*
2         SORD m5 Emulator 'Emu5'
3
4         Author : Takeda.Toshiya
5         Date   : 2006.08.18 -
6
7         [ cmt/printer ]
8 */
9
10 #ifndef _CMT_H_
11 #define _CMT_H_
12
13 #include "../vm.h"
14 #include "../../emu.h"
15 #include "../device.h"
16
17 #define SIG_CMT_IN              0
18 #define SIG_CMT_EOT             1
19 //#define SIG_PRINTER_BUSY      2
20
21 class CMT : public DEVICE
22 {
23 private:
24         DEVICE* d_drec;
25         
26         // data recorder
27         bool in, out, remote, eot;
28         
29         // printer
30         uint8_t pout;
31         bool strobe, busy;
32         
33         // reset/halt key
34         const uint8_t* key_stat;
35         
36 public:
37         CMT(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
38         {
39                 set_device_name(_T("CMT I/F"));
40         }
41         ~CMT() {}
42         
43         // common functions
44         void initialize();
45         void write_io8(uint32_t addr, uint32_t data);
46         uint32_t read_io8(uint32_t addr);
47         void write_signal(int id, uint32_t data, uint32_t mask);
48         bool process_state(FILEIO* state_fio, bool loading);
49         
50         // unique function
51         void set_context_drec(DEVICE* device)
52         {
53                 d_drec = device;
54         }
55 };
56
57 #endif