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:

FREEDOS.WAV
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.
FLASHPNT.MP3
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 www.freedos.org 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 www.freedos.org
-Jim

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!

Wednesday, May 13, 2020

Let's play - Dr Mind

Dr Mind is a fun puzzle game. You may recognize it as a variation on another more popular board game, although Dr Mind has a few differences in gameplay.

In Dr Mind, the computer guesses a secret color combination, and you (the player) need to figure out the combination within 8 turns. After each guess, the computer indicates how many colors matched the correct combination, and how many of those colors are in the correct positions.


If you manage to guess the correct combination, the game rewards you by unlocking a picture.

Dr Mind is published under the CC BY-ND 4.0 license, which is roughly equivalent to "freeware with source code". You can find it at SourceForge: Dr Mind

Monday, May 11, 2020

Programming in FreeDOS - reading the command line

I wanted to do a few videos about how to do programming in FreeDOS. Since my favorite DOS programming language is C, this video is about C. You can follow along with any of our C compilers. You can install them if you do a full install, or you can run FDIMPLES and install the compilers from there.

People sometimes ask, "How can I write a program in FreeDOS that reads the command line?" And that's an important question, because FreeDOS is primarily a command line operating system. In this video, I'll go over two simple methods to parse a command line in C.


Here's the basic method:

You want to write a program that loops over the command line arguments. The arguments are stored in a vector (an array of strings) called argv in this program. The number of the arguments is passed in an integer variable called argc. You could name these something else if that's better for you, such as arguments and argcount, but here I'm using argv and argc.

In the simplest example, we'll just read the command line options:
#include <stdio.h>
#include <stdlib.h>

int
main (int argc, char **argv)
{
  int i;

  for (i = 1; i < argc; i++)
    {
      printf ("%d: %s\n", i, argv[i]);
    }

  exit (0);
}
If you wanted to parse the command line for any options passed to your program, you would need to examine each argument in turn and evaluate it for a possible option.

Because parsing the command line is a common thing, you might not be surprised that there's a library to do that for you. getopt does the hard work of looking for options. You need to pass it the argument count argc and the argument vector argv, and a list of valid options that your program would accept. getopt returns any options it finds from that list. When it's done finding options, it returns a special code and sets optind to the next index in argv that doesn't contain an option (usually the start of a file list or other things you might put on a command line).

Modifying the above sample code:
#include <stdio.h>
#include <stdlib.h>
#include <getopt.h>

int
main (int argc, char **argv)
{
  int i;

  while ( (i = getopt(argc, argv, "hHQq") ) != EOF )
    {
      switch (i)
 {
 case 'h':
 case 'H':
   puts("HELLO");
   break;

 case 'q':
 case 'Q':
   puts("QUICK");
   break

 default:
     puts("unknown command line option");
 }
    }

  for (i = optind; i < argc; i++)
    {
      printf ("%d: %s\n", i, argv[i]);
    }

  exit (0);
}
Note the switch statement inside the while block. That evaluates the return value from getopt. At each pass, getopt returns a command line option. If it's q or Q, then the program prints QUICK. If it's h or H, the program prints HELLO.

getopt is a standard Unix C library. Unix is case sensitive everywhere, including its command line options. But DOS is usually case insensitive, so here we had to define h and H (and q and Q) to do the same behavior, to make the command line options case insensitive.

Also note that getopt acts like a standard Unix command line parser, so these command line options are set off with a hyphen. For example, use -q or -Q to print QUICK. On a typical DOS program, you would use the slash as the option character, so /s or /S.

Friday, May 8, 2020

DOS games - Ford driving simulator

In the 1980s, if you couldn't visit your car dealer, how would you look at the new models and decide to buy a car? Not everyone had a local dealer. Ford decided they didn't want to limit customers that couldn't visit in person, so some forward-thinking person at Ford decided to create a driving simulator that let you try out different Ford models.

It was a great idea, especially for the time. Run the program, and you could select a car from the list, and drive it around on a virtual track. While not perfect, this gave you an idea of the car you were looking to buy. And you could dig further into statistics, and run cost scenarios to see what options you might include and what overall car you could afford.


Today, you'd do all of that from a website. And certainly many car manufacturers do exactly that. But in the 1980s, "websites" didn't exist yet. The only way to get that experience out there was to create a program and pass it around on a floppy disk.

I don't remember if you had to buy the demo floppy, or if Ford gave it away for free. But I do remember that my dad brought home the Ford driving simulator. My brother and I played it like a game. Since this was before sound cards, the simulator sounds came from the tinny internal PC speaker. The graphics weren't great, only 4-color CGA, but it was enough to play a game.

Wednesday, May 6, 2020

Using FreeDOS - oZone GUI

FreeDOS is primarily a text-based command line interface. That means you type commands at a prompt, and FreeDOS runs those commands. Just like classic DOS.

But since PCs had graphics, people have created graphical user interfaces (GUIs) for DOS. Actually, Windows started as a graphical interface for MS-DOS.

FreeDOS includes a few GUIs, as well. You can find OpenGEM, oZone, and SEAL in FreeDOS - if you don't have them installed already, you can install them by running FDIMPLES and selecting the packages.

I wanted to show off one of the GUIs here. Let's take a look at oZone:

oZone has a very familiar look and feel. You may find the interface feels quite modern. Kudos to the developers who worked on oZone and created a very polished interface.

My video is a little squished here, sorry about that. I'm not sure what happened, but that's a problem on my end. I have my video system set up to record in 4:3 aspect ratio, but this looks to be a little narrower than that.

Monday, May 4, 2020

Using FreeDOS - BW-BASIC

I grew up in the 1970s and 1980s. Like many of my generation, our first home computer was an Apple II. Actually, ours was an early Apple clone, called the Franklin ACE 1000, but it was the same as an Apple II.

The Apple was a great home machine. The Apple included a BASIC interpreter, so you could write your own programs. This made the Apple II a popular system for all home hobbyists, and in schools. What a great platform to learn programming.

My brother and I taught ourselves how to program in AppleSoft BASIC. Our parents bought a few books about BASIC, and we went over them in great detail. My first games were simple math puzzles and quizzes, although I had plans to write a multi-function calculator so I could "cheat" on my math homework. But as it turns out, you need to learn a lot about math before you can write a calculator from scratch in BASIC - so by the time I was ready to write a calculator, I didn't need it.

But I wrote a lot of games in BASIC. As a hobby, I also created versions of computer programs that I saw in movies and on TV. If a TV program or movie included a computer display, I tried to make my own version. My favorite program was a version of global thermonuclear war, from WarGames (1983 movie). My version let you choose a few targets, then it would launch the missiles and tally a score.

We also had a floppy disk with some other BASIC games on it. I enjoyed the Lemonade Stand game, which is basically a finance simulation. You run a neighborhood lemonade stand, and you need to figure out how many glasses of lemonade to make every day, and at what cost, and the game figures out how many people bought your lemonade. The game included random weather.

I also played another game, which was a kind of simulation. You were the leader of a tiny ancient empire, and you had to decide how much to feed your people and how many crops to plant. It was an exercise to figure out the optimum balance of how much to keep aside for food versus how many acres you could plant.

BASIC was a great introduction to computer programming. I later learned other programming languages, but BASIC was my first language. Despite it being such a simple language compared to something like C, 12-year-old me really enjoyed writing BASIC programs on the Apple.

Later, our family upgraded to an IBM PC, and I learned BASICA and GW-BASIC - and much later, QBASIC. I wasn't a huge fan of BASICA and GW-BASIC, but I really loved QBASIC. It was a very nice BASIC programming environment. QBASIC saw me through much of university until I learned other programming languages.

When we first put together FreeDOS, I felt that FreeDOS needed a BASIC programming environment. I wanted parity with MS-DOS. The Bywater BASIC ("BW-BASIC") interpreter is a very nice BASIC programming environment that reminds me a lot of programming on the Apple:


In this video, I walk through an introduction to programming in BW-BASIC. And I introduce a set of sample BASIC programs that I wrote long ago. GUESS.BAS is a simple "guess the number" game. LEMON.BAS is a spin on the classic lemonade stand game. And TAZ.BAS is my own take on the "ruler of a tiny kingdom" game.

You can find these sample BASIC games on ibiblio:
http://www.ibiblio.org/pub/micro/pc-stuff/freedos/files/devel/basic/basprg/

Friday, May 1, 2020

Using FreeDOS - Freemacs

You probably know the history that before I started FreeDOS, I was a longtime DOS user. When I went to university in 1990, I quickly discovered the Unix systems in our campus computer labs. I wasn't a Computer Science student (I was in Physics) but since I had an interest in computer programming, I was often in the labs anyway.

Like many university computer labs at the time, our sysop had installed GNU Emacs. I thought Emacs was really neat, and I quickly made Emacs my default editor on the Sun network.

In 1993, I discovered Linux, and I installed SLS Linux as dual-boot with MS-DOS on my '386 PC. I typically booted into Linux to do any computer programming, and booted into DOS to use my word processor to write class papers, or my spreadsheet to analyze my physics lab data. I had a DOS compiler too, so I would also do programming on DOS. But I found I missed the features of GNU Emacs when I used the standard MS-DOS Edit program.

So I installed Freemacs. Written by Russ Nelson, Freemacs is a free emacs-like editor for DOS. There have been other emacs-like editors for DOS, and they all have their differences. Freemacs tries very hard to be as close to GNU Emacs as possible.


The difference is in the details. GNU Emacs uses a variant of LISP as its extension language. Actually, you can view GNU Emacs as a giant LISP machine that happens to have an editor in it. (And I say that out of love, and as a current GNU Emacs user.) Every function and feature in GNU Emacs is defined by elisp code.

But you cannot fit a LISP system like this in a DOS program. You don't have the memory. So instead, Freemacs uses a different extension language called MINT. MINT is a macro language that looks very similar to TRAC. That's how MINT got it's name; MINT = MINT Is Not TRAC.

And a bit of trivia:
When I started the FreeDOS Project in 1994, I gathered a bunch of existing open source programming tools and DOS utilities and fit them into FreeDOS. Since I was a longtime fan of GNU Emacs, and loved using Freemacs on DOS, I naturally included Freemacs. So Freemacs has been part of FreeDOS since the beginning.

I took over the role of maintaining Freemacs when Russ decided he didn't have time to work on it anymore. But as it turns out, I didn't need to make any changes so this version (1.6G) is unchanged from those early days.

Like other programs that we include in FreeDOS, you can also download Freemacs from our FreeDOS Files archive at ibiblio. You can find Freemacs under /freedos/files/edit/emacs.

Wednesday, April 29, 2020

The Golden Flute IV: The Flute of Immortality

In 1994, a 12-year-old Rick Brewster made the DOS game The Golden Flute IV: The Flute of Immortality. This was a role-playing game that he learned to make from a 1984 instructional book on how to write adventure games. The game recently reappeared, and since it's a DOS game, I wanted to share it with you.


Let's remember that the game was coded by a 12-year-old, so don't expect outstanding art or special effects. Rick re-used some sounds from another program, but coded his own turn-based dungeon crawler.

I'm really impressed that 12-year-old Rick thought to randomly generate the map, so the game is different every time you play it. Great job!

Rick says you basically need to wander around the map fighting random encounters with various enemies, until you eventually discover the golden flute. It is all random encounters, but that's part of what makes the game fun to play.

You can download The Golden Flute IV or play it in your browser, at the Internet Archive: The Golden Flute IV

Monday, April 27, 2020

Compiling with GCC

FreeDOS includes several compilers to help you create your own DOS programs. If you're a C programmer, you might be interested in Bruce's C compiler, or the OpenWatcom C compiler, or the GNU GCC compiler. We actually have two versions of GCC in FreeDOS 1.3RC2: the DJGPP compiler, and the IA-16 version of GCC.

Let's look at how to compile C programs using GCC IA-16. This is a DJGPP/MS-DOS-hosted (32-bit x86) port of the GNU C and C++ compiler toolchain to the IA-16 target (16-bit Intel x86), by Rask Ingemann Lambertsen, Andrew Jenner, TKChia, and various contributors.


You can download GCC IA-16 here: DJGPP packages for GCC IA-16 toolchain. This is an excellent compiler! I used to use OpenWatcom for all my FreeDOS compiling, but I'm starting to use GCC IA-16 more and more. Thanks!

Friday, April 24, 2020

Freedoom on FreeDOS

Arguably, the most well-known DOS game is DOOM. In this first-person shooter, you play as a space marine fighting back against a demon invasion from Hell. I lost countless hours playing DOOM when it came out.

In 1997, iD software released the source code to the original DOS DOOM under a not-for-profit license. And in 1999, iD released the source code under the GNU General Public License (GNU GPL). With that, developers and modders began to create a new version of DOOM.

The result is Freedoom. It's a completely different game than DOOM, but with the same basic premise. And do you really need story anyway? Run around, shoot things, blow things up. That basic formula can make for a great first-person shooter.


In the video, I make a mistake by calling this game "BOOM" but the game is actually Freedoom. From to a comment by the Freedoom team: Boom is a source port of the Doom engine; these are merely based on the engine's source code and does not constitute a game in of itself. They are typically played with the original Doom games (Boom came out when those were the only games that ran on it, too).

The sound levels aren't quite right in this video, so you may have difficulty hearing the game sounds.

Wednesday, April 22, 2020

Games in FreeDOS

FreeDOS hasn't always included games. I'll admit that I've been the roadblock on this one. All throughout the FreeDOS history, developers have contributed new programs and utilities to make FreeDOS even better. At first, these were open source replacements for MS-DOS functionality - as you'd expect. Over time, people began contributing new commands and utilities to let FreeDOS do things that MS-DOS couldn't. That is when FreeDOS really became a modern DOS.

With that change, people also wanted to contribute games. DOS has always had a great library of professional games - while MS-DOS was king of the office throughout the 1980s and into the 1990s, lots of publishers enjoyed great success in making games for DOS. We've highlighted a few of them here.

So maybe it wasn't too surprising that people wanted to see games included in FreeDOS. After all, if FreeDOS was to be a free and open source implementation of DOS, and DOS had lots of games, then shouldn't FreeDOS have free and open source games to go with it?

We started to include games in the FreeDOS distributions. You can find a great selection of games in the FreeDOS 1.2 distribution, and in the upcoming FreeDOS 1.3 distribution. But games are not "core" like other parts of FreeDOS. It's possible that we might remove a game that was in FreeDOS 1.2 when we release the FreeDOS 1.3 Final, or maybe we'll add a new game.

Let's take a moment to look at two great games you can find in FreeDOS today:

The Flappy Bird game is very similar to the Flappy Bird game you probably played on mobile devices. This game is simple, yet challenging. Tap the space bar to make the bird "flap" and gain a little bit of altitude. You need to flap just right to navigate your bird through the pipe gates.

We also have a version of the classic Tetris game called vitetris. Just like the now-familiar game, you need to rotate the shapes before they fall to the bottom of the screen. Complete a row to make it disappear and make more room.

You can install both of these games using the FDIMPLES package manager. The FDIMPLES program should be installed by default on FreeDOS 1.3RC2, and with the FreeDOS 1.2 "Full" distribution. (Not installed as part of FreeDOS 1.2 "Lite," sorry.)

Monday, April 20, 2020

Elvis - vi text editor for DOS

If you come to FreeDOS from Linux, you may find several of our commands and programs somewhat familiar. I've previously discussed FreeDOS for Linux users, where I explored a few command equivalents (TYPE for cat, and CD for cd, and DIR for ls). But we have other Linux-like programs too.

Arguably the most ubiquitous editor on Unix and Linux is vi, originally by Bill Joy (of Sun Microsystems fame). vi is a visual editor, hence "vi." But vi is operates in modes. You are either in command mode or edit mode. This is different from most DOS editors that are mode-less, where you are always in edit mode unless you activate a menu.

The vi editor has been ported to FreeDOS as elvis. The editor should be very familiar to any Linux users:

Note that elvis isn't as fully featured as vim, the common implementation of vi on Linux. But elvis provides a faithful vi editor for anyone who wants that environment on FreeDOS.

A quick hint for those of you new to vi:

To enter edit mode, you need to hit a key letter that starts editing. For example, i to start inserting text where you are, or I to start inserting new text at the start of the line.

To save, you need to exit edit mode by tapping the Esc key. Then give the command :w to write the file back to disk. To quit, tap the Esc key (if you are in edit mode) and give the command :q

Saturday, April 18, 2020

Learning how to write FreeDOS programs - new "how-to" video series!

Long post, so I'll summarize: the videos will be free and posted weekly for everyone to watch.

But because it's going to be a lot of work for me, I'll set up a Patreon tier to support it. I'm rewarding the patrons with a few extras.

Afterwards, I'll turn that into a "teach yourself C programming" book.

I asked on Twitter, on Facebook, and on Patreon about what you'd think of a new "how-to" video series about programming in C - and the response has been very positive. Thanks!

So I wanted to share an update on the new video series that I'm planning to release on the FreeDOS channel at YouTube, and on my Patreon:

I'm currently working on the "course" design for the video series (what to cover in each video, etc). I'm not sure what I'll name the video series - maybe "learning C" or "how to write programs for FreeDOS in C" or "introduction to C programming." I'm still working on the name.

Videos will get posted once per week. These will be available to Patreon supporters first, then will go public for everyone.

I'll continue posting the other FreeDOS videos about FreeDOS programs, other DOS programs, and DOS games - so maybe I'll keep posting the "usual" FreeDOS videos over the weekend, and post the "C programming" videos mid-week.

Throughout the video series, we'll learn how to write programs in C. At first, these will be pretty simple programs so you can see how things work. Later, I'll use the videos to show how you can write simple versions of FreeDOS programs like ECHO, PAUSE, CHOICE, TYPE, COPY, FIND, and MORE. And probably others like DATE, TIME, CLS, and DIR. By the end, I think we'll write a text-mode turn-based game.

Similar to how I am now writing new posts for the FreeDOS Blog about each of our FreeDOS videos, I am planning to write supporting text or "essays" about the "C programming" videos. These will mostly be extra commentary about the video content, and code that I wrote in the videos that you can copy/paste into your own editor. If I need to do a deep-dive on something that didn't really fit for the video, I'll do that in the essays. Also could include other information and "corner cases" that were too specific to make it into the videos.

I'll eventually copy the essays into the FreeDOS Wiki for everyone to see - but while the video series is running, I'll make them visible only to Patreon supporters. I'll need better formatting options than the Patreon editor gives me, so I might create these essays as web pages on the FreeDOS website, and share a protected URL on Patreon.

When I've finished the video series, I'll collect everything into a book, and make it available for purchase via Lulu.

Because this is a new "how-to" video series about a specific topic, I'm thinking about creating a new Patreon level to support it. The new tier (probably $40/month - that's only $10/week) will get these extra benefits:
  • Early access to the "C programming" videos
  • Exclusive access to the "C programming" essays, with more detail and information that didn't make it into the videos
  • A weekly Patreon forum to ask questions about that week's "C programming" topics (if you are following along with the videos and need help, this is the place to ask)
  • After the video series is done, these patrons can purchase the "C programming" book at cost (probably $3 to $5, depending) - that's a big savings from the general cover price for the finished book, which will probably be around $20

The goal is that everyone who wants to learn C to write FreeDOS programs can do that by watching the videos - but to get extra material to help you, you can join at the higher level.

Friday, April 17, 2020

Galaxy word processor

The most popular DOS word processor in the 1980s was probably WordPerfect. This was an extremely powerful word processor with a deceptively simple user interface. You were basically presented with a blank screen to type your document. There was no "menu" interface per-se, but you accessed all the word processor functions using the function keys on your keyboard. Each function key had different variations, like F3 (Help), Shift-F4 (Indent), Alt-F5 (Mark Text), or Ctrl-F6 (Tabs).

WordPerfect was great, once you got past the steep learning curve. But those features came at a price; WordPerfect was was $300+ per copy, or $200 for a student edition.

So when I was at university and needed to upgrade my copy of WordPerfect, I looked for less expensive options. I had already started to explore shareware, where you got to try a version of the program (usually for a certain amount of time) and if you liked it, you needed to register it. Shareware was typically less expensive than most "off the shelf" software like WordPerfect.

And that's how I found great programs like As-Easy-As (shareware spreadsheet from TRIUS Inc). I also discovered a powerful word processor called Galaxy. At $95, Galaxy was much less expensive than WordPerfect. It was also much easier to use, with a more traditional menu.

Let's take a look at using Galaxy:

Even today, Galaxy stands up well as a distraction-free word processor. If you're looking for something to make your writing easier, try out Galaxy.

I don't know how to register Galaxy anymore; as far as I know, the company no longer exists. You can find copies of Galaxy on various DOS shareware archives.

Wednesday, April 15, 2020

DOS games - Dark Forces

I have been a huge Star Wars fan since I saw the original in the theaters in 1977. After Return of the Jedi in 1983, it seemed we wouldn't see more installments of the franchise.

As a big fan, you can imagine my excitement at the release of Dark Forces in 1995. More than just another first-person shooter like DOOM, Dark Forces had an actual story attached to it. And even better, you got to experience the Star Wars universe first-hand.

Let's play the demo, which is the first level from the game:

The music, the effects - it's all awesome to me! I loved picking up the E11 blaster one more time, and taking down stormtroopers.

The general story of Dark Forces is you are Kyle Katarn, a former stormtrooper who left the Empire to go independent. You team up with the Rebels and fight your way into a base to capture the Death Star plans. (A note about the Death Star plans - there's a common saying that if everyone who stole the Death Star plans from the Star Wars Expanded Universe got together for a party, you'd need a huge banquet hall to hold everyone. There are a lot of stories about who stole the Death Star plans. This is one of them.)

Throughout the rest of the game, you are following up on other missions issued to you by Mon Mothma and the Rebels. The overall story is the Empire has a new weapon project called Dark Trooper, a new kind of unstoppable stormtrooper. You jump from planet to planet to learn more about them, and along the way blast through innumerable stormtroopers, guards, bounty hunters, and even Dark Troopers.

It's a great game!

Monday, April 13, 2020

DOS games - Blood episode 1

DOS was known for a lot of great games. The most popular DOS game was probably DOOM, and due to its popularity, many other game companies spawned other first-person shooter games.

Blood was one of those other first-person shooter games. Blood was developed by Monolith and distributed by GT Interactive. And when it came out in 1997, I spent a fair amount of time in it.

As you might guess from the name, Blood was a very violent game. I think there was a general trend of each first-person shooter trying to "out-do" each other in terms of gore. There's a lot of that in Blood. If you are sensitive to that content, you may want to avoid this video:


I apologize for the audio quality on this one. I didn't have my levels set correctly. So it's a little hard to hear me in some parts.

Thursday, April 9, 2020

Using FreeDOS - BAT files

FreeDOS is primarily a command line interface. You type all your commands on the command line, and FreeDOS executes them. Most of the time, you probably use the command line to change to a different working directory (CD) and then run an application or game.

But sometimes it is helpful to stack up several frequently-used commands, to avoid typing them all the time. This is called a "batch" of commands—and not surprisingly, you put these into a "batch file." Batch files always have a BAT extension.

Let's look at a few examples of writing batch files:


You can use batch files for many things. I often use them as shortcuts for a group of commands, such as defining something in my DOS environment before I run a certain program or game.

Batch files are so important in DOS that the startup of FreeDOS is controlled in part by a special batch file called AUTOEXEC.BAT. The FreeDOS kernel reads a different file called CONFIG.SYS to define how the kernel should be configured. When the kernel is finished with that, it starts the command line shell (usually FreeCOM, or COMMAND.COM). The shell reads AUTOEXEC.BAT to set up its own environment. You can view or edit CONFIG.SYS and AUTOEXEC.BAT using your favorite editor.

Tuesday, April 7, 2020

The FED editor

We include a wide selection of programming tools in the FreeDOS distribution. FreeDOS is made possible by everyone being empowered to be a co-developer, and we encourage you to create and share your own programs that run on FreeDOS.

I'll cover the compilers in another video, but today I wanted to share an editor that programmers may find interesting:

FED is a folding editor. "Folding" means that you can hide or "fold" sections of a file, so you can focus on the rest of it. That's a great feature for programmers. You might fold loops that you know work, so you can see more of the code around it.

Here is a demo of using FED to write some sample C code:

FED is also very configurable. For example, if you don't like the standard "black text on a white background," you can change that. You can also set the color for keywords, numbers, values, folds, and other things. In the demo video, I changed every code in FED, to use white text on a blue background.

FED is included as part of the FreeDOS distribution. You can install it by running FDIMPLES and selecting FED from the Editors package group.

Thursday, April 2, 2020

DOS spreadsheets - building a work plan

I love spreadsheets and the myriad things you can do with them. Spreadsheets are excellent at crunching numbers. When you're presented with a problem that requires updating numbers as you go, there's no better tool than a spreadsheet.

Let's apply spreadsheets to a staple of project management: the work plan. I like to plan ahead by three months at a time (a business quarter). I used work plans in previous organizations when I needed to plan staff time across multiple projects. And I teach work planning as part of the IT Management training program that I offer as part of my consulting practice.

The DOS spreadsheet As-Easy-As is my favorite DOS spreadsheet. So in this video, let's walk through how to create a work plan in As-Easy-As:


The concept of building a work plan is this:

1. Create a list of projects you plan to work on
These tasks should not be so small that they are individual work items, nor so large that they are "projects." For example: building a new website involves identifying the message and content, crafting the design, generate the artwork, and create the web pages. Each of those might take multiple days or a few weeks to complete, so you would list each as a task on the work plan.

Don't forget about non-project items, as well. How many meetings do you attend in a given week? Do you plan to take advantage of holidays or vacation time? I like to track those at the bottom of the work plan.
2. Build a list of weeks for the next quarter
I like to have my weeks start on a Monday. That seems to be how most people think. For example: someone might say "Let's meet the week of March 30" and most people understand that to be "anytime from Monday, March 30 to Friday, April 3." That makes for a good standard in a work plan.
3. Estimate the time per week for each task
My rule is that time should be no shorter than half a day per week. It's tempting to write down a task that you know will take an hour; maybe you can plan for that short of a time in the first week or two of a quarter, but by week ten, you can't make the estimate that precise. Enter your times in units of 0.5 (half a day in a week). Note that there are five working days in a standard work week, so your time estimates should not be above 5.0.
As you enter the time for each task in each week, keep track of the total for each week, also at the bottom of the work plan. The @SUM function will do this for you, calculating the sum of a range (the cells above it).

Once you enter your estimates, look more closely at the sum for each week. Most organizations plan for a five-day work week, so make sure your weekly totals are exactly 5.0. The need to adjust time is most obvious when you take vacation or holidays, but you'll need to adjust time for most weeks to accommodate multiple projects.

Spreadsheets do all the calculations for you, and As-Easy-As handles the work easily.

If you're interested in the As-Easy-As spreadsheet, TRIUS Inc. has released As-Easy-As 5.7 for free (gratis). You can find it on the TRIUS website: AS-EASY-AS for DOS - Free!

Tuesday, March 31, 2020

Using FreeDOS - Getting sound to work

DOS doesn't support "drivers" in the same way that other operating systems do. For example, on Windows, if you install a new sound card on your system, you usually need to install a software driver to make it work. Once you do that, all other Windows programs and games will be able to use sound.

That's because Windows and other operating systems like Linux and Mac use some level of hardware abstraction to separate the programs from the hardware. On modern systems, games talk to the sound driver and the driver talks to the sound card. With that model, it's much easier to write games without having to worry (too much) about what hardware the user is running.

But DOS predated that concept. On DOS, programs and games talked directly to the hardware. That means when you install a new game, you probably have to configure it to talk to your sound card. The most popular sound card at the time was the SoundBlaster card. And the most popular SoundBlaster model was the SoundBlaster-16. There were a few other sound card manufacturers out there, and some provided their own ways for software to send sound events to the sound card. But it was common for other sound cards to adopt compatibility with SB16.

All of this means that when you install a game on FreeDOS, you'll need to configure the sound yourself. Because FreeDOS is just DOS, and DOS programs and games talked to the sound hardware directly, we can't provide "emulation" of a sound card.

There are a few tricks to getting sound to work. Here's a quick demo using DOOM, the popular first person shooter:



Many people use a PC emulator to run FreeDOS these days. This is a very safe way to run FreeDOS, and we recommend it. To get sound to work in your DOS games, you'll need to make sure your PC emulator or virtual machine is providing a virtual sound card that DOS supports. Look for SoundBlaster-16 for a sound card, and AdLib for digital music. That's the most common configuration from the 1990s.

Once you've set up your PC emulator, you will need to know the parameters for DOS applications to communicate directly to the sound hardware. The values you need to know are: DMA, IRQ, and I/O.

Direct Memory Access (D)
Usually has a value of 1 or 5

Interrupt Request (I)
Usually has a value of 5

I/O Address (A)
Usually has an address of 0x220 or 0x240.

You can set this in a DOS environment variable called BLASTER, to help most DOS games look up the sound card values. We set a value for you as part of the default FreeDOS install, so you should see this value on your FreeDOS 1.2 or 1.3RC system:
BLASTER=A220 I5 D1 H5 P330

With that value set, most PC emulators should "just work," provided you have defined a SoundBlaster-16 or compatible sound card.

Thursday, March 26, 2020

DOS applications - As-Easy-As

DOS was king of the office, and what's more "office" than a spreadsheet? My favorite spreadsheet on DOS was the As-Easy-As spreadsheet, by TRIUS Software. As-Easy-As was a shareware program; you could download it, and try it before you bought it.

Registration for shareware programs was usually pretty expensive, typically less than $100. And when most commercial software like Lotus 1-2-3 could cost $300 to $500, depending on the application, that's a pretty good deal!

As-Easy-As provided a similar look and feel to Lotus 1-2-3. The 1-2-3 spreadsheet dominated the DOS office environment. So it was important for As-Easy-As to work just like Lotus 1-2-3, and be as easy as 1-2-3 to use. (Do you see what I did there?)


In this video demonstration, I show how to use As-Easy-As spreadsheet to calculate your grade in a class. I did this all the time when I was an undergraduate student. The spreadsheet helped me stay organized, and track my progress throughout the semester. Today, your course management software will track and report your progress for you. In the 1980s and 1990s, you had to calculate your progress yourself.

Note how As-Easy-As uses a different way to to start calculations. If you want to make a reference to another cell, you have to use notation like +A2+1 to add 1 to the value in A2. The + makes it look like a calculation, so A2 is correctly interpreted as a cell reference and not as plain text. This was common across all DOS spreadsheets at the time. Today's spreadsheets use the equal sign to denote calculations, so you would use =A2+1 instead.

Also note that As-Easy-As uses the @ sign to indicate functions. This was also common in all DOS spreadsheets. To calculate a sum over a range from B1 to B15, you enter @SUM(B1..B15). But modern spreadsheets are able to understand function names, so you do not use the @ sign today.

You can download As-Easy-As for free! Thanks to TRIUS for providing the DOS version of As-Easy-As at no cost. This is technically freeware, not open source software. You can find the download and the free activation code on the TRIUS As-Easy-As forum.

Tuesday, March 24, 2020

Navigating FreeDOS - FreeDOS for Linux users

If you've come to FreeDOS via Linux, you may be slightly confused about some of the commands in FreeDOS. In this quick guide, I'll provide a few "translations" to help Linux users quickly adapt to FreeDOS.


On Linux, you use the ls command to display a list of files in a directory. To get details of each file in the list, you use the ls -l command, where -l provides a long version of the output.

On FreeDOS, use the DIR command. That's very similar to ls -l. To get something similar to the plain ls command, give DIR a few options to put it into "bare" mode (/B) with lowercase letters (/L) using a wide display (/W). By default, DIR does not sort the output, so you'll need to instruct DIR to order the output (/O…) by grouping directories first (G) then sorting by base filename (N) and extension (E).
DIR /OGNE /B /W /L

And we can create an alias for this using the built-in FreeDOS ALIAS command:
ALIAS LS=DIR /OGNE /B /W /L

On Linux, to change to new directories and paths, you use the cd command. It's the same under FreeDOS.

On Linux, you use mkdir and rmdir to create and delete directories. These commands also exist on FreeDOS.

On Linux, to display a file, you use cat. On FreeDOS, you need to use a different command, TYPE. The usage is basically the same:
TYPE filename.txt

(Note that Linux Bash has a completely different type command.)

On Linux, you can send the output of cat into more or less to display the contents one screenful at a time. The same idea exists under FreeDOS. You can use the vertical bar as a "pipe" to different commands.
TYPE filename.txt | MORE

And you can direct output into a file using the greater-than symbol, the same as on Linux:
TYPE filename.txt > newfile.txt

I hope this helps our Linux users get started on FreeDOS.

Thursday, March 19, 2020

Comments are turned off

Sorry, but I've had to turn off comments for the FreeDOS blog. Every day, I spend a ton of time just deleting spam comments.

If you'd like to contribute to the conversation about FreeDOS, I encourage you to subscribe to our FreeDOS email lists, or join us on Facebook.

Using FreeDOS - FDIMPLES

So you've installed FreeDOS, but you don't see the program that you need. How can you install programs on FreeDOS?

There are actually two ways to install programs on FreeDOS.

1. Install it manually

This is usually pretty straightforward, because unlike on some other operating systems, DOS programs are statically linked. That means you can just install that program and everything should be fine - in almost all cases. There are very few instances where one program depends on another. But for most programs and games, you can just install it and you're off.

Once you find the program and download it, you usually just need to extract the archive. Most programs are distributed as zip files, so you just need to unzip the program. Look for the EXE or COM program inside that.

Larger DOS programs and many games require an "Install" process. Look for an INSTALL.EXE or a SETUP.EXE program to run. This should be a simple process of following the prompts.

2. Install it as a package

FreeDOS includes lots of programs and games in the FreeDOS distribution. Each program is contained in a package. Starting with FreeDOS 1.2, we include other "extras" on the install CD. These extras are not installed as part of the regular FreeDOS installation—otherwise, that would be way too big. Instead, you need to install these programs after installing FreeDOS.

FreeDOS 1.2 (and the upcoming FreeDOS 1.3) uses a package manager program called FreeDOS Installer—My Package List Editor Software. Or FDIMPLES for short.

And here's how to use FDIMPLES to install these extra packages:

Tuesday, March 17, 2020

DOS programming - ECHO and TYPE

If you're new to programming, this how-to video is for you. Let's explore how to write some simple FreeDOS utilities, using C.

I think the easiest programs to demonstrate are ECHO and TYPE.


In the video, I walk through how to write a simple ECHO command, which is a great first example when you're learning to write C prorgams. The ECHO command just prints the command line arguments it was given (it echoes them back to the user). In FreeDOS, ECHO is an internal command, so it's part of the COMMAND.COM shell. But for this programming example, we'll write our own version of ECHO as an external command (a standalone EXE or COM program).

Every C program starts with a few lines to include parts of the C library:
#include <stdio.h>
#include <stdlib.h>

The stdio.h file contains definitions for functions that do input or output (called "I/O"). The stdlib.h file contains definitions for other parts of the C standard library of functions (hence "lib" is short for "library").

Now let's write a program to perform the ECHO command. In C, the main part of the program is the main function.
#include <stdio.h>
#include <stdlib.h>

int
main (int argc, char **argv)
{
  int i;
  
  for (i = 1; i < argc; i++)
  {

    printf ("%s ", argv[i]);
  }
  
  putchar ('\n');
  
  exit (0);
}

A few things in that example:

The command line is represented as argc and argv. The argc value is the argument count. This tells the program how many arguments came to the program. And argv is the argument vector that contains a list of strings on the command line. A string would be defined as char *, because char * defines a pointer to a string value. But since this is a list of strings, you need another * to indicate the pointer to the list. That's why you get char ** instead of just char *. Some older programs might instead use char *argv[].

The for loop runs through all arguments starting at position 1. That's because the "0th" entry in argv is actually the program's name. We want to print all arguments after the program's name, so we start at position 1.

The i++ is shorthand to increment by 1. You could have instead written i=i+1 and that would have been fine here. But I learned it as i++, so that's how I write it. On a similar note, i-- is similar to i=i-1. If you use the ++ and -- notation, note that ++i and i++ are subtly different.

The printf() function is a formatted print statement. The quoted string as its first argument is the format that printf() uses. Here, %s means to print a string. You can also use %d to print an integer (decimal, as opposed to some other number format like binary).

End the program with exit() or return(). You can use return() to exit the main() function, but I learned C in an earlier standard, so I prefer to exit the program using exit(). In the main() function, both do the same thing.

Thursday, March 12, 2020

Navigating FreeDOS - EDIT

The text editor is probably one of the most useful parts of any operating system. In FreeDOS, the default text editor is the FreeDOS EDIT program.

FreeDOS EDIT (by Joe Cosentino) includes more advanced features than the MS-DOS Editor. In FreeDOS EDIT, you can find a simple calendar, useful for project planning. Programmers will also find a handy ASCII character table. Find both the calendar and ASCII table under the "Utilities" menu.

You'll also find simple word processing features in FreeDOS EDIT, like changing the case (uppercase and lowercase) of text, or showing the statistics of a selection block, or setting line wrap.

I encourage you to try FreeDOS EDIT and explore the menus. You can access everything from the keyboard by tapping the Alt key on your keyboard. Or if you have a mouse, you can use the mouse to click on each menu.

Tuesday, March 10, 2020

DOS applications - VisiCalc

My favorite DOS application is a spreadsheet. So let's take a look at the first desktop spreadsheet application, Visicalc.


VisiCalc was the brainchild of Dan Bricklin and Bob Frankston. While there were other programs that let you perform calculations, these were not very interactive, and you needed an expensive computer system to run them.

Dan and Bob envisioned a new kind of program that let you interactively enter numbers on a grid, and perform calculations with them. This was the first desktop spreadsheet application. VisiCalc was released in 1979 for the Apple II computer. VisiCalc was so immediately popular that many businesses purchased Apple II computers just to run VisiCalc.

You can see in the video that Visicalc—while it's quite old—is still easily recognizable as a spreadsheet program. VisiCalc is similar to modern spreadsheets; you enter numbers on a grid labeled with letters for columns and numbers as rows. So your first cell is A1, B1, C1, and so on. In column A, your cells are A1, A2, A3, and so on.

The reason VisiCalc looks so much like modern spreadsheets is because that's how software lineage often works. VisiCalc was the dominant spreadsheet program until upstart company Lotus released Lotus 1-2-3. And Lotus 1-2-3 was able to take that market share because 1-2-3 looked and acted like VisiCalc, while adding new features. Then Quattro Pro took away the Lotus 1-2-3 market before Microsoft Excel for Windows took the market from Quattro Pro.

So each successive program borrowed certain elements (including look and feel) from its predecessor, while adding new features. As you look at modern spreadsheets like LibreOffice Calc or Microsoft Excel, you'll see echoes of VisiCalc.

You can download VisiCalc for free! Find it at Dan Bricklin's VisiCalc website.

Thursday, March 5, 2020

Navigating FreeDOS - FDCONFIG.SYS

If you're new to FreeDOS, you may wonder "How does FreeDOS start up?" And how can you control what FreeDOS is doing during boot?

To learn that, let's examine the FDCONFIG.SYS file:


FDCONFIG.SYS (or just CONFIG.SYS on MS-DOS) is the configuration file for the DOS kernel. It's what tells the kernel what to load when it boots, and what things it should do during start-up.

In it's simplest form, FDCONFIG.SYS can just be a list of simple configuration entries:

SET DOSDIR=C:\FDOS
COUNTRY=001,858,C:\FDOS\BIN\COUNTRY.SYS
LASTDRIVE=Z
BUFFERS=20
FILES=40
MENUCOLOR=7,0
DOS=HIGH
DEVICE=C:\FDOS\BIN\HIMEMX.EXE
SHELL=C:\FDOS\BIN\COMMAND.COM C:\FDOS\BIN /E:1024 /P=C:\AUTOEXEC.BAT

Those lines tell the FreeDOS kernel about how it should set up the system. For example, it sets the DOSDIR environment variable to C:\FDOS, so FreeDOS knows where to find other files. The last drive letter is set to Z. At the end, this simple FDCONFIG.SYS loads the COMMAND.COM program as the interactive command shell (called FreeCOM on FreeDOS) as a permanent (/P) shell that loads the C:\AUTOEXEC.BAT file when it starts up.

You can control other things that happen during the boot process. FreeDOS lets you present a boot menu to the user; that's where the MENU entries and numbers come in. For example, 124?DOS=HIGH loads DOS=HIGH only when the user selects menu items 1, 2, or 4.

Tuesday, March 3, 2020

Navigating FreeDOS - CD and DIR (with video)

Welcome to the new video series about FreeDOS! I'll be covering some useful and quick tips for getting the most out of FreeDOS.

For this first video, I wanted to show the basics of getting around.

You can break down any DOS system as files and directories. The very first versions of DOS didn't support subdirectories; this was added in MS-DOS version 2.

Let's look at the standard DOS prompt, so you can see where you are during the video. The first letter is the drive letter. Modern DOS systems probably boot to the first partition on the first hard drive, or the C drive. (The colon is not actually part of the drive's name; that's just a separator—but people usually write it as C: anyway.)

When you boot your system, you will be at the "root" directory, or "top level" directory. You'll see this represented as \ in the prompt.

The > in the prompt is the actual command prompt. That's where you type your commands.

To see the files in the current directory, type the DIR command. This generates a listing of all the files and subdirectories of where you are. You can also give DIR a path to show instead, such as
DIR C:\GAMES

To navigate to different directories, you use the CD command ("Change Directory"). It's common to change the directory one level at a time, so you might type CD DATA if DATA is a subdirectory in your current directory. You can also give a full path, such as
CD \GAMES

And with that, you're ready to explore the FreeDOS command line!

Monday, March 2, 2020

Let's watch some videos!

We have a FreeDOS channel on YouTube. I post weekly videos about FreeDOS, or demo'ing some of my favorite DOS applications and games.

I realized that I should be talking about these videos here, on the FreeDOS Blog! With every video, I'll go into more detail on the blog about each program or game. Maybe I'll share some trivia, or post extra screenshots. For the videos where I discuss programming, I'll try to include sample code that you can copy and paste into your own FreeDOS environment.

We've posted about twenty-five videos so far on the FreeDOS channel. I'll start a regular blog series here where I talk about them. Expect a few per week until I catch up, then weekly as each video is posted.

I'll post the first video tomorrow. Let's watch some videos together!

Updates on FreeDOS

I haven't written in the FreeDOS blog for a while. As you probably know, I changed jobs in April last year; I now own a consulting company. But I still want to work on FreeDOS too - and with everyone's support on Patreon, I've been able to take time away from my consulting to continue work on FreeDOS.

Over on the FreeDOS Patreon, I've talked about all the extra work I've been doing for FreeDOS. Here's a quick recap:

I've updated the FreeDOS website. The old website was "okay" but it definitely needed an update. The new website is easier to read and easier to navigate. You should find it much easier to find the information you're looking for.

I've been making videos about FreeDOS. Check out our FreeDOS channel on YouTube for weekly videos about FreeDOS, and about DOS applications and games. These are getting better over time, thanks to your comments and suggestions.

I'm updating the FreeDOS Wiki. The FreeDOS wiki needs to be updated. Some of the information is old or out of date, other pages are just hard to find. So I'm updating the wiki with new content, updating older pages, and generally making things better.

I'm updating the FreeDOS bug tracker. Many FreeDOS programs and utilities have longstanding bugs. But many of these bugs have since been fixed, and no one updated the bug tracker. I'm starting to go through the bug tracker to remove any stale bugs that no longer apply. I've also started updating the one-line description of the bugs (the "title") so it's easier to find bugs that match an actual problem. For example: I'm changing bugs like "problem with DIR" to something like "DIR does not insert newline before summary info."

The Wiki is getting the most attention from me right now, since that's the next Goal on the FreeDOS Patreon. (Patreon has "Goals" for each funding level.) The Goals I've set on the FreeDOS Patreon are:

  • $100/mo - start making videos (done)
  • $200/mo - update the FreeDOS website (done)
  • $300/mo - update the FreeDOS wiki (in progress)
  • $500/mo - update the FreeDOS bug tracker (started)
  • $750/mo - port Unix and Linux utils to FreeDOS
  • $1000/mo - write new programs and games for FreeDOS