Commit Graph

2828 Commits

Author SHA1 Message Date
Volker Ruppert
821b42f309 Fixed some MSVC warnings when compiling for WIN64. 2021-06-20 07:30:29 +00:00
Volker Ruppert
56fb9cacc2 Fixed "extended address wrap" mode: setting "plane shift" value not correct in
"chain4" mode (fixes DOS Doom in Win95).
2021-06-18 23:00:40 +00:00
Volker Ruppert
e1265b7536 Fixed special rule for the backward compatible device type selection of card #0.
If at least one ne2k device is assigned to a PCI slot, card #0 defaults to PCI
type, unless type is set up in ne2k line.
2021-06-17 21:04:35 +00:00
Volker Ruppert
277830ca07 Cleaned up method determine_screen_dimensions(): no special cases handling needed. 2021-06-08 19:06:22 +00:00
Volker Ruppert
ad3090ab1a Some small fixes found with original Cirrus VGABIOS at VBE mode testing.
- Setting up bank #0 modifies the external offset for VRAM access in VGA core.
- Added support for interlaced VGA modes.
2021-06-04 12:14:45 +00:00
Volker Ruppert
733e466628 Split the VBE bank into separate read and write apertures. The compatibility
mode sets both banks to the same value. Reading VBE bank register always
returns the write aperture setting. This feature is designed for the scrolling
function of the VBE 'write character' support. VBE code should use compatibility
mode for now.
TODO: update VGABIOS to use this feature.
2021-05-30 16:13:37 +00:00
Volker Ruppert
c78c1a9af9 Enable preferred timing mode as expected by EDID format version 1.3. 2021-05-30 07:28:53 +00:00
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
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
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
aa9045b63f Set EDID checksum in constructor. 2021-05-13 17:58:57 +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
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
Volker Ruppert
adf209fe9e Fixed some issues reported by valgrind. 2021-04-18 17:20:41 +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
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
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
e9df9c51c8 Fixed compilation with PCI host device mapping support enabled. Since a plugin
cannot unload itself, BX_UNREGISTER_DEVICE_DEVMODEL() call will fail. Setting
plugin control flag to 0 like other devices do. When starting simulation, all
unused plugins are removed.
NOTE: The pcidev stuff is unmaintained, functionality not tested.
2021-03-26 18:41:28 +00:00
Volker Ruppert
81f7b6d47a Fixed floppy format track handling. After introducing the DMA optimization it
stopped after first sector.
2021-03-21 20:53:48 +00:00
Volker Ruppert
db3a176c84 Fixed issue reported in SF patch #558: deassert INT if IMR change masks active request. 2021-03-19 17:45:49 +00:00
Volker Ruppert
b79b868ff9 Attempt to fix the issue reported in SF patch #558 (fixed spurious interrupt
detection).
2021-03-17 19:42:41 +00:00
Volker Ruppert
5385b2b98b Some textconfig related changes.
- Removed unused method bx_list_c::text_print().
- Fixed default prompt in bx_param_enum_c::text_ask().
- speaker.cc: fixed a typo in ask format.
2021-03-14 09:52:15 +00:00
Volker Ruppert
25e725a23c Makefile dependency updates
- Don't include paramtree.h in siminterface.h to get rid of duplicates
  in a lot of Makefile dependency lines.
- Regenerated Makefile dependencies in iodev and affected subdirectories.
- FIXME #1: including debug.h causes duplicate entries of config.h and osdep.h.
- FIXME #2: cpudb.h appears in most of the iodev* dependencies, but only needed
  by config.cc and the cpu class.
2021-03-13 09:54:06 +00:00
Volker Ruppert
90ac89ea22 After changing network device object pointer to class logfunctions the
networking modules don't need to include iodev.h.
2021-03-12 21:31:51 +00:00
Volker Ruppert
51a9557acf Disk image and sound driver modules don't need to include iodev.h. 2021-03-11 21:46:25 +00:00
Volker Ruppert
a2cf072751 Some cleanups in the plugins code. 2021-03-07 16:01:39 +00:00
Volker Ruppert
0c2a9c69d6 Some config option changes.
- Moved serial and parallel config parameter list creation to the corresponding
  device code.
- Unregister serial and parallel bochsrc options in PLUGIN_FINI mode.
- Moved USB config and runtime parameter list creation to bx_init_usb_options().
- textconfig.cc: Small fixes in the optional plugin control.
2021-03-07 11:54:50 +00:00
Volker Ruppert
27c120154b Fixed a GCC warning and some MSVC warnings. 2021-02-27 20:53:10 +00:00
Volker Ruppert
2aadd3e470 Changed type of the PCI slot option to bx_param_enum_c and build choices list
from plugin devives with PLUGFLAG_PCI set.
2021-02-27 10:23:05 +00:00
Volker Ruppert
4dd5816108 Some changes in the Bochs plugins code.
- Changed variable type of the plugin_t "type" member from enum to Bit16u.
- Added support for returning device flags with the new mode PLUGIN_FLAGS in
  the plugin entry functions. It is currently only used for devices that can
  be connected to a PCI slot.
- Code cleanup in core device plugins: checking type no longer necessary.
- The "non-plugin" mode now also uses the "loadtype" member of plugin_t.

TODO: Change PCI slot options to bx_param_enum_c and build the choices list
using the new capabilities of the plugin API.
2021-02-26 20:37:49 +00:00
Volker Ruppert
8aaf9d858e Changed type of vga and svga_cirrus plugins to PLUGTYPE_VGA. Modified vga
extension option init to make this work correctly. The choices "none" and "vbe"
load the vga plugin, "cirrus" loads svga_cirrus.
2021-02-23 08:12:24 +00:00
Volker Ruppert
b84c6c8526 Some changes in the device config handling in all HCs and external hub.
- Disable port "options" parameter after successful connect. While connected,
  a device may install runtime options to control it's behaviour.
- Added enable handlers for the "options" parameter to ensure an attempt to
  change the device while connected doesn't enable it.
- Some related code cleanups.
2021-02-20 19:58:39 +00:00
Volker Ruppert
2e44a5c8bf Changed type of VGA extension option to bx_param_enum_c. Additional choices are
added from plugins list.
2021-02-19 16:05:56 +00:00
Volker Ruppert
24bccc8efb Changed parameter handler argument "set" type to bool. 2021-02-19 13:13:42 +00:00
Volker Ruppert
67a5487eab Some cleanup in the USB device change code. 2021-02-18 18:10:41 +00:00
Volker Ruppert
d4171cbf31 Renamed usb_cbi plugin to usb_floppy (including changes of source file names
and internal names).
2021-02-18 15:03:05 +00:00
Volker Ruppert
ceb8462cc7 Updated main and usb Makefile dependencies. 2021-02-17 16:53:40 +00:00