Volker Ruppert
549d052e34
VGA_MEM_FIX: Picked a better name for the sequencer odd/even disable switch.
2024-02-11 14:49:12 +01:00
Volker Ruppert
0e5800bf98
VGA_MEM_FIX: Fixed cursor address of the invisible cursor.
...
Now using the highest address of the default text mode buffer.
2024-02-11 13:40:02 +01:00
Volker Ruppert
39155bd3ae
VGA_MEM_FIX: Temporary fix for special memory access mode in modeX.
...
In odd/even mode fall back to planar mode if "chain odd/even" bit is 0.
2024-02-11 09:37:06 +01:00
Volker Ruppert
945ee597f0
Added currently disabled set of fixes for the VGA memory management.
...
- Added disabled definition VGA_MEM_FIX in vgacore.h. The VGA core code works as
usual unless you uncomment the define.
- Added correct implementation of the "chain four" and "odd/even" addressing mode.
This should fix the Debian / GRUB boot issue (#257 ) with both Bochs VBE and Cirrus.
- Added some compatibility code to make the gui text update work as usual.
- Tested all VGA modes except 256-color word mode (no test case).
- Some more testing with old DOS games may be required before I enable it by default
and finally remove the legacy code.
2024-02-10 17:30:24 +01:00
Volker Ruppert
fd68912dc7
Small cleanups in the VGA core code.
...
The text snapshot buffer is now allocated dynamicly.
2024-02-10 14:00:09 +01:00
Shwartsman
e7ef67f89b
bugfix for float64_getmant
2024-02-10 13:27:16 +01:00
Volker Ruppert
4ab88c3d8f
Cirrus: The first MB of video memory is always accessible.
2024-02-10 10:36:39 +01:00
Volker Ruppert
5c715aa9a3
Fixed clipping parameters in Banshee/Voodoo3 (issue #236 ).
...
Added 'clip_mask' with width depending on model.
Fixed VGA display issue discovered with Voodoo3.
2024-02-09 15:03:32 +01:00
Volker Ruppert
e5ff346368
Some fixes and cleanups after latest changes.
...
- Fixed Cirrus text mode output.
- VBE now using it's own 'line_offset' value.
- Since font change is now handled in update(), removing gui method set_text_charbyte().
2024-02-09 14:34:01 +01:00
Volker Ruppert
e53cf3b962
VBE/VGA: More accurate implementation of GRUB save/restore support.
...
Added VGA chain4 mode read/write support from VBE frame buffer.
Handle charmap update in update() using modified 'vga_mem_udated' flag.
Added temporary code for chain four memory addressing.
TODO: VGA memory handling rewrite including odd/even mode support.
2024-02-08 23:05:48 +01:00
Stanislav Shwartsman
c3269722f4
fixed spelling in comment
2024-02-07 00:18:06 +02:00
Volker Ruppert
1221217a7d
VBE: Preserve original line offset while in VBE mode.
2024-02-06 21:49:59 +01:00
Volker Ruppert
4e6b4165f5
Added workaround for the save/restore function of the GRUB bootloader.
...
The VGA core needs an extensive rewrite to support it correctly with
both Bochs VBE and Cirrus.
2024-02-06 20:36:15 +01:00
Stanislav Shwartsman
ad8c21437f
fix segfault @ 'step all' command in single-processor config
2024-02-05 22:06:24 +02:00
Benjamin David Lunt
3525a89b7a
Update usb_xhci.cc ( #262 ) : The EDTLA should be updated for OUT going packets too.
...
The EDTLA should be updated for OUT going packets too.
2024-02-05 07:08:31 +02:00
Benjamin David Lunt
17a7a30c10
Update usb_xhci.cc ( #260 ) : Don't check the size of a non-existent segment in an event ring table.
...
Don't check the size of a non-existent segment in an event ring table.
2024-02-05 07:08:05 +02:00
Benjamin David Lunt
f1e4e6757e
Update usb_xhci.cc ( #255 )
...
Update conditional compilation due to conflicting statements in
different versions of the specs on the `ep_context->ep_state` value
initialization during a `SetAddress` command.
2024-02-04 08:12:04 +02:00
Volker Ruppert
6391cf0093
Fixes for VBE 4-bpp modes support.
...
Row address must be 32 bit wide and VGA compatible display end is limited to 1023.
TODO: Fix VGA compatible setup for VBE modes in VGABIOS.
2024-02-03 18:02:10 +01:00
Volker Ruppert
cd0feed380
VGA core: Added support for extended 4-bpp modes (tested with Cirrus).
2024-02-03 14:51:12 +01:00
Vort
5474eb6963
Cirrus: Add support for palette modes with pixel frequency > 85 MHz ( #254 )
...
It allows to use 1152x864x8 mode with [original
BIOS](https://github.com/bochs-emu/Bochs/files/14130753/cl-gd5446_pci_vga_bios_version_1.31.zip ).
2024-02-03 14:12:40 +01:00
Stanislav Shwartsman
37341c8838
fixed massive code duplication
2024-02-02 22:36:56 +02:00
Volker Ruppert
6aec66d210
Cirrus: Fixed tile x/y calculation for double scan and double width.
2024-02-02 20:49:38 +01:00
Volker Ruppert
ca482ab98e
Cirrus: Handle double scan and double width at banked memory writes.
...
TODO: Cursor still looks incorrect with modeset test program.
2024-02-02 19:00:15 +01:00
Stanislav Shwartsman
f3537f282a
Legacy form of XRSTOR loads the MXCSR register from memory whenever the
...
RFBM[1](SSE) or RFBM[2](AVX) is set, regardless of the values of XSTATE_BV[1] and XSTATE_BV[2]
2024-02-02 08:43:36 +02:00
rofl0r
fb8fc563ab
bximage: flush stdout after asking a question ( #251 )
...
otherwise the question may not even arrive there, depending on the
implementation-defined behaviour of stdio buffering.
fixes display of questions with musl libc.
2024-02-01 22:54:31 +02:00
Shwartsman
88fb948088
updates to paging code for debugability and code duplication reduction
2024-02-01 15:15:26 +02:00
Shwartsman
3ed8639bfa
some style notation to avoid errors and make code cleaner to read
2024-01-30 20:08:42 +02:00
Volker Ruppert
92eb0e12be
Cirrus: Added double width support to fix up aspect ratio in double scan mode.
...
TODO: Hardware cursor code untested - test program doesn't use it.
2024-01-30 18:28:47 +01:00
Song Ziming
9b5c43821e
Init LDR whenever x2APIC mode is enabled ( #250 )
...
According to Intel SDM vol3 11.12.10.2 (Deriving Logical x2APIC ID from
the Local x2APIC ID), "The LDR initialization occurs whenever the x2APIC
mode is enabled".
2024-01-30 08:47:22 +02:00
Stanislav Shwartsman
e54048c163
XSAVEC/XSAVEC: don't allow 'compaction' of SSE state
...
this bug also prevented win10 from booting
2024-01-29 22:11:08 +02:00
Volker Ruppert
347a1bef56
Voodoo3: In double width mode also double hardware cursor width.
...
Improved mode reporting and fixed possible segfault caused by invalid pitch.
2024-01-29 19:33:29 +01:00
Stanislav Shwartsman
cf40e63b87
XRSTOR: correct 'format' for case compaction is not enabled
2024-01-29 19:40:21 +02:00
Stanislav Shwartsman
7aa8489b1a
fixed severe XRSTOR emulation issue, prevented boot of Win10
2024-01-29 18:40:19 +02:00
Stanislav Shwartsman
6554f9b7b6
a little code optimization, no impact on correctness
2024-01-29 15:28:25 +02:00
Stanislav Shwartsman
0cfa33733e
correct clear_busy for shadow stack in case of IRET - should use old SSP
2024-01-29 15:08:54 +02:00
Stanislav Shwartsman
b373890b05
fix supervisor shadow stack EPT violation detection
2024-01-28 22:03:57 +02:00
Stanislav Shwartsman
2f0338fe0c
fixed bug in MOVDIR64B - source and destination were swapped
2024-01-28 21:38:57 +02:00
Stanislav Shwartsman
41202ebb68
bugfix for supervisor shadow stack and VMX
2024-01-28 20:57:43 +02:00
Volker Ruppert
d4d1fff83b
NE2000: Don't check PCI slot config in parser, but then in init code.
...
TODO (for other devices):
The parser code should not expect that a specific config parameter is
already set. Only the device init code should bring all things together.
2024-01-28 17:50:14 +01:00
Volker Ruppert
14f6753ad8
Voodoo 1/2: Final attempt to implement byte writes correctly.
...
Simply shift byte to the right position and write 0's elsewhere.
2024-01-28 16:57:17 +01:00
Shwartsman
4de017762a
fixed permission check for CET
...
added SSP save/restore is SMM code
fixed CET_S state in_use calculation
2024-01-28 17:25:21 +02:00
Volker Ruppert
4ee4b89102
Voodoo 1/2: Next attempt to implement byte writes.
...
New code: read 32-bit, mask out required byte, apply new byte, write 32-bit.
2024-01-28 14:43:58 +01:00
Volker Ruppert
caef53a4a1
Voodoo 1/2: Added support for dword aligned byte writes.
...
TODO: For unaligned writes the voodoo_w() function needs to be modified.
2024-01-28 11:05:16 +01:00
Volker Ruppert
2c4b9e9457
Don't set up tiles for update if screen parameters are invalid.
2024-01-28 10:31:06 +01:00
Benjamin David Lunt
19fc78d2db
Update usb_xhci.cc ( #245 )
...
reset closer to real hardware
2024-01-28 08:42:41 +02:00
finnbrudal
106e7fa03a
Fix XHCI Address Device command ( #244 )
...
Was sending the SET_ADDRESS request using the wrong (old) slot context.
2024-01-28 07:22:09 +02:00
Stanislav Shwartsman
58663d3c68
fix bug intoduced in c4689f284c
2024-01-27 23:05:38 +02:00
Volker Ruppert
3ec05e8f05
Voodoo 1/2: Added support for 8 and 16 byte writes (issue #241 ).
...
Also added 16-bit read support. Odd data size and address support not done yet.
2024-01-27 18:58:22 +01:00
Stanislav Shwartsman
c4689f284c
fix spurious read of potentially non-existing SECONDARY_VMEXIT_CTRLS
2024-01-27 18:38:14 +02:00
Stanislav Shwartsman
b685996081
fixed compilation
2024-01-27 18:30:22 +02:00