VOGONS


Reply 20 of 75, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
feipoa wrote:

Thank you. Attached is the result. Did I type it in correctly?

Grub_config.jpg
Grub_config_result.jpg

well it's working insofar that it is executing the bootsector on your NT4 partition - but the NT boot strap cannot find NTLDR, which I suspect is because it's not on the first HDD

I think for this to work you're going to have to have NT and DOS on the same partition - you could write the NT bootsector to a binary file and then install DOS "on-top" of NT to achieve this

alternatively, you could copy NTLDR, NTDETECT.COM and BOOT.INI to your DOS drive and then adjust BOOT.INI to look for the second disk, as shovel knight suggested previously

Reply 21 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

Thank you for the suggestion. We are getting a little warmer. I have copied boot.ini, NTDETECT.COM, and NDLDR to the MS-DOS drive. I edited the boot.ini on the MS-DOS drive from:

[boot loader]
timeout=3
default=multi(0)disk(0)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00"
multi(0)disk(0)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

to:

[boot loader]
timeout=3
default=multi(0)disk(2)rdisk(0)partition(1)\WINNT
[operating systems]
multi(0)disk(2)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00"
multi(0)disk(2)rdisk(0)partition(1)\WINNT="Windows NT Workstation Version 4.00 [VGA mode]" /basevideo /sos

I tried this with the boot.ini on the NT4 drive listed as both disk(0) and disk(2).

The system booted MS-DOS and I pressed F5 to bypass config.sys and autoexec.bat. At the prompt, I typed grub --config-file="root (hd2,0);chainloader +1". NT4's boot manager appeared.

NT4_boot_manager.jpg
Filename
NT4_boot_manager.jpg
File size
138.13 KiB
Views
1021 views
File license
Fair use/fair dealing exception

But a few seconds later, I see the following:

NT4_boot_manager_failure.jpg
Filename
NT4_boot_manager_failure.jpg
File size
145.26 KiB
Views
1021 views
File license
Fair use/fair dealing exception

Is multi(0)disk(2)rdisk(0)partition(1) the correct designation? Is there some other file or setting in the NT4 drive which needs to know that it is now the 3rd hard disk in the system?

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

Reply 23 of 75, by Scali

User metadata
Rank l33t
Rank
l33t

According to this, rdisk() should go before disk(), but not sure if that is the problem:
http://www.dewassoc.com/kbase/multiboot/boot_ini.htm

Basically multi(0)rdisk(0)disk(2)partition(1)\WINNT would mean:
IDE/BIOS compatible controller, third disk, use first partition, and boot from the \WINNT directory.

You could try:
multi(0)rdisk(3)disk(0)partition(1)\WINNT

rdisk will use the SCSI ID, and your drive is ID#3 apparently.

Or else:
scsi(0)rdisk(3)disk(0)partition(1)\WINNT

(partition(0) is the entire disk, shouldn't be used. Partition(1) is probably correct).

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 24 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

scsi(0)rdisk(3)disk(0)partition(1)\WINNT

Are we referring to boot.ini that I copied to the MS-DOS drive (SCSI ID1, the first drive), the boot.ini file in the NT4 drive (SCSI ID3), or both? Should boot.ini on the MS-DOS drive match that on the NT4 drive? Or do I keep the NT4 boot.ini as it was (that is, as if the NT4 drive is the only drive in the system)?

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

Reply 25 of 75, by Scali

User metadata
Rank l33t
Rank
l33t
feipoa wrote:

Are we referring to boot.ini that I copied to the MS-DOS drive (SCSI ID1, the first drive), the boot.ini file in the NT4 drive (SCSI ID3), or both? Should boot.ini on the MS-DOS drive match that on the NT4 drive? Or do I keep the NT4 boot.ini as it was (that is, as if the NT4 drive is the only drive in the system)?

The BOOT.INI on your DOS drive, the one that NTLDR starts from (at least, that's what I thinkt eh situation is. You could change the string for the menu entries, on one of the two disks ("Windows NT Workstation Version 4.00 Disk ID#3" or such), so you can be 100% sure which BOOT.INI is running).
I don't think there has to be a BOOT.INI on the NT4 drive in this case, because it's not the one that is used as boot device.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/

Reply 26 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I decided to reinstall NT4 on my 3rd hard drive while enabling the SCSI ID's for all the other virtual hard drives. This will tell us the correct syntax. In this case, NT4 is installed to the 3rd hard drive, and boot.ini, NTLDR, and NTDETECT.COM are placed on the DOS drive. The designation NT4 gave itself is as follows:

NT4_disks.png
Filename
NT4_disks.png
File size
41.95 KiB
Views
1000 views
File license
Fair use/fair dealing exception

So it wants to be rdisk(2) although the SCSI ID is 3.

I then setup my NT 3.51 drive to NT4's boot manager as follows:

[boot loader]
timeout=5
default=multi(0)disk(0)rdisk(2)partition(1)\WINNT
[operating systems]
multi(0)disk(0)rdisk(2)partition(1)\WINNT="Windows NT Workstation 4.00"
multi(0)disk(0)rdisk(2)partition(1)\WINNT="Windows NT Workstation 4.00 [VGA mode]" /basevideo /sos
multi(0)disk(0)rdisk(3)partition(1)\WINNT35="Windows NT Workstation 3.51"
multi(0)disk(0)rdisk(3)partition(1)\WINNT35="Windows NT Workstation 3.51 [VGA mode]" /basevideo /sos
C:\bootsect.dos = "MS-DOS 6.22"
D:\bootsect.w95 = "Windows 95c"
NT_Boot_Manager.jpg
Filename
NT_Boot_Manager.jpg
File size
198.5 KiB
Views
1000 views
File license
Fair use/fair dealing exception

Windows NT installation automatically adds a copy of the boot sector for MS-DOS to be booted, which is on the first hard drive. An issue I am having is how to get the Windows 95c drive to boot from the NT Boot Manager as well? I am using dd to create the boot sector of the Win95c drive:

dd-bootsect_w95c.jpg
Filename
dd-bootsect_w95c.jpg
File size
126.44 KiB
Views
1000 views
File license
Fair use/fair dealing exception

In summary, I am now able to boot into MS-DOS from NT's boot manager (but not Win95c) and I am able to run the previously specified command, grub --config-file="root (hd2,0);chainloader +1" to once again bring up the NT boot manager. I can select NT4 and it now boots.

The problems that now remain are finding the startup commands from autoexec.bat and config.sys which grub is not happy with. Once I exclude these, I can run the Cyrix.exe to setup the CPU registers and PS2SUPPC.COM for the PS/2 mouse and see if they work in NT4 and NT351. I will look into this tomorrow, but it seems like grub has its own config.sys file, perhaps used for drivers to load after grub? The issue with adding grub to the config.sys is that you don't always want to load it at boot. You only need it for running NT4 and NT 3.51, but not for DOS/Win95c.

I would also like to figure out how to boot into the Win95c drive (D) when C exists in this configuration. Is there a way to do with with NT's boot manager? The error I received from selecting Windows 95c from NT's boot loader is:

bootsect.w95.jpg
Filename
bootsect.w95.jpg
File size
75.82 KiB
Views
1000 views
File license
Fair use/fair dealing exception

And if I boot into MS-DOS by bypassing startup files and typing grub --config-file="root (hd1,0);chainloader +1", I receive the following:

Attachments

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

Reply 27 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

I have narrowed down which entries in config.sys and autoexec.bat that GRUB4DOS does not like. The good news is that its not the file which sets the SXL register bits; the bad news is that one entry is for PS/2 mouse support.

For config.sys, GRUB does not like:
DEVICE=C:\Adaptec\ASPI4DOS.SYS /P134
(and possibly, DEVICE=C:\Adaptec\ASPIBUF.SYS, which needs ASPI4.DOS.SYS loaded to load)

The error when loading grub4dos when this device is started is: Failure restore ROM INT 0x73 vector. Unsupported DOS, device driver, or TSR.

For autoexec.bat, GRUB does not like
C:\PS2SUPPC.COM

The error when loading grub4dos when this device is started is: Failure restore ROM INT 0x74 vector. Unsupported DOS, device driver, or TSR.

Nonetheless, with these three entries remarked, I was able to first boot MS-DOS, then type C:\grub4dos\grub --config-file="root (hd2,0);chainloader +1" to bring back the NT boot menu, boot into NT4, and run CPUmark99. CPUmark99 showed a 70% increase in performance, that is, the score jumped from 1.4 to 2.4 with the cyrix.exe utility first setup in MS-DOS.

The main drawback is the the path there is a bit cumbersome, that is, first boot into MS-DOS to remark out some config.sys and autoexec.bat lines, then restart the system, get back to the DOS prompt, then type C:\grub4dos\grub --config-file="root (hd2,0);chainloader +1". To then use MS-DOS again, re-edit the config.sys and autoexec.bat files to take out the remarks. Also, still no PS/2 mouse. At least the test worked.

I'm still faced with the problem of booting Windows 95c when it is on the second SCSI drive. I had hoped to use the NT boot manager to load Win95c. I'm guessing the issue is that Win95 is setup to think it is on C:\, so it needs to be told now that it is on D:\. Or the C drive needs to be hidden for each boot of Win95. I think PQ Magic can do this, but it is cumbersome. I've gotten around it in the past by having C:\ as NTFS for which Win95 cannot see, thus it thinks it is naturally on C:\.

Edit: I should point out that the way I am booting into Win95c at present is to remove the case from the system, connect the USB cable to the SCSI2SD device (the other end goes to WinXP), open the SCSI2SD utility on XP, remove the check mark from SCSI ID1, 3, & 4 (MS-DOS), save config file back to SCSI2SD, remove USB cable, power on SXL system.

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

Reply 29 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++

For the time being, I am just going to press F5 when booting MS-DOS (bypass config/autoexec). I created a *.bat file called ntboot.bat, which contains:

cyrix -f -r -cd -i1
C:\grub4dos\grub --config-file="root (hd2,0);chainloader +1"

Can this be incorporated into the boot.ini file of the NT boot loader? Create an entry called C:\ntboot.bat = "SXL register setup for NT"?

Due to DOS, Win3.11, and Win95 being able to use the PS/2 mouse, and not NT4 and NT 3.51, it is still impractical to boot NT as I have to remove the PS/2 mouse and hoot up a serial mouse (not doing so causes the system to hang). I may need another serial emulator card for the PS/2 mouse.

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

Reply 31 of 75, by kixs

User metadata
Rank l33t
Rank
l33t
feipoa wrote:
For the time being, I am just going to press F5 when booting MS-DOS (bypass config/autoexec). I created a *.bat file called ntbo […]
Show full quote

For the time being, I am just going to press F5 when booting MS-DOS (bypass config/autoexec). I created a *.bat file called ntboot.bat, which contains:

cyrix -f -r -cd -i1
C:\grub4dos\grub --config-file="root (hd2,0);chainloader +1"

Can this be incorporated into the boot.ini file of the NT boot loader? Create an entry called C:\ntboot.bat = "SXL register setup for NT"?

Due to DOS, Win3.11, and Win95 being able to use the PS/2 mouse, and not NT4 and NT 3.51, it is still impractical to boot NT as I have to remove the PS/2 mouse and hoot up a serial mouse (not doing so causes the system to hang). I may need another serial emulator card for the PS/2 mouse.

This is great! I don't care if it's not user friendly as long as it works 😀

Requests are also possible... /msg kixs

Reply 33 of 75, by feipoa

User metadata
Rank l33t++
Rank
l33t++
maxtherabbit wrote:

maybe rio444 would be kind enough to build a special version of the ps2 supplement for you that doesn't set interrupt vectors

The feeling I get from rio444 is that he doesn't have further interest updating in the ps2suppc patch.

kixs wrote:

This is great! I don't care if it's not user friendly as long as it works :)

Yeah, was quicker than trying to figure out some alternate solution. FYI, for my inability to boot W95c, I have come up with a temporary solution, and it is not the most elegant approach. I have a USB cable coming out the back of the SXL2 case, the other end is attached to the SCSI2SD SCSI drive emulator. To disable SCSI ID 1, which is MS-DOS/Win3.11, I connect the cable to XP and run the SCSI2SD config utility. Beats opening up the case every time. I've added a note to the NT4 boot menu. For some reason, PQ Magic, which would have been a soft solution, didn't want to "hide" SCSI ID1 drive, so I've had to resort to the SCSI2SD config utility.

SXL-SCSI2SD_USB_patch.jpg
Filename
SXL-SCSI2SD_USB_patch.jpg
File size
181.31 KiB
Views
941 views
File license
Fair use/fair dealing exception
SXL-SCSI2SD_USB_patch_2.jpg
Filename
SXL-SCSI2SD_USB_patch_2.jpg
File size
259.28 KiB
Views
941 views
File license
Fair use/fair dealing exception

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

Reply 34 of 75, by maxtherabbit

User metadata
Rank l33t
Rank
l33t
feipoa wrote:
maxtherabbit wrote:

maybe rio444 would be kind enough to build a special version of the ps2 supplement for you that doesn't set interrupt vectors

The feeling I get from rio444 is that he doesn't have further interest updating in the ps2suppc patch.

it would be a trivial task, since I assume he still has the source code all that would be required would be to rebuild it with the relevant functions commented out

Reply 35 of 75, by Rio444

User metadata
Rank Member
Rank
Member

Hi to all!
feipoa is right.
I don't use Win NT on older PCs. Therefore, I no longer have an interest in updating in the ps2suppc patch.
From the very beginning I was going to share the source codes after I translated all the comments from Russian into English. But I never did it.((( The source code is here https://yadi.sk/d/uHcajearommfJg
If there are difficulties with understanding when translating from Russian to English, I will help.
You cannot run the utility directly in GRUB4DOS, because the utility uses DOS services to put TSR in RAM. In DOS, it is necessary to do so in order to DOS allocates memory for the TSR and to knows that memory is busy.
GRUB4DOS does not have its own services for placing TSR. It does not allocate memory, because it is not an operating system.
You need to write your own code, which will copy the code of the mouse interrupt handler into RAM. I would recommend artificially setting the EBDA area at the end of the memory (1Mb) and copying the interrupt handlers there. I believe this is a fairly safe place that will not be ruined with OS during the boot process.

My e-mail Email.1569054222.png

Reply 36 of 75, by bakemono

User metadata
Rank Oldbie
Rank
Oldbie

NTDETECT.COM never calls int 0x74. It does call int 0x11 and test bit 2. I wonder if that is the only issue preventing it from detecting the PS/2 mouse. PS2SUPPC also does a bunch of port I/O and I'm not sure if it is only for detection or if there are necessary steps for resetting/configuring the mouse as well.

I'm attaching a modified variant of PS2SUPPC which doesn't install an interrupt handler. Not sure if it will work but may be worth trying.

Maybe you would also like to try using DEBUG (or QBASIC or whatever) to set bit 2 at 0040:0010 and then boot NT4? If that works then one instruction in NTDETECT could simply be patched.

Attachments

  • Filename
    PS2NOINT.ZIP
    File size
    1.23 KiB
    Downloads
    38 downloads
    File license
    Fair use/fair dealing exception

Reply 37 of 75, by Rio444

User metadata
Rank Member
Rank
Member

You may be interested in my old experiments:
https://translate.google.ru/translate?sl=ru&t … 1%26start%3D147
Original in Russian: https://www.phantom.sannata.org/viewtopic.php … 26981&start=147

My e-mail Email.1569054222.png

Reply 38 of 75, by Caluser2000

User metadata
Rank l33t
Rank
l33t

NT 3.51 and NT 4 can ue PS/2 mice. Even NT 3.1 can.

Last edited by Caluser2000 on 2019-09-19, 08:18. Edited 1 time in total.

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 39 of 75, by Scali

User metadata
Rank l33t
Rank
l33t
Caluser2000 wrote:

NT 3.51 and NT 4 can ue PS/2 mice.

Yes, but the issue here is a motherboard with a PS/2 port, but a poorly implemented BIOS, so a TSR is required to patch up the equipment table and enable the required interrupts/handlers. Otherwise the hardware won't appear as it does on a regular PS/2 system, and msot detection routines won't pick it up.

http://scalibq.wordpress.com/just-keeping-it- … ro-programming/