FreeDOS Blog

The FreeDOS Blog has moved

In May, I mentioned that I was planning to consolidate the web traffic for FreeDOS to a single place. We had a lot of places for people to go online, and it was spreading the communication channels too thin, so it was difficult to find people. As part of that site consolidation, I have archived the FreeDOS Blog from Blogger, and moved it to freedos.org/blog. I've made the Blogger version invisible. Right now, the updated blog is just a static archive. There's no search (yet) to help find specific items, but I plan to add that.

I don't often use the FreeDOS Blog. Earlier this year, I had started linking to our FreeDOS videos on YouTube, but that was the most I'd used the blog in a while. I plan to use the blog if I need to write about something that's very long (longer than will fit in a regular news item) and then I'll link to it as a news item on the front page so you can find it.

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.

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/

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.