OSDN Git Service

04afaafeaa1eb8b12e7855db0a76596e4cf51bc0
[csp-qt/common_source_project-fm7.git] / source / src / vm / fmtowns / planevram.h
1 #pragma once
2
3 #include "device.h"
4 #include "../../common.h"
5 #include "towns_common.h"
6
7 namespace FMTOWNS {
8 class TOWNS_VRAM;
9
10 class PLANEVRAM : public DEVICE
11 {
12 protected:
13         DEVICE* d_crtc;
14         DEVICE* d_sprite;
15         TOWNS_VRAM* d_vram;
16         
17         uint8_t mix_reg;             // MMIO 000CH:FF80H
18         uint8_t r50_readplane;       // MMIO 000CH:FF81H : BIT 7 and 6.
19         uint8_t r50_ramsel;          // MMIO 000CH:FF81H : BIT 3 to 0.
20         uint32_t r50_gvramsel;        // MMIO 000CH:FF83H : bit4 (and 3).
21
22 public:
23         PLANEVRAM(VM_TEMPLATE* parent_vm, EMU_TEMPLATE*parent_emu) : DEVICE(parent_vm, parent_emu)
24         {
25                 d_crtc = NULL;
26                 d_sprite = NULL;
27                 d_vram = NULL;
28         }
29
30         void initialize();
31         void reset();
32         
33         virtual uint32_t __FASTCALL read_memory_mapped_io8(uint32_t addr);
34         virtual void __FASTCALL write_memory_mapped_io8(uint32_t addr, uint32_t data);
35
36         virtual uint32_t __FASTCALL read_io8(uint32_t addr);
37         virtual void __FASTCALL write_io8(uint32_t addr, uint32_t data);
38         
39         virtual bool process_state(FILEIO* state_fio, bool loading);
40
41         // unique functions
42         void set_context_crtc(DEVICE* dev)
43         {
44                 d_crtc = dev;
45         }
46         void set_context_sprite(DEVICE* dev)
47         {
48                 d_sprite = dev;
49         }
50         void set_context_vram(TOWNS_VRAM* dev)
51         {
52                 d_vram = dev;
53         }
54
55 };
56 }