Diff for /np2/sound/fmtimer.c between versions 1.1.1.1 and 1.7

version 1.1.1.1, 2003/10/16 17:58:02 version 1.7, 2004/01/22 01:10:04
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;
   
         if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz          l = 18 * (1024 - fmtimer.timera);
                 l = (l * 1248 / 625) * pc.multiple;          if (pccore.cpumode & CPUMODE_8MHz) {            // 4MHz
                   l = (l * 1248 / 625) * pccore.multiple;
         }          }
         else {                                                                  // 5MHz          else {                                                                          // 5MHz
                 l = (l * 1536 / 625) * pc.multiple;                  l = (l * 1536 / 625) * pccore.multiple;
         }          }
         nevent_set(NEVENT_FMTIMERA, l, fmport_a, absolute);          nevent_set(NEVENT_FMTIMERA, l, fmport_a, absolute);
 }  }
   
 static void set_fmtimerbevent(BOOL absolute) {  static void set_fmtimerbevent(BOOL absolute) {
   
         long l = 288 * (256 - fmtimer.timerb);          SINT32  l;
   
         if (pc.cpumode & CPUMODE_8MHz) {                // 4MHz          l = 288 * (256 - fmtimer.timerb);
                 l = (l * 1248 / 625) * pc.multiple;          if (pccore.cpumode & CPUMODE_8MHz) {            // 4MHz
                   l = (l * 1248 / 625) * pccore.multiple;
         }          }
         else {                                                                  // 5MHz          else {                                                                          // 5MHz
                 l = (l * 1536 / 625) * pc.multiple;                  l = (l * 1536 / 625) * pccore.multiple;
         }          }
         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
         fmtimer.intr = irq & 0xc0;          fmtimer.intr = irq & 0xc0;
         fmtimer.intdisabel = irq & 0x10;          fmtimer.intdisabel = irq & 0x10;
         fmtimer.irq = irqtable[irq >> 6];          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) {          switch(reg) {
                 case 0x24:                  case 0x24:

Removed from v.1.1.1.1  
changed lines
  Added in v.1.7


RetroPC.NET-CVS <cvs@retropc.net>