What can I do that is moderately interesting with freedos? I've downloaded it a couple of times, but I never found anything useful to do with it. I'm sure I could play some games, or something. I really want to actually learn it.
I legitimately needed to use freeDOS a few months ago in order to downgrade the firmware on my BluRay drive, so I'd be able to rip 4K discs. It could only be done from DOS.
Wait...I have a legitimate question (was about to post some snarky comment but now I'm wondering).
WHY did you need DOS??? Use an XP VM? Some sort of Linux emulator? Flashing the firmware on a device manufactured long after the existence of DOS had been forgotten for most major hardware producers...
There’s a lot of firmware flashing stuff that runs on DOS, because it’s easier to have direct access to hardware without the OS trying to access that hardware simultaneously.
The alternative is correctly disabling the device under Windows/Linux/whatever, flashing the firmware, and re-enabling it, which is a process likely to have bugs and potentially result in bricking the device. Modern operating systems are big and constantly doing things in the background that may interfere with the firmware flashing process.
Not entirely true -- this is the case if the drive is configured as "Enhanced" or "RAID" or "AHCI" in the BIOS/EFI. There's typically a "Legacy" mode which will make the device visible to DOS (and indistinguishable from any other ATA controller).
I remember using FreeDOS for learning assembly through the `debug` command. Looking at the BIOS data was fun for me at the time. I've also tried DOSBox but since it's emulated the BIOS data wasn't "real".
I have not yet found an equivalent of the `debug` command for Linux. Ppl told me `gdb` could do the same but I found debug easier to use.
You can do more or less the same with e.g. objdump, but the root difference is that DOS COM binaries are very simple: basically a tiny header then the whole program in a big chunk.
More modern formats (be it PE, ELF, Mach-o, ...) are far more complex, with many different segments, running in a more complex CPU mode, generally dynamically linked, and all the other bell and whistles. So even if you had an identical debug.exe for Linux, it would still be much harder to make sense of.
> basically a tiny header then the whole program in a big chunk.
This is inaccurate. A DOS .com executable has no header whatsoever. It is literally just the program code and data with absolutely no metadata at all. It is loaded at memory address 0x100 and then execution begins, also at 0x100.
It is possible to have a 0 byte .com executable and it will perform a useful function. 0 bytes are loaded to 0x100 and then execution begins at 0x100, effectively re-running the last program run. Commonly such a file was named "go.com".
One common use is to drive hardware directly, either to learn how it works (prior to e.g. writing a linux device driver) or just for performance reasons. Reading and writing bits to a parallel port takes about 1us or so; there's no latency involved (no USB polling for instance), and no hoops to jump through (e.g. iopl()/mmap ) to access the hardware.
Unless you want to work specifically with FreeDOS, you might look at DOSBox instead. It's a MS-DOS emulator that runs in user space, rather than running as the OS, thus a lower barrier to entry.
The utilities provided by FreeDOS are generally more complete than those provided by DOSBox. You can copy them into your DOSBox installation for the best of both worlds.
Depends on your needs... if you can use dosemu+freedos, it's usually faster than dosbox's overhead. DOSBox is great for when you have a DOS gui, but if you don't need it, it's more overhead. Also dosemu+freedos can work headless.
Aside: most of my interest here is classic BBS software and doors.
You can compute like a PC user in the 1980s. There are various word processors, database utilities, and programming languages available. There are even old school networking tools for newsreading, IRC, telnet, and gopher.
I remember "DOS for Dummies" (the seminal Dummies book) being helpful when I was starting out; you can probably find a used copy for the cost of shipping at this point.
To illustrate how unnecessarily complicated and slow modern computing has become? You can still perform many of the computing tasks you do today on 50GB monstrosity OSs that take 3 seconds+ to start an application from and SSD.
FWIW DR-DOS is also free, IIRC it was released as open source some years ago (i think OpenDOS is based on it) and it is a bit more compatible with MS-DOS than FreeDOS.
DOSBox is a better option, if you have any interest in playing really old DOS games (Captain Comic, Commander Keen, Descent, etc) on a modern system. As far as running FreeDOS...it's a cool exercise in preserving compatibility for historical systems, but for the average PC enthusiast....doesn't offer much beyond that.