Commit Graph

12990 Commits

Author SHA1 Message Date
Stanislav Shwartsman
8712a316d2 fix for issue #326 2024-06-14 19:43:46 +03:00
Volker Ruppert
3be49b57f7 Added some missing changes after updating LGPL'd VGABIOS. 2024-06-10 22:14:01 +02:00
Volker Ruppert
dcc794a7d3 LGPL'd VGABIOS updated to version 0.9b (several VBE bugfixes).
Now using ".bin" file extension for all VGABIOS images.
2024-06-09 16:27:18 +02:00
Volker Ruppert
730fe8e813 Enable debugger gui only if available (wx handling was incorrect). 2024-06-04 20:39:12 +02:00
Volker Ruppert
f3e2cbff5c Fixed GTK library version check for the gui debugger. 2024-06-03 22:18:47 +02:00
Volker Ruppert
a23bac15e5 Fixed two legacy SDL key handling issues.
- Scroll lock release now works again (Formerly used as fullscreen toggle).
- Attempt to fix Pause / Ctrl+Break key handling (possibly SDL issue).
2024-06-02 19:28:08 +02:00
Volker Ruppert
3bcd697be5 Banshee / Voodoo3: More accurate check for address wrap during update(). 2024-06-02 14:40:46 +02:00
Volker Ruppert
12e78032af Banshee / Voodoo3: Fixed check for address wrap during update(). 2024-06-01 08:11:09 +02:00
simoc
9264301293
Fixed spelling of word "destination" in log message (#324)
Fixed spelling of word "destination" in log message.
2024-05-31 14:54:13 +02:00
Volker Ruppert
3e8c074580 Fixed SDL2 fullscreen toggle. 2024-05-30 22:19:07 +02:00
simoc
e7e76cfb5c
Minor grammar improvements in README and user.dbk documentation (#323)
Minor improvements to English grammar in documentation files.
2024-05-30 19:07:40 +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
244e35af87 Banshee: Skip address wrap during display update to avoid segfault.
Original Banshee / Voodoo3 VGABIOS reporting wrong number of image pages in
VBE mode info of at least mode 640x480x8. Issue found with vbetest program.
2024-05-25 22:21:37 +02:00
Volker Ruppert
426bd50b90 Cirrus VGA fixes to make original VGABIOS work correctly with XP (#319).
- Allow BitBlt start after BitBlt reset with one register write.
- Using dstpitch = 0 is valid if bltheight = 1. Skip redraw to avoid division
  by zero error. Win2k and XP are using these settings at startup and expect a
  small piece of memory to be set to 0xff. That's why the LGPL'd VGABIOS for
  Cirrus still has the Win2k hack clearing all memory with 0xff.
2024-05-25 15:18:21 +02:00
Volker Ruppert
9c356c4f2e Enable slirp IPv6 support by default.
Added slirp config option "ipv6_prefix".
2024-05-23 19:01:40 +02:00
Volker Ruppert
87c3e4be79 Changed version of libslirp source to 4.8.0. 2024-05-22 17:06:19 +02:00
Volker Ruppert
fe390c3921 Builtin slirp: Last set of updates from libslirp 4.8.0. 2024-05-22 17:02:57 +02:00
Volker Ruppert
da41022ee2 Builtin slirp: Some more updates from libslirp and warning fixes. 2024-05-20 18:37:24 +02:00
Volker Ruppert
7b2a322d2f Fixed off-by-one bug when reading from ROM with len > 1. 2024-05-20 17:47:23 +02:00
Volker Ruppert
ccfdb05e29 Builtin slirp: First set of updates from recently released libslirp 4.8.0.
- icmpv6: added echo request forwarding support
- tftp: fixed use-after-free and added cleanup code
- eth: pad ethernet frames to 60 bytes
2024-05-20 12:00:59 +02:00
Volker Ruppert
16e5f5828b Builtin slirp: Added some replacement macros for glib ones.
Now slirp_new() checks correctness of config settings.
Some other small additions and cleanups.
2024-05-19 18:32:18 +02:00
Volker Ruppert
b76ead90ed Builtin slirp: several fixes and additions.
The slirplog object must exist before calling slirp_new().
Function slirplog_error() can handle arguments now.
Most of the fprintf() calls replaced by slirplog_error().
Added IPv6 host forwarding feature (not yet used by Bochs).
Added stubs for slirp_connection_info() and slirp_neighbor_info().
Fixed some warnings.
2024-05-18 23:14:45 +02:00
Volker Ruppert
c5435aef15 Improved builtin slirp debug message support.
All DEBUG_* messages now ported from libslirp and connected to the Bochs
logfunctions method ldebug().
Function slirp_warning() renamed to slirplog_error() (TODO: it should also be
able to handle arguments and replace the fprintf(stderr, ...) stuff).
2024-05-18 16:00:07 +02:00
Volker Ruppert
9e9e1f5e28 Some additions for the builtin slirp support.
Started implementing slirp debug message support. For now DEBUG_CALL messages
can be sent to log file by setting new option 'debug_switches' to 1.
Moved function slirp_warning() to slirp.cc (TODO: change fprintf() to slirp_warning()).
Updated some tcp_emu() stuff from libslirp (not yet used by Bochs).
2024-05-17 20:00:53 +02:00
Volker Ruppert
64e4671c00 Builtin slirp: Added IPv6 support from libslirp code.
TODO: replacements for glib function, debug support, code cleanup.
2024-05-16 23:31:47 +02:00
Volker Ruppert
7dd1a7be9e Big update of builtin slirp networking support (IPv4 only).
Update of existing files based on libslirp 4.7.0 code. It compiles and works
on Linux (gcc 10.4) and Windows (mingw/msys with gcc 14 and VS2019).
Functionality tested on both platforms with Linux guest OS (Firefox shows website).
Next step will be the start of the IPv6 integration.
2024-05-14 20:48:17 +02:00
Volker Ruppert
91c7c1c50a Automatic tab2space changes. 2024-05-13 22:06:12 +02:00
Volker Ruppert
f6d772982e New attempt to fix issue reported in discussion #318.
New style callbacks code now requires standard C++17.
With this setting VS2019 can compile the iodev_network module.
2024-05-13 17:41:35 +02:00
Volker Ruppert
7dcecf5e57 Attempt to fix issue reported in discussion #318.
Added code compatible with C++11.
2024-05-12 21:11:24 +02:00
Volker Ruppert
f612821c97 Enabled new polling callbacks for builtin slirp.
Big slirp update coming soon.
2024-05-12 08:29:07 +02:00
Stanislav Shwartsman
c1472a521a update MSVCPP project files 2024-05-12 08:09:22 +03:00
Volker Ruppert
eb477d7bb2 Some work on the builtin slirp core.
- Updated function arp_input() and related code.
- Updated get_dns_addr() functions for 3 different platforms (Apple code untested).
- Started updating IPv6 header file for C++ compatibilty (to be continued).
- Some other small updates.
2024-05-09 11:29:32 +02:00
Volker Ruppert
4d5d31170c BIOS: Fixed lslul helper function similar to lsrul. 2024-05-09 09:41:06 +02:00
Volker Ruppert
49736ddcf0 More accurate fix for the BIOS issue #268.
- lcmpul needs to preserve EAX and EBX, since the result is read from status flags.
- lsrul should not preserve EBX but ECX. The loword of the argument and result is in AX
  and the hiword in BX. Now doing the shift operation with the 16-bit registers
  (lsr bx / rcr ax).
- TODO: the other helper functions need to be reviewed.
2024-05-09 00:46:11 +02:00
Volker Ruppert
8a30642092 Continued updating builtin slirp code (no functional changes).
- Some variable type name changes.
- DEBUG code changes (not yet usable).
- Comment additions and tab-to-space changes.
2024-05-07 19:47:57 +02:00
Volker Ruppert
e64ec27113 Compilation fix for libslirp on mingw/msys.
Unlike the official release, the mingw* version of libslirp.h doesn't define slirp_ssize_t.
2024-05-06 17:22:47 +02:00
Volker Ruppert
140e2e96ae Bochs BIOS: helper functions lcmpul and lsrul need to preserve EBX.
This fixes issue #268.
2024-05-06 16:28:48 +02:00
Volker Ruppert
5489f18ff2 Some work on builtin slirp header files.
- Get rid of slirp_config.h.
- Added ip6_icmp.h (not yet used).
- Updates in some other headers.
- Added c++ static_assert for structure size checking at compile time.
- Updated Makefile dependencies and VS2019 project files.
2024-05-05 20:00:45 +02:00
Volker Ruppert
a684734975 Next set of updates from libslirp.
- Started implementing guest forwarding feature.
- Updated most of socket.h.
- Added if_mtu / if_mru handling.
- Cleaned up MIN / MAX defines.
2024-05-05 12:27:12 +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
b18a1e7c48 Fixed text mode cursor blinking (not depending on text blink feature). 2024-05-04 08:40:00 +02:00
Volker Ruppert
94f6336d15 Continued updating builtin slirp from libslirp.
- Cleaned up system includes in slirp.h and removed most of the HAVE_* defines.
- Renamed exec_list to guestfwd_list and removed ex_pty member.
- Using type "char *" instead of "caddr_t".
2024-05-03 20:58:46 +02:00
Volker Ruppert
74df052eea Updated slirp polling functions from libslirp. 2024-05-02 23:30:48 +02:00
Stanislav Shwartsman
f199d64170 reduce further f128 computation precision to get closer to real x87 hw
truncate on 80 bit now
2024-05-01 07:28:05 +03:00
Volker Ruppert
b0f238af76 Continued updating slirp code from libslirp (no functional changes). 2024-04-29 22:38:10 +02:00
Volker Ruppert
47f9e4bc12 Builtin slirp: Continued updating from libslirp code.
Processed chksum.cc and dnssearch.cc.
Removed obsolete / unused stuff from compat.h and slirp_config.h.
2024-04-28 21:05:41 +02:00
Stanislav Shwartsman
a3fd1fef26 fix for double overflow 2024-04-28 16:25:20 +03:00
Volker Ruppert
afba2c932e Builtin slirp: Now util.cc replaces compat.cc completely. 2024-04-28 14:22:51 +02:00
Volker Ruppert
58f44900de Builtin slirp: Removed QTAILQ* stuff and some other cleanups. 2024-04-28 10:43:00 +02:00
Stanislav Shwartsman
2059854e04 rewrite floatx80 bias unmasked overflow handling 2024-04-28 10:16:39 +03:00
Volker Ruppert
89bfe81834 wx: Added support for gui options parser and gui debugger global ini. 2024-04-28 07:37:28 +02:00
Stanislav Shwartsman
632d8780de rewrite code for biasing unmasked underflow for floatx80 in softfloat3e (from hack to clean code) 2024-04-28 06:41:47 +03:00
Volker Ruppert
805bb6b985 Added structure for gui options and zero it out in constructor. 2024-04-27 23:06:02 +02:00
Stanislav Shwartsman
9d84b1086f fixed missing IPS in the status bar
the gui_hide_ips variable was never initialized :(
same for gui_nokeyrepeat and many others, fixed only what I knew ...
2024-04-27 10:00:23 +03:00
Stanislav Shwartsman
247aca0956 implement VMX SUPPORT FOR THE IA32_SPEC_CTRL MSR announced in 319433-052
bugfix: "shadow stack prematurely busy" secondary vmexit control was wrongly mapped into bit2 insetad of bit3
2024-04-27 09:44:48 +03:00
Volker Ruppert
c6b7961799 Some more work on builtin slirp - no functional changes yet.
Added all of the SlirpCb and SlirpConfig structures from libslirp.
2024-04-26 22:40:12 +02:00
Stanislav Shwartsman
ab884f3dd4 fix compilation for AND Ryzen CPUID model 2024-04-26 22:15:34 +03:00
Stanislav Shwartsman
690bae9a12 add fields and bits for newly announced x86 features and vmx state 2024-04-26 22:13:08 +03:00
Stanislav Shwartsman
a565f9a754 implement Flexible UIRET (AKA UIRET_UIF) announced in 319433-052 2024-04-26 21:53:03 +03:00
Stanislav Shwartsman
69fa93e75b implement MONITORLESS MWAIT support (announced in 319433-052)
rework CPUDB classes to avoid code duplication for MONITOR/MWAIT leaf
2024-04-26 21:29:53 +03:00
Volker Ruppert
c5fd56558f Builtin slirp: compilation fixes for VS2019 and Cygwin.
- VS2019 needs C++20 standard to be set.
- Some Cygwin related additions in util.cc.
- slirp_ssize_t definition and usage fixed.
- changed include position of compat.h in slirp.h.
2024-04-25 21:10:48 +02:00
Stanislav Shwartsman
971576e32f FXRSTOR/XRSTOR: do not change x87 state if restore of entire state cannot be completed 2024-04-25 19:57:38 +03:00
Stanislav Shwartsman
2047d6eb7a remove fpu/softfloat16.h 2024-04-25 12:36:27 +03:00
Stanislav Shwartsman
5c90a08af0 fixes for softfloat3e compilation after include reorg 2024-04-25 12:18:44 +03:00
Stanislav Shwartsman
1255a0c585 remove fpu/softfloat.h, reduce include deprendencies, fix warnings
regenerate dep lists in all Makefile.in
2024-04-25 11:50:48 +03:00
Stanislav Shwartsman
7eb5766611 resurrect incorrectly removed variables 2024-04-25 10:14:11 +03:00
Stanislav Shwartsman
f6b12ee71b remove softfloat-macros.h 2024-04-25 10:09:04 +03:00
Stanislav Shwartsman
00810f3054 remove more unused constructs left from softfloat2 2024-04-25 10:00:48 +03:00
Stanislav Shwartsman
9fb4382668 fixed compilation 2024-04-25 08:31:18 +03:00
Volker Ruppert
8c81464156 Updated builtin slirp TFTP support from libslirp code.
Added most of ip6.h, util.c and util.h files (except glib stuff).
Related changes in several files.
2024-04-24 22:55:03 +02:00
Stanislav Shwartsman
0c12c4fd83 move float128 definition to different include file to reduce #include dependencies 2024-04-24 22:52:40 +03:00
Stanislav Shwartsman
c21a2d616f remove old softfloat2 data types, fully transition to new ones 2024-04-24 22:39:29 +03:00
Stanislav Shwartsman
b2d6d34178 fixed compilation with 3dnow enabled 2024-04-24 21:48:53 +03:00
Stanislav Shwartsman
dc7291be75 fix Makefile after renamed include 2024-04-24 21:39:22 +03:00
Stanislav Shwartsman
a1be887ad8 more transition to new softfloat code 2024-04-24 21:35:55 +03:00
Stanislav Shwartsman
744d0b4fc0 more transition to new softfloat code 2024-04-24 20:57:23 +03:00
Stanislav Shwartsman
9778d78494 artificially reduce float128 precision as x86 hardware uses only 67-bit 2024-04-24 16:08:19 +03:00
Stanislav Shwartsman
39237c3eb5 fix compilation - remove deleted include reference from Makefile 2024-04-24 09:49:11 +03:00
Stanislav Shwartsman
807ae1f04c remove f128_sqrt unused for Bochs 2024-04-24 09:25:26 +03:00
Stanislav Shwartsman
0e686801a5 small coding style change 2024-04-24 09:24:10 +03:00
Stanislav Shwartsman
57e44a2d98 fix makefile 2024-04-24 09:23:03 +03:00
Stanislav Shwartsman
8383260781 small fix for performance 2024-04-24 09:03:37 +03:00
Stanislav Shwartsman
3e4a966a2f remove floatx80_mul with float128 argument (use float128 instead)
this let's to remove completely softfloat-round-pack.cc and softfloatx80.cc
2024-04-23 21:34:29 +03:00
Volker Ruppert
7e3edfe7d9 Continued updating builtin slirp from libslirp code.
- Updated arp_table.cc (except debug code).
- Updated bootp.cc (Bochs extensions still present).
- Related changes in other files.
2024-04-21 20:35:27 +02:00
Volker Ruppert
aa529a42f6 Fixed slirp compilation issues related to inet_aton(). 2024-04-21 13:13:36 +02:00
Volker Ruppert
f1259413fb Continued work on builtin slirp networking support.
- Modified info / error log message handling.
- Renamed insque / remque functions using "slirp_" prefix.
- Removed useless SVN ID from most file headers and add license specifier instead.
2024-04-21 11:27:51 +02:00
Volker Ruppert
fa5c5ebe88 Started updating builtin slirp from libslirp code (callback support).
Added callbacks send_packet() and clock_get_ns().
2024-04-19 22:18:29 +02:00
Volker Ruppert
1d1e15ecb8 Update VS2019 workspace files. 2024-04-19 19:24:27 +02:00
Volker Ruppert
a290ce33e0 Builtin slirp now also returns "local" as the domain name.
Some other cleanups in bootp_reply().
2024-04-18 18:08:00 +02:00
Volker Ruppert
4c7e3d6f2f Fixed size of TFTP option reply. 2024-04-16 20:23:32 +02:00
Volker Ruppert
0f6287b592 Applied suggested fix for slirp TFTP support to fix issue #305. 2024-04-16 17:54:59 +02:00
Stanislav Shwartsman
c70bcbf5e9 rewrite fprem.cc using functions from softfloat3e
preparing to eliminate softfloat2 completely
2024-04-15 13:41:33 +03:00
Torinde
8757c36e1c
Update cpuid.cc - label and abbreviation corrections SMX, MPX (#301)
Memory Protection Extensions - add MPX abbreviation

SMX: Secure Virtual Machine Technology - bit6 is for SMX, but [it's
meaning](https://en.wikipedia.org/wiki/CPUID) is Safer Mode Extensions
(part of TXT). Not Secure Virtual Machine Technology (which is already
listed elsewhere as SVM).
2024-04-15 09:00:58 +03:00
Stanislav Shwartsman
42db7b64ce simplifications in softfloat3e code 2024-04-14 22:14:12 +03:00
Volker Ruppert
e4978addd1 bximage: added simple partition table viewer to the info function.
The code is based on parts of the SF patch "bxmount".
2024-04-14 18:15:52 +02:00
Volker Ruppert
5376f129ee Some work on the slirp networking code.
- Added support for optional TFTP server name in builtin slirp and libslirp.
- Added default domain name for libslirp.
2024-04-14 11:04:01 +02:00
Volker Ruppert
55d7488be6 Some work for libslirp networking support on Windows.
Added inet_aton() function (missing on Windows) from builtin slirp code.
TODO: update builtin slirp code based on libslirp 4.70 code.
2024-04-14 01:01:20 +02:00
Stanislav Shwartsman
738dfa1a12 move more stuff to softfloat3e style 2024-04-13 19:04:33 +03:00
Volker Ruppert
155fc74d30 Some work on the libslirp networking support.
- Added capability to turn on IPv6 support with slirp.conf option (using default
  QEMU settings for now / non-Windows platforms only).
- Added some basic timer code required by IPv6 based on example code.
2024-04-13 10:18:38 +02:00
Volker Ruppert
0ff2905998 Added support for using external slirp library instead of builtin one.
- Added configure option --enable-using-libslirp to turn on the search for the
  library. In config.h BX_HAVE_LIBSLIRP is set to 1 if found. The network Makefile
  is set up accordingly. If not enabled or not found, the builtin slirp code is used.
- Moved samba server code and host forwarding code to eth_slirp.cc.
- Modified builtin slirp API to reduce differences.
- NOTE: IPv6 support present in libslirp is not yet enabled (needs more testing).
- TODO: Update builtin slirp code based on libslirp 4.7.0 code.
2024-04-07 19:57:25 +02:00