OSDN Git Service

c463b9f470cdb87d338b43895df8637c191bfd4f
[csp-qt/common_source_project-fm7.git] / source / src / vm / mz80k / display.h
1 /*\r
2         SHARP MZ-80K Emulator 'EmuZ-80K'\r
3         SHARP MZ-1200 Emulator 'EmuZ-1200'\r
4 \r
5         Author : Takeda.Toshiya\r
6         Date   : 2010.08.18-\r
7 \r
8         SHARP MZ-80A Emulator 'EmuZ-80A'\r
9         Modify : Hideki Suga\r
10         Date   : 2014.12.10 -\r
11 \r
12         [ display ]\r
13 */\r
14 \r
15 #ifndef _DISPLAY_H_\r
16 #define _DISPLAY_H_\r
17 \r
18 #include "../vm.h"\r
19 #include "../../emu.h"\r
20 #include "../device.h"\r
21 \r
22 #define SIG_DISPLAY_VGATE       0\r
23 #if defined(_MZ1200) || defined(_MZ80A)\r
24 #define SIG_DISPLAY_REVERSE     1\r
25 #endif\r
26 \r
27 class DISPLAY : public DEVICE\r
28 {\r
29 private:\r
30         uint8 screen[200][320];\r
31         uint8 font[0x800];\r
32         uint8 *vram_ptr;\r
33 #if defined(_MZ80A)\r
34         uint8 *e200_ptr;\r
35 #endif\r
36         scrntype palette_pc[2];\r
37         bool vgate;\r
38 #if defined(_MZ1200) || defined(_MZ80A)\r
39         bool reverse;\r
40 #endif\r
41         \r
42 public:\r
43         DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
44         ~DISPLAY() {}\r
45         \r
46         // common functions\r
47         void initialize();\r
48         void reset();\r
49         void write_signal(int id, uint32 data, uint32 mask);\r
50         void event_vline(int v, int clock);\r
51         \r
52         // unique function\r
53         void set_vram_ptr(uint8* ptr)\r
54         {\r
55                 vram_ptr = ptr;\r
56         }\r
57         void draw_screen();\r
58 #if defined(_MZ80A)\r
59         void set_e200_ptr(uint8* ptr)\r
60         {\r
61                 e200_ptr = ptr;\r
62         }\r
63         \r
64 #endif\r
65 };\r
66 \r
67 #endif\r
68 \r