]> git.sesse.net Git - pistorm/blobdiff - emulator.c
send nmi/int7 when pause pressed
[pistorm] / emulator.c
index 50d144bec4bd5319c34804a6058764e8bf8739b5..b46a64cc0f5112243591949a3f906a8ad3043e69 100644 (file)
@@ -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);
+        }
       }
     }
   }
@@ -691,8 +696,10 @@ void m68k_write_memory_16(unsigned int address, unsigned int value) {
   }*/
 
   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)) {