First post, by LSS10999
LATE EDIT: The issue that's blocking me from starting Win3.x on the system has been fixed as of VBESVGA v0.8.2. It's working fine now.
It was indeed caused by video cards doing weird things when setting modes, leading to unexpected behavior with Win3.x/9x DOS VM. The CRTC handling in VBESVGA has been adjusted in v0.8.2 to allow my system to properly boot WFW 3.11 in 386 Enhanced Mode, while on the Win9x side, SoftGPU VESA driver disallows DOS programs to set mode by default. This avoids the issue but instead requires all DOS games that need to set modes to start in fullscreen, or they will not run properly.
On the other hand, for Win3.x, AHCIFIX.386 is required if using SATA drives in AHCI mode. The driver can be used with Win9x but not 100% necessary compared to Win3.x.
Context: (Solved) Trying to get Windows 3.1/3.11 working on a X99 system...
Right now I'm narrowing this down to a particular issue with my current system regarding DOS-based Windows (3.1 as well as 98SE), that I don't know if this is caused by BIOS (maybe SMM code) or some factors from other running hardware e.g. CPU or other onboard and discrete PCIe devices.
The problem is, whenever I try to launch Win3.1x in 386-enhanced mode, or trying to invoke VDM from Win9x (directly such as MS-DOS prompt, or indirectly by running a DOS-based program), the system would first freeze for 30 seconds, beep, then resume 10 seconds later.
For Win3.1 the system appears stuck after the control was returned (just that I could CTRL-ALT-DEL to reboot the system), but for Win98SE the system can continue operating without issues. In Win98SE's case, however, it can become a real annoyance if some installation process would run DOS-based programs multiple times in a row, as that will leave the system unresponsive for quite a few minutes with several beeps heard in between, though it won't cause any harm in the end if I'm patient enough.
I'm very new to low-level system debugging so I've no idea if it's possible to hook some kind of debugger on that system through its sole serial port (COM1) and see what actually was going on during the period when the system "froze, beeped, then resumed", as well as what might be the reason for the system to enter this "routine".
The following has been ruled out so far:
- At least for Win3.1, no difference between using IDE or AHCI modes for SATA. In both modes Win3.1 will end at a same point. It's just I need to load AHCIFIX.386 for AHCI mode, or it will fail at some other point before hitting this actual problem.
- Rloew's AHCI.PDR does not make any difference for Win98SE. This particular issue can happen with or without disk driver for Win98SE, and with AHCI.PDR things get worse, as it appears to be unstable with the system's AHCI controller, causing I/O errors that will register on the disk's SMART table. Win98SE will show a BSOD whenever such an I/O error occurs.
Some additional notes:
- On this system PATCHMEM (preferably with at least /M) is required for Win98SE to boot. Without it (and instead relying solely on LIMITMEM) the system will reboot during startup, with no relevant logs (e.g. BOOTLOG.TXT).
- Installing Win98SE with ACPI enabled (default) will cause many hardware entries not show up, including disk controllers. Need to install Win98SE without ACPI (by specifying /p i) to make them appear. Some system devices would appear with yellow exclamation mark complaining about no IRQ assigned to them, likely because they're in APIC territory, which Win98SE doesn't appear to support.