--- xmil/io/pcg.c 2004/08/04 15:18:26 1.3 +++ xmil/io/pcg.c 2004/08/11 12:08:16 1.5 @@ -2,8 +2,6 @@ #include "z80core.h" #include "pccore.h" #include "iocore.h" -#include "x1_io.h" -#include "x1_crtc.h" #include "vram.h" #include "font.h" @@ -51,12 +49,13 @@ static UINT knj_offset(void) { static UINT nowsyncoffset(void) { UINT ret; + UINT h; + UINT v; - ret = (((v_cnt - crtc.CRT_YL) / crtc.fnty) + crtc.TXT_YL) * crtc.TXT_XL - + crtc.TXT_TOP; - if (pccore.HSYNC_CLK) { - ret += (h_cnt * crtc.TXT_XL) / pccore.HSYNC_CLK; - } + v = pccore_getraster(&h); + + ret = ((v / crtc.s.fnty) * crtc.s.TXT_XL) + crtc.s.TXT_TOP; + ret += (h * crtc.s.TXT_XL) / 250; if (ret >= 0x0800) { ret = 0x07ff; // オーバーフロー @@ -71,7 +70,7 @@ void IOOUTCALL pcg_o(UINT port, REG8 val UINT off; UINT l; - if (crtc.SCRN_BITS & SCRN_PCGMODE) { + if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { off = pcg_offset(); chr = tram[TRAM_ANK + off]; if (tram[TRAM_KNJ + off] & 0x90) { @@ -127,7 +126,7 @@ REG8 IOINPCALL pcg_i(UINT port) { BYTE chr,knj,val; val = 0xff; - if (crtc.SCRN_BITS & SCRN_PCGMODE) { + if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { l = port & 0x0f; if ((port & 0xff00) == 0x1400) { off = knj_offset(); @@ -143,7 +142,7 @@ REG8 IOINPCALL pcg_i(UINT port) { val = font_knjx1t[p + l]; } } - else if (crtc.SCRN_BITS & SCRN_CPUFONT) { + else if (crtc.s.SCRN_BITS & SCRN_CPUFONT) { val = font_txt[(chr << 4) + l]; } else {