diff sms.c @ 1129:6b5c92b6205c

Enabled Z80 debugger in PBC mode
author Michael Pavone <pavone@retrodev.com>
date Wed, 28 Dec 2016 12:28:52 -0800
parents 63cd87d910cc
children 8f14767661fa
line wrap: on
line diff
--- a/sms.c	Tue Dec 27 18:58:31 2016 -0800
+++ b/sms.c	Wed Dec 28 12:28:52 2016 -0800
@@ -5,6 +5,7 @@
 #include "blastem.h"
 #include "render.h"
 #include "util.h"
+#include "debug.h"
 
 static void *memory_io_write(uint32_t location, void *vcontext, uint8_t value)
 {
@@ -119,6 +120,10 @@
 	uint32_t target_cycle = sms->z80->current_cycle + 3420*262;
 	while (!sms->should_return)
 	{
+		if (system->enter_debugger && sms->z80->pc) {
+			system->enter_debugger = 0;
+			zdebugger(sms->z80, sms->z80->pc);
+		}
 		z80_run(sms->z80, target_cycle);
 		target_cycle = sms->z80->current_cycle;
 		vdp_run_context(sms->vdp, target_cycle);
@@ -143,6 +148,11 @@
 	sms_context *sms = (sms_context *)system;
 	set_keybindings(&sms->io);
 	
+	if (system->enter_debugger) {
+		system->enter_debugger = 0;
+		zinsert_breakpoint(sms->z80, 0, (uint8_t *)zdebugger);
+	}
+	
 	z80_assert_reset(sms->z80, 0);
 	z80_clear_reset(sms->z80, 128*15);