Fixes. Debugger improved.

This commit is contained in:
2017-02-01 19:49:26 +01:00
parent ad4b15514d
commit 0864cdcf89
9 changed files with 132 additions and 58 deletions

View File

@@ -45,6 +45,7 @@ int main(int argc, char** argv) {
vm_register_in_port(21, input_data_out);
debug_init(vm_get_memory());
const bool* breakpoints = debug_get_breakpoints();
bool running = false;
@@ -56,19 +57,36 @@ int main(int argc, char** argv) {
while (!should_quit) {
just_pressed = SDL_SCANCODE_UNKNOWN;
while (SDL_PollEvent(&sdlEvent)) {
if (sdlEvent.type == SDL_WINDOWEVENT_CLOSE) { should_quit = true; break; }
if (sdlEvent.type == SDL_QUIT) { should_quit = true; break; }
else if (sdlEvent.type == SDL_KEYDOWN) {
switch (sdlEvent.type) {
case SDL_WINDOWEVENT:
switch (sdlEvent.window.event) {
case SDL_WINDOWEVENT_CLOSE:
should_quit = true; break;
}
break;
case SDL_QUIT:
should_quit = true; break;
case SDL_KEYDOWN:
//anykey = true;
just_pressed = sdlEvent.key.keysym.scancode;
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_SPACE) { anykey = true; }
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_ESCAPE) { should_quit = true; }
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_F10) { vm_big_step(); debug_update(); }
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_F11) { vm_step(); debug_update(); }
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_F5) { running = !running; if (!running) debug_update(); }
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_F5) { running = !running; if (!running) debug_update(); else debug_hide(); }
break;
case SDL_KEYUP:
if (sdlEvent.key.keysym.scancode == SDL_SCANCODE_SPACE) { anykey = false; }
case SDL_MOUSEBUTTONDOWN:
debug_mouse_event(sdlEvent);
break;
}
}
if (running) vm_step();
if (running) {
unsigned short pc = vm_step();
if (breakpoints[pc]) { running = false; debug_update(); }
}
//if (SDL_GetTicks() - ticks >= 15) { vdp_flip(); ticks = SDL_GetTicks(); }
}