mirror of
https://github.com/holub/mame
synced 2025-04-26 18:23:08 +03:00
Array bounds patrol (nw)
This commit is contained in:
parent
01089de733
commit
0caa890cca
@ -372,6 +372,11 @@ READ8_MEMBER( asc_device::read )
|
|||||||
m_regs[0x2f] = m_incr[3];
|
m_regs[0x2f] = m_incr[3];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (offset > 0x800)
|
||||||
|
{
|
||||||
|
return 0xff;
|
||||||
|
}
|
||||||
|
|
||||||
return m_regs[offset-0x800];
|
return m_regs[offset-0x800];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -582,6 +587,9 @@ WRITE8_MEMBER( asc_device::write )
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_regs[offset-0x800] = data;
|
if (offset < 0x800)
|
||||||
|
{
|
||||||
|
m_regs[offset-0x800] = data;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -982,8 +982,10 @@ static void SCSP_w16(scsp_state *scsp,address_space &space,unsigned int addr,uns
|
|||||||
//DSP
|
//DSP
|
||||||
if(addr<0x780) //COEF
|
if(addr<0x780) //COEF
|
||||||
*((unsigned short *) (scsp->DSP.COEF+(addr-0x700)/2))=val;
|
*((unsigned short *) (scsp->DSP.COEF+(addr-0x700)/2))=val;
|
||||||
else if(addr<0x800)
|
else if(addr<0x7c0)
|
||||||
*((unsigned short *) (scsp->DSP.MADRS+(addr-0x780)/2))=val;
|
*((unsigned short *) (scsp->DSP.MADRS+(addr-0x780)/2))=val;
|
||||||
|
else if(addr<0x800) // MADRS is mirrored twice
|
||||||
|
*((unsigned short *) (scsp->DSP.MADRS+(addr-0x7c0)/2))=val;
|
||||||
else if(addr<0xC00)
|
else if(addr<0xC00)
|
||||||
{
|
{
|
||||||
*((unsigned short *) (scsp->DSP.MPRO+(addr-0x800)/2))=val;
|
*((unsigned short *) (scsp->DSP.MPRO+(addr-0x800)/2))=val;
|
||||||
@ -1022,8 +1024,10 @@ static unsigned short SCSP_r16(scsp_state *scsp, address_space &space, unsigned
|
|||||||
//DSP
|
//DSP
|
||||||
if(addr<0x780) //COEF
|
if(addr<0x780) //COEF
|
||||||
v= *((unsigned short *) (scsp->DSP.COEF+(addr-0x700)/2));
|
v= *((unsigned short *) (scsp->DSP.COEF+(addr-0x700)/2));
|
||||||
else if(addr<0x800)
|
else if(addr<0x7c0)
|
||||||
v= *((unsigned short *) (scsp->DSP.MADRS+(addr-0x780)/2));
|
v= *((unsigned short *) (scsp->DSP.MADRS+(addr-0x780)/2));
|
||||||
|
else if(addr<0x800)
|
||||||
|
v= *((unsigned short *) (scsp->DSP.MADRS+(addr-0x7c0)/2));
|
||||||
else if(addr<0xC00)
|
else if(addr<0xC00)
|
||||||
v= *((unsigned short *) (scsp->DSP.MPRO+(addr-0x800)/2));
|
v= *((unsigned short *) (scsp->DSP.MPRO+(addr-0x800)/2));
|
||||||
else if(addr<0xE00)
|
else if(addr<0xE00)
|
||||||
|
Loading…
Reference in New Issue
Block a user