From: nine Date: Sun, 21 Feb 2021 01:55:03 +0000 (+0000) Subject: send nmi/int7 when pause pressed X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=748d921f628dbc61e7edf895e2a2244b331f95ad;p=pistorm send nmi/int7 when pause pressed --- diff --git a/emulator.c b/emulator.c index 04fe15e..b46a64c 100644 --- a/emulator.c +++ b/emulator.c @@ -415,6 +415,11 @@ int main(int argc, char *argv[]) { if (c == 'S' && realtime_disassembly) { do_disasm = 128; } + + // pause pressed; trigger nmi (int level 7) + if (c == 0x01) { + m68k_set_irq(7); + } } } } diff --git a/input/input.c b/input/input.c index d4d17f2..1acb722 100644 --- a/input/input.c +++ b/input/input.c @@ -65,6 +65,12 @@ int handle_modifier(struct input_event *ev) { #define KEYCASE(a, b, c)case a: return (lshift || rshift) ? c : b; +/** + * translates keycodes back into a simpler enumerable value for handling emulator command events + * + * @param *struct/input_event ev pointer to input layer event structure + * @return char + */ char char_from_input_event(struct input_event *ev) { switch(ev->code) { KEYCASE(KEY_A, 'a', 'A'); @@ -104,6 +110,7 @@ char char_from_input_event(struct input_event *ev) { KEYCASE(KEY_9, '9', '('); KEYCASE(KEY_0, '0', ')'); KEYCASE(KEY_F12, 0x1B, 0x1B); + KEYCASE(KEY_PAUSE, 0x01, 0x01); default: return 0; }