h8: Sort out UE polarity [O. Galibert]

This commit is contained in:
Olivier Galibert 2014-03-26 08:55:33 +00:00
parent ff8a1bfe4c
commit cf941cb006
4 changed files with 30 additions and 32 deletions

View File

@ -139,30 +139,24 @@ void h83002_device::execute_set_input(int inputnum, int state)
int h83002_device::trapa_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
return 8;
}
void h83002_device::irq_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
}
void h83002_device::update_irq_filter()
{
switch(syscr & 0x08) {
case 0x00:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
case 0x08:
if((CCR & (F_I|F_UI)) == (F_I|F_UI))
intc->set_filter(2, -1);
else if(CCR & F_I)
@ -170,6 +164,12 @@ void h83002_device::update_irq_filter()
else
intc->set_filter(0, -1);
break;
case 0x08:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
}
}

View File

@ -159,30 +159,24 @@ void h83006_device::execute_set_input(int inputnum, int state)
int h83006_device::trapa_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
return 8;
}
void h83006_device::irq_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
}
void h83006_device::update_irq_filter()
{
switch(syscr & 0x08) {
case 0x00:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
case 0x08:
if((CCR & (F_I|F_UI)) == (F_I|F_UI))
intc->set_filter(2, -1);
else if(CCR & F_I)
@ -190,6 +184,12 @@ void h83006_device::update_irq_filter()
else
intc->set_filter(0, -1);
break;
case 0x08:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
}
}

View File

@ -207,30 +207,24 @@ void h83048_device::execute_set_input(int inputnum, int state)
int h83048_device::trapa_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
return 8;
}
void h83048_device::irq_setup()
{
if(syscr & 0x08)
CCR |= F_I|F_UI;
else
CCR |= F_I;
else
CCR |= F_I|F_UI;
}
void h83048_device::update_irq_filter()
{
switch(syscr & 0x08) {
case 0x00:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
case 0x08:
if((CCR & (F_I|F_UI)) == (F_I|F_UI))
intc->set_filter(2, -1);
else if(CCR & F_I)
@ -238,6 +232,12 @@ void h83048_device::update_irq_filter()
else
intc->set_filter(0, -1);
break;
case 0x08:
if(CCR & F_I)
intc->set_filter(2, -1);
else
intc->set_filter(0, -1);
break;
}
}

View File

@ -3376,7 +3376,6 @@ static MACHINE_CONFIG_START( s23, namcos23_state )
MCFG_CPU_ADD("subcpu", H83002, S23_H8CLOCK )
MCFG_CPU_PROGRAM_MAP( s23h8rwmap )
MCFG_CPU_IO_MAP( s23h8iomap )
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos23_state, irq1_line_pulse)
MCFG_TIMER_DRIVER_ADD_PERIODIC("jvs_timer", namcos23_state, jvs_timer, attotime::from_hz(S23_JVSCLOCK/8*2))
@ -3463,7 +3462,6 @@ static MACHINE_CONFIG_START( ss23, namcos23_state )
MCFG_CPU_ADD("subcpu", H83002, S23_H8CLOCK )
MCFG_CPU_PROGRAM_MAP( s23h8rwmap )
MCFG_CPU_IO_MAP( s23h8iomap )
MCFG_CPU_VBLANK_INT_DRIVER("screen", namcos23_state, irq1_line_pulse)
MCFG_TIMER_DRIVER_ADD_PERIODIC("jvs_timer", namcos23_state, jvs_timer, attotime::from_hz(S23_JVSCLOCK/8*2))