Upgrade-a-thon in Hyper-V: Part-2 – MS-DOS 1.25

In this post we use the FreeDOS VM to run MS-DOS 1.25 and play with the system a bit.

Building the MS-DOS Disks

After the previous post, we have a fairly nicely working DOS system we can use to create old school floppy disk images. To do this, we need three things:

To start with the last item first, creating a virtual floppy disk image is easy. In an Administrator PowerShell session, just create the file:

❯ New-VFD -Path "msdos125.vfd"

This creates a file you can attach as the floppy disk image to the FreeDOS VM.

For the other files, to get them on the FreeDOS VM you can either use the now-working networking tools like curl or wget (if you installed them from the FreeDOS installer), or, as I did, go back to the ISO-creating program and create an ISO holding the IMD program and the image files. Attach the ISO and then copy the IMD program to the C: drive, as well as the image file needed (CDPDOS.IMD). Then run IMD.COM off the C: drive from where you installed it.

IMD starts with a manual/different help files, so hit ESC to get to the main menu. Go to S for Settings and use the space bar to set Sides to One and Double-step to Off. I don’t know if these settings matter with virtual floppies, but the settings must be set for the next step.

Once settings are set hit W to go to “Write disk from file”. Select the CPDDOS (no extension shown) file that you put somewhere on C:. It will then write the image to the virtual floppy drive A:, and to the vfd file created earlier in PowerShell.

Once finished, detach the image from the FreeDOS VM and attach it to the Upgrade-a-thon VM. Boot Upgrade-a-thon.

MS-DOS 1.25

MS-DOS 1.25 Initial Boot Screen (after setting date and time)

It’s interesting that MS-DOS recognises the time but not the date. Somewhere I read said this was due to the Y2K bug. After setting/confirming the date/time, we are dropped to the A: prompt. This version of MS-DOS is VERY simple.

MS-DOS 1.25 CDP OEM R2.11 File list

That’s everything it has. The Beta Changes Wiki lists what all the files are. It looks like an assembler and linker exists, and format (for floppies), but nothing for hard drives. They aren’t supported yet. There’s stuff to let you check and copy floppies, and BASIC! Let’s play with that!

BASICA in MS-DOS 1.25

This drops you into a full-screen editor with some convenience function keys listed at the bottom. Notice it capitalises everything (besides strings) depending on what you input. It works like you’d expect BASIC to. Typing system will get you back to A:.

CHKDSK Output

CHKDSK shows what you expect as well, but notice it doesn’t list how many folders there are. This is because MS-DOS 1.25 doesn’t support folders yet!

EDLIN is an old line-based editor for text files. It lets you create text files (saving them to the A: drive). To verify, I made my small BAS file then loaded it/ran it in BASICA.

EIC.BAS exists on the disk.

BASICA loading and running the file.

Final Thoughts

Getting MS-DOS, the earliest MS-DOS I can get my hands on, running on a Hyper-V VM in 2022 isn’t actually too difficult. It’s a bit fiddly but not too bad, as long as you can get a second VM going to write disk images. I imagine I’ll have to do this for quite a few versions.

I’d love to get a second floppy drive going so I could format B: and copy my file to it/etc, but I don’t see how to add a second floppy drive to Hyper-V. I am going to keep investigating this though, and maybe do all that in the next post, MS-DOS 2.x.

This DOS is, as expected, pretty simple (no folder support is wild to me). It’s a cool glimpse into the past though. The few utils they include all seem to work well. It was fun to play with!