--- np2/sound/cs4231g.c 2003/10/16 17:58:08 1.1 +++ np2/sound/cs4231g.c 2004/01/05 14:16:35 1.5 @@ -6,14 +6,18 @@ #include "fmboard.h" +extern CS4231CFG cs4231cfg; + + // ---- 補完くらいしようよ… -BYTE cs4231_nodecode(void) { +REG8 cs4231_nodecode(DMACH dmach) { + (void)dmach; return(0); } -static BYTE cs4231_pcm8s(void) { +static REG8 cs4231_pcm8s(DMACH dmach) { SINT32 leng; UINT indatas; @@ -21,22 +25,22 @@ static BYTE cs4231_pcm8s(void) { UINT32 ctime; UINT wpos; - leng = dmac.dmach[0].leng.w; + leng = dmach->leng.w; if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { indatas = cs4231.bufsize; ctime = cs4231.curtime; wpos = cs4231.writepos; - addr = dmac.dmach[0].adrs.d; + addr = dmach->adrs.d; do { while(ctime < cs4231.step) { - ctime += opna_rate; + ctime += cs4231cfg.rate; leng -= 2; if (leng < 0) { leng = 0; goto p8s_stop; } - cs4231.pcmdata[0] = (i286_memoryread(addr+0) ^ 0x80) << 8; - cs4231.pcmdata[1] = (i286_memoryread(addr+1) ^ 0x80) << 8; + cs4231.pcmdata[0] = (i286_memoryread(addr + 0) ^ 0x80) << 8; + cs4231.pcmdata[1] = (i286_memoryread(addr + 1) ^ 0x80) << 8; addr += 2; } ctime -= cs4231.step; @@ -46,8 +50,8 @@ static BYTE cs4231_pcm8s(void) { } while(indatas < CS4231_BUFFERS); p8s_stop: - dmac.dmach[0].leng.w = leng; - dmac.dmach[0].adrs.d = addr; + dmach->leng.w = leng; + dmach->adrs.d = addr; cs4231.bufsize = indatas; cs4231.curtime = ctime; cs4231.writepos = wpos; @@ -55,7 +59,7 @@ p8s_stop: return((leng < 2)?1:0); } -static BYTE cs4231_pcm8m(void) { +static REG8 cs4231_pcm8m(DMACH dmach) { SINT32 leng; UINT indatas; @@ -64,15 +68,15 @@ static BYTE cs4231_pcm8m(void) { UINT wpos; SINT16 pcmdata; - leng = dmac.dmach[0].leng.w; + leng = dmach->leng.w; if ((leng > 0) && (cs4231.bufsize < CS4231_BUFFERS)) { indatas = cs4231.bufsize; ctime = cs4231.curtime; wpos = cs4231.writepos; - addr = dmac.dmach[0].adrs.d; + addr = dmach->adrs.d; do { while(ctime < cs4231.step) { - ctime += opna_rate; + ctime += cs4231cfg.rate; leng -= 1; if (leng < 0) { leng = 0; @@ -90,8 +94,8 @@ static BYTE cs4231_pcm8m(void) { } while(indatas < CS4231_BUFFERS); p8m_stop: - dmac.dmach[0].leng.w = leng; - dmac.dmach[0].adrs.d = addr; + dmach->leng.w = leng; + dmach->adrs.d = addr; cs4231.bufsize = indatas; cs4231.curtime = ctime; cs4231.writepos = wpos; @@ -99,7 +103,7 @@ p8m_stop: return((leng == 0)?1:0); } -static BYTE cs4231_pcm16s(void) { +static REG8 cs4231_pcm16s(DMACH dmach) { SINT32 leng; UINT indatas; @@ -108,16 +112,16 @@ static BYTE cs4231_pcm16s(void) { UINT wpos; UINT16 samp; - leng = dmac.dmach[0].leng.w; + leng = dmach->leng.w; if ((leng >= 4) && (cs4231.bufsize < CS4231_BUFFERS)) { indatas = cs4231.bufsize; ctime = cs4231.curtime; wpos = cs4231.writepos; - addr = dmac.dmach[0].adrs.d; + addr = dmach->adrs.d; // TRACEOUT(("addr: %x", addr)); do { while(ctime < cs4231.step) { - ctime += opna_rate; + ctime += cs4231cfg.rate; leng -= 4; if (leng < 0) { leng = 0; @@ -136,8 +140,8 @@ static BYTE cs4231_pcm16s(void) { } while(indatas < CS4231_BUFFERS); p16s_stop: - dmac.dmach[0].leng.w = leng; - dmac.dmach[0].adrs.d = addr; + dmach->leng.w = leng; + dmach->adrs.d = addr; cs4231.bufsize = indatas; cs4231.curtime = ctime; cs4231.writepos = wpos; @@ -145,7 +149,7 @@ p16s_stop: return((leng < 4)?1:0); } -static BYTE cs4231_pcm16m(void) { +static REG8 cs4231_pcm16m(DMACH dmach) { SINT32 leng; UINT indatas; @@ -154,15 +158,15 @@ static BYTE cs4231_pcm16m(void) { UINT wpos; UINT16 samp; - leng = dmac.dmach[0].leng.w; + leng = dmach->leng.w; if ((leng >= 2) && (cs4231.bufsize < CS4231_BUFFERS)) { indatas = cs4231.bufsize; ctime = cs4231.curtime; wpos = cs4231.writepos; - addr = dmac.dmach[0].adrs.d; + addr = dmach->adrs.d; do { while(ctime < cs4231.step) { - ctime += opna_rate; + ctime += cs4231cfg.rate; leng -= 2; if (leng < 0) { leng = 0; @@ -181,8 +185,8 @@ static BYTE cs4231_pcm16m(void) { } while(indatas < CS4231_BUFFERS); p16m_stop: - dmac.dmach[0].leng.w = leng; - dmac.dmach[0].adrs.d = addr; + dmach->leng.w = leng; + dmach->adrs.d = addr; cs4231.bufsize = indatas; cs4231.curtime = ctime; cs4231.writepos = wpos;