|
|
| version 1.3, 2003/11/29 00:36:00 | version 1.6, 2004/01/23 15:05:05 |
|---|---|
| Line 1 | Line 1 |
| #include "compiler.h" | #include "compiler.h" |
| #include "memory.h" | #include "cpucore.h" |
| #include "pccore.h" | #include "pccore.h" |
| #include "iocore.h" | #include "iocore.h" |
| #include "sound.h" | #include "sound.h" |
| Line 11 extern CS4231CFG cs4231cfg; | Line 11 extern CS4231CFG cs4231cfg; |
| // ---- 補完くらいしようよ… | // ---- 補完くらいしようよ… |
| BYTE cs4231_nodecode(void) { | REG8 cs4231_nodecode(DMACH dmach) { |
| (void)dmach; | |
| return(0); | return(0); |
| } | } |
| static BYTE cs4231_pcm8s(void) { | static REG8 cs4231_pcm8s(DMACH dmach) { |
| SINT32 leng; | SINT32 leng; |
| UINT indatas; | UINT indatas; |
| Line 24 static BYTE cs4231_pcm8s(void) { | Line 25 static BYTE cs4231_pcm8s(void) { |
| UINT32 ctime; | UINT32 ctime; |
| UINT wpos; | UINT wpos; |
| leng = dmac.dmach[0].leng.w; | leng = dmach->leng.w; |
| if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { | if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { |
| indatas = cs4231.bufsize; | indatas = cs4231.bufsize; |
| ctime = cs4231.curtime; | ctime = cs4231.curtime; |
| wpos = cs4231.writepos; | wpos = cs4231.writepos; |
| addr = dmac.dmach[0].adrs.d; | addr = dmach->adrs.d; |
| do { | do { |
| while(ctime < cs4231.step) { | while(ctime < cs4231.step) { |
| ctime += cs4231cfg.rate; | ctime += cs4231cfg.rate; |
| Line 49 static BYTE cs4231_pcm8s(void) { | Line 50 static BYTE cs4231_pcm8s(void) { |
| } while(indatas < CS4231_BUFFERS); | } while(indatas < CS4231_BUFFERS); |
| p8s_stop: | p8s_stop: |
| dmac.dmach[0].leng.w = leng; | dmach->leng.w = leng; |
| dmac.dmach[0].adrs.d = addr; | dmach->adrs.d = addr; |
| cs4231.bufsize = indatas; | cs4231.bufsize = indatas; |
| cs4231.curtime = ctime; | cs4231.curtime = ctime; |
| cs4231.writepos = wpos; | cs4231.writepos = wpos; |
| Line 58 p8s_stop: | Line 59 p8s_stop: |
| return((leng < 2)?1:0); | return((leng < 2)?1:0); |
| } | } |
| static BYTE cs4231_pcm8m(void) { | static REG8 cs4231_pcm8m(DMACH dmach) { |
| SINT32 leng; | SINT32 leng; |
| UINT indatas; | UINT indatas; |
| Line 67 static BYTE cs4231_pcm8m(void) { | Line 68 static BYTE cs4231_pcm8m(void) { |
| UINT wpos; | UINT wpos; |
| SINT16 pcmdata; | SINT16 pcmdata; |
| leng = dmac.dmach[0].leng.w; | leng = dmach->leng.w; |
| if ((leng > 0) && (cs4231.bufsize < CS4231_BUFFERS)) { | if ((leng > 0) && (cs4231.bufsize < CS4231_BUFFERS)) { |
| indatas = cs4231.bufsize; | indatas = cs4231.bufsize; |
| ctime = cs4231.curtime; | ctime = cs4231.curtime; |
| wpos = cs4231.writepos; | wpos = cs4231.writepos; |
| addr = dmac.dmach[0].adrs.d; | addr = dmach->adrs.d; |
| do { | do { |
| while(ctime < cs4231.step) { | while(ctime < cs4231.step) { |
| ctime += cs4231cfg.rate; | ctime += cs4231cfg.rate; |
| Line 93 static BYTE cs4231_pcm8m(void) { | Line 94 static BYTE cs4231_pcm8m(void) { |
| } while(indatas < CS4231_BUFFERS); | } while(indatas < CS4231_BUFFERS); |
| p8m_stop: | p8m_stop: |
| dmac.dmach[0].leng.w = leng; | dmach->leng.w = leng; |
| dmac.dmach[0].adrs.d = addr; | dmach->adrs.d = addr; |
| cs4231.bufsize = indatas; | cs4231.bufsize = indatas; |
| cs4231.curtime = ctime; | cs4231.curtime = ctime; |
| cs4231.writepos = wpos; | cs4231.writepos = wpos; |
| Line 102 p8m_stop: | Line 103 p8m_stop: |
| return((leng == 0)?1:0); | return((leng == 0)?1:0); |
| } | } |
| static BYTE cs4231_pcm16s(void) { | static REG8 cs4231_pcm16s(DMACH dmach) { |
| SINT32 leng; | SINT32 leng; |
| UINT indatas; | UINT indatas; |
| Line 111 static BYTE cs4231_pcm16s(void) { | Line 112 static BYTE cs4231_pcm16s(void) { |
| UINT wpos; | UINT wpos; |
| UINT16 samp; | UINT16 samp; |
| leng = dmac.dmach[0].leng.w; | leng = dmach->leng.w; |
| if ((leng >= 4) && (cs4231.bufsize < CS4231_BUFFERS)) { | if ((leng >= 4) && (cs4231.bufsize < CS4231_BUFFERS)) { |
| indatas = cs4231.bufsize; | indatas = cs4231.bufsize; |
| ctime = cs4231.curtime; | ctime = cs4231.curtime; |
| wpos = cs4231.writepos; | wpos = cs4231.writepos; |
| addr = dmac.dmach[0].adrs.d; | addr = dmach->adrs.d; |
| // TRACEOUT(("addr: %x", addr)); | // TRACEOUT(("addr: %x", addr)); |
| do { | do { |
| while(ctime < cs4231.step) { | while(ctime < cs4231.step) { |
| Line 139 static BYTE cs4231_pcm16s(void) { | Line 140 static BYTE cs4231_pcm16s(void) { |
| } while(indatas < CS4231_BUFFERS); | } while(indatas < CS4231_BUFFERS); |
| p16s_stop: | p16s_stop: |
| dmac.dmach[0].leng.w = leng; | dmach->leng.w = leng; |
| dmac.dmach[0].adrs.d = addr; | dmach->adrs.d = addr; |
| cs4231.bufsize = indatas; | cs4231.bufsize = indatas; |
| cs4231.curtime = ctime; | cs4231.curtime = ctime; |
| cs4231.writepos = wpos; | cs4231.writepos = wpos; |
| Line 148 p16s_stop: | Line 149 p16s_stop: |
| return((leng < 4)?1:0); | return((leng < 4)?1:0); |
| } | } |
| static BYTE cs4231_pcm16m(void) { | static REG8 cs4231_pcm16m(DMACH dmach) { |
| SINT32 leng; | SINT32 leng; |
| UINT indatas; | UINT indatas; |
| Line 157 static BYTE cs4231_pcm16m(void) { | Line 158 static BYTE cs4231_pcm16m(void) { |
| UINT wpos; | UINT wpos; |
| UINT16 samp; | UINT16 samp; |
| leng = dmac.dmach[0].leng.w; | leng = dmach->leng.w; |
| if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { | if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { |
| indatas = cs4231.bufsize; | indatas = cs4231.bufsize; |
| ctime = cs4231.curtime; | ctime = cs4231.curtime; |
| wpos = cs4231.writepos; | wpos = cs4231.writepos; |
| addr = dmac.dmach[0].adrs.d; | addr = dmach->adrs.d; |
| do { | do { |
| while(ctime < cs4231.step) { | while(ctime < cs4231.step) { |
| ctime += cs4231cfg.rate; | ctime += cs4231cfg.rate; |
| Line 184 static BYTE cs4231_pcm16m(void) { | Line 185 static BYTE cs4231_pcm16m(void) { |
| } while(indatas < CS4231_BUFFERS); | } while(indatas < CS4231_BUFFERS); |
| p16m_stop: | p16m_stop: |
| dmac.dmach[0].leng.w = leng; | dmach->leng.w = leng; |
| dmac.dmach[0].adrs.d = addr; | dmach->adrs.d = addr; |
| cs4231.bufsize = indatas; | cs4231.bufsize = indatas; |
| cs4231.curtime = ctime; | cs4231.curtime = ctime; |
| cs4231.writepos = wpos; | cs4231.writepos = wpos; |