VOGONS


GRUB4DOS help needed to boot NT4 from DOS - SOLVED

Topic actions

Reply 60 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

NT4 works with only one at a time only: SXL register setup (cyrix.exe) or patched NTDETECT.COM for working PS/2 mouse, but not both simultaneously. They will each work independently.

NT 3.51 works with both simultaneously.

PS2noint.com is not needed for the ps/2 mouse to work with patched NTDETECT.com

Plan your life wisely, you'll be dead before you know it.

Reply 61 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Bakemono, for this same system, I also have a CF-to-SCSI card reader which as Win95c/NT3.51 on it (no NT4). I'd like to modify just the NT3.51 NTDETECT.COM as well. It is the same size file, but has a slightly different date of Sept 19, 1996. Do I modify exactly the same addresses for this NTDETECT.COM file?

The HEX around the same address appears different for the NT 3.51 NTDETECT.COM file.

NT35_NTDETECT.png
Filename
NT35_NTDETECT.png
File size
33.22 KiB
Views
823 views
File license
Fair use/fair dealing exception

Plan your life wisely, you'll be dead before you know it.

Reply 62 of 75, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

Glad to hear this effort has some success.

feipoa wrote:

Bakemono, for this same system, I also have a CF-to-SCSI card reader which as Win95c/NT3.51 on it (no NT4). I'd like to modify just the NT3.51 NTDETECT.COM as well. It is the same size file, but has a slightly different date of Sept 19, 1996. Do I modify exactly the same addresses for this NTDETECT.COM file?

I don't have that version of the file but it appears to be completely different so you can't patch the same location. The patch basically skips over a section of code. The key thing to look for is the int 11h (CD 11 opcode) and maybe there is a section in the older file which contains the same code as the later one.
original code disassembly:

000021D9  E8FDF2            call 0x14d9
000021DC CD11 int 0x11
000021DE A90400 test ax,0x4
...
00002247 B80104 mov ax,0x401
0000224A EB0B jmp short 0x2257

modified code:

000021D9  E8FDF2            call 0x14d9
000021DC 33FF xor di,di
000021DE EB67 jmp short 0x2247
000021E0 90 nop
...
00002247 B80104 mov ax,0x401
0000224A EB0B jmp short 0x2257

NT4 works with only one at a time only: SXL register setup (cyrix.exe) or patched NTDETECT.COM for working PS/2 mouse, but not both simultaneously. They will each work independently.

It's weird that those two things conflict, but maybe some of the CPU settings could be changed on-the-fly after Windows is running? Modifying hardware registers under WinNT requires a kernel mode driver, which I personally don't know how to make. But there is a general purpose driver called DirectNT published by C'T magazine which can be used to bypass this requirement (although nowadays this would be considered a security weakness in the form of privilege escalation). This is how I change the CPU speed on my Pentium M. Whatever register settings are made by the cyrix.exe could probably be reproduced in a win32 utility that interfaces with DirectNT.

Reply 63 of 75, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

OK, so I got the aforementioned version of NTDETECT. For this one the patch should look like this:

Attachments

  • ntdet35.png
    Filename
    ntdet35.png
    File size
    14.14 KiB
    Views
    798 views
    File license
    Fair use/fair dealing exception

Reply 64 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

bakemono, thank you very much! The ps/2 mouse works just fine in NT 3.51 with NT 3.51's NTDETECT.COM. The system is now, hopefully, complete.

I'm surprised that there are still people available with specific assembly knowledge about this old operating system.

Plan your life wisely, you'll be dead before you know it.

Reply 65 of 75, by Caluser2000

User metadata
Rank l33t
Rank
l33t
maxtherabbit wrote:
Caluser2000 wrote:
maxtherabbit wrote:

Serial mouses suck

Well that was insightful. The 1990 MS seral mice a very nice to use.

be honest with yourself, using a ball mouse is utterly miserable after using an optical one

You do realize you can still buy serial optical mice new. Being non serial has nothing to do with being optical. Indeed a lot of non serial mice have balls and are equipped with a tail.

mouseoptical.jpg
Filename
mouseoptical.jpg
File size
60.39 KiB
Views
777 views
File license
Fair use/fair dealing exception

Equating connection with an input type mechanical or optical is just stupid.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 66 of 75, by maxtherabbit

User metadata
Rank l33t
Rank
l33t

yes obviously there are ps/2 ball mouses - but no, I did not know that serial mouses were still in production. The last time I even saw one for sale in a store was probably in the early 2000s

Are these current production optical serial mouses any faster than their ball counterparts? I always noticed a massive increase in pointer smoothness going from serial to ps/2 or USB regardless of sensor type

Reply 67 of 75, by Caluser2000

User metadata
Rank l33t
Rank
l33t
maxtherabbit wrote:

I always noticed a massive increase in pointer smoothness going from serial to ps/2 or USB regardless of sensor type

Thats in in your imagination. I regularly swap out usb and ps/2 optical mice and I can assure you there is no difference in sensitivity. That's with a number of OSs old and new. Anyway I guess this is a matter for a separate thread discussion.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 68 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I guess a lot of people have the same imagination then because I heard this comment a lot.

What I have noticed, though, is that in Windows 95, even with a PS/2 mouse, I need to set the refresh rate up to at least 80 Hz before the tracking gets smooth. I think it defaults to 40 Hz. I didn't notice this issue with Win98SE.

Plan your life wisely, you'll be dead before you know it.

Reply 69 of 75, by Caluser2000

User metadata
Rank l33t
Rank
l33t

Sounds more like a driver issue. Serial, PS/2 and USB mice work swimmingly on my P166MMX set up.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 70 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Could very well be, that is, if the default Windows 95c PS/2 mouse driver is set at 40 Hz. I usually use the default MS-supplied mouse driver on these "afflicted" systems.

Plan your life wisely, you'll be dead before you know it.

Reply 71 of 75, by Caluser2000

User metadata
Rank l33t
Rank
l33t

My favorate is a Genius PS/2 opitical mouse I use on my OS/2 v3 Warp system. Perfect fit and operates outstandingly. Actually I've had a good run from Genuis(KYE) consumer products from nics through to flatbed scanners.

There's a glitch in the matrix.
A founding member of the 286 appreciation society.
Apparently 32-bit is dead and nobody likes P4s.
Of course, as always, I'm open to correction...😉

Reply 72 of 75, by Rio444

User metadata
Rank Member
Rank
Member
Caluser2000 wrote:

You do realize you can still buy serial optical mice new.

Please name the mouse model and tell where such mice are sold.😉

My e-mail Email.1569054222.png

Reply 73 of 75, by kjliew

User metadata
Rank Oldbie
Rank
Oldbie
feipoa wrote:

I need to boot into DOS first so that I can setup the CPU registers of the SXL CPU and setup the PS/2 mouse function. Apparently GRUB4DOS allows this, but I cannot figure out how to make it work.

I have been monitoring this thread for a while as well as the other. It seems that things aren't going right as patching NTDETECT binary may not be a good option at all. Why GRUB4DOS and not the official GNU GRUB2 version 2.04? Actually, you don't really need to boot into DOS to do the stuffs you need. With the official GRUB2, you can do it with GRUB module. I am not sure how proficient you are at C programming, GRUB module is actually quite manageable and there are quite a number of examples for reference. And, the good thing is, it is 32-bit C flat memory model, so it does not complicate stuffs with near/far pointers and the need for setting up protected mode.

Another option is SYSLINUX 3.86, at this specific version. Since most legacy Microsoft OS'es boot through chain-loading of the OS-specific boot sector, SYSLINUX chain-loading support is provided by COM32 module in source code chain.c, which you can modify freely to implement the stuffs you need before invoking the chain-loading. COM32 is also 32-bit C flat memory model.

If you are comfortable with C coding, then you need to setup a Linux/GCC environment for compiling GRUB2 or SYSLINUX.

Personally, I prefer GRUB2 since the GRUB module is portable and the ABI is stable. And, I suppose you know very well the exact steps required to implement the stuffs you need, GRUB2 scripting support in/out, memory read/write, PCI read/write and RDMSR/WRMSR through scripting. If the required steps can be supported with those accesses, then you don't even need to write GRUB module. All you need is implementing the function within GRUB boot scripting in GRUB.CFG.

Reply 74 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

kjliew, we were able to get GRUB4DOS working just fine for the required needs (setting up SXL2 registers). And were able to edit NTDETECT for NT4 and NT3.51 for the PS/2 support. The issue is resolved. Maybe I should put -SOLVED in the title.

Plan your life wisely, you'll be dead before you know it.

Reply 75 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I wanted to provide a brief update to this thread.

I was able to determine that NT4, with the PS/2-support modified NTDETECT file, does not like the the SXL2 to run in clock-doubled mode (2x). NT4 will hang towards the end of its boot up every time. I am still able to enable the L1 cache and set non-cacheable regions in DOS first, then run GRUB4DOS, then load NT4 - but I must not enable clock-doubled mode. I don't know why the non-modified NTDETECT file works with the SXL2 in clock doubled mode and the modified one does not. Setting clock-double mode writes to CCR0, bit 6 and I don't understand what this has to do with PS/2 mouse mode. NT 3.51 still works fine in clock-doubled mode and with the PS/2-support modified NTDETECT file.

Anyone have any ideas as to why and how to solve this problem?

Plan your life wisely, you'll be dead before you know it.