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

version 1.6, 2004/03/30 07:12:03 version 1.8, 2004/06/02 11:02:53
Line 75  void pcm86_cb(NEVENTITEM item) { Line 75  void pcm86_cb(NEVENTITEM item) {
 //              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 150  void SOUNDCALL pcm86gen_checkbuf(void) { Line 154  void SOUNDCALL pcm86gen_checkbuf(void) {
   
 BOOL pcm86gen_intrq(void) {  BOOL pcm86gen_intrq(void) {
   
           if (pcm86.irqflag) {
                   return(TRUE);
           }
         if (pcm86.fifo & 0x20) {          if (pcm86.fifo & 0x20) {
                 sound_sync();                  sound_sync();
                 if ((pcm86.write) && (pcm86.virbuf <= pcm86.fifosize)) {                  if ((pcm86.reqirq) && (pcm86.virbuf <= pcm86.fifosize)) {
                           pcm86.reqirq = 0;
                           pcm86.irqflag = 1;
                         return(TRUE);                          return(TRUE);
                 }                  }
         }          }

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


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