63 lines
1.2 KiB
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();
|
|
} |