static INTERRUPT_GEN( rotaryf_interrupt ) { if (video_screen_get_vblank(device->machine->primary_screen)) cpu_set_input_line(device, I8085_RST55_LINE, HOLD_LINE); else { cpu_set_input_line(device, I8085_RST75_LINE, ASSERT_LINE); cpu_set_input_line(device, I8085_RST75_LINE, CLEAR_LINE); } }
static INTERRUPT_GEN( chl_interrupt ) { int vector = video_screen_get_vblank(device->machine->primary_screen) ? 0xdf : 0xcf; /* 4 irqs per frame: 3 times 0xcf, 1 time 0xdf */ // video_screen_update_partial(device->machine->primary_screen, video_screen_get_vpos(device->machine->primary_screen)); cpu_set_input_line_and_vector(device, 0, HOLD_LINE, vector); /* it seems the V8 == Vblank and it is connected to the INT on the 68705 */ //so we should cause an INT on the MCU cpu here, as well. //but only once per frame ! if (vector == 0xdf) /* only on vblank */ generic_pulse_irq_line(cputag_get_cpu(device->machine, "mcu"), 0); }
static INTERRUPT_GEN( chl_interrupt ) { int vector = video_screen_get_vblank(0) ? 0xdf : 0xcf; /* 4 irqs per frame: 3 times 0xcf, 1 time 0xdf */ // video_screen_update_partial(0, video_screen_get_vpos(0)); cpunum_set_input_line_and_vector(0, 0, HOLD_LINE, vector); /* it seems the V8 == Vblank and it is connected to the INT on the 68705 */ //so we should cause an INT on the cpu 1 here, as well. //but only once per frame ! if (vector == 0xdf) /* only on vblank */ cpunum_set_input_line(1, 0, PULSE_LINE ); }
static READ8_HANDLER( fake_VRLE_r ) { return (malzak_s2636_0_ram[0xcb] & 0x3f) + (video_screen_get_vblank(space->machine->primary_screen)*0x40); }