Previous 199869 Revisions Next

r18880 Tuesday 6th November, 2012 at 21:04:49 UTC by O. Galibert
m6502: IRQ fixes [O. Galibert]
[src/emu/cpu/m6502]m6502.h om6502.lst om65c02.lst

trunk/src/emu/cpu/m6502/om6502.lst
r18879r18880
273273      PC = read_direct(0xfffa);
274274      PC = set_h(PC, read_direct(0xfffb));
275275      nmi_state = false;
276      standard_irq_callback(NMI_LINE);
276277   } else {
277278      PC = read_direct(0xfffe);
278279      PC = set_h(PC, read_direct(0xffff));
280      if(irq_taken)
281         standard_irq_callback(IRQ_LINE);
279282   }
280283   irq_taken = false;
281284   P |= F_I; // Do *not* move after the prefetch
trunk/src/emu/cpu/m6502/m6502.h
r18879r18880
4646class m6502_device : public cpu_device {
4747public:
4848   enum {
49      IRQ_LINE, NMI_LINE, V_LINE
49      IRQ_LINE = INPUT_LINE_IRQ0,
50      NMI_LINE = INPUT_LINE_NMI,
51      V_LINE   = 10
5052   };
5153
5254   m6502_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
trunk/src/emu/cpu/m6502/om65c02.lst
r18879r18880
202202      PC = read_direct(0xfffa);
203203      PC = set_h(PC, read_direct(0xfffb));
204204      nmi_state = false;
205      standard_irq_callback(NMI_LINE);
205206   } else {
206207      PC = read_direct(0xfffe);
207208      PC = set_h(PC, read_direct(0xffff));
209      if(irq_taken)
210         standard_irq_callback(IRQ_LINE);
208211   }
209212   irq_taken = false;
210213   P = (P | F_I) & ~F_D; // Do *not* move after the prefetch

Previous 199869 Revisions Next


© 1997-2024 The MAME Team