Commit Graph

1673 Commits

Author SHA1 Message Date
Volker Ruppert
a248bd375a Changed bx_bool to bool type in the gui component of Bochs. 2021-01-30 18:32:52 +00:00
Volker Ruppert
22fabb599a Started bx_bool to bool type changes in the Bochs core. 2021-01-30 15:16:00 +00:00
Volker Ruppert
d46c80562e Some wx gui related changes.
- Moved wx gui plugin entry point to wx.cc, so we can use the macro
  PLUGIN_ENTRY_FOR_GUI_MODULE to be compatible with the other guis.
- Updated gui Makefile dependencies.
2021-01-26 07:22:58 +00:00
Volker Ruppert
3f760e2900 Some work on the Bochs plugins support.
- 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.
2021-01-24 19:47:04 +00:00
Volker Ruppert
8db0a2b001 Replaced the plugin init / fini functions with one single function called
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).
2021-01-23 12:06:11 +00:00
Volker Ruppert
e5c68dd4ac Rewrite of the optional plugin control feature.
- Now that we know about all available plugins at startup, the bx_list_c object
  "plugin_ctrl" contains a fixed number of bx_param_bool_c objects representing
  the requested status (1 = load). It is verified at simulation startup.
- The config interface creates two text lists (textconfig) or list boxes (win32,
  wx) from it to show the remaining available and the loaded plugins. Loading
  and unloading is performed immediately and plugins may install / uninstall
  options in other menus / dialogs.
- Modified the "non-plugin" code to make the optional plugin control work very
  similar in this mode.
2021-01-21 18:10:40 +00:00
Volker Ruppert
9e95491fb5 Some work on the Bochs plugin API.
- bx_load_plugin() now returns the status of the operation.
- Plugin load failures are now correctly handled by the plugin code (unloading
  if necessary, then panic).
2021-01-18 19:57:11 +00:00
Volker Ruppert
30519781eb Fixed deadlock in GTK debugger gui pointed out in SF patch #557. 2021-01-06 12:18:35 +00:00
Volker Ruppert
5ffb319df1 Rewrite of the disk image mode handling. Disk image modes are now stored as
string constants instead of hardcoded values. Available modes are detected at
Bochs startup and stored in a string array before initializing options. In the
plugins case additional modes are read from the plugins list. If plugins are
off, the hdimage_locator_c registry is used. Related changes in all parts of
Bochs that need the hdimage stuff.
TODO #1: Network and sound drivers could be handled in a similar way.
TODO #2: Make disk image mode detection work again in plugins mode.
2021-01-05 21:57:13 +00:00
Volker Ruppert
4f311f0618 Some work on the Bochs plugins support.
- Added suffix "_gui" to the base name of display library plugins.
- Added new function plugins_search() that browses the plugin folder(s) and
  detects the type from the library name. Plugins with no prefix or suffix are
  treated as i/o device plugins. The plugin_load() function uses this database.
- Some related fixes and cleanups.
2021-01-02 20:49:39 +00:00
Stanislav Shwartsman
2f3adf849c enable syntax switch with new disasm also in GUI debugger, switch to new disasm by default everywhere 2021-01-02 12:04:52 +00:00
Stanislav Shwartsman
bb568997c9 use new disasm wrapper method in more place 2020-12-30 14:09:25 +00:00
Stanislav Shwartsman
72db10d766 fix symbols display within disasm for new disassember, integrate new disasm with GUI debugger properly 2020-12-30 12:23:19 +00:00
Stanislav Shwartsman
79db3896d4 enable symbols for branch targets and JMP/CALL direct ptr instructions in new disassembler (still to be tested), attempt to use new disassembler in GUI debugger 2020-12-30 11:36:33 +00:00
Volker Ruppert
269d4dd30d Removed unnecessary include. 2020-12-26 08:53:06 +00:00
Volker Ruppert
c644b826f5 Some changes for the USB keyboard support.
- Added buffer for maximum 16 key events.
- PS/2 keyboard now sets the changed indicators only.
- Added support for the yellow status indicator in the win32 gui.
2020-12-16 20:04:47 +00:00
Volker Ruppert
0660b7e313 Some USB keyboard related changes.
- Added HID code for the menu key.
- Added support for the yellow status indicator in the rfb and vncsrv guis.
- Cleaned up status indicator code in SDL, SDL2 and X guis.
2020-12-16 12:24:35 +00:00
Volker Ruppert
4c81e496b6 Some work on the USB keyboard / keypad emulation.
- Unified USB keyboard and keypad code. Removed the keypad lookup table.
- Moved keyboard indicator stuff to the devices code and use it for both the
  USB and legacy keyboard device. In the USB case a different color is used.
- In the SDL, SDL2 and X guis added new status indicator color yellow. It is
  designed to be used by the USB keyboard (write flag 1 and "auto_off" flag 0).
- Added missing sysmbol to the German X11 keymap table.
2020-12-15 11:29:36 +00:00
Volker Ruppert
575ebe9cad Simplified floppy / cdrom toolbar button handlers and related cleanups. 2020-12-12 12:32:26 +00:00
Volker Ruppert
4d6a88ec94 Fixed dbg_fetch_mem() and dbg_set_mem() similar to other memory access methods.
- Always apply the A20 setting to the requested address.
- Fixed the conditions for SMRAM access.
- Added support for memory handlers and removed direct VGA memory access.
- Added support for reading from BIOS flash memory.
2020-12-08 19:52:39 +00:00
Volker Ruppert
4e23b04d15 Accessing function bx_split_option_list() via siminterface method fixes MSVC
plugins compilation.
2020-12-04 21:09:18 +00:00
Volker Ruppert
87d660e652 Fixed some MSVC warnings. 2020-11-30 08:50:22 +00:00
Volker Ruppert
aaf8c9d4e4 Removed "svga" display library designed for the obsolete Linux SVGALib.
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.
2020-11-25 07:56:32 +00:00
Volker Ruppert
d357de7baf Some work on the term gui.
- Now cursor can appear in two different modes (if supported by terminal)
- Simplified text cursor handling.
- Show a status bar if terminal has enough lines for it. Added "show IPS" output
  there unless display library option "hideIPS" is used.
2020-11-23 10:14:13 +00:00
Volker Ruppert
08b120c5f8 Some code cleanup after implementing new text update API. 2020-11-22 09:02:38 +00:00
Volker Ruppert
4309c7afa6 Implemented new text update API in the win32 gui. 2020-11-19 16:32:22 +00:00
Volker Ruppert
fd27f21940 Implemented new text update API in the sdl, sdl2 and wx guis. 2020-11-17 15:48:15 +00:00
Volker Ruppert
45507705bf Implemented new text update API in the X gui and some related fixes.
- 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.
2020-11-16 15:39:35 +00:00
Volker Ruppert
b94fff0501 Implemented new text update API in the vncsrv gui and console cursor fix.
- Now the vncsrv gui supports the VGA features split screen and h/v pel panning.
- Fixed new API cursor blinking in the gui console.
2020-11-15 16:16:14 +00:00
Volker Ruppert
6202244991 Implemented a new text update API in the common gui code and enabled it for RFB.
- 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.
2020-11-15 09:55:38 +00:00
Volker Ruppert
1209ec7d5a It's enough to set the refresh flag once in flush(). 2020-11-13 08:27:51 +00:00
Volker Ruppert
e6f0e7f328 Fixed another issue reported by valgrind and some tab2space changes. 2020-11-11 08:14:02 +00:00
Volker Ruppert
f8024d3819 Added win32 gui feature "autoscale" for the fullscreen mode, too (including
some fullscreen fixes and cleanups).
2020-10-25 16:23:42 +00:00
Volker Ruppert
bed49deb86 Added win32 display library option "autoscale" to scale a small simulation
window by 2, 4 or 8 depending in desktop window size (window mode only).
Modified special stretching case for the CO40 text mode.
2020-10-23 13:14:34 +00:00
Volker Ruppert
f62baaa7fd Small fixes and cleanups in the text_update() code. 2020-10-20 16:20:33 +00:00
Volker Ruppert
2045ead0ce Improved error handling of the user shortcut feature.
- 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.
2020-10-19 15:01:40 +00:00
Volker Ruppert
d708382bc0 Added gui message box support and use it to display errors that can occur in
toolbar button handlers.
2020-10-18 19:57:05 +00:00
Volker Ruppert
3c1851aa40 Added support for vertical pel panning to graphical text snapshot feature. 2020-10-18 08:08:53 +00:00
Volker Ruppert
c6bb5cf5a6 Fixes in wx for the snapshot button feature.
- Fixed deadlock after pressing the snapshot button.
- Setting up font parameters is required for the graphical text mode snapshot.
2020-10-17 21:23:20 +00:00
Volker Ruppert
41af6f9f66 Setting up font parameters is required for the graphical text mode snapshot. 2020-10-17 19:29:22 +00:00
Volker Ruppert
d1028178d3 Improved text mode snapshot in BMP format and text_update() API changes.
- Added support for split screen mode and horizontal pel panning.
- Text mode cursor now correctly visible independent from blink state.
- Workarounds for the existing text_update() API.
2020-10-17 15:44:52 +00:00
Volker Ruppert
163622a59a Modified text cursor handling and fixed text cursor bug in split screen mode
in some guis.
2020-10-16 21:41:02 +00:00
Volker Ruppert
dffaa9794b Added support for saving text mode snapshot in BMP format if file extension is
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.
2020-10-16 17:25:50 +00:00
Volker Ruppert
1ad0303ace Disable mouse capture while showing an SDL2 dialog box and some code cleanup. 2020-09-27 16:44:00 +00:00
Volker Ruppert
748b6a1279 Fixed gcc 9.3 warnings in case C++17 support is enabled. 2020-09-02 08:35:44 +00:00
Volker Ruppert
600228148d Fixed some gcc 9.3 warnings. 2020-09-01 20:13:56 +00:00
Volker Ruppert
32e4eecd8e Fixed compilation with win32 gui enabled. 2020-08-24 15:31:14 +00:00
Volker Ruppert
9cbe03f7f2 Pressing the "m" button in gui command mode writes a marker to log file.
Removed now obsolete patch.
2020-08-21 19:12:37 +00:00
Volker Ruppert
eaf4beb474 Moving include statements of Bochs internal headers makes gui dependencies
created on Linux work correctly work on Windows. Fixed a warning on MSVC.
2020-08-21 15:18:44 +00:00
Volker Ruppert
5de465b5b1 Fixed some gcc 9.3 warnings. 2020-08-06 20:21:14 +00:00