--- np2/cbus/pcm86io.c 2003/12/08 00:55:30 1.4 +++ np2/cbus/pcm86io.c 2004/03/28 19:50:25 1.5 @@ -124,15 +124,21 @@ static REG8 IOINPCALL pcm86_ia466(UINT p UINT32 past; REG8 ret; - sound_sync(); - nowclk = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK; - nowclk <<= 6; - past = nowclk - pcm86.lastclock; - if (past >= pcm86.stepclock) { - RECALC_NOWCLKWAIT; + // こんなんでお茶濁すんなら ちゃんと書き直しましょうね 漏れ… + if (!(pcm86.fifo & 0x80)) { + ret = 0; + } + else { + sound_sync(); + nowclk = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK; + nowclk <<= 6; past = nowclk - pcm86.lastclock; + if (past >= pcm86.stepclock) { + RECALC_NOWCLKWAIT; + past = nowclk - pcm86.lastclock; + } + ret = ((past << 1) >= pcm86.stepclock)?1:0; } - ret = ((past << 1) >= pcm86.stepclock)?1:0; if (pcm86.virbuf >= PCM86_LOGICALBUF) { // バッファフル ret |= 0x80; }