diff --git a/src/burn/devices/seibusnd.cpp b/src/burn/devices/seibusnd.cpp index 74a4a1a28..6da68b463 100644 --- a/src/burn/devices/seibusnd.cpp +++ b/src/burn/devices/seibusnd.cpp @@ -83,10 +83,8 @@ static void update_irq_lines(INT32 param) if ((irq1 & irq2) == 0xff) { ZetSetIRQLine(0, ZET_IRQSTATUS_NONE); } else { - if (irq2 == 0xdf) { - ZetSetVector(irq1 & irq2); - ZetSetIRQLine(0, ZET_IRQSTATUS_ACK); - } + ZetSetVector(irq1 & irq2); + ZetSetIRQLine(0, ZET_IRQSTATUS_ACK); } } diff --git a/src/cpu/z80/z80.cpp b/src/cpu/z80/z80.cpp index d12440e72..3f7457c6e 100644 --- a/src/cpu/z80/z80.cpp +++ b/src/cpu/z80/z80.cpp @@ -109,7 +109,7 @@ static Z80WriteProgHandler Z80ProgramWrite; static Z80ReadOpHandler Z80CPUReadOp; static Z80ReadOpArgHandler Z80CPUReadOpArg; -unsigned char Z80Vector = 0; +unsigned char Z80Vector = 0xff; #define VERBOSE 0 @@ -3306,7 +3306,6 @@ OP(op,ff) { RST(0x38); } /* RST 7 */ static void take_interrupt(void) { int irq_vector = Z80Vector; - Z80Vector = 0; /* there isn't a valid previous program counter */ PRVPC = (UINT32)-1; @@ -3791,8 +3790,6 @@ static void z80_init(int index, int clock, const void *config, int (*irqcallback Z80.irq_callback = irqcallback; IX = IY = 0xffff; /* IX and IY are FFFF after a reset! */ F = ZF; /* Zero flag is set */ - - Z80Vector = 0; } /**************************************************************************** @@ -3809,6 +3806,8 @@ static void z80_reset(void) Z80.irq_state = Z80_CLEAR_LINE; Z80.after_ei = FALSE; + Z80Vector = 0xff; // Correct to reset this to 0xff? + if (Z80.daisy) z80daisy_reset(Z80.daisy);