Commit Graph

12688 Commits

Author SHA1 Message Date
Volker Ruppert 8cbf4eff8e Some changes for the Bochs VBE 32k bank granularity feature.
- VBE enable register returns 32k granularity flag if enabled.
- VBE bank register returns 32k granularity flag if VBE_DISPI_GETCAPS is set.
- Defining new DISPI ID not necessary.
- TODO: update VGABIOS to use this feature.
2021-05-23 06:30:51 +00:00
Stanislav Shwartsman d9273a2414 merge type conversion patch from SF tracker #562 Fix type cast bug in bochs debugger by Xinyang Ge 2021-05-23 04:59:43 +00:00
Volker Ruppert 7ba54c951d LGPL'd VGABIOS updated from SVN.
- Banshee: added 'write character' support for 8 bpp modes.
- Banshee / Cirrus: report TTY support for 8 bpp VBE modes.
- FIXME: Banshee scroll code works for 'scroll up' only.
- TODO: TTY support for the Bochs VBE adapter.
2021-05-22 16:24:28 +00:00
Volker Ruppert 43033b2137 Some changes for the Bochs VBE support.
- Limit VBE bank size to 64k as expected.
- Enabling VBE mode now clears the whole video memory for all bpp modes unless
  "noclear" bit is set.
- Prepared 32k bank granularity mode required for text output functions. Added
  new VBE_DISPI_ID6 to indicate this capability. The default is still 64k.
2021-05-21 20:49:34 +00:00
Volker Ruppert f36ce19524 LGPL'd VGABIOS for Cirrus adapter updated from SVN.
- VBE: vbe_main_handler now checks the presence of the Bochs VBE support.
- Some fixes and code optimizations.
2021-05-20 18:59:20 +00:00
Volker Ruppert 3c8b0ce2b2 LGPL'd VGABIOS for Cirrus adapter updated from SVN.
- Cirrus mode 0x7B (1600x1200x8) now usable.
- Some related fixes and improvements.
2021-05-16 08:02:08 +00:00
Volker Ruppert 57ad842568 Some small Cirrus changes.
- Save/restore: fixed number of registers per controller.
- Report interlaced mode on mode switch.
- Added BX_DEBUG message for MCLK setting (unused).
2021-05-16 07:40:46 +00:00
Volker Ruppert 128e54a137 Some small Cirrus Video clock changes.
- Fixed reset values for VCLK and related sequencer registers.
- Added BX_ERROR for unimplemented feature (using MCLK as VCLK).
2021-05-15 16:15:59 +00:00
Volker Ruppert 8e68dfbef1 LGPL'd VGABIOS updated from SVN.
- Fixed Banshee VBE modes with LFB support enabled.
- Fixed 'write character' support for Cirrus 8-bpp VBE modes.
2021-05-14 17:09:05 +00:00
Volker Ruppert bf76a6a9ef LGPL'd VGABIOS updated from SVN.
- VGA restore state code now completely rewritten in assembler.
- Added some Banshee 24-bpp modes.
- Added Banshee VBE function AX=0x4f15.
2021-05-13 18:22:06 +00:00
Volker Ruppert aa9045b63f Set EDID checksum in constructor. 2021-05-13 17:58:57 +00:00
Volker Ruppert 18c8c4bd76 LGPL'd VGABIOS updated from SVN.
- Fixed XOR bug in write_gfx_char_pl4 function.
- VGA restore state code partly rewritten in assembler.
- Added some Banshee 16-bpp modes.
- Added Banshee VBE functions AX=0x4f06 and AX=0x4f07.
2021-05-11 19:42:13 +00:00
Volker Ruppert 95dc1b2012 Skip display update if a mode update is in progress. 2021-05-11 15:00:58 +00:00
Volker Ruppert 4db9f76819 Added port 0xE9 hack switch to runtime options. 2021-05-11 14:42:31 +00:00
Volker Ruppert 4f906524de Banshee VGABIOS: added minimal VBE support for some 8-bpp modes. 2021-05-07 19:32:37 +00:00
Volker Ruppert 73b4429091 Banshee VGABIOS: fixed infinite loop in case Banshee is not detected. 2021-05-02 08:37:11 +00:00
Volker Ruppert 7b8f97b448 Updated LGPL'd VGABIOS from SVN.
- Added 'write character' support for Cirrus 8-bpp modes using bitblt engine.
- Some code optimizations.
2021-04-30 21:00:40 +00:00
Stanislav Shwartsman e4b2079109 fixed compilation in x86-64 off mode 2021-04-29 04:18:33 +00:00
Stanislav Shwartsman d112ab9943 fixed compilation 2021-04-28 17:57:57 +00:00
Stanislav Shwartsman f174ce2b6f SMM enter: never turn off EFER.SVME 2021-04-27 09:33:46 +00:00
Stanislav Shwartsman 2d2ec5e0aa hack to W/A NX paging fault under nested paging while virtualizing SMM under SVM 2021-04-27 08:22:45 +00:00
Stanislav Shwartsman 79d6a16e3b intercept SMI support in SVM 2021-04-27 08:22:04 +00:00
Volker Ruppert 6781067b55 Don't increment number of status items before comparing with maximum.
Fixes segfault when connecting an USB disk and all of the 10 slots are in use.
2021-04-23 20:08:12 +00:00
Volker Ruppert 77cc12cce5 Added support for reading VGA latches using CRTC register 0x22 (undocumented
for original VGA, documented for Cirrus and Voodoo Banshee).
2021-04-23 06:42:52 +00:00
Stanislav Shwartsman 4e41530b8a SVM: Fixed EXITINFO error code after nested page fault (prevented Hyper-V from running) 2021-04-22 11:12:26 +00:00
Volker Ruppert adf209fe9e Fixed some issues reported by valgrind. 2021-04-18 17:20:41 +00:00
Volker Ruppert d53a068c5e Some updates after adding USB packet logging support in PCAP format.
- Updated MSVC workspace files.
- Documentation updates.
2021-04-18 15:26:26 +00:00
Volker Ruppert b19a7b1042 Added USB packet logging support in PCAP format (patch #560 by Ben Lunt).
- Added new files with small changes, output can be viewed with Wireshark.
- FIXME: Windows ports crash with original Win98 guest and USB disk connected.
- TODO: mention new feature in documentation.
2021-04-17 18:57:05 +00:00
Volker Ruppert 719592e2f3 Fixed device connect failure handling in all HCs (reset port parameters).
The old code has blocked the port after failure.
2021-04-17 17:48:42 +00:00
Volker Ruppert 30e24fa3d5 Prepared USB packet logging support in PCAP format (patch #560 by Ben Lunt).
- DONE: config option handling, usb_dump_packet() changes
- TODO: add new file after compiling and testing new code on Windows
2021-04-17 09:30:58 +00:00
Volker Ruppert 6d5897217c Added missing PEL mask support in the VGA core. 2021-04-17 08:42:03 +00:00
Volker Ruppert 049826aa32 Fixed possible segfault in case of invalid filename based on patch #559.
Since this save/restore list exists in all devices, it's safe to move the new
code to the usb_device_c destructor.
2021-04-13 11:56:41 +00:00
Volker Ruppert d74210b93f Added missing new VGABIOS binary for Banshee. 2021-04-12 19:37:17 +00:00
Volker Ruppert faa11624e0 Updated LGPL'd VGABIOS from SVN.
- Added initial version of the VGABIOS for Voodoo Banshee adapters.
- Several code optimizations to reduce binary size.
NOTE #1: Banshee version has no VBE support yet.
NOTE #2: Banshee binary uses PCI ID for Banshee PCI and Bochs temporarily
         modifies the PCI data for Voodoo3 and AGP models.
2021-04-12 19:35:37 +00:00
Volker Ruppert 69695bfd67 Prepared the Banshee code for the planned LGPL'd VGABIOS with 3dfx Voodoo
support. The VGABIOS image will be compiled for Banshee PCI and this code
modifies the PCI data for the Voodoo3 and AGP models.
2021-04-11 20:09:43 +00:00
Volker Ruppert e9eccadb82 Recompiled binaries. 2021-04-09 06:47:35 +00:00
Volker Ruppert 59a3b3f8b3 Added helper function get_ebda_seg() to optimize code. 2021-04-09 06:45:42 +00:00
Volker Ruppert 7aa5eb7a51 Some changes for correct vertical frequency reporting on mode switch.
- vgacore: method get_crtc_params() now returns selected video clock value.
- banshee: now using selected video clock instead of hardcoded VCLK #3.
- cirrus: added vertical frequency to mode switch BX_INFO.
2021-04-07 06:31:25 +00:00
Volker Ruppert 7aea547b9f Fixed possible segfault on some platforms. We need 'count + 4' device entries,
one for the "none" entry and a terminating NULL entry.
2021-04-05 11:17:20 +00:00
Volker Ruppert 857c3be2ba Some work on the Voodoo Banshee code.
- Moved setup of default i/o register values to reset().
- Set up strapInfo register bits in init().
- Don't overwrite readonly bits in miscInit1 register.
- Set up subsystem ID in VGABIOS ROM in case it's > 32k (doesn't exist yet).
- Copy subsystem ID from ROM to PCI config registers in reset().
2021-04-04 19:00:29 +00:00
Volker Ruppert d8b25c5f26 Some more cleanup in the plugins code. 2021-04-03 18:26:03 +00:00
Volker Ruppert 7b355cd399 Get rid of the code duplication in the PIC write handler. 2021-04-03 16:44:19 +00:00
Volker Ruppert 7d104ffceb Fixed setting up advanced PCI options. 2021-04-03 12:54:25 +00:00
Volker Ruppert e411667942 Started reducing PIC code duplication and some cleanups. 2021-04-02 19:01:37 +00:00
Volker Ruppert 8e8414aae4 Some cleanup in the plugins code and related documentation additions. 2021-04-01 19:36:59 +00:00
Volker Ruppert 5406c037ec Improved example script for cross compiling Bochs on Linux for Windows.
- Disable the readline library since it's not present by default.
- Added support for adding config options with variable CONFIGURE_ARGS.
2021-03-29 11:39:24 +00:00
Volker Ruppert 249fcf9442 Set the device type correctly for all media types when parsing floppy options.
- Added helper function get_floppy_devtype_from_type().
- The floppy type option now accepts the value "none".
- Added parameter handler for "devtype" to handle the BX_FDD_NONE case.
- Cleaned up floppy options parser code.
2021-03-29 11:17:03 +00:00
Volker Ruppert b1c36691de Partly fixed floppy issues caused by previous commit. If device type is set to
"none" the dependent parameters cannot be set. That's why the bochsrc parser
needs to set device type first.
- Set initial device type of first floppy to '3.5" 1.44M'.
- Detect device type along with image type if necessary.
- TODO: fixes for media types like "1_44" and some more cleanup.
2021-03-28 08:40:28 +00:00
Volker Ruppert 0ccf537103 Fixed two minor issues in bx_param_num_c class.
- reset() must call set() to ensure the set handler is called if present.
- don't set value if parameter is disabled.
2021-03-28 06:31:03 +00:00
Volker Ruppert dc9c93f0c5 Updated both VS2019 workspace packages after textconfig / win32config changes. 2021-03-27 20:42:14 +00:00