Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×
Operating Systems

Hobbyist Builds a Modern System That Still Runs MS-DOS (yeokhengmeng.com) 23

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"

Hobbyist Builds a Modern System That Still Runs MS-DOS

Comments Filter:
  • Maybe he needs to push the Turbo button. But either way I'd like to see a Beowulf cluster of these.
    • by ls671 ( 1122017 )

      And now he can now run TSR programs on it! Boy did I have fun making those.
      (terminate and stay resident)

      • 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... :-|

  • by Artem S. Tashkinov ( 764309 ) on Sunday October 06, 2024 @10:54AM (#64843837) Homepage

    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).

    • If you're going to be technical, then get it right. They didn't ask if modern hardware could run the hardware by default. You are thus technically incorrect, which is the worst kind of incorrect.
    • 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.

    • by drnb ( 2434720 )

      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.

    • by Bert64 ( 520050 )

      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.

  • by evanh ( 627108 )

    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)

      by codebase7 ( 9682010 ) on Sunday October 06, 2024 @12:56PM (#64843989)
      No. It doesn't.

      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.
      • 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.

        Not a "label", a filesystem GUID, EFI System (partition):

        C12A7328-F81F-11D2-BA4B-00A0C93EC93B

        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.

      • 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 M

  • 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 c

  • 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 P
    • 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.

  • ... 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.

    • ... 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

  • 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?

"If it's not loud, it doesn't work!" -- Blank Reg, from "Max Headroom"

Working...