VOGONS


UniPCemu Windows 95/NT progress and issues

Topic actions

Reply 60 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

OK. It (with the exception of the now working floppy-based part of setup) manages to get the GUI starting for the second part of setup.

Then, the mouse cursor displays and operates properly, after which some HDD activity follows after which it resets the emulated system?

So there's still something going on with the CPU which NT doesn't like somehow?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io

Reply 61 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

OK. I do see it faulting one other type of fault: #NM faults for FPU emulation?
Perhaps it doesn't like that?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io

Reply 62 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

The only other hardware I/O that's going on seems to be VGA I/O and HDD/CD-ROM I/O?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io

Reply 63 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

OK. The BIOS int 13h call seems to fail for the NT CD-ROM boot because it's using drive FFh, but it only allows hard drives up to 82h?
So perhaps during the CD-ROM boot, FFh in DL is somehow incorrect (it's supposed to be 81h for the first CD-ROM drive?)?

Edit: This is what happens during booting of the Winodws 2000 Pro CD-ROM:

Filename
debugger_i430fx_bootingWindows2000CDROM.7z
File size
434.28 KiB
Downloads
6 downloads
File comment
i430fx booting Windows 2000 Pro CD-ROM
File license
Fair use/fair dealing exception

It looks like it's loading the value from the HDD0 parameter table in the EBDA (value 0xFF) into the DL register incorrectly, causing the failed boot?
Anyone can see what's going wrong here?

Edit: The i440fx seems to boot it without issues?
Edit: Although, on the i440fx, it will eventually BSOD with a INACCESSABLE_BOOT_DEVICE.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io

Reply 64 of 66, by mr.cat

User metadata
Rank Member
Rank
Member

I'm seeing something a bit similar with ELKS v0.4.0 (this is the same setup as the Linux tests).
https://github.com/jbruchon/elks/releases/tag/v0.4.0
But is this just another artifact of Bochs BIOS?

If I convert the 2.88MB floppy into an .ISO and boot that, it boots just fine.

$ cat porte9.log 
00:00:03:95.09705: $Revision: 14218 $ $Date: 2021-04-09 06:45:42 +0000 (Fri, 09 Apr 2021) $
00:00:08:02.07861: ata0-0: PCHS=567/16/7 translation=none LCHS=567/16/7
00:00:15:12.01755: Booting from 07c0:0000
00:00:17:31.01218: int13_harddisk: function 15, unmapped device for ELDL=81
00:00:17:49.03846: KBD: unsupported int 16h function 03

However the hd32-fat.bin image they provide fails to boot (it asks to press a key, then resets):

$ cat porte9.log 
00:00:04:01.07031: $Revision: 14218 $ $Date: 2021-04-09 06:45:42 +0000 (Fri, 09 Apr 2021) $
00:00:08:20.03941: ata0-0: PCHS=567/16/7 translation=none LCHS=567/16/7
00:00:15:34.08879: Booting from 0000:7c00
00:00:15:37.09846: int13_harddisk: function 02, parameters out of range 0000/0003/003d!
00:00:17:14.09674: int13_harddisk: function 02, parameters out of range 0000/0003/003d!
00:00:18:88.08296: int13_harddisk: function 02, parameters out of range 0000/0003/003d!
00:00:20:65.02300: int13_harddisk: function 02, parameters out of range 0000/0003/003d!
00:00:22:35.01290: int13_harddisk: function 02, parameters out of range 0000/0003/003d!

With the Minix one it's similar:

$ cat porte9.log 
00:00:03:95.04908: $Revision: 14218 $ $Date: 2021-04-09 06:45:42 +0000 (Fri, 09 Apr 2021) $
00:00:08:73.05269: ata0-0: PCHS=567/16/7 translation=none LCHS=567/16/7
00:00:16:59.00043: Booting from 0000:7c00
00:00:16:65.08327: int13_harddisk: function 02, parameters out of range 0000/0000/000f!
00:00:18:67.06548: int13_harddisk: function 02, parameters out of range 0000/0000/000f!
00:00:20:65.07670: int13_harddisk: function 02, parameters out of range 0000/0000/000f!
00:00:22:64.09694: int13_harddisk: function 02, parameters out of range 0000/0000/000f!
00:00:24:66.06416: int13_harddisk: function 02, parameters out of range 0000/0000/000f!

Reply 65 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

I've been thinking... Perhaps the issue with Windows NT 4.0's booting isn't in the CPU itself but in the hardware somehow?

I do see it clearing some CMOS registers (most notable the shutdown byte) before triggering a CPU reset through command 0xFE of the 8042?
So perhaps there's a hardware issue somehow (not a CPU issue)?

Windows 2000 still fails to boot at all though (when starting Windows 2000's setup phase(after all the loading of the modules) it simply errors out with a INACCESSABLE BOOT DEVICE (STOP 0000007B)?
So perhaps there's some weird storage medium issue?
I did see it issued some ATAPI commands (Request Sense command resulting in 16(0x10) bytes result), but I don't know if that's part of the issue? I do see the various registers loaded with 0x12 in the loaded variables(so it's requesting 18 bytes and receives only 16)?
Although the cylinder high/low of the CD-ROM reports 0x12, which is kind of odd?
Perhaps some kind of issue with the ATAPI emulation? The sense packet contains 0x8 in it's extra length field(so it should be 0x10 in length)?
Edit: Just increased the length of the sense packet to 18 bytes(0x12) and always cleared the new bytes to 0 for compatibility.

Edit: No changed in Windows NT 4.0? It still crashes like before?

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io

Reply 66 of 66, by superfury

User metadata
Rank l33t
Rank
l33t

Just modified the i430fx/i440fx to set the INIT pin instead of the RESET pin when performing a soft reset when not through the hard reset register in the i430fx/i440fx PCI configuration space and register selection.
So it will have a slightly different effect when getting a shutdown/8042/PPI reset, causing the APIC to reset differently.

Author of the UniPCemu emulator.
UniPCemu Git repository
UniPCemu for Android, Windows and PSP on itch.io