I just found out that if you replace the ntldr & ntdetect.com from Windows NT 3.51 service pack 5, you can access as much memory as the 32bit platform will let you!!! This is of course, 2GB per process, 1GB for Windows NT, the other 1GB is reserved for PCI hardware (remember the upper 384k in MS-DOS??). I have to say it’s GREAT to shatter the 64MB barrier of the earlier PC’s.
Anyways it’s quite simple to do, just download and extract service pack 5, then just copy the ntldr & ntdetect.com in the c:\ directory.
And here is a screen shot for the heck of it, of my Windows NT 3.1 with NT 3.51’s loader running with 3GB of ram! This makes compiling bigger things way easier, and I don’t have to page like crazy with Netscape…
For what it’s worth, I wouldn’t go beyond 3GB, as you’ll never get to use any more then that much, just as it is with Windows 2000,XP,2003,Vista on the i386 32bit platform. That is just the way it is, and yes XP & Vista that tell you about your 4GB of ram are simply reporting installed ram, not available memory.
The problem was the BIOS memory probing calls that existed at the time. In particular, INT 15h/AH=88h could not report more than 64MB of RAM (some BIOSes in fact only reported up to 16MB of RAM). Later there was INT 15/AH=E801h and the INT 15/AH=E820h calls to solve this problem, but there were OSes that used E801h only if 16MB of RAM was reported via 88h.
I mean INT 15/AX=E801h and INT 15/AX=E820h of course. NT 3.1 already supports the E801h one (with a minimum requirement of 12MB of RAM it was obvious that 88h was not going to be enough!), and NT 3.5 added support for the E820h one.