OSDN Git Service

[INITIAL] Import 20141226 version of http://homepage3.nifty.com/takeda-toshiya/common...
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz2500 / mz1e30.h
1 /*\r
2         SHARP MZ-2500 Emulator 'EmuZ-2500'\r
3 \r
4         Author : Takeda.Toshiya\r
5         Date   : 2004.09.10 -\r
6 \r
7         [ MZ-1E30 (SASI) ]\r
8 */\r
9 \r
10 #ifndef _MZ1E30_H_\r
11 #define _MZ1E30_H_\r
12 \r
13 #include "../vm.h"\r
14 #include "../../emu.h"\r
15 #include "../device.h"\r
16 \r
17 class FILEIO;\r
18 \r
19 class MZ1E30 : public DEVICE\r
20 {\r
21 private:\r
22         // rom file\r
23         uint8 *rom_buffer;\r
24         uint32 rom_address, rom_size;\r
25         \r
26         // sasi\r
27         uint8 buffer[256];\r
28         int phase;\r
29         int sector;\r
30         int blocks;\r
31         uint8 cmd[6];\r
32         int cmd_ptr;\r
33         int unit;\r
34         int buffer_ptr;\r
35         uint8 status;\r
36         uint8 status_irq_drq;\r
37         uint8 error;\r
38         uint8 status_buf[4];\r
39         int status_ptr;\r
40         uint8 datareg;\r
41         \r
42         struct {\r
43                 FILEIO *fio;\r
44                 bool access;\r
45         } drive[2];\r
46         \r
47         void check_cmd();\r
48         void set_status(uint8 err);\r
49         void set_drq(bool val);\r
50         bool seek(int drv);\r
51         bool flush(int drv);\r
52         bool format(int drv);\r
53         \r
54 public:\r
55         MZ1E30(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
56         ~MZ1E30() {}\r
57         \r
58         // common functions\r
59         void initialize();\r
60         void release();\r
61         void write_io8(uint32 addr, uint32 data);\r
62         uint32 read_io8(uint32 addr);\r
63         void write_dma_io8(uint32 addr, uint32 data);\r
64         uint32 read_dma_io8(uint32 addr);\r
65         uint32 read_signal(int ch);\r
66         void event_callback(int event_id, int err);\r
67         void save_state(FILEIO* state_fio);\r
68         bool load_state(FILEIO* state_fio);\r
69 };\r
70 \r
71 #endif\r
72 \r