2 NEC PC-6001 Emulator 'yaPC-6001'
\r
4 Author : Takeda.Toshiya
\r
10 #include "display.h"
\r
12 #include "../mc6847.h"
\r
14 void DISPLAY::reset()
\r
16 vram_ptr = ram_ptr + 0xe000;
\r
19 void DISPLAY::write_io8(uint32 addr, uint32 data)
\r
21 unsigned int VRAMHead[4] = { 0xc000, 0xe000, 0x8000, 0xa000 };
\r
22 uint16 port=(addr & 0x00ff);
\r
26 vram_ptr = (ram_ptr + VRAMHead[(data & 0x06) >> 1]);
\r
27 d_timer->set_portB0(data);
\r
32 void DISPLAY::draw_screen()
\r
34 d_vdp->write_signal(SIG_MC6847_AG, *vram_ptr, 0x80);
\r
35 d_vdp->write_signal(SIG_MC6847_GM, *vram_ptr >> 4, 1);
\r
36 d_vdp->write_signal(SIG_MC6847_GM, *vram_ptr >> 2, 2);
\r
37 d_vdp->write_signal(SIG_MC6847_GM, *vram_ptr >> 0, 4);
\r
38 d_vdp->write_signal(SIG_MC6847_CSS, *vram_ptr, 0x02);
\r
39 if(*vram_ptr & 0x80) {
\r
40 d_vdp->set_vram_ptr(vram_ptr + 0x200, 0x1800);
\r
42 d_vdp->set_vram_ptr(vram_ptr, 0x1800);
\r
44 d_vdp->draw_screen();
\r