--- xmil/io/ppi.c 2004/08/05 04:53:15 1.5 +++ xmil/io/ppi.c 2004/08/11 12:08:16 1.9 @@ -1,7 +1,7 @@ #include "compiler.h" #include "pccore.h" #include "iocore.h" -#include "draw.h" +#include "makescrn.h" // ---- 8255 PPI〜 @@ -66,12 +66,12 @@ void IOOUTCALL ppi_o(UINT port, REG8 val // cmt_write(ppi.PORT_C & 1); if ((bak_c & 0x20) && (!(ppi.PORT_C & 0x20))) { - ppi.IO_MODE = 1; + iocore.s.mode = 1; } xl = ((ppi.PORT_C & 0x40)?40:80); if (crtc.s.TXT_XL != xl) { crtc.s.TXT_XL = (UINT8)xl; - crtc.s.GRP_XL = xl << 3; +// crtc.s.GRP_XL = xl << 3; vrambank_patch(); scrnallflash = 1; } @@ -79,9 +79,12 @@ void IOOUTCALL ppi_o(UINT port, REG8 val REG8 IOINPCALL ppi_i(UINT port) { + UINT v; + ppi.PORT_B = cmt_test(); // | cmt_read(); // THUNDER BALL - if (v_cnt < crtc.s.CRT_YL) { + v = pccore_getraster(NULL); + if (v < crtc.s.CRT_YL) { ppi.PORT_B |= 0x80; // 1:DISP } if (subcpu.IBF) { @@ -95,11 +98,11 @@ REG8 IOINPCALL ppi_i(UINT port) { ppi.PORT_B |= 0x10; // 1:RAM } #if 1 - if (!(v_cnt < crtc.s.CRT_VS)) { + if (!(v < crtc.e.vs)) { ppi.PORT_B |= 0x04; // V-SYNC } #else // ラプラステスト…VYSNCが長すぎるらしい - if (v_cnt == crtc.s.CRT_VS) { + if (v_cnt == crtc.e.vs) { ppi.PORT_B |= 0x04; } #endif @@ -134,7 +137,6 @@ void ppi_initialize(void) { ppi.PORT_B = 0xff; ppi.PORT_C = 0xff; ppi.MODE = 0; - ppi.IO_MODE = 0; } void ppi_reset(void) { @@ -142,6 +144,5 @@ void ppi_reset(void) { ppi.MODE = 0; ppi.PORT_A = 0; ppi.PORT_C |= 0x40; - ppi.IO_MODE = 0; }