Tuesday, July 23, 2019

Support FreeDOS on Patreon

For a few years now, people have asked if they can donate to FreeDOS in some way. Well, I've finally set up a way to do it. I've started a Patreon so you can support FreeDOS! Help keep the FreeDOS Project going by making a monthly pledge. With your support, we can make the next version of FreeDOS even better!

After over 8 years as CIO in public sector, and over 20 years in IT Leadership, I decided to change gears and start an IT Executive consulting company. This career change also gives me more flexibility for projects. If I can generate enough income from Patreon, I can take time out of my consulting practice and commit more time to work on FreeDOS.

Your donations will help me free up my time to do more direct work on FreeDOS. With this extra time, I'll be able to work on bug fixes, add new features, and make new releases.

Specifically, I have set these initial goals:

  • Create videos about FreeDOS, like how to navigate and use FreeDOS. Will also cover great DOS software like spreadsheets and word processors and games.
  • Update the FreeDOS website, to make it easier to use and navigate.
  • Update the FreeDOS wiki, to make information more complete and easier to find.
  • Fix bugs in FreeDOS programs. We have a long list in the FreeDOS bug tracker that haven't been worked on in a while.
  • Port Linux and Unix programs to FreeDOS, to make it easier for Linux users to explore FreeDOS.
  • Write new programs for FreeDOS. These could include utilities and games.

You can donate at different levels, starting at $1/month. Join at $5/month and you will get early access to videos. For $10/month or $20/month, I'll list your name on the FreeDOS website as a supporter. Donate even more and I'll link back to you as a sponsor.

Please don't feel obligated to donate. FreeDOS is a great hobby that I've been working on with a great developer community for over twenty-five years (since June 1994) so I'll keep working on FreeDOS regardless. But with your support, I can dedicate even more time to work on FreeDOS.

Saturday, June 29, 2019

Celebrate FreeDOS at 25

How are you celebrating FreeDOS on our 25th anniversary? I'm spending the day with family and friends, drinking a beer. I'm also responding to a lot of emails. Thanks everyone for your well-wishes!

Here are a few other ways you can celebrate FreeDOS today:

Buy a FreeDOS 25th anniversary t-shirt! These are available on our FreeDOS store at Zazzle, in mens and womens styles. You can transfer the design to other products on Zazzle, like stickers or coffee mugs or hats. If you prefer a different color t-shirt, you can change that too.

Direct links are: mens t-shirt + womens t-shirt.
Download a free copy of our FreeDOS ebook! We have two of them:

23 Years of FreeDOS (2017) contains the voices of the users who contributed their stories, as well as the history of FreeDOS. Many individuals have helped make FreeDOS what it is, but this e-book represents only a few of them. You can get it in PDF format.

Using FreeDOS (2018) includes how-tos on installing FreeDOS, essays about running DOS applications, and quick reference guides to FreeDOS commands and batch programming. You can get it in PDF or EPUB format.

You can buy a print copy of Using FreeDOS from our publishing partner at Lulu.

Highlights of FreeDOS history

To celebrate the 25th anniversary of FreeDOS, I wanted to share a few highlights of FreeDOS history. You can find a more complete timeline of FreeDOS key events, including the dates of each FreeDOS release, and links to our news coverage - on the FreeDOS History page.

  • First announcement of the FreeDOS Project (then "PD-DOS"). (29 June 1994) ~ comp.os.msdos.apps
  • FreeDOS changes its name from "PD-DOS" to "Free-DOS." (16 July 1994) ~ comp.os.msdos.apps
  • First "Alpha" release: FreeDOS officially releases the Free-DOS Alpha 1 distribution. (16 September 1994)
  • First article about FreeDOS ~ University of Wisconsin-River Falls: UWRF Student Voice (December 1994)
  • First book about FreeDOS: The FreeDOS Kernel by Pat Villani. (6 January 1996) ~ R+D Books
  • FreeDOS drops the hyphen, changes its name from "Free-DOS" to "FreeDOS."
  • First article about FreeDOS in popular press ~ DOS World Magazine (March 1997)
  • First "Beta" release: FreeDOS officially releases the FreeDOS Beta 1 "Orlando" distribution. (25 March 1998)
  • First third-party redistribution: Italian magazine DEV distributes FreeDOS Beta 4 (February 2000
  • First conference talk about FreeDOS (Jim Hall) ~ SSGRR-2001 (August 2001)
  • First third-party book about FreeDOS: The Universal Command Guide by Guy Lotgering ~ Wiley
  • First major PC install: Dell ships FreeDOS install CDs with n-series computers (August 2002)
  • Major milestone: FreeDOS turns 10 years old (29 June 2004)
  • First "1.x" release: FreeDOS officially releases the FreeDOS 1.0 distribution. (3 September 2006)
  • FreeDOS officially releases the FreeDOS 1.1 distribution. (2 January 2012)
  • Major milestone: FreeDOS turns 20 years old (29 June 2014)
  • FreeDOS officially releases the FreeDOS 1.2 RC1 distribution. (31 October 2016)
  • Major milestone: FreeDOS turns 25 years old (29 Jun 2014)

FreeDOS is 25 years old today!

Twenty-five years ago, I had an idea that we could write our own version of DOS and give it away for free. I shared the idea on Usenet newsgroups (the "social media" of the 1990s) and the response was an overwhelming "You should do that."

So on June 29, 1994, I announced a free DOS project that would soon become "FreeDOS":
A few months ago, I posted articles relating to starting a public
domain version of DOS.  The general support for this at the time was
strong, and many people agreed with the statement, "start writing!"
So, I have...

Announcing the first effort to produce a PD-DOS.  I have written up a
"manifest" describing the goals of such a project and an outline of
the work, as well as a "task list" that shows exactly what needs to be
written.  I'll post those here, and let discussion follow.

If you are thinking about developing, or have ideas or suggestions for
PD-DOS, I would appreciate direct email to me.  If you just want to
discuss the merits or morals of writing a PD-DOS, I'll leave that to
the net.  I'll check in from time to time to see how the discussion is
going, and maybe contribute a little to what promises to be a very
polarized debate!  :->

I am excited about PD-DOS, and I am hoping I can get a group started!
And twenty-five years later, FreeDOS is still here!

On this 25th anniversary, I wanted to thank all the FreeDOS developers who have helped make FreeDOS happen, and to everyone who keeps FreeDOS going today.

There are too many of you to name, but FreeDOS wouldn't have got off the ground if not for Pat Villani (who wrote our kernel) and Tim Norman (who wrote our FreeDOS command.com shell) and Morgan "Hannibal" Toal (who set up our first website). And I have to recognize John Price, Jim Tabor, Bart Oldeman and Jeremy Davis, who each took their turn as kernel maintainer. Also Steffen, Tom, Blair, Brian, Joe, Bernd, Eric, Florian, Shane, Paul, Raster, Gregory, Alain, Arkady, Mike, Imre, Gregory, Aitor, and Russ for your early and ongoing contributions.

So many people have contributed to FreeDOS in one way or another, especially in recent years as we released FreeDOS 1.0, FreeDOS 1.1, FreeDOS 1.2, and now prepare for FreeDOS 1.3. I'd like to thank Tom Ehlert for his excellent contributions and advice, Eric Auer for his continued work, Rugxulo for his help and conversation, and Jerome Shidel for his outstanding work on rewriting the FreeDOS installer and package system.

I know I could go on forever, so I'll just list a few more names by way of saying "Thank you." Wilhelm, Jack, Dale, Kevin, rar4, Lucho, Charles, and everyone else - you are awesome!

There are lots more people to recognize, and I apologize that I have missed some of you. There are literally too many people to name. FreeDOS is really a community effort, and we would not be here without you.

Thank you to everyone!

Saturday, June 22, 2019

My first FreeDOS utilities

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
Following up on the story of how FreeDOS got started, I mentioned that I wrote my own DOS extensions, and I re-used several of these as the first FreeDOS utilities.

When I made that first release, I made the naive assumption that FreeDOS would likely work in three separate teams: a Kernel team, a Shell team, and a Utilities team.

With that first assumption, I collected several of my DOS-alike commands into a single package called "Util." I assumed we would continue to add other programs to "Util" over time. In fact, everyone contributed their own programs independently; it didn't make sense to follow the "teams" model.

But let's go back and look at the original "Util" release. You can find this at ibiblio.

If the code looks amateurish, please remember that I was still a university physics student when I wrote these. I didn't have any real experience as a programmer. I had taught myself programming, and some of these early programs show that.

Util 1.0 included these utilities:

Used ANSI to clear the screen or set color. For example, cls white on blue would clear the screen and set the text colors to grey text on a blue background. Or cls bright yellow on cyan would do the same with bright yellow text on a cyan background.
The standard utility to display the date and allow the user to change it.
Erases one or more files or directories. Using /S would recursively delete subdirectories, but would ask first unless you added the /F option.
Locates a string in one or more text files and prints them. Using /C would simply count the lines that contained the string. The /I option ignored case sensitivity. /N numbered the displayed lines, and /V would "invert" the search to display lines that did not contain the string.
A viewer for Help files. This was intentionally similar to Unix man, and even used a HELPPATH variable to set the locations of the Help files, and PAGER to set the viewer program.
Displays one or more files, pausing at each screenful. A pretty simple program.
Displays a prompt to the screen and waits for the user to press a key before it exits. The /R option returned the key pressed as an ASCII code.
A program to do a "warm" or "cold" reboot of the computer. Based on public domain code from Mike O'Carroll.
Similar to Unix tee, this acts as a filter and saves a copy of its input to a file, while also printing to standard output. Looking at this years later, there are much simpler ways to write this program.
Similar to DATE, the standard utility to display the current time and allow the user to change it.
This is one of those programs that started out as an extended DOS program I'd written for myself, then repurposed it for FreeDOS. The standard TYPE command displays a text file. This version of TYPE can also number the output with the /N option, or squeeze together non-blank lines using /S. You can show special characters, such as control characters with the /C option, ends of lines with the /E option, and tabs using /T. The /A ("All") option was the same as /N/C/E/T. And you can convert case: change everything to uppercase using /U and to lowercase using the /L option.
Converts a text file from Unix format to DOS format. This was especially useful for me because I was working in Linux most of the time, and booting into MS-DOS to run the applications that I needed. Converting text files was very handy.
A simple utility to display a hard-coded version number of the FreeDOS utilities. Since this was very early in FreeDOS history, the project was still called "Free-DOS" (with the hyphen).

There's a code comment that developers should refer to us as "Free-DOS" and not "FreeDOS" because another group got started about the same time as us (a few days after us, I think) and used the name "Freedos." Their project had different goals; I don't remember exactly, but I think they wanted to write everything in Assembly, and I wanted to be more flexible. We standardized on C and Assembly for any FreeDOS "Base" utilities, and generally let developers choose their own programming language for other extended utilities.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!

Saturday, June 15, 2019

How to pronounce FreeDOS

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
When Linus Torvalds released Linux, he didn't originally name it Linux. But the person who hosted the original releases of his new Unix kernel put it in a folder called "linux" and so the name stuck.

But there was a problem. How to pronounce "linux"? I pronounced it "Lie-nucks" until I attended a Linux user meetup and heard others pronounce it "Lih-nucks." There was some online debate about how to correctly say "Linux" until Linus himself settled the debate around 1998 by recording a brief audio clip of himself saying "Hello, this is Linus Torvalds, and I pronounce Linux as Lee-nooks!" And so the debate was settled.

Except that a lot of people had already grown used to saying it the way they wanted. These days, I still hear "Lih-nucks" among most users.

A year later, I was testing a new microphone, and decided to record the test phrase "Hello, this is Jim Hall, and I pronounce FreeDOS as FreeDOS." I never thought people would pronounce FreeDOS any other way, I just thought it was a funny phrase to say to test a microphone.

I posted the audio clip to our site on ibiblio. It's been hiding there for years, I don't know if many people have downloaded it. You can find it on ibiblio. I hope you enjoy it.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!

Saturday, June 8, 2019

FreeDOS and Unix

On June 29, the FreeDOS Project will officially turn 25 years old! That's a major milestone by any reckoning, and to celebrate we're making June our FreeDOS celebration month.
Early FreeDOS was influenced quite a lot by Unix. You can still see traces of it today.

I was a long-time DOS user. When my family replaced our Apple II with an IBM PC, I thought DOS was a huge step up! DOS had more powerful utilities, and once I taught myself about programming, I could create my own utilities to expand the command line.

I used DOS exclusively from sometime in the 1980s until about 1992, when I attended university. I was a physics student, and part of our physics program required FORTRAN programming. To do that, we were given an account on the university's VAX system. But if you asked, you could also get an account on the University's Unix network. Normally, the Unix systems were reserved for computer science students, but I had a lot of friends in the computer science program. They helped me get an account on the Sun Unix systems.

I found VAX to be not that different from DOS. But I found Unix to be really interesting!

On the surface, Unix wasn't too different from DOS. Unix had a command line like DOS. Some of the commands were different (ls instead of DIR, for example) but it was still a command line interface. And Unix was much more powerful than DOS! The power and flexibility of the Unix commands was definitely a step above DOS.

So when I created FreeDOS, I wanted similar power found in Unix.

The first utilities that I contributed to FreeDOS included programs that mimicked Unix. If you look at "Utils 1.0" on ibiblio, you'll find standard DOS utilities like CLS, DATE, DEL, FIND, and MORE. You'll also see programs that were meant to be similar to Unix, like TEE and TRCH.

We also looked for other Unix-like utilities to add to FreeDOS. You may be familiar with the Gnuish utilities. From the Readme: "The GNUish Project was designed to bring GNU programs to small systems running OS/2 and DOS." Some Gnuish programs were ports of GNU utilities, others were written from scratch to provide a similar flavor to the GNU and Unix utilities.

My favorite discovery at the time was a print spooler released by Craig Derouen. After you loaded the SPOOL.DEV driver in CONFIG.SYS, Spool would fill up the LPT print buffer when your PC wasn't so busy. This was a big deal! At the time, you committed to printing from DOS. While DOS was printing (usually through an application) you couldn't do anything else. You had to wait for the entire print job to finish, and with a dot matrix printer (typical) you might wait several minutes to get back to work. With Spool, you could print, then get back to work almost immediately. Your printer might slow down as you ran some command, but your printer would keep printing while you were doing something else. That gave FreeDOS similar functionality to the Unix lpr spooler.

Today, we still have some feature borrowed from Unix. FreeDOS has accumulated several Unix-like utilities over time. In fact, for the next FreeDOS 1.3, we have separated these Unix-like utilities into their own package group. You'll find programs like cal, du, grep, less, nro, tail, which, and others that provide parallel functionality to Unix and Linux.

I don't want FreeDOS to become a "Unix clone," where we try to make FreeDOS into an underpowered Unix system. That would be a disservice to FreeDOS. DOS is quite different from Unix. Where Unix was designed to connect small, dedicated utilities to do more complex jobs, DOS was designed to run applications. The MS-DOS command line was always anemic, enough to let you manage data files and do basic manipulation.

But with FreeDOS, I like to think we've expanded the DOS command line to be more powerful on its own. Heavily influenced by Unix, FreeDOS provides a flexible command line with powerful utilities that let you do almost anything. But like standard DOS, you can still rely on applications for your larger work tasks, such as spreadsheets and word processors. FreeDOS is a great mix.
There's lots more history to share, and throughout June I hope to write about FreeDOS history and various milestones. Please join me in making June our FreeDOS celebration month!