Wednesday, May 27, 2020

Using FreeDOS - listening to music

We include lots of different programs in FreeDOS so you can use FreeDOS the way you want. It's not always about games and office programs; you can relax by listening to music. So in this post, I'd like to share two programs that let you play music from FreeDOS.

  • OpenCP is a music file player for Linux, Unix, DOS and Windows
  • MPlayer is a movie player that also plays music files

You can find both of these in the FreeDOS distribution. I'm using FreeDOS 1.3RC2 to do my demo video:

A few notes about the sample audio files I used in this video:

In 1994, pretty much everyone disagreed about how to pronounce "Linux." Some people pronounced it "lih-nucks" and others (like me) pronounced it "lie-nucks" and some pronounced it "lih-nooks." Linus Torvalds decided to put the debate to rest, and included an AU file in the kernel source about how he pronounces "Linux."

In 1999, a friend convinced me to record a similar WAV file of me pronouncing "FreeDOS," as a joke. I grabbed a microphone and recorded a WAV, and put it on our file archive at ibiblio. You can find it in files/util/sillysounds. We also have a copy of Linus's AU files.
I like to listen to audiobooks, and I'm a huge fan of classic Doctor Who. Big Finish Productions makes great audio stories about classic and new Doctor Who (and a bunch of other stuff too). Most of their productions are full-cast stories, usually with the original cast, but they do standard audiobooks too. You can buy their stories on CD or as unencumbered MP3 files - and that's great, because you can play MP3 using open source software.

That's not an ad for Big Finish, and no one paid me to mention them here or in the video. I just happen to like them, and I buy a lot of their stuff.

Flashpoint is an audiobook from the 8th Doctor series, read by Sheridan Smith (who also plays the assistant, Lucie Miller). It's a fairly short audiobook, so the MP3 file wasn't very big. That's the file I grabbed for this demo.

I only play a small sample of the MP3 file for this demo, so I don't think anyone will mind.

Monday, May 25, 2020

Let's play - Quake

DOS had a lot of great games, and a number of these were milestone games that defined "DOS gaming" in the 1980s and 1990s. Wolfenstein 3D by id Software brought us a smooth first-person shooter set during WWII. DOOM improved the first-person shooter by allowing non-orthogonal walls, and floors and ceilings of different heights. And in 1996, id Software brought the next generation of first-person shooters: Quake.

Quake introduced true 3D models. Where enemies in Wolfenstein 3D and DOOM were a series of 2D sprites, enemies and objects in Quake were rendered as a series of polygons. This added to the realism of the game - although it's somewhat primitive to today's games.

A quick note on this video: I run FreeDOS in a PC emulator called QEMU. This is a great lightweight virtual machine for running FreeDOS. Normally, that's a great setup for running DOS programs and games. When I run Quake in QEMU, it runs smooth even at higher game resolutions.

But when I record my videos using OBS Studio, I'm really pushing my hardware setup. I'm sure it would be better if I used a separate system for capture - a lot of YouTubers and professionals do it that way. But I am doing everything from my desktop, and running this combo just happens to push the limits.

So I've stepped down the game resolution to the default. It's a little blockier, but the game is much smoother. I hope you don't mind.

Friday, May 22, 2020

Let's Play - Duke Nukem

In 1992, iD Software released Wolfenstein 3D, which set a new standard for DOS games. While primitive by today's standards, Wolfenstein 3D gave us the first popular first-person shooter. In 1993, DOOM set the bar again for DOS gaming. DOOM provided a first-person shooter experience that became the new standard for PC gaming.

Before DOOM and Wolfenstein 3D, sidescrollers were pretty popular. Think Super Mario Bros from the NES. And so games like 1990's Commander Keen: Invasion of the Vorticons became popular.

And a year later, Apogee Software released Duke Nukem. Set in the then-future 1997, Duke found himself opposite the eeevil Dr. Proton. Gameplay was pretty straightforward: make your way through each level to the exit door, and eventually you get an end-boss level.

Duke Nukem was a popular shareware game. You could play the first level as much as you wanted, but you had to pay a registration fee to get the rest of the game. Duke's registration fee was only $30 to get all 3 episodes mailed to you on floppy disks (each episode was a series of levels - the first episode took place in LA, the second on the Moon, the third in the future).

You may notice the game's startup screen says "Duke Nukum" instead of "Duke Nukem." That's because after the game's initial release, Apogee realized a cartoon already had a character called "Duke Nukem" so they hastily updated the name for version 2.0. Later, they realized the "Duke Nukem" name wasn't a registered trademark, so Apogee registered "Duke Nukem" and used that spelling for "Duke Nukem II" and "Duke Nukem 3D."

Wednesday, May 20, 2020

Programming in FreeDOS - using getopt_long()

In an earlier video, I showed how you can parse a command line using the getopt function. getopt makes it really easy to examine the command line and pull out options. This means your program can respond to the user in different ways, depending on the options that were passed to your program.

But getopt is limited in a few ways. It only accepts single-letter options, and each option must be set off with a hyphen (-) instead of a slash (/).

If you want to parse long DOS-style options, you need a different library. The getopt_long function is a variant of getopt that deals with these longer options, and uses a slash to start the option.

This video shows how to use getopt_long to parse a command line from a C program:

I originally produced this video as a bonus for my Patreon supporters. I have a Patreon to help me set aside time to work on FreeDOS. I've used Patreon to make YouTube videos about FreeDOS, completely update the FreeDOS website, and start updating the FreeDOS wiki. With more support, I'm planning to dedicate more time to fix bugs, port programs to FreeDOS, and write new FreeDOS programs and games.

If you'd like to support me on Patreon, click the "Become a Patron" link below. There's no obligation to support me on Patreon, but it really does help. Thanks!

Become a Patron!

Tuesday, May 19, 2020

Retiring the FreeDOS blog

Hi everyone! I've been sharing updates on the FreeDOS blog since at least 2006. (I know I have been writing here since 2006, but we had another kind of blog elsewhere before that.)

We don't get a lot of visitors here. And it would be nice to consolidate the web traffic for FreeDOS to a single place. So I'm planning to retire this FreeDOS blog from the Blogger platform.

I have a few more items queued up through the end of the month. I'll plan to retire this blog effective June 1.

However, we will still have a FreeDOS blog! Look for more updates from the FreeDOS website at including an archive of this blog. I'll share an update around June 1, as a news item on the main website.

Thanks for visiting the FreeDOS blog! And be sure to follow us at

Monday, May 18, 2020

DOS applications - Ability

This video was suggested by a fan.

You know that I love spreadsheets, and DOS word processors. My favorite spreadsheet is As-Easy-As, and my standard word processor from the 1990s was Galaxy.

Peter K suggested the Ability office suite for DOS. I'd never heard of Ability, but it turns out to be an outstanding DOS office suite. Featuring a word processor, spreadsheet, graphics, and database, Ability hits all of the marks.

In this video, I walk through the Ability Spreadsheet, and Ability Word Processor. Both are great, and provide an easy to use DOS office environment. The spreadsheet seems to be command-compatible to other DOS spreadsheets of the era, which means you need to start functions with the @ sign, such as @SUM to do a sum of a range.

Ability has released the DOS version for free, without support. You can download it from their website at Ability Plus 3.0.

I wish other software manufacturers would do this. While I prefer that these programs from their back-catalog be released as open source software, I recognize that this is not always possible. (The code may no longer exist, or there may be legal issues in opening the code.) If you can't release a DOS program as open source, I am glad that these software companies release them as free (gratis) software.

We only include open source programs in the FreeDOS distribution, so we can't include Ability in the FreeDOS distribution. But at least you can download Ability and use it on your own.

Friday, May 15, 2020

Let's play - Number Munchers

If you're of a certain age, you may remember a game on the Apple II. My class had Number Munchers, and we loved it. Number Munchers was a fun math game where you selected numbers that matched certain criteria. If the criteria was "multiples of 5" then you had to select all the numbers like 5, 10, 15, 20, and so on.

Because it was a game, we kids wanted to play it rather than do homework. And our clever teachers figured that if we finished our math homework, then we could play Number Munchers. And by playing Number Munchers, you got better at math. So it was a win-win, but we didn't realize it.

Number Munchers was eventually ported to DOS. And that means you can play it on FreeDOS:

Unfortunately, Number Munchers is not open source software. I'd love for someone to make a version of this for FreeDOS, as open source software. The game would need to use different graphics, but I think it's fair to use the same game concept (multiples of, divisible by, less than, greater than, etc)

If you want to write such a game, let me know!