--- np2/io/pit.c 2004/03/10 07:41:49 1.17 +++ np2/io/pit.c 2004/03/12 18:19:57 1.19 @@ -10,8 +10,10 @@ #include "beep.h" -// #define uPD71054 // NP2はuPD8253Cベース #define BEEPCOUNTEREX // BEEPアイドル時のカウンタをα倍に +#if defined(CPUCORE_IA32) +// #define uPD71054 // だめぽ _| ̄|○ +#endif // --- Interval timer @@ -303,12 +305,38 @@ static void IOOUTCALL pit_o77(UINT port, beep_modeset(); } } +#if defined(uPD71054) + else { + // これ現状じゃだめぽ_| ̄|○ ver0.76に回す… + TRACEOUT(("multiple latch commands - %x", dat)); + for (ch=0; ch<3; ch++) { + if (dat & (2 << ch)) { + if (!(dat & 0x10)) { + } + if (!(dat & 0x20)) { + } + } + } + } +#endif (void)port; } static REG8 IOINPCALL pit_i71(UINT port) { - return(pit_getcount((port >> 1) & 3)); + int ch; + + ch = (port >> 1) & 3; +#if defined(uPD71054) + if (pit.stat[ch]) { + REG8 ret; + ret = pit.stat[ch]; + pit.stat[ch] = 0; + TRACEOUT(("stat out -> %d-%x", ch, ret)); + return(ret); + } +#endif + return(pit_getcount(ch)); }