I wrote these programs and utilities, in my tween years in the 90s, for MS-DOS 3.3, MS-DOS 5.0, and MS-DOS 6.22 etc. I'll check each program's code, add comments, and maybe refactor it. After testing in FreeDOS or DOSBox, I'll add it here. Click here to read my notes on why I didn't migrate to any modern BASIC compiler/interpreter?
| Project | Interpreter | Description |
|---|---|---|
| ColorTst | GW-BASIC | Text color test with notes written in comments on how to use text colors and what colors are available. I fixed some glaring spellings and grammatical mistakes, however, I was pleased to read notes from my tween/teen self on how I experimented with values and wrote down the results. |
| Password | GW-BASIC | One of my earliest programs that I wrote. Probably, I was in single digit age. I read the IBM BASIC book, cover to cover, and wrote and ran all the snippets and programs written in it. This one was in that book. I still remember that I was blown away with "clever" usage of using black on black color to hide the typed password. After learning about colors, I experimented with colors, and tweaked the program a little bit. |
| RandOld | GW-BASIC | Older version of Random Number Generator. |
| Random | GW-BASIC | Newer version of Random Number Generator with colors etc. |
| CountNum | GW-BASIC | Count numbers up to the given number. Demonstration of FOR LOOP. Program prints number at a specific place on screen. If your computer is quite fast then try 1000 or any other large number. |
| CommaNum | GW-BASIC | Count numbers up to the given number but display comma as thousand separator. Program prints number at a specific place on screen. If your computer is quite fast then try 1000 or any other large number. |
| MathTOld | GW-BASIC | Prints out Math Table between 1 and 20, depending on the choice entered by the user. |
| MathTbl 📷 | GW-BASIC | Newer version of Math Table. Neatly prints out Math Table between 1 and 20, depending on user's input. It uses colors and cursor location. It's a spaghetti code with many GOTO statements. |
| Bism 📷 | QuickBASIC | Display text-based Bismillah calligraphy using ASCII art. By default, the program will wait for 3 seconds before exiting. User can press any key to end the program before the timer is complete. User can supply their own wait time as a command-line argument, even a fraction of a second (0.5 for half a second). |
| BismKey | QuickBASIC | Display text-based Bismillah calligraphy using ASCII art. Program will wait indefinitely until the user presses any key to end the program. |
| GrDemo 📷 | QuickBASIC | I was learning and experimenting with the graphics library when I created this program; to showcase what I had learned, and the capabilities of QuickBASIC's graphics library. I recall that I felt proud of myself when I completed this program. By looking at the code, at that point, I had learned functions and loops, however, I was still using GOTO commands. After reading some articles and books on the subject, I eventually stopped using GOTO, and learned to control the program flow without using it. |
| GrBism 📷 | Visual Basic | Display graphical Bismillah calligraphy. Program will wait indefinitely until the user presses any key to end the program. I don't have much memory of how I wrote it. By looking at the code, it looks like I might have created helping tools to write down the line-art data. |
Menu of Graphics Demo
- Most of the programs were written for QuickBASIC 4.5. They may run with QBasic.
- If code file contains line numbers then use GW-BASIC 3.22.
- If directory contains .MAK file then use Visual Basic 1.0 for DOS.
Another way to identify the interpreter is to look for the following files in each directory:
RUN.BATfor GW-BASIC 3.22QBEDIT.BATfor QuickBASIC 4.5VBEDIT.BATfor Visual Basic 1.0 for DOS
- Install FreeDOS or DOSBox
- Install GW-BASIC, QuickBASIC, and Visual Basic for DOS
- Clone this repository
- Change directory into any project, for example
CD dos_basic\randold, then run:run
Tip
I recommend using FreeDOS or DOSBox. However, you can also use MS-DOS 5.0 or MS-DOS 6.22 (or later), though I didn't test it.
I researched on modern BASIC interpreters/dialects with active development, and short listed to following:
| Compiler/Interpreter | Notes |
|---|---|
| QB64 | Active development. Doesn't run in DOS. Doesn't compile for DOS. |
| FreeBASIC | Active development. Run and compile for DOS but only for 32-bit which requires Intel 80386 or later processors. |
| PowerBASIC | Outdated compiler and commercial license required. Not free and open-source. |
| PureBasic | Compiler doesn't target DOS. Not free and open-source. |
| Xojo | Compiler doesn't target DOS. Not free and open-source. |
I was looking for a FOSS project in active development, that can target 16-bit real-mode DOS (Intel 80286 and earlier processors), which is also compatible with QuickBASIC 4.5. However, I couldn't find any such BASIC compiler. The closest is FreeBASIC. I really like their efforts, however, it compiles for 32-bit processors (Intel 80386 and later processors). Therefore, as of now, I decided not to port to FreeBASIC.
There are many projects files which are probably lost forever due to corrupted copies of backup. I'll try to search and look in other backups. If I find more source code then I'll add them here.
Copyright © Farhan Ali Qureshi. All rights reserved. View the MIT LICENSE file for details.



