summaryrefslogtreecommitdiff
path: root/emulator.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'emulator.cpp')
-rw-r--r--emulator.cpp10
1 files changed, 6 insertions, 4 deletions
diff --git a/emulator.cpp b/emulator.cpp
index 5228231..051c6db 100644
--- a/emulator.cpp
+++ b/emulator.cpp
@@ -40,7 +40,8 @@ static int set_socket_reuseaddr(int socket_fd)
return setsockopt(socket_fd, SOL_SOCKET, SO_REUSEADDR, (void*)&val, len);
}
-static inline struct sockaddr_in sockaddr_in_any_ip_with_port(uint16_t port) {
+static inline struct sockaddr_in sockaddr_in_any_ip_with_port(uint16_t port)
+{
struct sockaddr_in server{};
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
@@ -207,7 +208,7 @@ static void make_hex(char* buff, unsigned int pc, unsigned int length)
// TODO m68k_set_illg_instr_callback for true software breakpoint "4e4f"
-void m68k_instr_callback(int pc)
+int m68k_instr_callback(int pc)
{
const auto it = std::find_if(
code_bkpts.begin(),
@@ -217,8 +218,8 @@ void m68k_instr_callback(int pc)
g_m68k_debug.SetRunning(false);
g_m68k_debug.RaiseBreakpoint();
m68k_end_timeslice();
- printf("Breakpoint!\n");
- // TODO notify GDB somehow that breakpoint has been hit
+ printf("Breakpoint @ 0x%08x\n", pc);
+ return 1;
}
if (DEBUG_TRACE_INSTRUCTIONS) {
char buff[100];
@@ -229,6 +230,7 @@ void m68k_instr_callback(int pc)
printf(" %08X: %-20s: %s\n", pc, buff2, buff);
fflush(stdout);
}
+ return 0;
}
void ParseAndReact(