|
|
| version 1.8, 2004/06/02 11:02:53 | version 1.9, 2004/06/17 10:09:46 |
|---|---|
| Line 107 static void IOOUTCALL pcm86_oa46a(UINT p | Line 107 static void IOOUTCALL pcm86_oa46a(UINT p |
| static void IOOUTCALL pcm86_oa46c(UINT port, REG8 val) { | static void IOOUTCALL pcm86_oa46c(UINT port, REG8 val) { |
| // TRACEOUT(("86pcm out %.4x %.2x", port, val)); | // TRACEOUT(("86pcm out %.4x %.2x", port, val)); |
| #if 1 | |
| if (pcm86.virbuf < PCM86_LOGICALBUF) { | |
| pcm86.virbuf++; | |
| } | |
| pcm86.buffer[pcm86.wrtpos] = val; | |
| pcm86.wrtpos = (pcm86.wrtpos + 1) & PCM86_BUFMSK; | |
| pcm86.realbuf++; | |
| // バッファオーバーフローの監視 | |
| if (pcm86.realbuf >= PCM86_REALBUFSIZE) { | |
| #if 1 | |
| pcm86.realbuf -= 4; | |
| pcm86.readpos = (pcm86.readpos + 4) & PCM86_BUFMSK; | |
| #else | |
| pcm86.realbuf &= 3; // align4決めウチ | |
| pcm86.realbuf += PCM86_REALBUFSIZE - 4; | |
| #endif | |
| } | |
| // pcm86.write = 1; | |
| pcm86.reqirq = 1; | |
| #else | |
| if (pcm86.virbuf < PCM86_LOGICALBUF) { | if (pcm86.virbuf < PCM86_LOGICALBUF) { |
| pcm86.virbuf++; | pcm86.virbuf++; |
| pcm86.buffer[pcm86.wrtpos] = val; | pcm86.buffer[pcm86.wrtpos] = val; |
| Line 120 static void IOOUTCALL pcm86_oa46c(UINT p | Line 140 static void IOOUTCALL pcm86_oa46c(UINT p |
| // pcm86.write = 1; | // pcm86.write = 1; |
| pcm86.reqirq = 1; | pcm86.reqirq = 1; |
| } | } |
| #endif | |
| (void)port; | (void)port; |
| } | } |