Diff for /np2/sound/pcm86c.c between versions 1.5 and 1.8

version 1.5, 2004/02/19 11:32:12 version 1.8, 2004/06/02 11:02:53
Line 35  void pcm86gen_setvol(UINT vol) { Line 35  void pcm86gen_setvol(UINT vol) {
         pcm86gen_update();          pcm86gen_update();
 }  }
   
 void pcm86_reset(void) {                                                                                        // ver0.28  void pcm86_reset(void) {
   
         ZeroMemory(&pcm86, sizeof(pcm86));          ZeroMemory(&pcm86, sizeof(pcm86));
         pcm86.fifosize = 0x80;                                                                                  // ver0.29          pcm86.fifosize = 0x80;
         pcm86.dactrl = 0x32;          pcm86.dactrl = 0x32;
         pcm86.stepmask = (1 << 2) - 1;          pcm86.stepmask = (1 << 2) - 1;
         pcm86.stepbit = 2;          pcm86.stepbit = 2;
Line 68  void pcm86_setpcmrate(REG8 val) { Line 68  void pcm86_setpcmrate(REG8 val) {
         }          }
 }  }
   
 void pcm86_cb(NEVENTITEM item) {                                                                        // ver0.29  void pcm86_cb(NEVENTITEM item) {
   
         if (pcm86.reqirq) {          if (pcm86.reqirq) {
                 sound_sync();                  sound_sync();
 //              RECALC_NOWCLKP;  //              RECALC_NOWCLKP;
                 if (pcm86.virbuf <= pcm86.fifosize) {                  if (pcm86.virbuf <= pcm86.fifosize) {
                         pcm86.reqirq = 0;                          pcm86.reqirq = 0;
                           pcm86.irqflag = 1;
                         pic_setirq(fmtimer.irq);                          pic_setirq(fmtimer.irq);
                 }                  }
                 else {                  else {
Line 122  void SOUNDCALL pcm86gen_checkbuf(void) { Line 123  void SOUNDCALL pcm86gen_checkbuf(void) {
         past <<= 6;          past <<= 6;
         past -= pcm86.lastclock;          past -= pcm86.lastclock;
         if (past >= pcm86.stepclock) {          if (past >= pcm86.stepclock) {
                 RECALC_NOWCLKWAIT;                  past = past / pcm86.stepclock;
                   pcm86.lastclock += (past * pcm86.stepclock);
                   RECALC_NOWCLKWAIT(past);
         }          }
   
         bufs = pcm86.realbuf - pcm86.virbuf;          bufs = pcm86.realbuf - pcm86.virbuf;
Line 131  void SOUNDCALL pcm86gen_checkbuf(void) { Line 134  void SOUNDCALL pcm86gen_checkbuf(void) {
                 pcm86.virbuf += bufs;                  pcm86.virbuf += bufs;
                 if (pcm86.virbuf <= pcm86.fifosize) {                  if (pcm86.virbuf <= pcm86.fifosize) {
                         pcm86.reqirq = 0;                          pcm86.reqirq = 0;
                           pcm86.irqflag = 1;
                         pic_setirq(fmtimer.irq);                          pic_setirq(fmtimer.irq);
                 }                  }
                 else {                  else {
Line 147  void SOUNDCALL pcm86gen_checkbuf(void) { Line 151  void SOUNDCALL pcm86gen_checkbuf(void) {
         }          }
 }  }
   
   
   BOOL pcm86gen_intrq(void) {
   
           if (pcm86.irqflag) {
                   return(TRUE);
           }
           if (pcm86.fifo & 0x20) {
                   sound_sync();
                   if ((pcm86.reqirq) && (pcm86.virbuf <= pcm86.fifosize)) {
                           pcm86.reqirq = 0;
                           pcm86.irqflag = 1;
                           return(TRUE);
                   }
           }
           return(FALSE);
   }
   

Removed from v.1.5  
changed lines
  Added in v.1.8


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