Skip to content

Commit

Permalink
Register view and semi working stepping
Browse files Browse the repository at this point in the history
  • Loading branch information
emoon committed Mar 30, 2024
1 parent 08ecfb3 commit ee5fcf8
Show file tree
Hide file tree
Showing 4 changed files with 70 additions and 0 deletions.
3 changes: 3 additions & 0 deletions src/debugger/debugger.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
// clang-format on

#include "disassembly_view.h"
#include "register_view.h"
#include "debugger_api.h"

extern int debugger_active;
Expand Down Expand Up @@ -173,6 +174,7 @@ Debugger* Debugger_create() {

debugger->memory_view = new MemoryView();
debugger->d_view = DisassemblyView_create(debugger->capstone);
debugger->register_view = RegisterView_create();

s_debugger = debugger;

Expand Down Expand Up @@ -218,6 +220,7 @@ static void draw_debugger_window(Debugger* self) {
*/

DisassemblyView_update(self->d_view, "Dummy");
RegisterView_update(self->register_view);

uae_u8* addr = memory_get_real_address(0x00c000000);
self->memory_view->draw_window("Memory View", addr, 512 * 1024);
Expand Down
2 changes: 2 additions & 0 deletions src/debugger/debugger.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ struct SDL_Window;
struct SDL_Renderer;
union SDL_Event;
struct DisassemblyView;
struct RegisterView;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

Expand All @@ -18,6 +19,7 @@ struct Debugger {
csh capstone;
MemoryView* memory_view;
DisassemblyView* d_view;
RegisterView* register_view;
};

enum DebuggerMode {
Expand Down
57 changes: 57 additions & 0 deletions src/debugger/register_view.cpp
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
#include <stdint.h>
#include <dear_imgui/imgui.h>
#include "register_view.h"
#include "sysconfig.h"
#include "sysdeps.h"
#include "options.h"
#include "memory.h"
#include "newcpu.h"

struct RegisterView {
uint32_t dummy;
};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

RegisterView* RegisterView_create() {
return new RegisterView();
}

//////////////////////////////////////////////////////////////////////////////////////////////////////////////

void RegisterView_update(RegisterView* self) {
static bool open = true;

ImGuiTableFlags flags = ImGuiTableFlags_Resizable
| ImGuiTableFlags_Reorderable
| ImGuiTableFlags_Hideable
| ImGuiTableFlags_BordersOuter
| ImGuiTableFlags_BordersV;

if (ImGui::Begin("Registers", &open, ImGuiWindowFlags_NoScrollbar)) {
if (ImGui::BeginTable("disassembly", 2, flags)) {
ImGui::TableSetupColumn("Register");
ImGui::TableSetupColumn("Value");
ImGui::TableHeadersRow();

for (int i = 0; i < 8; i++) {
ImGui::TableNextColumn();
ImGui::Text("a%d", i);
ImGui::TableNextColumn();
ImGui::Text("%08X", m68k_areg(regs, i));
}

for (int i = 0; i < 8; i++) {
ImGui::TableNextColumn();
ImGui::Text("d%d", i);
ImGui::TableNextColumn();
ImGui::Text("%08X", m68k_dreg(regs, i));
}
}

ImGui::EndTable();
}

ImGui::End();
}

8 changes: 8 additions & 0 deletions src/debugger/register_view.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#pragma once

struct RegisterView;

RegisterView* RegisterView_create();
void RegisterView_update(RegisterView* self);
void RegisterView_destroy(RegisterView* self);

0 comments on commit ee5fcf8

Please sign in to comment.