Treebeard's Homepage

Treebeard's BASIC Vault

Enter the Vault...
Follow this link to go right to the programs, or read on...

About Treebeard's BASIC Vault

BASIC gets no respect, but it's still my language of choice for recreational programming. BASIC is more forgiving than C/C++, perfect for writing a quick program to use in my classroom the next day. BASIC and hardware have gotten better at about the same speed I have since my first Sinclair ZX-80 almost 20 years ago. I've written a lot of code over the years, most of it related to science, math, sound, and music. It's a fine hobby, but I've kept it to myself.

BASIC is perfect for small programs, but my projects have a way of growing large until I hit a wall. Fear of breaking something sets in, or another project distracts, and I can only test my hardware. As a result, most of my programs are not quite finished. Some options don't work, or the help is non-existent or a revision or two behind, or they only work on my computer and are dependent on my hardware and directory structure. Fixing these problems is tedious, and I do this for fun, so I haven't shared my work much. But I've solved problems and written code that other BASIC hackers might find useful.

Hence Treebeard's BASIC Vault. This is interesting and ambitious software with source code that is mostly *not quite finished*. These programs work fine on my computer, but you might have to do some work, and I'm not proud of all the details.

I wrote several of these programs as Science Fair projects for the annual Dunn Middle School Science Fair. DMS is a small independent school in Los Olivos, California where I teach science and shop for grades 6-8. Check our homepage at

About the Programs

Download a program archive from the Vault and unzip it into its own directory. Each program contains an execute file that can be run by typing its name from the command line. Source and support files are included, as well as a README.TXT file about the program. Use any ASCII file viewer like LIST or NOTEPAD to check the README file. It will contain enough info to get you started and *some* help about the program.

These are mostly DOS programs, but many of them will run under Windows 3.1 and higher if that's your preference. I've included a PIF file and generic ICON for most programs. Text-only programs usually run well in a window, but programs that use graphics (including text programs that switch VGA text screens) will only run full screen.

DOS programs that use sound or MIDI do not run under Windows for me. Win31 reports that the sound device is already in use, and I have to press <Alt-Ctrl-Del> to abort. Is there a trick to this?

About My Hardware

Most of my programs require VGA, a mouse, and a 286+ processor with at least 4 MB of RAM. They use expanded EMS memory, not extended XMS memory. EMS is now an antique, and you probably don't have it unless you loaded it on purpose. You can get EMS in DOS with the EMM386.EXE driver in your CONFIG.SYS (without the /NOEMS switch) or with a driver like QEMM (which I use). Run MEM to see if EMS is available. Read the manuals.

Several of these programs use MIDI or Sound Blaster audio, but they might not work for you if your hardware is different from mine. My home computer is an aging 486-33 with an original Sound Blaster Pro sound card and a separate Music Quest MIDI card. My music programs can only communicate with a Roland-compatible MPU MIDI card. Sound Blaster MIDI will NOT work (at least with older cards), even if the program only uses MIDI in "dumb" UART mode. There must be an easy way to fix this.

My programs also need to find your MIDI card. The default MPU address is hex 330. If yours is different, say hex 300 like mine, then start the program with /A300, or use a text editor to add the line "SET TBMIDI=300" to your AUTOEXEC.BAT file. All of my programs check the environment for this setting. I don't use MIDI interrupts. Check the README.TXT for each program for more info.

It's a big virtue of Windows and Visual BASIC that you don't have to think about hardware drivers. My Visual Basic BNC program should handle MIDI for any setup if drivers are installed.

About the Source Code

Each README.TXT file contains a File List. Files below the dotted line are SOURCE FILES - "the source, of course!" They can be deleted if you want, but they are my main reason for putting these programs on the Net, and I won't make it easy for you.

Most of these programs are written for MSDOS with MS BASIC PDS (see below). Many of my programs use multiple source modules, EMS expanded memory, DOS interrupts, and homebrew libraries. Start PDS BASIC with the XQB.BAT file included with most archives to be sure BASIC starts with everything it needs. Most archives also contain a MAKE.BAT file that will compile and link from the command line with all the right switches. You will have to edit these files if you don't use PDS.

Some of my code will run as is with QBasic or Quick Basic, but most of it will need some work. Sometimes this is trivial, eg the QBasic Interpreter doesn't recognize COMMAND$ to check for command line arguments, and it will report "Advanced feature unavailable" when you run it. In this case it's easy enough to comment out the offending lines, but sometimes it's not so easy. This is your problem.

Several of my programs need additional source modules from my NPF.BAS if you want to compile them yourself. NPF is available from the Vault. Details are in the README.TXT for each program.


BASIC comes in several flavors with sometimes confusing incompatabilities. I mostly program in MSDOS with MS BASIC PDS 7.10, though I'm finally getting used to Visual Basic 3.0 under Win 3.11. I still prefer DOS.

GW Basic Huh?
QBasic MS QBasic is the free BASIC interpreter that comes with DOS 5+. It's slow, and string space is limited, but it's a fine non-threatening way for kids (etc.) to get the idea of programming. A few useful commands are missing though there are work-arounds. It's available from Microsoft's FTP site. Some of my programs will run with QBasic, but most won't without major work.
QB MS Quick Basic 4.5 uses the same code as Qbasic and a bit more, and it has a compiler. String space is still limited. QB might not be in production (?), but it's still available from dealers (and others) on the Web. Try or Or try a Web search. My newer programs might need some work with QB.
PDS MS Basic Professional Development System 7.10 recognizes far strings, user types with arrays, and a few extra commands. The IDE uses EMS memory to hold your routines during development so you can work on big programs. This makes a BIG difference. PDS is my compiler of choice for DOS programs. It's expensive if you can still find it, but maybe worth it. I got PDS cheap as an upgrade to QB4.5. I spend *lots* of time in this program with no regrets. My programs will run.
VBDOS Visual Basic for DOS is a hybrid of QB and VB that never quite caught on. I haven't used it, and I don't know how my programs will do. I assume VBDOS is upwardly compatible with PDS if you ignore the special window functions. The compiler has a g3 (386) switch that might be worth it. Try a Web search.
PB Power Basic is the only DOS BASIC still in production. I haven't used it, but many people prefer it to M$ products. An early version called First Basic is available on the Web for free download from the homepage at My impression is that Power Basic is generally NOT quite compatible with Microsoft BASICs, but it has advanced features, and it's going places! It probably won't run my code without serious work.
VB I got Visual Basic 3.0 cheap as an upgrade to PDS, but it sat on my hard drive for *years* before I actually used it to make a real program. (Check out BNC and TBM, available from the Vault. My current project is a full-on MIDI drum sequencer, available soon!) I'm starting to like it! VB is mostly compatible with PDS for working code, but the approach is totally different and takes some getting used to. It's easy to convert PDS/QB to VB if you keep your PRINTs and INPUTs in separate routines, because you WILL have to replace them. VB is still forgiving, and it's easy to get something working fast. EXEs are small, but still slow, and they require a large runtime library. VB is now up to version 5, but version 3 has a good reputation for being stable. I'm in no hurry to upgrade.

Other Basics are available on the Net, including Liberty Basic, ASIC, Bywater Basic (for Unix/gcc), and more. Follow the BASIC Webring or check out the ABC Homepage and its links for more info about BASIC and lots of downloads and source code.

Check out: alt.lang.basic, comp.lang.basic.misc, and comp.lang.basic.visual.misc on USENET for (endless) discussion and (some) help.

If you're new to programming, it's probably best to skip ahead to the newest version of Visual Basic or C, Delphi, or Java. DOS BASIC definately helps, but it's a new world, and you may as well jump right in. That said, I'll probably always prefer DOS BASIC to quickly work out algorithms. *Sigh*


Programs and source code from Treebeard's BASIC Vault are yours to use and modify as you will, but they are offered as freeware with no warranty whatsoever. Give me credit, but do not distribute any changes under my name, or attribute such changes to me in any way. You're on your own!

Enter the Vault...

Treebeard's Basic Vault is part of  The BASIC Webring.
Follow these links for more BASIC resources.

Next      Next 5      Random      Join?











fun &

rants &



This is the page access since the last reset.
last modified .

Copyright © 2000 by Marc Kummel /