First post, by superfury
I've managed to get a bit further in booting Windows 95 for the first time(still within the setup phase, after the first reboot required), having installed Windows 95a from the supplied(a few kilobytes too large) floppy disk image that I might have added to the CD-ROM disk image in the past.
Now it continues loading a bit further, until it crashes on what seems to be (debugging protected-mode(no V86/Real mode) faults) a Page fault in kernel memory within, according to my research on the driver, PIC problem(VPICD.VXD faulting)?
I see an #UD on a 0FA6 instruction at 0645:12C0.
Then I see the Page fault at 0028:C002B77D(instruction 8B04BD5CD302C0) on linear address c56a97cc. Previous opcode was 0FB3.
Those are all the faults that are thrown while booting Windows 95 for the first time.
Luckily, bootlog.txt has a lot of progress from the original point:
[000F9E17] Loading Device = C:\WINDOWS\HIMEM.SYS
[000F9E19] LoadSuccess = C:\WINDOWS\HIMEM.SYS
[000F9E19] Loading Device = C:\WINDOWS\IFSHLP.SYS
[000F9E19] LoadSuccess = C:\WINDOWS\IFSHLP.SYS
[000F9E19] Loading Device = C:\WINDOWS\SETVER.EXE
[000F9E1A] LoadSuccess = C:\WINDOWS\SETVER.EXE
[000F9F88] Loading Vxd = VMM
[000F9F9A] LoadSuccess = VMM
[000F9F9B] Loading Vxd = vnetsup.vxd
[000F9F9C] LoadSuccess = vnetsup.vxd
[000F9F9D] Loading Vxd = CONFIGMG
[000F9FA3] LoadSuccess = CONFIGMG
[000F9FA3] Loading Vxd = VSHARE
[000F9FA5] LoadSuccess = VSHARE
[000F9FA5] Loading Vxd = VWIN32
[000F9FA9] LoadSuccess = VWIN32
[000F9FAA] Loading Vxd = VFBACKUP
[000F9FAB] LoadSuccess = VFBACKUP
[000F9FAB] Loading Vxd = VCOMM
[000F9FAC] LoadSuccess = VCOMM
[000F9FAC] Loading Vxd = COMBUFF
[000F9FAD] LoadSuccess = COMBUFF
[000F9FAD] Loading Vxd = IFSMGR
[000F9FBB] LoadSuccess = IFSMGR
[000F9FBB] Loading Vxd = IOS
[000F9FC0] LoadSuccess = IOS
[000F9FC0] Loading Vxd = SPOOLER
[000F9FC2] LoadSuccess = SPOOLER
[000F9FC2] Loading Vxd = VFAT
[000F9FC6] LoadSuccess = VFAT
[000F9FC6] Loading Vxd = VCACHE
[000F9FC8] LoadSuccess = VCACHE
[000F9FC8] Loading Vxd = VCOND
[000F9FCB] LoadSuccess = VCOND
[000F9FCB] Loading Vxd = VCDFSD
[000F9FCC] LoadSuccess = VCDFSD
[000F9FCC] Loading Vxd = VXDLDR
[000F9FCE] LoadSuccess = VXDLDR
[000F9FCE] Loading Vxd = VDEF
[000F9FCF] LoadSuccess = VDEF
[000F9FCF] Loading Vxd = VPICD
[000F9FD0] LoadSuccess = VPICD
[000F9FD1] Loading Vxd = VTD
[000F9FD2] LoadSuccess = VTD
[000F9FD2] Loading Vxd = REBOOT
[000F9FD3] LoadSuccess = REBOOT
[000F9FD3] Loading Vxd = VDMAD
[000F9FD5] LoadSuccess = VDMAD
[000F9FD5] Loading Vxd = VSD
[000F9FD5] LoadSuccess = VSD
[000F9FD5] Loading Vxd = V86MMGR
[000F9FDA] LoadSuccess = V86MMGR
[000F9FDA] Loading Vxd = PAGESWAP
[000F9FDB] LoadSuccess = PAGESWAP
[000F9FDB] Loading Vxd = DOSMGR
[000F9FDF] LoadSuccess = DOSMGR
[000F9FE0] Loading Vxd = VMPOLL
[000F9FE1] LoadSuccess = VMPOLL
[000F9FE1] Loading Vxd = SHELL
[000F9FE4] LoadSuccess = SHELL
[000F9FE4] Loading Vxd = PARITY
[000F9FE4] LoadSuccess = PARITY
[000F9FE4] Loading Vxd = BIOSXLAT
[000F9FE5] LoadSuccess = BIOSXLAT
[000F9FE5] Loading Vxd = VMCPD
[000F9FE6] LoadSuccess = VMCPD
[000F9FE6] Loading Vxd = VTDAPI
[000F9FE7] LoadSuccess = VTDAPI
[000F9FE7] Loading Vxd = PERF
[000F9FE8] LoadSuccess = PERF
[000F9FE9] Loading Vxd = vserver.vxd
[000F9FE9] LoadFailed = vserver.vxd
[000F9FEA] Loading Vxd = vredir.vxd
[000F9FED] LoadSuccess = vredir.vxd
[000F9FEE] Loading Vxd = ndis.vxd
[000F9FEF] LoadSuccess = ndis.vxd
[000F9FF0] Loading Vxd = ndis2sup.vxd
[000F9FF0] LoadFailed = ndis2sup.vxd
[000F9FF1] Loading Vxd = vnetbios.vxd
[000F9FF2] LoadSuccess = vnetbios.vxd
[000F9FF2] Loading Vxd = ebios
[000F9FF3] LoadSuccess = ebios
[000F9FF3] Loading Vxd = vshare
[000F9FF4] LoadFailed = vshare
[000F9FF4] Loading Vxd = dynapage
[000F9FF6] LoadSuccess = dynapage
[000F9FF6] Loading Vxd = vcd
[000F9FF7] LoadSuccess = vcd
[000F9FF7] Loading Vxd = vpd
[000F9FF9] LoadSuccess = vpd
[000F9FF9] Loading Vxd = int13
[000F9FFA] LoadSuccess = int13
[000F9FFA] Loading Vxd = vkd
[000F9FFC] LoadSuccess = vkd
[000F9FFC] Loading Vxd = vdd
[000FA000] LoadSuccess = vdd
[000FA000] Loading Vxd = vflatd
[000FA001] LoadSuccess = vflatd
[000FA001] Loading Vxd = vmouse
[000FA003] LoadSuccess = vmouse
[000FA003] Loading Vxd = msmouse.vxd
[000FA004] LoadSuccess = msmouse.vxd
[000FA004] Loading Vxd = enable
[000FA006] LoadSuccess = enable
The earlier point was(before reinstalling Windows 95):
[000F9FBB] Loading Vxd = IOS
Anyone can help me with this? Why is it faulting on that Page Fault? CR3 is 0x0328000(with 4MB physical RAM installed).
The faulting instruction causing the page fault seems to be "mov eax,DWORD PTR [edi*4-0x3ffd2ca4]" according to ODA(Online Disassembler, https://onlinedisassembler.com/) and Defuse(https://defuse.ca/online-x86-assembler.htm). The value of EDI is 0xc159f11c. The effective offset used is 0xc56a97cc. The Task Register is set to 0x0018. The task is at 0xC000AEBC, with a limit of 0x2069.
Unfortunately, both Bochs and Dosbox seem to fail booting the Bochs-formatted disk image(Bochs saying it cannot mount the disk image, Dosbox cannot boot from it(saying the disk isn't bootable in MS-DOS fashion).
Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows, PSP, Vita and Switch on itch.io