Program on FreeDOS with Bywater BASIC |

Program on FreeDOS with Bywater BASIC

Install Bywater BASIC on your FreeDOS system and start experimenting with BASIC programming.

woman on laptop sitting at the window
Image credits : 

CC BY 3.0 US Mapbox Uncharted ERG


Subscribe now

Get the highlights in your inbox every week.

In the early days of personal computing—from the late 1970s and through the 1980s—many people got their start with BASIC programming. BASIC was a universal programming language that came built into most personal computers, from Apple to IBM PCs.

When we started the FreeDOS Project in June 1994, it seemed natural that we should include an open source BASIC environment. I was excited to discover one already existed in Bywater BASIC.

The Bywater BASIC website reminds us that Bywater BASIC implements a large superset of the ANSI Standard for Minimal BASIC (X3.60-1978) and a significant subset of the ANSI Standard for Full BASIC (X3.113-1987). It's also distributed under the GNU General Public License version 2, which means it's open source software. We only want to include open source programs in FreeDOS, so Bywater BASIC was a great addition to FreeDOS in our early days.

We've included Bywater BASIC since at least FreeDOS Alpha 5, in 1997. You can find Bywater BASIC in FreeDOS 1.3 RC4 in the "Development" package group on the Bonus CD. Load this:


Bywater BASIC

Installing Bywater BASIC on FreeDOS 1.3 RC4
(Jim Hall, CC-BY SA 4.0)

FreeDOS installs the Bywater BASIC package in the \DEVEL\BWBASIC directory. Change to this directory with CD \DEVEL\BWBASIC and type BWBASIC to run the Bywater BASIC interpreter.


Bywater BASIC

The Bywater BASIC intepreter
(Jim Hall, CC-BY SA 4.0)

Writing a sample program

Let me demonstrate Bywater BASIC by writing a test program. We'll keep this simple—print five random numbers. This requires only a few constructs—a loop to iterate over five values and a random number generator. BASIC uses the RND(1) statement to generate a random value between 0 and 1. We can use PRINT to display the random number.

One feature I like in Bywater BASIC is the integrated "help" system. There's nothing more frustrating than forgetting the syntax for a BASIC statement. For example, I always forget how to create BASIC loops. Do I use FOR I IN 1 TO 10 or FOR I = 1 TO 10? Just type help FOR at the Bywater BASIC prompt and the interpreter displays the usage and a brief description.


Bywater BASIC

Use the "help" system as a quick-reference guide
(Jim Hall, CC-BY SA 4.0)

Another neat feature in Bywater BASIC is how it reformats your BASIC instructions, so they are easier to read. After typing my brief program, I can type list to see the full source listing. Bywater BASIC automatically adds the CALL keyword to my RANDOMIZE statement on line 10 and indents the PRINT statement inside my loop. These small changes help me to see loops and other features in my program, which can aid in debugging.


Bywater BASIC

Bywater BASIC automatically reformats your code
(Jim Hall, CC-BY SA 4.0)

If everything looks okay, then type RUN to execute the program. Because I used the RANDOMIZE statement at the start of my BASIC program, Bywater seeds the random number generator with a random starting point. This ensures that my numbers are actually random values and don't repeat when I re-run my program.


Bywater BASIC

Generating lists of random numbers
(Jim Hall, CC-BY SA 4.0)

Install Bywater BASIC on your FreeDOS system and start experimenting with BASIC programming. BASIC can be a great first programming language, especially if you are interested in getting back to the "roots" of personal computing. You can find more information about Bywater BASIC in the manual, installed in the \DEVEL\BWBASIC directory as BWBASIC.DOC. You can also explore the online "help" system by typing HELP at the Bywater BASIC prompt.

Old UNIX computer

It looks like retro computing, but it's a modern OS you can use to get stuff done.
4 different color terminal windows with code

Armed with just two commands DIR and CD, you can navigate your FreeDOS system from the command line.
FreeDOS fish logo and command prompt on computer

If you're already familiar with the Linux command line, try these commands to help ease into FreeDOS.
Looking at a map for career journey

Environment variables are helpful in almost every command-line environment, including FreeDOS.
Tips and gears turning

Here's a helpful guide to batch files under FreeDOS.
Code going into a computer.

An overview of how your computer boots up and starts a simple operating system like FreeDOS.
Person using a laptop

Learn how to configure FreeDOS with FDCONFIG.SYS.
Package wrapped with brown paper and red bow

Get familiar with FDIMPLES, the FreeDOS package manager.
Person using a laptop

FreeDOS provides a user-friendly text editor called FreeDOS Edit.
FreeDOS fish logo and command prompt on computer

Here's how to set up your FreeDOS system manually without using the installer.
Woman programming

Mplayer is an open source media player that's usually found on Linux, Windows, Mac, and DOS.
Computer laptop in space

Many embedded systems today run on Linux. But once upon a time, embedded systems either ran on a custom, proprietary platform or ran on DOS.
Person typing on a 1980's computer

Why does text only come in this limited palette, and why does FreeDOS use those colors and shades, instead of some other colors? The answer, like many things in technology, is because of history.
Old UNIX computer

Edlin is a joy to use when I want to edit text the "old school" way.
Old UNIX computer

BASIC was my entry into computer programming. I haven't written BASIC code in years, but I'll always have a fondness for BASIC and GW-BASIC.
Typewriter in the grass

If you're already familiar with GNU Emacs, you should feel right at home in Freemacs.

About the author

photo of Jim Hall
Jim Hall - Jim Hall is an open source software advocate and developer, best known for usability testing in GNOME and as the founder + project coordinator of FreeDOS. At work, Jim is CEO of Hallmentum, an IT executive consulting company that provides hands-on IT Leadership training, workshops, and coaching.