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 / qc10 / display.h
diff --git a/source/src/vm/qc10/display.h b/source/src/vm/qc10/display.h
new file mode 100644 (file)
index 0000000..268390b
--- /dev/null
@@ -0,0 +1,92 @@
+/*\r
+       EPSON QC-10 Emulator 'eQC-10'\r
+\r
+       Author : Takeda.Toshiya\r
+       Date   : 2008.02.16 -\r
+\r
+       [ display ]\r
+*/\r
+\r
+#ifndef _DISPLAY_H_\r
+#define _DISPLAY_H_\r
+\r
+#include "../vm.h"\r
+#include "../../emu.h"\r
+#include "../device.h"\r
+\r
+#define VRAM_SIZE      0x20000\r
+\r
+class UPD7220;\r
+\r
+class DISPLAY : public DEVICE\r
+{\r
+private:\r
+       UPD7220 *d_gdc;\r
+       \r
+#ifdef _COLOR_MONITOR\r
+       uint8 vram_r[VRAM_SIZE];\r
+       uint8 vram_g[VRAM_SIZE];\r
+       uint8 vram_b[VRAM_SIZE];\r
+       scrntype palette_pc[8];\r
+#else\r
+       uint8 vram[VRAM_SIZE];\r
+       uint8 font[0x10000];    // 16bytes * 256chars\r
+       scrntype palette_pc[16];        // normal, intensify\r
+#endif\r
+       uint8 screen[400][640];\r
+       scrntype tmp[640];\r
+       \r
+       uint8 *sync, *zoom, *ra, *cs;\r
+       int* ead;\r
+       uint8 bank;\r
+       int blink;\r
+       \r
+public:\r
+       DISPLAY(VM* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu) {}\r
+       ~DISPLAY() {}\r
+       \r
+       // common functions\r
+       void initialize();\r
+       void reset();\r
+       void write_io8(uint32 addr, uint32 data);\r
+       uint32 read_io8(uint32 addr);\r
+       void event_frame();\r
+       \r
+       // unique functions\r
+       void set_context_gdc(UPD7220* device)\r
+       {\r
+               d_gdc = device;\r
+       }\r
+       uint8* get_vram()\r
+       {\r
+#ifdef _COLOR_MONITOR\r
+               return vram_b;\r
+#else\r
+               return vram;\r
+#endif\r
+       }\r
+       void set_sync_ptr(uint8* ptr)\r
+       {\r
+               sync = ptr;\r
+       }\r
+       void set_zoom_ptr(uint8* ptr)\r
+       {\r
+               zoom = ptr;\r
+       }\r
+       void set_ra_ptr(uint8* ptr)\r
+       {\r
+               ra = ptr;\r
+       }\r
+       void set_cs_ptr(uint8* ptr)\r
+       {\r
+               cs = ptr;\r
+       }\r
+       void set_ead_ptr(int* ptr)\r
+       {\r
+               ead = ptr;\r
+       }\r
+       void draw_screen();\r
+};\r
+\r
+#endif\r
+\r