|
|
| 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); |
| } | } |
| } | } |