87f1f3a2e0
This fixes bug #614724: SDL can get stuck in full-screen mode, and provides a framework for fixing the problem on other full-screen display libraries such as term, svga, etc. - add virtual method bx_gui::set_display_mode(mode) which can be overridden by each display library class, if appropriate. This method is primarily used when you run Bochs full screen, to tell the gui to switch from full screen back to a mode where you can use the text console. - There are two display modes: config and simulation. The mode is changed to config mode during logfunctions::ask, during the runtime configuration menu, and before displaying a debugger prompt. It is changed back to simulation mode whenever instructions are running. - Instead of being called directly through the global bx_gui pointer, the bx_gui_c::set_display_mode() method is almost always accessed through siminterface, like this: SIM->set_display_mode (DISP_MODE_CONFIG); SIM->set_display_mode (DISP_MODE_SIM); Of course siminterface just passes the call on to bx_gui::set_display_mode(). I added it to siminterface so that the config interfaces could call it. (They don't #include bochs.h so they can't access bx_gui.) Modified Files: logio.cc main.cc debug/dbg_main.cc gui/gui.h gui/sdl.cc gui/siminterface.cc gui/siminterface.h |
||
---|---|---|
.. | ||
crc.cc | ||
dbg_main.cc | ||
debug.h | ||
lexer.c | ||
lexer.l | ||
linux.cc | ||
linux.h | ||
loader_misc.h | ||
make-syscalls-linux.pl | ||
Makefile.in | ||
parser.c | ||
parser.h | ||
parser.y | ||
sim2.cc | ||
syscalls-linux.h |