nesemu/debugger/debugger.c

63 lines
1.2 KiB
C

//
// Created by william on 1/6/24.
//
#include <curses.h>
#include <panel.h>
#include <stdlib.h>
#include "debugger.h"
#include "memory_view.h"
#include "dialog.h"
#define CTRL_KEY_EXIT 3
#define CTRL_KEY_UP 65
#define CTRL_KEY_DOWN 66
#define CTRL_KEY_G 103
MemoryView view;
void create_window() {
setenv("TERMINFO", "/usr/share/terminfo", 1);
setenv("TERM", "xterm", 1);
initscr();
raw();
noecho();
// wborder(window, '|', '|', '-', '-', '+', '+', '+', '+');
}
void destroy_window() {
endwin();
}
void some_func(char* user_input) {
}
void start_debugger(System *system) {
create_window();
memory_view_init(&view, system->ram);
update_panels();
doupdate();
int keycode;
while ((keycode = getch()) != CTRL_KEY_EXIT) {
if (keycode == CTRL_KEY_UP) {
memory_view_scroll(&view, -1, system->ram);
}
if (keycode == CTRL_KEY_DOWN) {
memory_view_scroll(&view, 1, system->ram);
}
if (keycode == CTRL_KEY_G) {
Dialog dialog = dialog_create("Goto Address", &some_func);
}
update_panels();
doupdate();
}
endwin();
}