--- xmil/io/ppi.c 2004/08/01 05:31:30 1.1 +++ xmil/io/ppi.c 2004/08/07 07:19:56 1.6 @@ -1,10 +1,7 @@ #include "compiler.h" #include "pccore.h" #include "iocore.h" -#include "x1_io.h" -#include "x1_crtc.h" -#include "x1_vram.h" -#include "draw.h" +#include "makescrn.h" // ---- 8255 PPI〜 @@ -15,7 +12,7 @@ void IOOUTCALL ppi_o(UINT port, REG8 val UINT8 bit; UINT8 xl; - if (crtc.TXT_XL == 40) { + if (crtc.s.TXT_XL == 40) { ppi.PORT_C |= 0x40; } else { @@ -72,9 +69,9 @@ void IOOUTCALL ppi_o(UINT port, REG8 val ppi.IO_MODE = 1; } xl = ((ppi.PORT_C & 0x40)?40:80); - if (crtc.TXT_XL != xl) { - crtc.TXT_XL = (UINT8)xl; - crtc.GRP_XL = xl << 3; + if (crtc.s.TXT_XL != xl) { + crtc.s.TXT_XL = (UINT8)xl; + crtc.s.GRP_XL = xl << 3; vrambank_patch(); scrnallflash = 1; } @@ -84,7 +81,7 @@ REG8 IOINPCALL ppi_i(UINT port) { ppi.PORT_B = cmt_test(); // | cmt_read(); // THUNDER BALL - if (v_cnt < crtc.CRT_YL) { + if (v_cnt < crtc.s.CRT_YL) { ppi.PORT_B |= 0x80; // 1:DISP } if (subcpu.IBF) { @@ -94,13 +91,19 @@ REG8 IOINPCALL ppi_i(UINT port) { if (subcpu.OBF) { ppi.PORT_B |= 0x20; // 1:SUB-CPU Data empty } - if (!pccore.ROM_SW) { + if (memio.ram) { ppi.PORT_B |= 0x10; // 1:RAM } - if (!(v_cnt < crtc.CRT_VS)) { +#if 1 + if (!(v_cnt < crtc.s.CRT_VS)) { ppi.PORT_B |= 0x04; // V-SYNC } - if (crtc.TXT_XL == 40) { +#else // ラプラステスト…VYSNCが長すぎるらしい + if (v_cnt == crtc.s.CRT_VS) { + ppi.PORT_B |= 0x04; + } +#endif + if (crtc.s.TXT_XL == 40) { ppi.PORT_C |= 0x40; } else {