|
|
| version 1.2, 2003/10/20 06:36:33 | version 1.5, 2004/01/05 14:16:35 |
|---|---|
| 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 38 static BYTE cs4231_pcm8s(void) { | Line 39 static BYTE cs4231_pcm8s(void) { |
| leng = 0; | leng = 0; |
| goto p8s_stop; | goto p8s_stop; |
| } | } |
| cs4231.pcmdata[0] = (i286_memoryread(addr+0) ^ 0x80) << 8; | cs4231.pcmdata[0] = (i286_memoryread(addr + 0) ^ 0x80) << 8; |
| cs4231.pcmdata[1] = (i286_memoryread(addr+1) ^ 0x80) << 8; | cs4231.pcmdata[1] = (i286_memoryread(addr + 1) ^ 0x80) << 8; |
| addr += 2; | addr += 2; |
| } | } |
| ctime -= cs4231.step; | ctime -= cs4231.step; |
| 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; |