void c64keyboard_restore_key(int v)
{
    /* ignore key release */
    if (v) {
        /* trigger the NMI */
        maincpu_set_nmi(c64keyboard_int_num, 1);

        /* ack the restore NMI, leaving global_pending_int active */
        maincpu_set_nmi(c64keyboard_int_num, 0);
    }
}
Exemple #2
0
static void midi_set_int(int midiirq, unsigned int int_num, int value)
{
    if (midiirq == IK_IRQ) {
        maincpu_set_irq(int_num, value);
    }
    if (midiirq == IK_NMI) {
        maincpu_set_nmi(int_num, value);
    }
}
Exemple #3
0
/* called by the Freeze Button alarm */
static void cart_freeze_alarm_triggered(CLOCK offset, void *data)
{
    DBG(("cart_freeze_alarm_triggered\n"));
    alarm_unset(cartridge_freeze_alarm);
    cart_freeze_alarm_time = CLOCK_MAX;

    if (cart_freeze_allowed()) {  /* c64carthooks.c */
        DBG(("cart_trigger_freeze delay 3 cycles\n"));
        maincpu_set_nmi(cartridge_int_num, IK_NMI);
        cart_nmi_alarm_time = maincpu_clk + 3;
        alarm_set(cartridge_nmi_alarm, cart_nmi_alarm_time);
    }
}
Exemple #4
0
/* called from individual carts */
void cart_trigger_nmi(void)
{
    maincpu_set_nmi(cartridge_int_num, IK_NMI);
    cart_nmi_alarm_time = maincpu_clk + 3;
    alarm_set(cartridge_nmi_alarm, cart_nmi_alarm_time);
}
Exemple #5
0
/* called by individual carts */
void cartridge_release_freeze(void)
{
    maincpu_set_nmi(cartridge_int_num, 0);
}
Exemple #6
0
/* trigger a freeze, but don't trigger the cartridge logic (which might release it). used by monitor */
void cartridge_trigger_freeze_nmi_only(void)
{
    maincpu_set_nmi(cartridge_int_num, IK_NMI);
}