Computing: DOS, OS/2 & Windows Programming

Exotic programming languages for DOS - FAST 2.67.

"Awesome and innovative programming language and compiler. Language syntax is based mainly on BASIC, but borrows good constructs from C and even Pascal. Contains high level functions that do low level jobs like port I/O, interrupt calling, timer reprogramming etc. Machine code can be inlined, unfortunately not by using assembly syntax, but by inlining the code byte by byte. The compiler is about 35 Kb and depends on no other file. It understands more than 200 commands and functions including memory manipulation, file handling, direct screen handling, graphics, sound etc. It produces very tight and standalone .com files. Meaningful tasks can be fulfilled in only few hundred bytes of compiled code! The compiler is not dull at all, can process complex expressions and even handles 32-bit long integer math.", they write at the Vetusware website, where you can download the software.

Here are some of the features of the FAST language, as described by its manufacturer Peter Campbell himself:

Note: FAST is more a personal project of Peter Campbell than an official programming language. FAST is not mentioned in the programming languages list of Wikipedia; except Vetusware, I didn't find any reference to it when searching the Internet. Also note that there is another programming language with the same name (description at web.archive.org). There is no relationship at all between these two languages!

The download file is a ZIP archive that contains one single file, called unfast.exe. On your DOS machine, create a directory, for example, Fast267, and copy the file to there. In fact, it is a self-extracting archive, that when being run, extracts the compiler, help and example files. The screenshot on the left shows, the file extraction; the screenshot on the right shows the FAST files in the installation directory.

FAST 2.67 on Free-DOS: Installation - File extraction
FAST 2.67 on Free-DOS: Installation - Content of the installation directory

The installation files include several help documents. These files have the file extension .hlp, but in fact are simple text files. There is also a series of source file examples. They have the extension .f.

The compiler is called fast.com. You can run it by specifying the source file as argument, or interactively. Run fast /h for help.

The screenshot below shows the compilation of compf.f (a FAST and assembly source compression tool); note the executable size of only 8 kB.

FAST 2.67 on Free-DOS: Compilation

You can open the FAST source files using the standard FreeDOS (or any other text) editor. You can also use the (rather simple) editor included as FAST source with the installation files; the source file is called wt.f; compile it to wt.com, if you want to try it. The screenshot shows the FAST source of demo.f opened in wt.com.

FAST 2.67 on Free-DOS: FAST source file opened in the installation files included text editor WT

Note: Hitting the F1 (help) key leads to an error 1015 (DOS error 2). This has to do with the help file, I think. If you review the source code of wt.f, perhaps you'll find the issue. Also, the Compile menu item allows to launch a compiler, but doesn't automatically take the opened source file as input.

The screenshot of the left shows d.com (build from d.f), a directory listing utility. The screenshot on the right shows the menu of hexd.com (build from hexd.f). This is a really nice tool, with a menu window, where you can select useful things like displaying the ASCII table, colors, or keyboard codes, as well as converting hexadecimal numbers to decimal, or vice-versa. The best thing in all that is that hexd actually is a TSR; you activate it by pressing both Shift keys together.

FAST 2.67 on Free-DOS: Included program sample - Directory lister
FAST 2.67 on Free-DOS: Included program sample - Tool dealing with hexadecimal numbers as TSR

Two further examples. The screenshot of the left shows othello.com (build from othello.f), the FAST version of the classic Othello game. The screenshot on the right shows mis.com (build from mis.f), a "shoot down the aggressors" game, I guess (in fact, I did not figure out how to use this program).

FAST 2.67 on Free-DOS: Included program sample - Classic Othello game
FAST 2.67 on Free-DOS: Included program sample - Shooter game

Lets also mention that the sample game.f compiled but did not produce any output when run on my system. The sample music.f, a program to create music files and play this music, starts up asking for a .m file. There are no music files included, so with your editor create an empty file, for example called music.m and indicate its name when asked for the music file. You can then add the music notes and save the file. However, I did not get a melody, but just some terrible noise. Not to exclude that that was just because I did not use the program correctly (?).

I did not write my own programs, thus it is difficult for me to say how useful the language is. For people interested in (DOS) programming languages, it is without any doubt worth to have a look at. Some of its features aren't probably included in any other language. The language could also be useful for writing low level code; several FAST commands work very similar as one or several assembly instructions. And finally, features like the windows, menus, and sprites may be what you were looking for in vain in other languages...


If you find this text helpful, please, support me and this website by signing my guestbook.