--- np2/cbus/cs4231io.c 2004/01/05 11:46:56 1.4 +++ np2/cbus/cs4231io.c 2004/06/02 11:02:53 1.8 @@ -1,5 +1,5 @@ #include "compiler.h" -#include "memory.h" +#include "cpucore.h" #include "pccore.h" #include "iocore.h" #include "cs4231io.h" @@ -80,13 +80,14 @@ void cs4231io_reset(void) { cs4231.enable = 1; cs4231.port = 0xf40; - cs4231.adrs = 0x21; - cs4231.dmairq = cs4231irq[(cs4231.adrs >> 3) & 3]; + cs4231.adrs = 0x22; + cs4231.dmairq = cs4231irq[(cs4231.adrs >> 3) & 7]; cs4231.dmach = cs4231dma[cs4231.adrs & 7]; - cs4231.step = 22050; if (cs4231.dmach != 0xff) { dmac_attach(DMADEV_CS4231, cs4231.dmach); } + TRACEOUT(("CS4231 - IRQ = %d", cs4231.dmairq)); + TRACEOUT(("CS4231 - DMA channel = %d", cs4231.dmach)); } void cs4231io_bind(void) { @@ -105,11 +106,17 @@ void IOOUTCALL cs4231io_w8(UINT port, RE switch(port & 0x0f) { case 0: cs4231.adrs = value; - cs4231.dmairq = cs4231irq[(value >> 3) & 3]; + cs4231.dmairq = cs4231irq[(value >> 3) & 7]; cs4231.dmach = cs4231dma[value & 7]; dmac_detach(DMADEV_CS4231); if (cs4231.dmach != 0xff) { dmac_attach(DMADEV_CS4231, cs4231.dmach); +#if 0 + if (cs4231.sdc_enable) { + dmac.dmach[cs4231.dmach].ready = 1; + dmac_check(); + } +#endif } break; @@ -124,6 +131,10 @@ void IOOUTCALL cs4231io_w8(UINT port, RE case 6: cs4231.intflag = 0; break; + + case 7: + cs4231_datasend(value); + break; } }