|
|
| version 1.4, 2004/01/05 11:46:56 | version 1.8, 2004/06/02 11:02:53 |
|---|---|
| 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 "cs4231io.h" | #include "cs4231io.h" |
| Line 80 void cs4231io_reset(void) { | Line 80 void cs4231io_reset(void) { |
| cs4231.enable = 1; | cs4231.enable = 1; |
| cs4231.port = 0xf40; | cs4231.port = 0xf40; |
| cs4231.adrs = 0x21; | cs4231.adrs = 0x22; |
| cs4231.dmairq = cs4231irq[(cs4231.adrs >> 3) & 3]; | cs4231.dmairq = cs4231irq[(cs4231.adrs >> 3) & 7]; |
| cs4231.dmach = cs4231dma[cs4231.adrs & 7]; | cs4231.dmach = cs4231dma[cs4231.adrs & 7]; |
| cs4231.step = 22050; | |
| if (cs4231.dmach != 0xff) { | if (cs4231.dmach != 0xff) { |
| dmac_attach(DMADEV_CS4231, cs4231.dmach); | dmac_attach(DMADEV_CS4231, cs4231.dmach); |
| } | } |
| TRACEOUT(("CS4231 - IRQ = %d", cs4231.dmairq)); | |
| TRACEOUT(("CS4231 - DMA channel = %d", cs4231.dmach)); | |
| } | } |
| void cs4231io_bind(void) { | void cs4231io_bind(void) { |
| Line 105 void IOOUTCALL cs4231io_w8(UINT port, RE | Line 106 void IOOUTCALL cs4231io_w8(UINT port, RE |
| switch(port & 0x0f) { | switch(port & 0x0f) { |
| case 0: | case 0: |
| cs4231.adrs = value; | cs4231.adrs = value; |
| cs4231.dmairq = cs4231irq[(value >> 3) & 3]; | cs4231.dmairq = cs4231irq[(value >> 3) & 7]; |
| cs4231.dmach = cs4231dma[value & 7]; | cs4231.dmach = cs4231dma[value & 7]; |
| dmac_detach(DMADEV_CS4231); | dmac_detach(DMADEV_CS4231); |
| if (cs4231.dmach != 0xff) { | if (cs4231.dmach != 0xff) { |
| dmac_attach(DMADEV_CS4231, cs4231.dmach); | dmac_attach(DMADEV_CS4231, cs4231.dmach); |
| #if 0 | |
| if (cs4231.sdc_enable) { | |
| dmac.dmach[cs4231.dmach].ready = 1; | |
| dmac_check(); | |
| } | |
| #endif | |
| } | } |
| break; | break; |
| Line 124 void IOOUTCALL cs4231io_w8(UINT port, RE | Line 131 void IOOUTCALL cs4231io_w8(UINT port, RE |
| case 6: | case 6: |
| cs4231.intflag = 0; | cs4231.intflag = 0; |
| break; | break; |
| case 7: | |
| cs4231_datasend(value); | |
| break; | |
| } | } |
| } | } |