OSDN Git Service

[VM][STATE] Use namespace {VMNAME} to separate per VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pc9801 / sasi.h
1 /*
2         NEC PC-9801VX Emulator 'ePC-9801VX'
3         NEC PC-9801RA Emulator 'ePC-9801RA'
4         NEC PC-98XA Emulator 'ePC-98XA'
5         NEC PC-98XL Emulator 'ePC-98XL'
6         NEC PC-98RL Emulator 'ePC-98RL'
7
8         Author : Takeda.Toshiya
9         Date   : 2018.04.01-
10
11         [ sasi i/f ]
12 */
13
14 #ifndef _SASI_H_
15 #define _SASI_H_
16
17 #include "../vm.h"
18 #include "../../emu.h"
19 #include "../device.h"
20
21 #define SIG_SASI_IRQ    0
22 #define SIG_SASI_DRQ    1
23 #define SIG_SASI_TC     2
24
25 class SASI_HDD;
26
27 namespace PC9801 {
28
29 class SASI : public DEVICE
30 {
31 private:
32         DEVICE *d_host;
33         SASI_HDD *d_hdd;
34         DEVICE *d_dma, *d_pic;
35         
36         uint8_t ocr;
37         bool irq_status;
38         bool drq_status;
39         
40 public:
41         SASI(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
42         {
43                 set_device_name(_T("SASI I/F"));
44         }
45         ~SASI() {}
46         
47         // common functions
48         void reset();
49         void write_io8(uint32_t addr, uint32_t data);
50         uint32_t read_io8(uint32_t addr);
51 //      void write_dma_io8(uint32_t addr, uint32_t data);
52 //      uint32_t read_dma_io8(uint32_t addr);
53         void write_signal(int id, uint32_t data, uint32_t mask);
54         bool process_state(FILEIO* state_fio, bool loading);
55         
56         // unique functions
57         void set_context_host(DEVICE* device)
58         {
59                 d_host = device;
60         }
61         void set_context_hdd(SASI_HDD* device)
62         {
63                 d_hdd = device;
64         }
65         void set_context_dma(DEVICE* device)
66         {
67                 d_dma = device;
68         }
69         void set_context_pic(DEVICE* device)
70         {
71                 d_pic = device;
72         }
73 };
74
75 }
76 #endif
77