Volker Ruppert
75757e9852
Banshee/Voodoo3: Fixed overlay stride.
2024-01-22 16:37:18 +01:00
Stanislav Shwartsman
a2296e5d2a
when printing instruction disassembly in debugger add status "(halted)" about halted CPU
2024-01-21 23:00:55 +02:00
Stanislav Shwartsman
c1a65ff7c4
introduce a method to switch dbg_cpu when needed
2024-01-21 22:39:59 +02:00
Shwartsman
0141f2767c
fixed compilation for i386 config and with no SVM
2024-01-21 22:03:53 +02:00
Shwartsman
e960e574f4
this annoying message happens always when debugger is closed
...
change to BX_INFO
2024-01-21 17:44:17 +02:00
Shwartsman
8abfde13d7
complete support of SVM Nested Walk in dbg including 'page' command
2024-01-21 17:44:17 +02:00
Volker Ruppert
ea0b208970
Cirrus: Implemented double scan support for color depth > 8.
...
TODO: Screen width not adjusted yet (should be done similar to Voodoo3).
2024-01-21 10:09:30 +01:00
Benjamin David Lunt
9820cf934e
Update ohci_core.cc ( #232 )
...
On a buffer underrun (Short Packet), we still need to update the CBP
---------
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-21 06:56:35 +01:00
Benjamin David Lunt
7851bf8ce1
Update hdimage.cc ( #233 )
...
Change an ERROR to a PANIC when a .lock file is found.
2024-01-21 06:39:48 +01:00
Volker Ruppert
7ad1fd0088
Update CHANGES.
2024-01-20 23:27:30 +01:00
Volker Ruppert
db0d16ff09
Banshee: Double the screen width in 'half mode' if height > width.
2024-01-20 22:30:47 +01:00
Shwartsman
f014160835
Add Bochs intenal debugger welcome message and improve help command
2024-01-20 21:09:46 +02:00
Volker Ruppert
ab32c8a2bb
Update CHANGES and 'vga: update_freq' in docs.
2024-01-20 10:59:34 +01:00
Shwartsman
4eae91f1ca
addressing issue Possible Undefined Behavior in NEG_EdR() and NEG_EdM() #227
2024-01-20 08:19:43 +02:00
Shwartsman
35abc682cb
Merge fix for "Crash when floppy image file is missing #229 "
2024-01-20 07:53:26 +02:00
Shwartsman
d9d07c03ec
update CHANGES with critical ADOX fix
2024-01-19 20:35:54 +02:00
Shwartsman
dd9aaa7325
Fixed OF flag for ADOX instruction
...
The OF flag defintion is different from OF of other instructions
Instead it is defined as:
The instruction sets the OF flag with the **carry** generated by the unsigned addition of the operands.
2024-01-19 20:30:47 +02:00
Volker Ruppert
6e48bc78fc
VGA core: Implemented a more accurate vertical timing.
...
Now using one timer with two alternating periods. A modification of the timer code
wasn't necessary. The update mode vsync is not yet affected by this change.
2024-01-19 18:40:13 +01:00
Volker Ruppert
4112a10fbd
Update changes
2024-01-18 23:42:45 +01:00
Volker Ruppert
b382358e80
Banshee: Attempt to fix redraw in case bitblt is used in 3D mode.
2024-01-18 20:32:29 +01:00
Volker Ruppert
6770a355ae
Cirrus: Fixed redraw issue caused by misaligned bitblt region.
...
If x0 + width exceeds the screen width, mark tile(s) on the left side of the screen, too.
This should finally fix issue #221 .
2024-01-17 22:12:30 +01:00
Volker Ruppert
c66d6f1a0e
Cirrus: Fixed possible segfault caused by missing address wrap.
...
- Added address wrap in cpu-to-video transparent bitblt.
- Added BX_DEBUG for address wrap detection and fixed redraw parameters.
TODO: Check other methods for possible segfaults.
2024-01-17 19:23:08 +01:00
Shwartsman
9d5bfa9064
UINTR: uitt_addr[3:0] are reserved and must be cleared before reading UITT entry
2024-01-17 14:52:49 +02:00
Stanislav Shwartsman
0f677ccfc6
change comments
2024-01-16 21:23:45 +02:00
Stanislav Shwartsman
c5436a4891
update CHANGES
2024-01-16 20:58:39 +02:00
finnbrudal
3455581a71
Cirrus: BLT System-to-screen Dword Pointer (GR2F[6:5]) implemented ( #223 )
...
Bits 5-6 of the left side clipping register have been implemented.
Co-authored-by: Volker Ruppert <Volker.Ruppert@t-online.de>
2024-01-16 19:10:06 +01:00
Stanislav Shwartsman
f8d1050a3f
Implemented SVM VM_CR_MSR and INIT redirection feature ( #220 )
...
Save and restore SVM MSRs
2024-01-16 07:42:28 +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
8528604888
Cirrus: Corrected redraw fix for backward BitBlt.
2024-01-15 23:28:23 +01:00
Volker Ruppert
bcfe5e129f
Cirrus: Fixed redraw values for backward BitBlt.
2024-01-15 17:11:25 +01:00
Shwartsman
d965a16a7d
cosmetic updates for SVM code
2024-01-14 20:30:04 +02:00
Volker Ruppert
77fffc1336
SDL: Cleaned up fullscreen toggle functions.
...
FIXME: Window height sometimes not restored correctly (observed on Linux / X11).
2024-01-14 17:49:44 +01:00
Volker Ruppert
103b4fa8eb
SDL2: Save / restore window position when using fullscreen toggle.
...
FIXME: Display updates can fail after toggle (observed on Linux / X11).
2024-01-14 17:00:05 +01:00
Shwartsman
e4deec2aca
cleanups and code updates before thinking of INIT redirection implementation for AMD SVM
2024-01-14 12:55:43 +02:00
Shwartsman
61a35063c5
remove all ifdefs from features.h
...
I'd like features bitmasks to be independent on Bochs compilation flags
so let all flags to be 'exists' even if corresponding feature is not compiled in.
2024-01-14 12:51:41 +02:00
Volker Ruppert
9fdb898dfe
SDL / SDL2: change fullscreen toggle to key combination ALT+ENTER.
...
TODO: Fix some issues related to this feature.
2024-01-14 11:41:01 +01:00
Volker Ruppert
04ed1e8fd2
Some more VGA timing handling chages.
...
- Changing status of 'update_mode_vsync' is no longer supported at runtime.
If disabled, changing the value is only valid between 1 and 75.
- Modify vtotal_usec if frequency to high before activating vsync_timer.
2024-01-14 10:13:39 +01:00
Volker Ruppert
2585b6ff68
SDL2: Don't show dialog box if Bochs is killed with SIGTERM.
2024-01-14 07:01:31 +01:00
Stanislav Shwartsman
144367c2d4
Enable ia32_spec_ctrl virtualization for SPR
2024-01-13 22:05:45 +02:00
Stanislav Shwartsman
b2cf7860dc
VMX: Implemented MSR IA32_SPEC_CTRL Virtualization VMX extension
...
fixed few typos in error messages
2024-01-13 21:58:23 +02:00
Volker Ruppert
7e7c7c45ef
Attempt to fix HPET reset in legacy mode (issue #218 ).
2024-01-13 20:13:23 +01:00
Stanislav Shwartsman
540c7bbf64
update and cleanup CHANGES
2024-01-13 20:53:54 +02:00
Volker Ruppert
1ebe15e3fc
Rewrite of the VGA timing code.
...
- Added VSYNC timer handler using vertical total usec. The calling time is defined
as vertical retrace end and it updates the CRTC start address like real VGA does.
It also calculates the display start time used when reading the input status register.
The VSYNC timer is disabled in Voodoo / Banshee modes.
- Improved VGA timing calculation (e.g. vertical blanking and retrace start).
2024-01-13 19:33:35 +01:00
Shwartsman
63539d32dc
fixed complation for .conf.nothing
2024-01-13 19:38:04 +02:00
Stanislav Shwartsman
0c1027e243
extract paging exception checking logic to separate function and solve a lot of code duplication
2024-01-13 17:47:42 +02:00
Stanislav Shwartsman
d037138e4e
extract Protection Keys handling code to separate function
2024-01-13 15:57:13 +02:00
Stanislav Shwartsman
adb50a9210
implemented "advanced VM-exit information for EPT violations"
...
comes in complementary with VMX MBE control which was already in the model
2024-01-13 15:22:58 +02:00
Stanislav Shwartsman
b84b922da3
remove unused 'shadow stack' bookkeeping from paging attributes
2024-01-13 11:57:30 +02:00
Stanislav Shwartsman
9fc53de186
VMX: PML address saved should be always 4K aligned
...
Fixes #217
2024-01-13 09:43:28 +02:00
Volker Ruppert
dbc1f5d93a
Cirrus: Fixed color expand bitblt with dword granularity enabled.
2024-01-13 05:18:07 +01:00
Stanislav Shwartsman
997fd85ec9
Set EFLAGS.RF on triple fault before shutdown or VMEXIT
2024-01-12 21:12:17 +02:00
Stanislav Shwartsman
ceaffe85d3
move code from paging.cc to access.cc
...
intoduce a function to solve code duplication
2024-01-12 21:08:14 +02:00
Stanislav Shwartsman
6977fc05d9
VMX: adjust RFLAGS saved into guest state on VMEXIT according to VMX documentation:
...
For APIC-access VM exits and for VM exits caused by:
- EPT violations
- EPT misconfigurations
- page-modification log-full events or
- SPP-related events
the value saved depends on whether the VM exit occurred during delivery of an event through the IDT ...
also handle RFlags saved if VMEXIT was caused directly by an event that would normally be delivered through the IDT
should fix #215
2024-01-12 20:01:53 +02:00
Volker Ruppert
5b6872168a
Banshee: Attempt to implement 8 and 16 byte writes to CMDFIFO.
...
- The mem_write_handler() splits 16 bytes writes in two 8 bytes writes.
- In mem_write() the 8 byte writes to CMDFIFO are split in two 32-bit writes.
2024-01-12 18:56:49 +01:00
Volker Ruppert
75fe93bc03
Updated MSVC workspace files.
2024-01-12 17:48:16 +01:00
Volker Ruppert
71d9b7e720
Documentation updates.
2024-01-12 16:12:26 +01:00
Stanislav Shwartsman
081f3aa349
update CHANGES with recent fixes made by Volker
2024-01-12 13:02:36 +02:00
Stanislav Shwartsman
ddb9aeff59
fixups in CHANGES file
2024-01-12 12:56:34 +02:00
Shwartsman
6f4f217a08
implemented AMX_FP16 and aMX_COMPLEX, fixes for daz handling in AVX_NE_CONVERT FB16
...
updated CHANGES
2024-01-12 12:38:31 +02:00
Stanislav Shwartsman
167942816a
regen Makefile.in dependencies
2024-01-12 01:10:47 +02:00
Stanislav Shwartsman
0eab037907
dynamically allocate VMCB_CACHE only if SVM is actually enabled by CPU model
...
also reduces include dependency on svm.h
2024-01-12 00:56:09 +02:00
Stanislav Shwartsman
d6769cecfc
AMX was added to 'release' conf but not to 'everything'
2024-01-12 00:30:53 +02:00
Stanislav Shwartsman
6b48d6e33f
resolution for SF bug #1460 Incorrect "Blocking by NMI" bit when handling NMI VM-exit
...
as well as
resolution for Test stuck due to incorrect Virtual NMI handling #211
which appear the same problem
2024-01-12 00:19:44 +02:00
Shwartsman
9e36971e0f
fixed TILELOADD/TILESTORED and TDPBF16PS
2024-01-11 21:04:14 +02:00
Shwartsman
8dca1e0e07
correct implementation of AMX TDPBxxD instructions
2024-01-11 20:20:33 +02:00
Volker Ruppert
b8054277cb
Fixed compilation with PCI disabled.
...
When switching to Voodoo 1/2 update timer only if update_mode_vsync is enabled.
Still TODO: update docs.
2024-01-11 18:30:39 +01:00
Volker Ruppert
fc6703a2f7
VGA update timer using vertical frequency now supported by Voodoo devices.
...
TODO: update docs.
2024-01-11 17:48:11 +01:00
Shwartsman
89d992b5b8
fixed ( #214 ) wrong MSR name typo in MSR error message
...
in real mode exceptions should not push error code to stack so the same should be for VMEXIT due to HW exception from unrestricted real mode guest (fixes #211 )
2024-01-11 08:10:42 +02:00
Shwartsman
77bbdca17a
change from USB Debugger branch by Ben, rename variable
2024-01-10 21:25:03 +02:00
Stanislav Shwartsman
cc87b23738
regen configure after AMX added
2024-01-10 20:23:55 +02:00
Stanislav Shwartsman
3a02e85599
AMX support ( #212 )
2024-01-10 20:13:25 +02:00
Volker Ruppert
cfa7276cb9
Added support for driving the VGA display update timer with VSYNC.
...
- Using the special value of 0 enables this feature. In that case the vertical
frequency is used for the display updates. The update() method is called at
the "vertical retrace end" time and sets the time of the display start. This
value is used to set the vertical retrace indicator in VGA register 0x03da.
- This feature is not yet enabled if Voodoo support is present. The Voodoo device
has it's own vertical timer and needs some more testing and possibly some changes.
2024-01-09 21:48:19 +01:00
Shwartsman
c04fb9a6ba
Fixed decoding of AVX-VNNI instruction (typo in decoder tables)
...
mention AVX-VNNI in CHANGES
2024-01-09 09:14:39 +02:00
Shwartsman
e5ef6d6a47
According to documentation (8254.pdf), mode 6 is the same as mode 2 and mode 7 is the same as mode 3.
2024-01-08 20:27:59 +02:00
Volker Ruppert
f06346afcb
Voodoo Banshee: added missing type cast in mem_write().
2024-01-07 22:05:41 +01:00
Volker Ruppert
9dbca8951e
Fixed Banshee read from ROM and mem_write() for any size and endianness.
2024-01-07 19:33:58 +01:00
Volker Ruppert
0d3a63b08d
Updated LGPL'd VGABIOS to release 0.8c.
2024-01-07 17:27:30 +01:00
Volker Ruppert
a566b1e69d
PCI MMIO space is not disabled if the Cirrus card is in VGA mode.
2024-01-07 13:55:43 +01:00
Volker Ruppert
c13ef56378
Increase maximum VGA update frequency to 75 and default to 10.
...
Small cleanups in the VGA code.
2024-01-07 11:15:04 +01:00
Shwartsman
54961f0326
fix buffer overflow with LA57
2024-01-07 07:37:18 +02:00
Volker Ruppert
080cf72f5f
Fixed CGA address wrap.
2024-01-06 16:31:04 +01:00
Volker Ruppert
c9c0237af3
Fixed start address in emulated CGA mode.
2024-01-06 15:05:33 +01:00
Volker Ruppert
6d433ec44b
Missing horizontal pel panning support added in modeX.
...
Added error messages for unsupported features (EGA only ?).
TODO: horizontal pel panning support missing or incorrectly implemented in other
graphics.
2024-01-06 11:29:39 +01:00
Shwartsman
cda3ed5a60
update CHANGES
2024-01-05 20:33:47 +02:00
Shwartsman
b24bf1dae2
CPUID: Added Xeon Sapphire Rapids CPU definition
...
Features PKS, WAITPKG, UINTR, AVX512_BF16, MOVDIRI/MOVDIR64, LA57, SERIALIZE and more
Not yet supported but will be added in future: AVX512_FP16, AMX
2024-01-05 19:54:37 +02:00
Shwartsman
a67fb31d4f
LA57: attempt to change (not just clear) LA57 in long mode cause #GP
2024-01-05 18:46:56 +02:00
Volker Ruppert
3a73e8a0b2
Fixed address wrap in non-chain4 256-color VGA mode called modeX.
...
There were blinking dotted lines visible in old DOS games (#205/#206).
2024-01-05 14:36:42 +01:00
Shwartsman
6893743a5b
prevent trace linking aftre portin/portout instructions as well
2024-01-05 09:12:01 +02:00
Shwartsman
27d48ecb94
HandlersChaining Optimization: mark IN/OUT instructions as TraceEnd, they could have significant side effects like raising interrupts which have to be handled
...
resolves issue #207
2024-01-05 08:45:10 +02:00
Volker Ruppert
1f8eb7b608
First step to fix the timer code for speaker sound output.
...
There is some output now, but not really music yet.
2024-01-04 19:26:27 +01:00
Shwartsman
41c2bb8bee
fix for LA57 cr4 checks, thanks Ben for pointing this out
2024-01-04 08:35:33 +02:00
Volker Ruppert
071f5c72f7
Reduce VGA vertical screen size if blanking starts before display end.
2024-01-03 23:48:24 +01:00
Volker Ruppert
210ea89b36
Voodoo Banshee / Voodoo3 hardware cursor fixes ( #202 / #203 ).
...
- Fixed crash in "half mode" (line doubling).
- Fixed redraw_area() values (must be unsigned).
2024-01-02 21:30:28 +01:00
Shwartsman
05b187f851
update CHANGES with SB16, keyboard, VGA and Voodoo fixes done by Volker
2024-01-02 21:49:48 +02:00
Volker Ruppert
f48acd833f
Some speaker output fixes.
...
- Increase buffer size and allocate buffer dynamicly.
- Make sure the beep_level is correctly set up in dsp_generator().
- TODO: fix timer code for usable sound output with the speaker.
2024-01-01 19:43:33 +01:00
Volker Ruppert
7985fa1ebb
X11: changed set_font() message to BX_DEBUG.
2024-01-01 11:20:05 +01:00
Volker Ruppert
10811e13ed
SB16: added 16-bit write support for even i/o addresses.
2023-12-31 16:05:20 +01:00
Volker Ruppert
1699f30d64
Reduce default keyboard serial delay to 150 to avoid timeouts.
...
Some cleanups in the keyboard code.
2023-12-31 10:47:10 +01:00
Shwartsman
b93b9ad881
fixed comments in bf16.h
2023-12-29 22:45:59 +02:00
Stanislav Shwartsman
07d28c60b8
generic cpuid fix dump_cpuid
2023-12-29 21:53:15 +02:00