diff --git a/src/events.c b/src/events.c index 2c130df..e52ef85 100644 --- a/src/events.c +++ b/src/events.c @@ -6,13 +6,19 @@ extern float displayScale; extern uint8_t halt; extern uint8_t showDebug; extern uint8_t showHelp; +extern uint8_t displayMmap; +extern uint8_t documentReload; +extern uint32_t renderMemory[]; + +extern int openFile(); extern void resetSystem(); extern void irq6502(); extern void nmi6502(); extern void step6502(); extern void updateRenderStates(); extern void scanKeyboard(); +extern void clearScreen(uint32_t[], uint32_t); static SDL_Scancode currentKey = SDL_SCANCODE_UNKNOWN; static SDL_Event event; @@ -43,14 +49,17 @@ void pollEvents(){ break; case SDL_SCANCODE_F5: /* CPU Reset */ + if (documentReload) openFile(); resetSystem(); break; case SDL_SCANCODE_F6: /* Scale -- */ + clearScreen(renderMemory, 0x000000FF); if (displayScale > 1) displayScale--; break; case SDL_SCANCODE_F7: /* Scale ++ */ + clearScreen(renderMemory, 0x000000FF); displayScale++; break; @@ -61,7 +70,8 @@ void pollEvents(){ case SDL_SCANCODE_F9: /* CPU Save Snapshot */ break; - case SDL_SCANCODE_F10: /* CPU Load recent or given snapshot */ + case SDL_SCANCODE_F10: /* Show CPU Memory Map */ + displayMmap = !displayMmap; break; case SDL_SCANCODE_F11: /* CPU NMI */