- Improved macro definitions for plugin entry points.
- Forward declarations of plugin entry points are only required when plugin
support is off.
- Improved panic message for the case when plugin entry point is not found.
plugin_entry(). The additional boolean argument "init" is used to select the
requested action. The entry points still have unique names for compatibility
with the "non-plugin" compilation. Added macros for setting up these names
(e.g. PLUGIN_ENTRY_FOR_MODULE for device plugins).
The latest release is from 2001 and it will not work on modern Linux systems.
Parts of the SVGALib code have been moved to the Linux kernel and the X11 and
SDL libraries are using it as a video driver.
- The X gui behaviour should be unchanged.
- RFB / vncsrv: cursor shape fixes.
- Changed format of the font parameters to fix "double width" characters.
- Restore guest charmap after leaving gui console.
- Now using text_update_common() for the new text update API in addition to the
graphical text snapshot feature.
- Drawing to snapshot buffer moved to new method draw_char_common().
- A gui using the new text update API only needs to implement the new method
draw_char(). The method set_font() is optional and it can be used to update
font bitmaps / pixmaps.
- Modified the RFB gui to use the new API. Now the VGA features split screen
and h/v pel panning are supported by the RFB gui. The legacy text_update()
method is now empty but it must be present for compatiblity.
- TODO: Implement new API in some other guis to reduce code duplication.
- Shortcut parser sets a flag in case of error.
- String parameter handler resets to old value if the new one is invalid.
- User button handler shows a message box if the parser signals an error.
set accordingly.
TODO #1: Text mode features split screen and h/v pel panning missing for now.
TODO #2: Show error messages related to dialogs in message boxes.
- Enter command mode with F7 key only, but no modifier pressed.
- Pressing / releasing modifier key only doesn't leave command mode.
- Changed some headerbar button access keys using modifiers (e.g. shift + c
calls config button handler). See user doc for all supported keys.
with keypress combination. This feature is currently supported by the x and
sdl2 guis only and it can be activated with the "cmdmode" (command mode)
display library option. If enabled, pressing the F7 key enters this mode (shown
in the leftmost statusbar item) and the next keypress (except F7) is not sent
to the emmulated keyboard. If the key is supported, the associated action is
performed. Both x and sdl2 support calling the handlers of 8 headerbar buttons.
The sdl2 gui additionaly supports toggling fullscreen / windowed mode.
Supported keys:
c - Press the Copy button
e - Press the Config button
f - Toggle fullscreen mode (sdl2 only)
n - Press the Snapshot button
o - Press the Power button
p - Press the Paste button
r - Press the Reset button
s - Press the Suspend button
u - Press the User button
F7 - Send F7 keypress to emulation
TODO: add support for other guis.
- Changed the name of the entry point of the gui plugin code to
lib{gui_name}_gui_plugin_init(). It is used when loading plugin with the new
type. Added gui init code for the non-plugin version in plugin.cc.
- Some related changes for the "wx" case.
- The function load_and_init_display_lib() now only returns 1 on success.
- Minor other changes.
- Only keep the comments for the specific gui methods in nogui.cc and add
references to this file in all other gui sources.
- Changed the order of methods and added some useful comments in gui.cc / gui.h.
- Minor other cleanups
- Moved helper function reverse_bitorder to the common gui code.
- In console_refresh() call flush() after text_update().
- Started preparing rfb, sdl, sdl2 and vncsrv gui for using the console.
- Some other small cleanups.
- vncserv.cc: Fixed sdl font issue.
- Don't check for mouse toggle event if console is active.
- Added support for blinking cursor.
- Added stubs in the gui code to reduce BX_USE_TEXTCONIG usage in x.cc.
code. Now the runtime configuration runs in the Bochs window instead of
console / xterm. The simulation screen is restored when the
simulation continues. This feature can be implemented for all guis
without gui dialog box support (e.g. sdl2/sdl2 on non-win32 platforms, rfb).
devices like USB disk, cdrom or floppy. Using this feature for the new USB
floppy. Removed static indicators for port activity from the USB HC code.
TODO: Implement status LEDs for USB disk and cdrom.
gui init and string paramter handler. The shortcut keys are now stored in an
array of BX_KEY* values in the gui object.
siminterface.h: Fixed some default return values.
The Windows version looks almost stable, but the GTK version fails in some cases.
That's why the classic wx debugger is still available if BX_DEBUGGER_GUI is set to 0.
- added function close_debug_dialog() to handle the simulation stop case in wx
- disable all the wx debugger related code if BX_DEBUGGER_GUI is set to 1
- added enhanced debugger specific init code similar to the code in sdl.cc
- include debugger related resources on Windows
- TODO: make the GTK / wxGTK case stable and remove the wx debugger
- graphics_tile_info() split into a common and specific part
- store snapshot mode in structure bx_svga_tileinfo_t
- in snapshot mode, display adapters copy raw data to buffer
- rewrite of the trigger_timer() code to make it work in all cases
- added new class bx_nonvga_device_c to make forwarding refresh requests to the
Voodoo adapter possible
API) moved to the gui code. Splitted graphics_tile_update() in a common and a
specific part. The common part handles the snapshot case if active. As a side
effect, the snapshot feature now works for CGA modes, too. Fixed palette colors
in 8 bpp snapshots.
the display adapter code. When ready, the common gui code should handle it
completely. The snapshot handler should set a flag 'snapshot_mode' and then it
should force a display update. The graphics update code should be redirected to
some code that 'draws' to a snapshot buffer. These first steps are done:
- store some guest display settings in the gui code (text / graphics switch,
x / y resolution and bpp)
- split 8 bpp palette update code in a common and a specific part and store the
palette values in the gui code
- new gui method set_mouse_mode_absxy() should switch the gui to absolute
x/y mode
- new DEV_mouse_motion() argument 'absxy' indicates whether or not the gui
sends absolute x/y values
- USB tablet code prepared to use the new feature
- TODO: implement this feature for each gui (sdl, win32, wx, x, ...)
- changed argument for the text mode info structure to a pointer
- added attribute controller palette to bx_vga_tminfo_t and removed the
previous implementation
- carbon.cc: attempt to fix the text mode colors (untested)
- x.cc: fixed warnings
in the gui object. Now the gui doesn't need to include vga.h.
- TODO #1: win32.cc also shouldn't include vga.h
- TODO #2: replace BX_MAX_XRES / BX_MAX_YRES by variables that can be set
depending on the configuration
to update the status text if there is really a change
- changed the counter resolution to 5 (auto-off still happens after 0.5 seconds)
- the element value -1 is only used to reset the LEDs, so we have to ignore the
status flags
existing "iolight timer" code in the hard drive code. If an LED is registered
with the "auto-off" flag, the device only needs to turn on the LED to indicate
data transfer. The LED timer in the gui code turns it off after 0.5 seconds if
it is not actived by another transfer. Added this feature to all network
devices.
- TODO #1: implement this feature in the USB host controllers
- TODO #2: the unused timer in the hard drive code could be used for the
emulation of seek functions
* moved runtime handlers for cdrom from config.cc to the device object
* cd media status variable is now always of type bx_bool
* changed obsolete gui names like "cdromD" to "cdrom1"
* TODO: implement new runtime config mechanism similar to USB
the default Bochs method using the CTRL key and the middle mouse button there
are now the choices CTRL+F10 (like DOSBox) and CTRL+ALT (like QEMU).
* currently implemented in the X11 and SDL guis only
* TODO: porting to wxWidgets and Win32, documentation updates