--- np2/sound/fmtimer.c 2003/10/18 00:35:35 1.2 +++ np2/sound/fmtimer.c 2004/01/22 01:10:04 1.7 @@ -1,4 +1,5 @@ #include "compiler.h" +#include "cpucore.h" #include "pccore.h" #include "iocore.h" #include "sound.h" @@ -26,6 +27,7 @@ void fmport_a(NEVENTITEM item) { if (intreq) { pcm86.write = 1; pic_setirq(fmtimer.irq); +// TRACEOUT(("fm int-A")); } // TRACE_("A: fifo = ", pcm86.fifo); // TRACE_("A: virbuf = ", pcm86.virbuf); @@ -51,6 +53,7 @@ void fmport_b(NEVENTITEM item) { if (intreq) { pcm86.write = 1; pic_setirq(fmtimer.irq); +// TRACEOUT(("fm int-B")); } // TRACE_("B: fifo = ", pcm86.fifo); // TRACE_("B: virbuf = ", pcm86.virbuf); @@ -63,11 +66,11 @@ static void set_fmtimeraevent(BOOL absol SINT32 l; l = 18 * (1024 - fmtimer.timera); - if (pc.cpumode & CPUMODE_8MHz) { // 4MHz - l = (l * 1248 / 625) * pc.multiple; + if (pccore.cpumode & CPUMODE_8MHz) { // 4MHz + l = (l * 1248 / 625) * pccore.multiple; } - else { // 5MHz - l = (l * 1536 / 625) * pc.multiple; + else { // 5MHz + l = (l * 1536 / 625) * pccore.multiple; } nevent_set(NEVENT_FMTIMERA, l, fmport_a, absolute); } @@ -77,31 +80,33 @@ static void set_fmtimerbevent(BOOL absol SINT32 l; l = 288 * (256 - fmtimer.timerb); - if (pc.cpumode & CPUMODE_8MHz) { // 4MHz - l = (l * 1248 / 625) * pc.multiple; + if (pccore.cpumode & CPUMODE_8MHz) { // 4MHz + l = (l * 1248 / 625) * pccore.multiple; } - else { // 5MHz - l = (l * 1536 / 625) * pc.multiple; + else { // 5MHz + l = (l * 1536 / 625) * pccore.multiple; } nevent_set(NEVENT_FMTIMERB, l, fmport_b, absolute); } -void fmtimer_reset(BYTE irq) { +void fmtimer_reset(UINT irq) { ZeroMemory(&fmtimer, sizeof(fmtimer)); -#if 1 - fmtimer.reg = 0x3f; // !! +#if 0 // move + fmtimer.reg = 0x3f; set_fmtimeraevent(NEVENT_ABSOLUTE); set_fmtimerbevent(NEVENT_ABSOLUTE); #endif fmtimer.intr = irq & 0xc0; fmtimer.intdisabel = irq & 0x10; fmtimer.irq = irqtable[irq >> 6]; - pic_registext(fmtimer.irq); +// pic_registext(fmtimer.irq); } -void fmtimer_setreg(BYTE reg, BYTE value) { +void fmtimer_setreg(REG8 reg, REG8 value) { + +// TRACEOUT(("fm %x %x [%.4x:%.4x]", reg, value, CPU_CS, CPU_IP)); switch(reg) { case 0x24: