2 Systems Formulate BUBCOM80 Emulator 'eBUBCOM80'
4 Author : Takeda.Toshiya
14 #include "../../emu.h"
15 #include "../device.h"
17 #define SIG_DISPLAY_DMAC_CH0 0
18 #define SIG_DISPLAY_DMAC_CH1 1
19 #define SIG_DISPLAY_DMAC_CH2 2
20 #define SIG_DISPLAY_DMAC_CH3 3
28 uint8_t cursor, attrib;
37 uint8_t expand[200][80];
40 uint8_t expand[200][80];
47 uint8_t buffer[120 * 200];
51 uint8_t mode, reverse, intr_mask, status;
55 void write_cmd(uint8_t data);
56 void write_param(uint8_t data);
57 uint32_t read_param();
58 uint32_t read_status();
61 void write_buffer(uint8_t data);
62 uint8_t read_buffer(int ofs);
65 void set_attrib(uint8_t code);
80 void write_io8(uint32_t addr, uint32_t data);
81 uint32_t read_io8(uint32_t addr);
87 class DISPLAY : public DEVICE
91 DEVICE *d_cmt, *d_pcm, *d_prn;
93 uint8_t sg_pattern[0x800];
95 uint8_t vram[0x10000];
105 scrntype_t palette_text_pc[8];
106 scrntype_t palette_graph_pc[8];
107 uint8_t text[200][640];
108 uint8_t graph[200][640];
110 void update_timing();
115 DISPLAY(VM_TEMPLATE* parent_vm, EMU* parent_emu) : DEVICE(parent_vm, parent_emu)
117 for(int i = 0; i < 4; i++) {
118 dmac.ch[i].io = parent_vm->dummy;
120 dmac.mem = parent_vm->dummy;
122 set_device_name(_T("Display"));
129 void write_io8(uint32_t addr, uint32_t data);
130 uint32_t read_io8(uint32_t addr);
131 void write_dma_io8(uint32_t addr, uint32_t data);
132 void write_signal(int id, uint32_t data, uint32_t mask);
133 void event_callback(int event_id, int err);
135 void event_vline(int v, int clock);
136 bool process_state(FILEIO* state_fio, bool loading);
139 void set_context_cpu(Z80* device)
143 void set_context_cmt(DEVICE* device)
147 void set_context_pcm(DEVICE* device)
151 void set_context_prn(DEVICE* device)
155 void set_context_dmac_mem(DEVICE* device)
159 void set_context_dmac_ch0(DEVICE* device)
161 dmac.ch[0].io = device;
163 void set_context_dmac_ch2(DEVICE* device)
165 dmac.ch[2].io = device;