OSDN Git Service

93e8cc81de3f450dc2b4de388035427acddd0dc8
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz2800 / sasi.h
1 /*
2         SHARP MZ-2800 Emulator 'EmuZ-2800'
3
4         Author : Takeda.Toshiya
5         Date   : 2018.05.25 -
6
7         [ SASI I/F ]
8 */
9
10 #ifndef _SASI_H_
11 #define _SASI_H_
12
13 #include "../vm.h"
14 #include "../../emu.h"
15 #include "../device.h"
16
17 #define SIG_SASI_IRQ    0
18 #define SIG_SASI_DRQ    1
19
20 class SASI : public DEVICE
21 {
22 private:
23         DEVICE *d_host;
24         DEVICE *d_dma, *d_pic;
25         
26         // sasi
27         uint8_t control;
28         bool irq_status;
29         bool drq_status;
30         
31 public:
32         SASI(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
33         {
34                 set_device_name(_T("SASI I/F"));
35         }
36         ~SASI() {}
37         
38         // common functions
39         void reset();
40         void write_io8(uint32_t addr, uint32_t data);
41         uint32_t read_io8(uint32_t addr);
42         void write_dma_io8(uint32_t addr, uint32_t data);
43         uint32_t read_dma_io8(uint32_t addr);
44         void write_signal(int id, uint32_t data, uint32_t mask);
45         bool process_state(FILEIO* state_fio, bool loading);
46         
47         // unique function
48         void set_context_host(DEVICE* device)
49         {
50                 d_host = device;
51         }
52         void set_context_dma(DEVICE* device)
53         {
54                 d_dma = device;
55         }
56         void set_context_pic(DEVICE* device)
57         {
58                 d_pic = device;
59         }
60 };
61
62 #endif
63