|
|
| version 1.8, 2004/02/03 08:24:40 | version 1.11, 2005/05/13 05:47:25 |
|---|---|
| Line 14 void fmport_a(NEVENTITEM item) { | Line 14 void fmport_a(NEVENTITEM item) { |
| BOOL intreq = FALSE; | BOOL intreq = FALSE; |
| if (item->flag & NEVENT_SETEVENT) { | if (item->flag & NEVENT_SETEVENT) { |
| intreq = pcm86gen_intrq(); | |
| if (fmtimer.reg & 0x04) { | if (fmtimer.reg & 0x04) { |
| fmtimer.status |= 0x01; | fmtimer.status |= 0x01; |
| intreq = TRUE; | intreq = TRUE; |
| } | } |
| if (pcm86.fifo & 0x20) { | |
| sound_sync(); | |
| if (pcm86.virbuf <= pcm86.fifosize) { | |
| intreq = TRUE; | |
| } | |
| } | |
| if (intreq) { | if (intreq) { |
| pcm86.write = 1; | // pcm86.write = 1; |
| pic_setirq(fmtimer.irq); | pic_setirq(fmtimer.irq); |
| // TRACEOUT(("fm int-A")); | // TRACEOUT(("fm int-A")); |
| } | } |
| Line 40 void fmport_b(NEVENTITEM item) { | Line 35 void fmport_b(NEVENTITEM item) { |
| BOOL intreq = FALSE; | BOOL intreq = FALSE; |
| if (item->flag & NEVENT_SETEVENT) { | if (item->flag & NEVENT_SETEVENT) { |
| intreq = pcm86gen_intrq(); | |
| if (fmtimer.reg & 0x08) { | if (fmtimer.reg & 0x08) { |
| fmtimer.status |= 0x02; | fmtimer.status |= 0x02; |
| intreq = TRUE; | intreq = TRUE; |
| } | } |
| #if 0 | |
| if (pcm86.fifo & 0x20) { | if (pcm86.fifo & 0x20) { |
| sound_sync(); | sound_sync(); |
| if (pcm86.virbuf <= pcm86.fifosize) { | if (pcm86.virbuf <= pcm86.fifosize) { |
| intreq = TRUE; | intreq = TRUE; |
| } | } |
| } | } |
| #endif | |
| if (intreq) { | if (intreq) { |
| pcm86.write = 1; | // pcm86.write = 1; |
| pic_setirq(fmtimer.irq); | pic_setirq(fmtimer.irq); |
| // TRACEOUT(("fm int-B")); | // TRACEOUT(("fm int-B")); |
| } | } |
| Line 66 static void set_fmtimeraevent(BOOL absol | Line 64 static void set_fmtimeraevent(BOOL absol |
| SINT32 l; | SINT32 l; |
| l = 18 * (1024 - fmtimer.timera); | l = 18 * (1024 - fmtimer.timera); |
| if (pccore.cpumode & CPUMODE_8MHz) { // 4MHz | if (pccore.cpumode & CPUMODE_8MHZ) { // 4MHz |
| l = (l * 1248 / 625) * pccore.multiple; | l = (l * 1248 / 625) * pccore.multiple; |
| } | } |
| else { // 5MHz | else { // 5MHz |
| Line 80 static void set_fmtimerbevent(BOOL absol | Line 78 static void set_fmtimerbevent(BOOL absol |
| SINT32 l; | SINT32 l; |
| l = 288 * (256 - fmtimer.timerb); | l = 288 * (256 - fmtimer.timerb); |
| if (pccore.cpumode & CPUMODE_8MHz) { // 4MHz | if (pccore.cpumode & CPUMODE_8MHZ) { // 4MHz |
| l = (l * 1248 / 625) * pccore.multiple; | l = (l * 1248 / 625) * pccore.multiple; |
| } | } |
| else { // 5MHz | else { // 5MHz |
| Line 98 void fmtimer_reset(UINT irq) { | Line 96 void fmtimer_reset(UINT irq) { |
| // pic_registext(fmtimer.irq); | // pic_registext(fmtimer.irq); |
| } | } |
| void fmtimer_setreg(REG8 reg, REG8 value) { | void fmtimer_setreg(UINT reg, REG8 value) { |
| // TRACEOUT(("fm %x %x [%.4x:%.4x]", reg, value, CPU_CS, CPU_IP)); | // TRACEOUT(("fm %x %x [%.4x:%.4x]", reg, value, CPU_CS, CPU_IP)); |