| version 1.1.1.1, 2003/10/16 17:58:02 | version 1.5, 2003/12/08 00:55:33 | 
| Line 1 | Line 1 | 
 | #include        "compiler.h" | #include        "compiler.h" | 
 |  | // #include     "cpucore.h" | 
 | #include        "pccore.h" | #include        "pccore.h" | 
 | #include        "iocore.h" | #include        "iocore.h" | 
 | #include        "sound.h" | #include        "sound.h" | 
| Line 26  void fmport_a(NEVENTITEM item) { | Line 27  void fmport_a(NEVENTITEM item) { | 
 | if (intreq) { | if (intreq) { | 
 | pcm86.write = 1; | pcm86.write = 1; | 
 | pic_setirq(fmtimer.irq); | pic_setirq(fmtimer.irq); | 
 |  | //                      TRACEOUT(("fm int-A")); | 
 | } | } | 
 | //              TRACE_("A: fifo = ", pcm86.fifo); | //              TRACE_("A: fifo = ", pcm86.fifo); | 
 | //              TRACE_("A: virbuf = ", pcm86.virbuf); | //              TRACE_("A: virbuf = ", pcm86.virbuf); | 
| Line 51  void fmport_b(NEVENTITEM item) { | Line 53  void fmport_b(NEVENTITEM item) { | 
 | if (intreq) { | if (intreq) { | 
 | pcm86.write = 1; | pcm86.write = 1; | 
 | pic_setirq(fmtimer.irq); | pic_setirq(fmtimer.irq); | 
 |  | //                      TRACEOUT(("fm int-B")); | 
 | } | } | 
 | //              TRACE_("B: fifo = ", pcm86.fifo); | //              TRACE_("B: fifo = ", pcm86.fifo); | 
 | //              TRACE_("B: virbuf = ", pcm86.virbuf); | //              TRACE_("B: virbuf = ", pcm86.virbuf); | 
| Line 60  void fmport_b(NEVENTITEM item) { | Line 63  void fmport_b(NEVENTITEM item) { | 
 |  |  | 
 | static void set_fmtimeraevent(BOOL absolute) { | static void set_fmtimeraevent(BOOL absolute) { | 
 |  |  | 
| long l = 18 * (1024 - fmtimer.timera); | SINT32  l; | 
 |  |  | 
 |  | l = 18 * (1024 - fmtimer.timera); | 
 | if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz | if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz | 
 | l = (l * 1248 / 625) * pc.multiple; | l = (l * 1248 / 625) * pc.multiple; | 
 | } | } | 
| Line 73  static void set_fmtimeraevent(BOOL absol | Line 77  static void set_fmtimeraevent(BOOL absol | 
 |  |  | 
 | static void set_fmtimerbevent(BOOL absolute) { | static void set_fmtimerbevent(BOOL absolute) { | 
 |  |  | 
| long l = 288 * (256 - fmtimer.timerb); | SINT32  l; | 
 |  |  | 
 |  | l = 288 * (256 - fmtimer.timerb); | 
 | if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz | if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz | 
 | l = (l * 1248 / 625) * pc.multiple; | l = (l * 1248 / 625) * pc.multiple; | 
 | } | } | 
| Line 84  static void set_fmtimerbevent(BOOL absol | Line 89  static void set_fmtimerbevent(BOOL absol | 
 | nevent_set(NEVENT_FMTIMERB, l, fmport_b, absolute); | nevent_set(NEVENT_FMTIMERB, l, fmport_b, absolute); | 
 | } | } | 
 |  |  | 
| void fmtimer_reset(BYTE irq) { | void fmtimer_reset(UINT irq) { | 
 |  |  | 
 | ZeroMemory(&fmtimer, sizeof(fmtimer)); | ZeroMemory(&fmtimer, sizeof(fmtimer)); | 
 |  |  | 
| #if 1 | #if 0                                                                                                   // move | 
| fmtimer.reg = 0x3f;                                                                     // !! | fmtimer.reg = 0x3f; | 
 | set_fmtimeraevent(NEVENT_ABSOLUTE); | set_fmtimeraevent(NEVENT_ABSOLUTE); | 
 | set_fmtimerbevent(NEVENT_ABSOLUTE); | set_fmtimerbevent(NEVENT_ABSOLUTE); | 
 | #endif | #endif | 
| Line 99  void fmtimer_reset(BYTE irq) { | Line 104  void fmtimer_reset(BYTE irq) { | 
 | 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) { | switch(reg) { | 
 | case 0x24: | case 0x24: |