Hobbyist Builds a Modern System That Still Runs MS-DOS (yeokhengmeng.com) 54
He's the long-time Slashdot reader who installed Linux on a 1993 PC — and then installed a 1994 version of MS-DOS on a modern Thinkpad X13. (And somewhere along the way, he even built a ChatGPT client for DOS...)
But in a new blog post, yeokm1 reveals "I recently built myself a PC," salvaging parts from a previous desktop system to bootstrap an upgrade. And "I decided to build one with the ability to still reach back into the past to run MS-DOS..."
The result? A Ryzen 5 7600 and GeForce 4060 Ti system, but with a floppy drive, optical drive, Sound Blaster card, serial, parallel and PS/2 ports — that runs MS-DOS. The fact that a 30-year-old MS-DOS 6.22 can still work well enough on such a modern hardware is testament to the efforts made by the industry to ensure good x86 PC backward compatibility. AMD, Nvidia and Asus deserve to be commended on their efforts here.
I'm also impressed that the modern Nvidia Geforce 4060 Ti still supports some legacy video BIOS modes to a usable level although this is not complete. I didn't document in this blog post but brief tests with other VESA modes and resolutions didn't work so well. I wonder how long more this amount of x86 PC backward-compatibility will continue to last though... It definitely feels like the end is near.
Their blog post includes a video about their system. (And yes, it plays Doom.) But their ultimate goal is to use it to play modern games like Cyberpunk 2077 and Flight Simulator 2020 (as well as the upcoming Flight Simulator 2024) "at reasonably good settings and performance." (And also to experiment with light machine-learning workloads, do basic video editing, run virtual machines.)
After successfully building their DOS-running system, they asked ChatGPT what it thought. Would the system's specs be powerful enough to handle the 30-year-old operation system? And ChatGPT confidently replied:
"Neither the Ryzen 5 7600 nor the GeForce RTX 4060 Ti is designed to run DOS natively. DOS is an older operating system that was primarily used on x86 architecture from the late 20th century, and modern hardware like the Ryzen 5 7600 and GeForce RTX 4060 Ti are not compatible with DOS due to their 64-bit architecture and lack of necessary drivers to interface correctly with DOS, which relied on much older technology..."
yeokm1's blog post concludes: "I think I just proved ChatGPT wrong :P"
But in a new blog post, yeokm1 reveals "I recently built myself a PC," salvaging parts from a previous desktop system to bootstrap an upgrade. And "I decided to build one with the ability to still reach back into the past to run MS-DOS..."
The result? A Ryzen 5 7600 and GeForce 4060 Ti system, but with a floppy drive, optical drive, Sound Blaster card, serial, parallel and PS/2 ports — that runs MS-DOS. The fact that a 30-year-old MS-DOS 6.22 can still work well enough on such a modern hardware is testament to the efforts made by the industry to ensure good x86 PC backward compatibility. AMD, Nvidia and Asus deserve to be commended on their efforts here.
I'm also impressed that the modern Nvidia Geforce 4060 Ti still supports some legacy video BIOS modes to a usable level although this is not complete. I didn't document in this blog post but brief tests with other VESA modes and resolutions didn't work so well. I wonder how long more this amount of x86 PC backward-compatibility will continue to last though... It definitely feels like the end is near.
Their blog post includes a video about their system. (And yes, it plays Doom.) But their ultimate goal is to use it to play modern games like Cyberpunk 2077 and Flight Simulator 2020 (as well as the upcoming Flight Simulator 2024) "at reasonably good settings and performance." (And also to experiment with light machine-learning workloads, do basic video editing, run virtual machines.)
After successfully building their DOS-running system, they asked ChatGPT what it thought. Would the system's specs be powerful enough to handle the 30-year-old operation system? And ChatGPT confidently replied:
"Neither the Ryzen 5 7600 nor the GeForce RTX 4060 Ti is designed to run DOS natively. DOS is an older operating system that was primarily used on x86 architecture from the late 20th century, and modern hardware like the Ryzen 5 7600 and GeForce RTX 4060 Ti are not compatible with DOS due to their 64-bit architecture and lack of necessary drivers to interface correctly with DOS, which relied on much older technology..."
yeokm1's blog post concludes: "I think I just proved ChatGPT wrong :P"
Well (Score:3)
Re: (Score:3)
And now he can now run TSR programs on it! Boy did I have fun making those.
(terminate and stay resident)
Re:Well (Score:5, Funny)
And now he can now run TSR programs on it! Boy did I have fun making those. (terminate and stay resident)
The fact that you felt the need to explain what TSR stands for makes me feel really fucking old... :-|
Re: (Score:2)
Re: (Score:2)
Wizards of the Coast? TSR as a company was "discontinued" in 2000 by Wizards of the Coast.
[John]
Re: (Score:2)
I was never into gaming and only know about D&D anecdotally. I'd never heard of TSR as a company.
Re: (Score:2)
"(terminate and stay resident)"
I thought it stood for Tactical Studies Rules!
Compatibility (Score:4, Interesting)
Technically ChatGPT is correct: modern PCs by default come with EFI which will not run MS-DOS in any shape or form.
What about CSM though? It will probably work but MS-DOS doesn't support AHCI, thus your disk drives will be invisible to it. OK, if your BIOS is powerful/old enough, you can enable IDE/ATAPI. Now MS-DOS doesn't support USB, so no USB keyboard or mouse for you. Still there must be PCI-E adapters for both IDE and PS/2.
As for the GPU, MS-DOS requires so little, I don't see any issues as long as CSM is able to initialize the 80x25 VGA mode and contains VGA support (which will probably be phased out sooner rather than later).
Re: Compatibility (Score:5, Insightful)
Re: (Score:2)
The biggest issue with applications from that era is that many of them have hard limits in terms of how fast your CPU runs and they will simply crash or misbehave if the speed/frequency is too high, e.g. check this thread [stackexchange.com].
If we are talking about GUI, e.g. Windows 9x is coded incorrectly, is extremely unstable or doesn't work at all. There [kennedysoftware.ie] are patches [github.com] to fix these issues though but they may not always work.
Re: (Score:2)
As for the GPU, MS-DOS requires so little, I don't see any issues as long as CSM is able to initialize the 80x25 VGA mode and contains VGA support (which will probably be phased out sooner rather than later).
I think a modern system doing software rendering will be favorably comparable to circa 2000 hardware acceleration.
Re: (Score:3)
You can only really run it in a "lowest common denominator" backwards compatibility mode that's only really intended as a minimal bootstrap environment.
Only one of your CPU cores will be used and a fraction of your ram even if you choose the smallest available memory capacity, the GPU will be running as a dumb framebuffer losing virtually all of its features and making 99% of its memory inaccessible.
Re: (Score:2)
That's why SATA controllers come with "Legacy Mode" which turns the SATA disk into an IDE disk. Many BIOSes disable the option because Windows freaks out if you switch the mode - to Windows, they appear as two different disk drivers and Windows needs a driver enabled for the other option.
But that option exists for legacy operating systems that
Re:Compatibility (Score:4, Interesting)
Re: (Score:2)
The CSM will usually accept USB keyboard input, so as long as the app uses BIOS calls to read the keyboard (rather than polling the hardware directly) it will work. A lot of motherboards still have PS/2 sockets though, because gamers believe they offer lower latency than USB (and there is a grain of truth to that).
Re: (Score:2)
Every motherboard I've ever owned including the one I have now has had a PS/2 port. No USB required.
UEFI (Score:2)
Doesn't the PC implementation of UEFI initially boot similar to MSDOS? I mean it still keeps the files on a BIOS-like FAT32 partition ahead of the GPT.
Ie: The legacy hardware is actually still used to get the modern OSes booted.
Re:UEFI (Score:5, Informative)
Modern-ish BIOS systems relied on the Master Boot Record (or the Partition Boot Record) which contained a small 218 byte reserved area outside of the filesystem for raw code to be written that would locate and load the second stage bootloader for the installed OS. (FYI: There are other formats out there, the classical one on Wikipedia allows for 446 bytes of raw code.) The reason for this size limitation is because it needed to fit inside a single sector so the BIOS wouldn't need to implement support for an entire filesystem (and thus make the BIOS easier to implement with a smaller attack surface). Which for legacy storage meant a maximum size of 512 bytes. This raw code is also required to be 16bit by the BIOS specification. Thus a 32bit or even 64bit OS running on a BIOS machine would need to switch into it's more advanced mode after this raw code had run.
EFI on the other hand uses a regular filesystem partition with a special label that the firmware mounts and reads directly to load the bootloader. Because it's part of the filesystem there is no size limitation on the raw code. (You could even run the entire OS from the EFI System Partition, as it's just a normal FAT32 partition otherwise, but it's not recommended.) This raw code is also allowed to be in the native bitness of the CPU. So 32bit or 64bit code instead of the 16 bit code which was mandatory for BIOS systems.
Re:UEFI (Score:4, Insightful)
Not a "label", a filesystem GUID, EFI System (partition):
What's funny is that when a partition with such a GUID is missing, computers (EFI BIOS'es) will often try to boot from the first FAT32 partition on the disk.
Re: UEFI (Score:5, Interesting)
UEFI in many ways resembles advanced BIOS bootloader's such as GRUB. In fact, GRUB can do many of the tricks that UEFI is capable of, including running 32- or 64- bit code before loading the OS, without a size limitation, while residing in a designated folder in a supported filesystem (supported filesystems include more robust ones that FAT32 such as ext2/3/4, for example. And yes, GRUB can run complex payloads from its folder, including whole "operating systems". The small first-stage booting stub in the MBR is irrelevant - it can be extremely simple, with its only job being to load GRUB proper.
The real advantage of UEFI over GRUB is that UEFI has a device driver framework, which allows it to do more with the devices at boot time than GRUB, and also that it's designed to be callable by the OS, while GRUB is "fire and forget" - once it loads and transfers control to the OS, it's finished.
Re: (Score:2)
Emulator or VM (Score:4, Informative)
I wonder how long more this amount of x86 PC backward-compatibility will continue to last though... It definitely feels like the end is near.
That's basically what emulators, or perhaps to some extent also VMs, will end up being useful for.
While building an actual physical machine that works to do this is really neat, it's not (or will not be, as he suggest) practical - for example I still 'run' an Amiga computer, but through emulation; having a physical Amiga would be neat to have, but there'd be all the extra physical space needed (and costs!) for it, and in the end it wouldn't really enhance my experience much of 'using' the Amiga (in fact I can more easily emulate any Amiga system or hardware than managing the same equivalent physical hardware).
Re: (Score:2)
I used to have 11 classic game consoles connected at all times for the sake of purism, and I have to agree with you. At this point if you are willing to spend the CPU and have a 4k display you can get a surprisingly convincing facsimile of whatever era's CRT you would like to replicate. The only thing I don't know if anyone has managed to honestly replicate is the best CRT light guns, like on the Saturn or the Playstation. Those were phenomenal, and came alongside some excellent arcade ports. I used to have
AI being wrong isn't novel in the least (Score:2)
In other news: Getting modern hardware to boot MSDOS isn't novel either, but even if you do, it's not like you can do anything too terribly useful with it in that state. You're not going to find MSDOS versions of things like graphics card or network card drivers for modern versions of those, and older versions of those are either going to be on ISA-bus or parallel-PCI bus cards, so you won't be able to integrate them into the system anyway unless you have some sort of bridge from P
Software rendering was impressive in 90s, 3D fine (Score:2)
AI is braindead nonsense. In other news: Getting modern hardware to boot MSDOS isn't novel either, but even if you do, it's not like you can do anything too terribly useful with it in that state. You're not going to find MSDOS versions of things like graphics card or network card drivers for modern versions of those, and older versions of those are either going to be on ISA-bus or parallel-PCI bus cards, so you won't be able to integrate them into the system anyway unless you have some sort of bridge from PCIe to those busses.
It's not as hopeless as you suggest. Many of us have CDs with our old DOS environments that included 16-bit Borland and MS C/C++ compilers and MASM.
And given what we were able to do in the late 90s with respect to software rendering of 3D scientific and engineering apps, and games, I think modern hardware could still be quite impressive. Although the return of all those bugs related to far pointers, where the segment register was not pointing at the correct place, would suck.
Re: (Score:2)
Actually, ISA (8237-style DMA included) is still there hidden in modern PCs as the LPC bus.
Re: (Score:2)
Re: (Score:2)
Re: (Score:2)
So yeah, if it can run Windows... (Score:2)
... it also must be able to run MS-DOS as all Windows systems first boot into MS-DOS then start Windows as a real or protected mode "application". This only changed with Windows NT which was able to run on "non-IBM PCs". So unless it's a special Windows NT only computer, for example with a PPC, Alpha or ARM CPU, MS-DOS should run.
WinNT was more than cross platform (Score:3)
... it also must be able to run MS-DOS as all Windows systems first boot into MS-DOS then start Windows as a real or protected mode "application". This only changed with Windows NT which was able to run on "non-IBM PCs". So unless it's a special Windows NT only computer, for example with a PPC, Alpha or ARM CPU, MS-DOS should run.
Win9x and WinNT are hardly comparable. The fact that they implemented a common Win32 API so you only needed one binary was nice, but what happened behind the scenes was completely different. WinNT was a true multithreaded protected environment. Win9x was a kludge, it worked well enough for people to transition from 16-bit DOS and Win3.x apps to 32-bit Win32 apps. Which allowed people's next computer to be WinNT based, which in 2001 would be called Windows XP, succeeding both Windows ME (9x) and Windows 2000
Re: (Score:2)
Win9x was a kludge, it worked well enough for people to transition from 16-bit DOS and Win3.x apps to 32-bit Win32 apps. Which allowed people's next computer to be WinNT based, which in 2001 would be called Windows XP, succeeding both Windows ME (9x) and Windows 2000 (NT).
Windows 3.1 had the same functionality, and it was implemented in basically the same way, though in 3.1 it was called win32s. You could run 32 bit programs on Windows 3.1 with it, and those same programs would also run on NT.
Re: (Score:2)
Win9x was a kludge, it worked well enough for people to transition from 16-bit DOS and Win3.x apps to 32-bit Win32 apps. Which allowed people's next computer to be WinNT based, which in 2001 would be called Windows XP, succeeding both Windows ME (9x) and Windows 2000 (NT).
Windows 3.1 had the same functionality, and it was implemented in basically the same way, though in 3.1 it was called win32s. You could run 32 bit programs on Windows 3.1 with it, and those same programs would also run on NT.
Win32s was a subset of the functionality in the WinNT 3.1 API. No multi-threading or asynchronous I/O, no protected memory, no DirectX, etc. I have vague recollections of using it for some utilities; but it was not even close to being an alternative to Win95.
Re: (Score:2)
Win32s predates DirectX, and so does Windows 3.1, so it's no wonder that DirectX didn't work with it. At the time, the only gaming-related API in Windows was WinG.
Re: (Score:2)
Re: So yeah, if it can run Windows... (Score:3)
Windows NT for x86 wasn't started from DOS as a "protected mode application". It could run DOS software (32-bit WinNT only), but only in a special process called NTVDM, using the CPU's V86 mode.
Re: (Score:3)
The x86 architecture still hanging around in 2024 (Score:2)
is not a good thing.
Re: The x86 architecture still hanging around in 2 (Score:2)
IBM System/360 architecture from 1965 is still around too, in hardware form. Other, even older architectures still exist too, in commercially supported emulated environments.
Why? (Score:2)
I don't get the point of this sort of masochism.
Running old software on new machines, I get that. It's a nostalgia thing.
But why run MS-DOS on current hardware and then try to play modern games that way? What's the point?
And why do other people think it's interesting? Is it a form of sadism, enjoying watching other people suffer?
Re: Why? (Score:3)
You just don't understand.
Re: Why? (Score:3)
Re: (Score:2)
Re: (Score:2)
I'm sure someone could say the same thing about your hobbies. /s
Same reason people climb mountains:
For the challenge, because it is there, because they can, etc.
Some "pointless" hobbies are an interesting puzzle to figure out by the few, while everyone else seems them as "stupid" and a waste of time. How much time do YOU waste on social media, watching TV, watching movies, playing games, etc. It is something to distract the brain from work.
Re: (Score:3)
Critical setup (Score:4, Funny)
SET BLASTER=A220 I5 D1
Well, it does boot from cold start ... (Score:3)
... into Doom in about 3 seconds with the notably slowest part being the human at the keyboard. So that's nice. :-)
But will it run... (Score:2)
the small, but real, market for this (Score:2)
This could be marketed to the folks that seek out no-novocaine dentists . . . and save them a fortune!