if (c == 'S' && realtime_disassembly) {
do_disasm = 128;
}
+
+ // pause pressed; trigger nmi (int level 7)
+ if (c == 0x01) {
+ m68k_set_irq(7);
+ }
}
}
}
}*/
if (address == 0xDFF030) {
- char *beb = (char *)&value;
- printf("%c%c", beb[1], beb[0]);
+ char *serdat = (char *)&value;
+ // SERDAT word. see amiga dev docs appendix a; upper byte is control codes, and bit 0 is always 1.
+ // ignore this upper byte as it's not viewable data, only display lower byte.
+ printf("%c", serdat[0]);
}
if (address == 0xDFF09A) {
if (!(value & 0x8000)) {