Diff for /np2/sound/beepc.c between versions 1.9 and 1.11

version 1.9, 2004/07/03 17:25:39 version 1.11, 2005/02/07 14:46:12
Line 1 Line 1
 #include        "compiler.h"  #include        "compiler.h"
   #include        "dosio.h"
 #include        "cpucore.h"  #include        "cpucore.h"
 #include        "pccore.h"  #include        "pccore.h"
 #include        "iocore.h"  #include        "iocore.h"
Line 11 Line 12
         BEEPCFG         beepcfg;          BEEPCFG         beepcfg;
   
   
   // #define      BEEPLOG
   
   #if defined(BEEPLOG)
   static struct {
           FILEH   fh;
           UINT    events;
           UINT32  event[0x10000];
   } bplog;
   
   static void beeplogflash(void) {
   
           if ((bplog.fh != FILEH_INVALID) && (bplog.events)) {
                   file_write(bplog.fh, bplog.event, bplog.events * sizeof(UINT32));
                   bplog.events = 0;
           }
   }
   #endif
   
   
 void beep_initialize(UINT rate) {  void beep_initialize(UINT rate) {
   
         beepcfg.rate = rate;          beepcfg.rate = rate;
         beepcfg.vol = 2;          beepcfg.vol = 2;
 //      beepcfg.puchibase = (rate * 3) / (11025 * 2);  #if defined(BEEPLOG)
           bplog.fh = file_create("beeplog");
           bplog.events = 0;
   #endif
   }
   
   void beep_deinitialize(void) {
   
   #if defined(BEEPLOG)
           beeplogflash();
           if (bplog.fh != FILEH_INVALID) {
                   file_close(bplog.fh);
                   bplog.fh = FILEH_INVALID;
           }
   #endif
 }  }
   
 void beep_setvol(UINT vol) {  void beep_setvol(UINT vol) {
Line 53  void beep_hzset(UINT16 cnt) { Line 87  void beep_hzset(UINT16 cnt) {
                         return;                          return;
                 }                  }
         }          }
 //      beep.puchi = beepcfg.puchibase;  
 }  }
   
 void beep_modeset(void) {  void beep_modeset(void) {
Line 61  void beep_modeset(void) { Line 94  void beep_modeset(void) {
         UINT8   newmode;          UINT8   newmode;
   
         newmode = (pit.ch[1].ctrl >> 2) & 3;          newmode = (pit.ch[1].ctrl >> 2) & 3;
 //      beep.puchi = beepcfg.puchibase;  
         if (beep.mode != newmode) {          if (beep.mode != newmode) {
                 sound_sync();                  sound_sync();
                 beep.mode = newmode;                  beep.mode = newmode;
 #if 1  
                 beep_eventinit();                  beep_eventinit();
 #else  
                 if (!newmode) {                                 // mode:#0, #1  
                         beep_eventinit();  
                 }  
 #endif  
         }          }
 }  }
   
Line 81  static void beep_eventset(void) { Line 107  static void beep_eventset(void) {
         int             enable;          int             enable;
         SINT32  clock;          SINT32  clock;
   
         TRACEOUT(("beep.enable = %d %d", beep.low, beep.buz));  
         enable = beep.low & beep.buz;          enable = beep.low & beep.buz;
         if (beep.enable != enable) {          if (beep.enable != enable) {
   #if defined(BEEPLOG)
                   UINT32  tmp;
                   tmp = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK;
                   if (enable) {
                           tmp |= 0x80000000;
                   }
                   else {
                           tmp &= ~0x80000000;
                   }
                   bplog.event[bplog.events++] = tmp;
                   if (bplog.events >= NELEMENTS(bplog.event)) {
                           beeplogflash();
                   }
   #endif
                   if (beep.events >= (BEEPEVENT_MAX / 2)) {
                           sound_sync();
                   }
                 beep.enable = enable;                  beep.enable = enable;
                 if (beep.events < BEEPEVENT_MAX) {                  if (beep.events < BEEPEVENT_MAX) {
                         clock = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK;                          clock = CPU_CLOCK + CPU_BASECLOCK - CPU_REMCLOCK;
Line 116  void beep_lheventset(int low) { Line 158  void beep_lheventset(int low) {
   
         if (beep.low != low) {          if (beep.low != low) {
                 beep.low = low;                  beep.low = low;
 //              if (!beep.mode) {                  beep_eventset();
                         if (beep.events >= (BEEPEVENT_MAX / 2)) {  
                                 sound_sync();  
                         }  
                         beep_eventset();  
 //              }  
         }          }
 }  }
   
Line 130  void beep_oneventset(void) { Line 167  void beep_oneventset(void) {
         int             buz;          int             buz;
   
         buz = (sysport.c & 8)?0:1;          buz = (sysport.c & 8)?0:1;
   
         if (beep.buz != buz) {          if (beep.buz != buz) {
                 sound_sync();  
                 beep.buz = buz;                  beep.buz = buz;
 //              if (buz) {  
 //                      beep.puchi = beepcfg.puchibase;  
 //              }  
 #if 1  
                 beep_eventset();                  beep_eventset();
 //              beep.cnt = 0;  
 #else  
                 if (!beep.mode) {  
                         beep_eventset();  
                 }  
                 else {  
                         beep.cnt = 0;  
                 }  
 #endif  
         }          }
 }  }
   

Removed from v.1.9  
changed lines
  Added in v.1.11


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