Commit Graph

219 Commits

Author SHA1 Message Date
Volker Ruppert
0f6b74e940 Replaced deprecated function CreateStatusWindow() in win32.cc.
Cleaned up definition of _WIN32_IE.
FIXME: statusbar not correctly shown when running bochs.exe with Wine.
2024-06-30 19:02:38 +02:00
Volker Ruppert
dc10a4195d Fullscreen mode fixes for the win32 gui.
Clear screen on top of dimension_update() to get rid of artifacts from previous resolution.
Adjust tile height at the bottom of the display if necessary.
2024-05-30 13:46:27 +02:00
Volker Ruppert
b84ebf5dfc Fixed text mode cursor rendering in win32 gui (issue #314). 2024-05-04 11:27:06 +02:00
Volker Ruppert
805bb6b985 Added structure for gui options and zero it out in constructor. 2024-04-27 23:06:02 +02:00
Volker Ruppert
ed20d44090 Added new gui method parse_common_gui_options().
Simplified gui option handling with it in sdl, sdl2, win32 and x11 guis.
The sdl and sdl2 guis now also support "gui_debug:globalini".
2024-03-29 20:12:41 +01:00
Volker Ruppert
1bbd4ed535 Added gui debugger option extension "globalini" fur the win32 and x11 guis.
Use this display library line to read/write ini from BXSHARE path:

display_library: x, options="gui_debug:globalini"

NOTE: Using $BXSHARE at this point doesn't work yet since the common parser code
expands the variable and Bochs finally exits with a panic (needs to be reviewed).

TODO: Add shared parser code for all guis and add this feature for SDL, SDL2 and
wxWidgets guis.
2024-03-29 10:40:59 +01:00
Volker Ruppert
7d037af569 Fixed compilation of USB debugger if the win32 gui is not present. 2024-03-13 17:03:21 +01:00
Benjamin David Lunt
557976bee1
Initial start of the USB Debugger (#165)
This is the start of the Experimental USB Debugger (currently for the
Windows platform only).

Currently only supports the UHCI and xHCI controllers. The remaining
function of these two controllers and the two remaining controllers are
in the works and will be added to when time allows.

The User.dbk has been updated with (temporary) html files at
https://www.fysnet.net/bochs/user/index.html showing the process to
invoke and use the USB debugger (Section 5.8).

In its completion, this debugger will allow you to view and modify most
aspects of the specified USB controller. For example, currently you can
view and modify a TRB listed in the xHCI's Command or Event Ring. Other
aspects will be added.

I do not use and am not fluent in the use of `configure`,
`configure.ac`, and associated configuration files. I also don't use the
`gui/Makefile.in` file.

Someone that is more fluent in the way these files work, please add the
necessary items to successfully compile this PR.

---------

Co-authored-by: Shwartsman <stanislav.shwartsman@intel.com>
2024-03-10 13:05:41 +02:00
Volker Ruppert
4455da0e1b Perform win32 gui internal palette swapping only in case of a bpp change. 2024-02-18 18:20:49 +01:00
Shwartsman
e960e574f4 this annoying message happens always when debugger is closed
change to BX_INFO
2024-01-21 17:44:17 +02:00
Vort
ba7c8ed57a
Cancel topmost mode after leaving fullscreen mode (#224)
`HWND_TOPMOST` should be cancelled with `HWND_NOTOPMOST` when it is not
needed anymore.

Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-16 00:03:32 +01:00
Volker Ruppert
be1baa295c Implemented secondary VGA charmap support.
All guis with 'new_text_api' and the graphical text snapshot working with it.
2023-12-29 17:47:44 +01:00
Volker Ruppert
e82316c490 Memory leak fix in the win32 gui code.
In exit() method always call terminateEmul(), but the argument depends on the
value of bx_user_quit.
2023-11-26 22:04:07 +01:00
Volker Ruppert
a9a15d332b Modified error handling for display library option 'gui_debug'.
If Bochs debugger is not present now showing an error message box instead of a BX_PANIC for unknown option.
2023-11-19 16:16:09 +01:00
Benjamin David Lunt
cc6ac48d6c
Wider statusbar elements
With newer wider screens, we can now have wider statusbar elements so that an element such as "USB-HD" isn't clipped on both sides.
2023-02-10 21:17:21 -07:00
Stanislav Shwartsman
1e4f1624c8 remove trailing whitespace from source files 2022-08-23 21:46:04 +03:00
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
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
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
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
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
41af6f9f66 Setting up font parameters is required for the graphical text mode snapshot. 2020-10-17 19:29:22 +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
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
f545071b4d Added support for modifier keys in gui command mode (shift, control, alt, caps lock).
- 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.
2020-07-30 20:04:31 +00:00
Volker Ruppert
c28a07b5f1 Some gui command mode changes.
- win32: fixed mode after fullscreen toggle
- call floppy button handlers using 'a' and 'b' keys
2020-07-18 13:36:21 +00:00
Volker Ruppert
548f87b4e5 Added "command mode" support to the win32 gui, including fullscreen toggle
support.
2020-07-17 16:12:21 +00:00
Volker Ruppert
6273f0cdc9 Added new win32 gui option "traphotkeys" to disable system hotkeys for the
host when the mouse is captured and in fullscreen mode. This is useful if the
guest is also a Windows version. These changes are based on the rejected SF
patch "disablesystemhotkeys". But instead of disabling the hotkeys completely,
the events are sent to the Bochs keyboard.
2017-05-05 21:44:30 +00:00
Volker Ruppert
994fdbae82 Some cleanups in in the user documentation and the code (obsolete stuff). 2017-03-23 19:09:37 +00:00
Volker Ruppert
f59eaa2602 Simplified immediate shutdown code by using BX_FATAL. 2017-01-24 21:52:19 +00:00
Volker Ruppert
1546c8803b Bochs gui code cleanup
- 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
2017-01-15 11:44:43 +00:00
Volker Ruppert
ffd7c4c492 Using names different from "classic" Bochs headerbar fixes compilation and
win32 specific toolbar handling.
2017-01-14 15:11:14 +00:00
Volker Ruppert
8e2803f98a Bochs gui code cleanup
- 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.
2017-01-03 20:59:59 +00:00
Stanislav Shwartsman
0059d33102 c++ better to use new/delete and not malloc 2016-12-05 18:56:56 +00:00
Volker Ruppert
7c0d93884e Fixed array size (rfb) and added comment (win32). 2015-10-25 09:22:43 +00:00
Volker Ruppert
cbd147fca3 Fixed and improved text mode CO40.
- vgacore: double font and screen width at half dot clock.
- X gui: improved font bitmap generation to support width > 9.
- win32 gui: adjust values to use existing stretching feature.
- guis rfb, sdl, sdl2, vncsrv and wx: double pixels if font width > 9.
2015-10-24 22:03:51 +00:00
Volker Ruppert
33a633cbd2 Partial rewrite of the win32 mouse motion handling.
- If the mouse is captured, use ClipCursor() to keep the cursor in the window.
- After handling mouse motion event in relative mode, move the cursor back to
  the window center (similar to other guis).
2014-12-30 16:31:17 +00:00
Volker Ruppert
2f893a76ff Small code cleanup 2014-12-29 18:50:03 +00:00
Volker Ruppert
e50a0c517a Key auto-release feature changed: now release the pressed keys when the Bochs
window is losing the keyboard focus. This feature is now also supported by the
win32 gui.
2014-12-27 15:57:30 +00:00
Volker Ruppert
36aa1ae6d2 Close enhanced gui debugger in gui exit() method if necessary.
TODO: read / write enhanced gui debugger settings in init / close functions
2014-08-17 12:48:05 +00:00
Volker Ruppert
0e14966b06 Determine desktop dimensions in constructor (fixes maximum resolution of Bochs
VBE support).
2014-07-08 16:51:38 +00:00
Volker Ruppert
edb3a8b936 SB_Edges array must be of type Bit32s (fixes status bar in Cygwin64) 2014-07-06 14:17:18 +00:00
Volker Ruppert
4f2a23602b Fixed ugly side effect of the win32 fullscreen changes
- don't try to resize the simulation window if minimized (iconic)
- handle window size correction in the gui event handler and by calling
  resize_main_window(FALSE), since fullscreen mode is not always required
2014-06-05 20:12:44 +00:00
Volker Ruppert
0c833ad58f Some changes in dimension_update()
- switching to a resolution > desktop size now causes a BX_ERROR
- stretch VBE demo mode 320x200 to double size
2014-05-30 10:12:13 +00:00
Volker Ruppert
acea38455b Continued work on win32 fullscreen rewrite
- fixed screen flickering after entering fullscreen for the second time
- now using resize_main_window() directly for leaving fullscreen mode
- dimension_update() now only used for guest display mode change
- TODO: more testing to find cases that can make Bochs crash
2014-05-23 19:28:23 +00:00
Volker Ruppert
a15bc4acc4 Some more work on the win32 fullscreen mode
- moved fullscreen mode enable/disable stuff to a new function
- now only use dimension_update() for leaving fullscreen mode
- fixed fullscreen issues in text mode
- TODO: check if guest display is too large and add a proper handling for this case
2014-05-22 19:06:01 +00:00
Volker Ruppert
255198baa8 Added some workarounds for the win32 fullscreen mode
- changing from window mode to fullscreen and back now looks okay
- changing guest resolution in fullscreen mode now also works
- TODO #1: rewrite of the window / fullscreen code to avoid using dimension_update()
  to toggle the internal mode
- TODO #2: add size checks in dimension_update() to avoid crash. We could panic
  at this point or compress screen to desktop size.
2014-05-20 18:42:36 +00:00