|
|
| version 1.10, 2004/08/14 12:16:17 | version 1.11, 2004/08/15 11:14:42 |
|---|---|
| Line 7 | Line 7 |
| #include "font.h" | #include "font.h" |
| static void waithsync(void) { | |
| SINT32 clock; | |
| SINT32 h; | |
| // 必ず hsyncを待つ? | |
| // if (corestat.vsync) { | |
| // return; | |
| // } | |
| clock = nevent_getwork(NEVENT_FRAMES) << 8; | |
| h = clock % crtc.e.rasterclock8; | |
| h = crtc.e.rasterdisp8 - h; | |
| if (h < 0) { | |
| h += crtc.e.rasterclock8; | |
| } | |
| CPU_REMCLOCK -= (h >> 8); | |
| } | |
| static UINT pcg_offset(void) { | static UINT pcg_offset(void) { |
| if (tram[TRAM_ATR + 0x07ff] & 0x20) { | if (tram[TRAM_ATR + 0x07ff] & 0x20) { |
| Line 76 void IOOUTCALL pcg_o(UINT port, REG8 val | Line 95 void IOOUTCALL pcg_o(UINT port, REG8 val |
| UINT line; | UINT line; |
| if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { | if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { |
| waithsync(); | |
| off = pcg_offset(); | off = pcg_offset(); |
| chr = tram[TRAM_ANK + off]; | chr = tram[TRAM_ANK + off]; |
| if (tram[TRAM_KNJ + off] & 0x90) { | if (tram[TRAM_KNJ + off] & 0x90) { |
| Line 103 REG8 IOINPCALL pcg_i(UINT port) { | Line 123 REG8 IOINPCALL pcg_i(UINT port) { |
| UINT knj; | UINT knj; |
| UINT addr; | UINT addr; |
| TRACEOUT(("pcg->%.4x", port)); | |
| upper = port & 0x0300; | upper = port & 0x0300; |
| if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { | if (crtc.s.SCRN_BITS & SCRN_PCGMODE) { |
| waithsync(); | |
| line = port & 0x0f; | line = port & 0x0f; |
| if (!upper) { | if (!upper) { |
| off = knj_offset(); | off = knj_offset(); |