diff options
Diffstat (limited to 'src/devices/sound/aica.cpp')
-rw-r--r-- | src/devices/sound/aica.cpp | 22 |
1 files changed, 9 insertions, 13 deletions
diff --git a/src/devices/sound/aica.cpp b/src/devices/sound/aica.cpp index 24b114719f7..c7ef59e6c49 100644 --- a/src/devices/sound/aica.cpp +++ b/src/devices/sound/aica.cpp @@ -912,11 +912,10 @@ void aica_device::w16(address_space &space,unsigned int addr,unsigned short val) //DSP if(addr<0x3200) //COEF *((unsigned short *) (m_DSP.COEF+(addr-0x3000)/2))=val; - else if(addr<0x3400) - { - assert(((addr-0x3200)/2) < ARRAY_LENGTH(m_DSP.MADRS)); + else if(addr<0x3300) *((unsigned short *) (m_DSP.MADRS+(addr-0x3200)/2))=val; - } + else if(addr<0x3400) + popmessage("AICADSP write to undocumented reg %04x -> %04x", addr, val); else if(addr<0x3c00) { *((unsigned short *) (m_DSP.MPRO+(addr-0x3400)/2))=val; @@ -975,10 +974,11 @@ unsigned short aica_device::r16(address_space &space, unsigned int addr) { v = m_EFSPAN[addr&0x7f]; } + else if (addr < 0x2800) + popmessage("AICA read undocumented reg %04x", addr); else if (addr < 0x28be) { UpdateRegR(space, addr&0xff); - assert((addr&0xff) < ARRAY_LENGTH(m_udata.datab)); v= *((unsigned short *) (m_udata.datab+((addr&0xff)))); if((addr&0xfffe)==0x2810) m_udata.data[0x10/2] &= 0x7FFF; // reset LP on read } @@ -996,18 +996,14 @@ unsigned short aica_device::r16(address_space &space, unsigned int addr) { if(addr<0x3200) //COEF v= *((unsigned short *) (m_DSP.COEF+(addr-0x3000)/2)); - else if(addr<0x3400) - { - assert(((addr-0x3200)/2) < ARRAY_LENGTH(m_DSP.MADRS)); + else if(addr<0x3300) v= *((unsigned short *) (m_DSP.MADRS+(addr-0x3200)/2)); - } + else if(addr<0x3400) + popmessage("AICADSP read undocumented reg %04x", addr); else if(addr<0x3c00) v= *((unsigned short *) (m_DSP.MPRO+(addr-0x3400)/2)); else if(addr<0x4000) - { - v= 0xffff; - popmessage("AICADSP read to undocumented reg %04x",addr); - } + popmessage("AICADSP read undocumented reg %04x",addr); else if(addr<0x4400) { if(addr & 4) |