VOGONS


PCEm. Another PC emulator.

Topic actions

  • This topic is locked. You cannot reply or edit posts.

Reply 520 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SA1988 wrote:
I think this log provides enough information why NT fails to start the text-based installer (NT 3.1 additionally requires read_c […]
Show full quote

I think this log provides enough information why NT fails to start the text-based installer (NT 3.1 additionally requires read_capacity in IDE/ATAPI)

IRET NC DPL  000B   FFFF 0000 9A00 00CF

The log above happens when NT 3.5x is about to start the text-based installer, but throws a black screen. The same log happens when NT 3.1 attempts to get to the GUI installer or to the desktop.

May also be why OS/2 2.0 without Service Paks fails to start too.

EDIT: got a fix, soon posting it 😉

Thanks so much for finding this bug on why Windows NT and later versions of OS/2 will fail to start inside PCem. 😁

I can't wait for a fix to be posted soon and hopefully, Sarah will allow Windows NT and OS/2 to run properly in the next release of PCem.

Reply 521 of 1046, by SA1988

User metadata
Rank Member
Rank
Member

I still don't know how to implement the read_capacity 0x25 command, it's required by the only IDE CD-ROM driver for NT 3.1 in existance (called "Aztech IDE CD-ROM Driver), though NT 3.5x and 4.0 and later do not require this command.
EDIT: got a fix for this one too, only problem left now is NTVDM.

Reply 522 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SA1988 wrote:

I still don't know how to implement the read_capacity 0x25 command, it's required by the only IDE CD-ROM driver for NT 3.1 in existance (called "Aztech IDE CD-ROM Driver), though NT 3.5x and 4.0 and later do not require this command.
EDIT: got a fix for this one too, only problem left now is NTVDM.

Well...let's hope to get the NTVDM working somehow. I kinda have a feeling that read_capacity 0x25 command is only used in Windows NT 3.1 for the IDE CD-ROM driver.

I haven't been able to test a installation of Windows NT 3.51 or Windows NT 4.0 workstation inside PCem at this time.

Edit: For some reason, Windows NT 3.51 and even Windows NT 4.0 fails to install, ends up with a blinking cursor in the background causing Windows NT setup to not continue. I'm wondering how the read_capacity 0x25 command can be implemented to get around this...

Last edited by ppgrainbow on 2014-04-06, 12:00. Edited 1 time in total.

Reply 523 of 1046, by SA1988

User metadata
Rank Member
Rank
Member
ppgrainbow wrote:
SA1988 wrote:

I still don't know how to implement the read_capacity 0x25 command, it's required by the only IDE CD-ROM driver for NT 3.1 in existance (called "Aztech IDE CD-ROM Driver), though NT 3.5x and 4.0 and later do not require this command.
EDIT: got a fix for this one too, only problem left now is NTVDM.

Well...let's hope to get the NTVDM working somehow. I kinda have a feeling that read_capacity 0x25 command is only used in Windows NT 3.1 for the IDE CD-ROM driver.

I haven't been able to test a installation of Windows NT 3.51 or Windows NT 4.0 workstation inside PCem at this time. If for some reason, I do get it working, I'll let you know. 😀

well, NT 4.0, here, works fine on PCem, here's the fix for NT on PCem

ESP=oldsp;

^
in the non-conforming comment on pmode on x86seg.c

Reply 524 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SA1988 wrote:
well, NT 4.0, here, works fine on PCem, here's the fix for NT on PCem […]
Show full quote
ppgrainbow wrote:
SA1988 wrote:

I still don't know how to implement the read_capacity 0x25 command, it's required by the only IDE CD-ROM driver for NT 3.1 in existance (called "Aztech IDE CD-ROM Driver), though NT 3.5x and 4.0 and later do not require this command.
EDIT: got a fix for this one too, only problem left now is NTVDM.

Well...let's hope to get the NTVDM working somehow. I kinda have a feeling that read_capacity 0x25 command is only used in Windows NT 3.1 for the IDE CD-ROM driver.

I haven't been able to test a installation of Windows NT 3.51 or Windows NT 4.0 workstation inside PCem at this time. If for some reason, I do get it working, I'll let you know. 😀

well, NT 4.0, here, works fine on PCem, here's the fix for NT on PCem

ESP=oldsp;

^
in the non-conforming comment on pmode on x86seg.c

Thank you so much for the info! Let's hope this gets implemented so that Windows NT can be emulated in PCem! 😁

Windows NT requires at least 7 MB of extended memory in order for it to run properly or it won't boot. Also, when setting up Windows NT, the cylinder count is limited to 1,024 thus limiting the size of the disk to 504 MB.

Reply 525 of 1046, by SA1988

User metadata
Rank Member
Rank
Member

this implementation of the read capacity command is quite preliminary for NT 3.1 (I can't swap CDs with it, it always reports the previous even though the next is inserted), so I guess Sarah will be able to implement it correctly and probably better than my implementation.

Reply 526 of 1046, by SarahWalker

User metadata
Rank Member
Rank
Member

There's also a bug in the IDE emulation (most register writes should affect both drives, not just the one currently selected). With that fixed NT 3.51 mostly works, some issues during installation but that might simply be a problem with my copy.

Attachments

  • PCem-WinNT3.51.png
    Filename
    PCem-WinNT3.51.png
    File size
    48.14 KiB
    Views
    2489 views
    File license
    Fair use/fair dealing exception

Reply 527 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SA1988 wrote:

this implementation of the read capacity command is quite preliminary for NT 3.1 (I can't swap CDs with it, it always reports the previous even though the next is inserted), so I guess Sarah will be able to implement it correctly and probably better than my implementation.

That has got to be something that needs to be worked out.

Reply 528 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SarahWalker wrote:

There's also a bug in the IDE emulation (most register writes should affect both drives, not just the one currently selected). With that fixed NT 3.51 mostly works, some issues during installation but that might simply be a problem with my copy.

While Windows NT 3.51 cannot be natively installed inside PCem, I believe that I will be doing a temporary workaround to install Windows NT 3.51 under Bochs or a old version of Qemu with no networking capabilities and standard VGA support as the current release of PCem has no networking capabilities at this time. 😀

If I found any success in getting Windows NT 3.51 working, I'll let you know. 😁

Edit: For some reason, the Qemu/Bochs workaround didn't work; still getting a blinking cursor here and I'm thinking that it couldn't even accept a IDE hard disk that had 1,024 or more cylinders on the boot drive....but I could be wrong.

Windows NT would work best if it has SCSI hard disk support. SCSI hard disks with either BusLogic or LSI option ROMs are a good way to overcome the 504 MB limit found on pre-August 1994 BIOSes in which it couldn't support IDE hard disks above 504 MB without the risk of data corruption.

I'm wondering if it would be possible to add SCSI support for up to 8 SCSI hard disks per controller or not. What do you think? I got SCSI and MS-DOS support working in VMware Player, VirtualBox and at one time in later releases of QEMU.

Reply 530 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SarahWalker wrote:

Feel free to add SCSI emulation if you want. It's not exactly a priority for me though.

Well okay. While it's not exact priority for you, I honestly don't know if someone else might be interested or have the time to add SCSI emulation support...

Reply 533 of 1046, by ppgrainbow

User metadata
Rank Member
Rank
Member
SA1988 wrote:

I'm interested too in SCSI emulation, I hope you can add it properly ppgrainbow 😉
(mainly Aha-154x ones, which is what VirtualBox also emulates and needed by NT 3.1 for the best CDROM support).
Also, NT 3.51 installs fine here on PCem.

Thanks for the complement. I'm not good at programming and I believe that I might screw something up in any even if I compile my own revision of PCem. But nevertheless, Windows NT 3.51 works well with SCSI support as apposed to IDE which is limited to 504 MB.

For me, as for installing Windows NT 3.51, I had to install MS-DOS 6.22 first, copy the contents of the \I386 folder (from the Windows NT 3.51 CD) and type in WINNT /B to setup Windows NT 3.51 from the hard drive with no CD-ROM support. The only problem is that when the MS-DOS portion of setup completes, I end up with a blinking cursor in a black background and Windows NT setup does not proceed any further.

As for fixing the CD swapping problem in Windows NT 3.1, good for you. 😀

Reply 535 of 1046, by Jorpho

User metadata
Rank l33t++
Rank
l33t++

Not sure I understand this fixation with getting obscure, old operating systems running; at best, they're entertaining for five minutes as a novelty.

Anyway, I guess you're probably familiar with the posts at os2museum.com :
http://www.os2museum.com/wp/?p=2314
http://www.os2museum.com/wp/?p=27

Reply 539 of 1046, by SA1988

User metadata
Rank Member
Rank
Member

Complete 0x25 Read Capacity command:

static void cpu_to_ube32(uint8_t *buf, unsigned int val)
{
buf[0] = val >> 24;
buf[1] = val >> 16;
buf[2] = val >> 8;
buf[3] = val & 0xff;
}
static void atapicommand(int ide_board)

uint8_t *buf;
uint64_t total_sectors;
       case GPCMD_SEND_DVD_STRUCTURE:
case GPCMD_READ_CDVD_CAPACITY:
ext_ide->discchanged=1;
atapi_sense.sensekey=6;
atapi_sense.asc=0x28;
cpu_to_ube32(buf, total_sectors - 1);
cpu_to_ube32(buf + 4, 2048);
ide->packetstatus=3;
ide->secount=2;
ide->pos=0;
idecallback[ide_board]=60*IDE_TIME;
ide->packlen=len;
return;