OSDN Git Service

[VM][STATE] Apply new framework to some VMs.
[csp-qt/common_source_project-fm7.git] / source / src / vm / pasopia7 / display.h
index 081a34e..a666269 100644 (file)
@@ -1,76 +1,78 @@
-/*\r
-       TOSHIBA PASOPIA 7 Emulator 'EmuPIA7'\r
-\r
-       Author : Takeda.Toshiya\r
-       Date   : 2007.02.08 -\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 SIG_DISPLAY_I8255_0_A  0\r
-#define SIG_DISPLAY_I8255_1_B  1\r
-#define SIG_DISPLAY_I8255_1_C  2\r
-\r
-class DISPLAY : public DEVICE\r
-{\r
-private:\r
-       uint8* regs;\r
-       uint8 mode, text_page;\r
-       uint16 cursor, cblink, flash_cnt;\r
-       bool blink, pal_dis;\r
-       \r
-       uint8 screen[200][640];\r
-       uint8 font[0x800];\r
-       uint8* vram_b;\r
-       uint8* vram_r;\r
-       uint8* vram_g;\r
-       uint8* vram_a;\r
-       uint8* pal;\r
-       scrntype palette_pc[8];\r
-       bool scanline;\r
-       \r
-       void draw_text_normal(uint16 src);\r
-       void draw_text_wide(uint16 src);\r
-       void draw_fine_normal(uint16 src);\r
-       void draw_fine_wide(uint16 src);\r
-       void draw_text_lcd(uint16 src);\r
-       void draw_fine_lcd(uint16 src);\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 update_config();\r
-       void write_signal(int id, uint32 data, uint32 mask);\r
-       void event_frame();\r
-       \r
-       // unique function\r
-       void set_vram_ptr(uint8* ptr)\r
-       {\r
-               vram_b = ptr + 0x0000;\r
-               vram_r = ptr + 0x4000;\r
-               vram_g = ptr + 0x8000;\r
-               vram_a = ptr + 0xc000;\r
-       }\r
-       void set_pal_ptr(uint8* ptr)\r
-       {\r
-               pal = ptr;\r
-       }\r
-       void set_regs_ptr(uint8* ptr)\r
-       {\r
-               regs = ptr;\r
-       }\r
-       void draw_screen();\r
-};\r
-\r
-#endif\r
-\r
+/*
+       TOSHIBA PASOPIA 7 Emulator 'EmuPIA7'
+
+       Author : Takeda.Toshiya
+       Date   : 2007.02.08 -
+
+       [ display ]
+*/
+
+#ifndef _DISPLAY_H_
+#define _DISPLAY_H_
+
+#include "../vm.h"
+#include "../../emu.h"
+#include "../device.h"
+
+#define SIG_DISPLAY_I8255_0_A  0
+#define SIG_DISPLAY_I8255_1_B  1
+#define SIG_DISPLAY_I8255_1_C  2
+
+class DISPLAY : public DEVICE
+{
+private:
+       uint8_t* regs;
+       uint8_t mode, text_page;
+       uint16_t cursor, cblink, flash_cnt;
+       bool blink, pal_dis;
+       
+       uint8_t screen[200][640];
+       uint8_t font[0x800];
+       uint8_t* vram_b;
+       uint8_t* vram_r;
+       uint8_t* vram_g;
+       uint8_t* vram_a;
+       uint8_t* pal;
+       scrntype_t palette_pc[8];
+       
+       void draw_text_normal(uint16_t src);
+       void draw_text_wide(uint16_t src);
+       void draw_fine_normal(uint16_t src);
+       void draw_fine_wide(uint16_t src);
+       void draw_text_lcd(uint16_t src);
+       void draw_fine_lcd(uint16_t src);
+       
+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 write_signal(int id, uint32_t data, uint32_t mask);
+       void event_frame();
+       bool process_state(FILEIO* state_fio, bool loading);
+       
+       // unique functions
+       void set_vram_ptr(uint8_t* ptr)
+       {
+               vram_b = ptr + 0x0000;
+               vram_r = ptr + 0x4000;
+               vram_g = ptr + 0x8000;
+               vram_a = ptr + 0xc000;
+       }
+       void set_pal_ptr(uint8_t* ptr)
+       {
+               pal = ptr;
+       }
+       void set_regs_ptr(uint8_t* ptr)
+       {
+               regs = ptr;
+       }
+       void draw_screen();
+};
+
+#endif
+