-/*\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
+/*
+ EPSON QC-10 Emulator 'eQC-10'
+
+ Author : Takeda.Toshiya
+ Date : 2008.02.16 -
+
+ [ display ]
+*/
+
+#ifndef _DISPLAY_H_
+#define _DISPLAY_H_
+
+#include "../vm.h"
+#include "../../emu.h"
+#include "../device.h"
+
+#define VRAM_SIZE 0x20000
+
+class UPD7220;
+
+namespace QC10 {
+
+class DISPLAY : public DEVICE
+{
+private:
+ UPD7220 *d_gdc;
+
+#ifdef _COLOR_MONITOR
+ uint8_t vram_r[VRAM_SIZE];
+ uint8_t vram_g[VRAM_SIZE];
+ uint8_t vram_b[VRAM_SIZE];
+ scrntype_t palette_pc[8];
+#else
+ uint8_t vram[VRAM_SIZE];
+ uint8_t font[0x10000]; // 16bytes * 256chars
+ scrntype_t palette_pc[16]; // normal, intensify
+#endif
+ uint8_t screen[400][640];
+ scrntype_t tmp[640];
+
+ uint8_t *sync, *zoom, *ra, *cs;
+ int* ead;
+ uint8_t bank;
+ int blink;
+
+public:
+ DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
+ {
+ set_device_name(_T("Display"));
+ }
+ ~DISPLAY() {}
+
+ // common functions
+ void initialize();
+ void reset();
+ void write_io8(uint32_t addr, uint32_t data);
+ uint32_t read_io8(uint32_t addr);
+ void event_frame();
+ bool process_state(FILEIO* state_fio, bool loading);
+
+ // unique functions
+ void set_context_gdc(UPD7220* device)
+ {
+ d_gdc = device;
+ }
+ uint8_t* get_vram()
+ {
+#ifdef _COLOR_MONITOR
+ return vram_b;
+#else
+ return vram;
+#endif
+ }
+ void set_sync_ptr(uint8_t* ptr)
+ {
+ sync = ptr;
+ }
+ void set_zoom_ptr(uint8_t* ptr)
+ {
+ zoom = ptr;
+ }
+ void set_ra_ptr(uint8_t* ptr)
+ {
+ ra = ptr;
+ }
+ void set_cs_ptr(uint8_t* ptr)
+ {
+ cs = ptr;
+ }
+ void set_ead_ptr(int* ptr)
+ {
+ ead = ptr;
+ }
+ void draw_screen();
+};
+
+}
+#endif
+