clam is a modern program launcher for MS-DOS written in x86 assembly.
Originally written in QuickBasic 4.5 it has a light memory footprint,
and it is easy to use.
Its only requirement is an IBM AT or later class machine (essentially anything that has a 286 processor or better).
clam was written in the Turbo Assembler dialect, and can be built by
invoking the following commands, assuming the Turbo Assembler binaries are in
your PATH:
tasm /ml /m3 clam.asm
tlink /c /t clam.obj
The source files make the distinction between lowercase and uppercase symbols, so it's important to compile and link using the appropriate switches.
clam works by detecting all batch files in a specified folder. It's not
necessary to do anything in particular to make batch files in that folder
discoverable, but it's possible to specify a "title" in order to make them
easier to identify. You can add a title to a batch file by writing in the
first line the special comment :::, for example:
::: Planet X3
@echo off
c:\
cd \games\px3
call px3_cga.com
The folder is specified by providing its path as a command line argument:
clam c:\batch
clam behaves like a shell, and queries the program list each time the user
inputs a keypress. clam searches for matches in both the program basename and
title, if present, and if it finds some results, the first one is displayed
next to the query:
@ pl_ (Planet X3)
where _ marks the cursor location. Basename matches take priority over title
matches, so if you remember the batch filename, you are guaranteed that the
first result will be the corresponding program.
You can edit the query as you'd expect from a shell:
←and→move the cursor left and rightHOMEmoves the cursor at the beginning of the lineENDmoves the cursor at the end of the lineDELETEdeletes the character under the cursorBACKSPACEdeletes the character before the cursor
You can also immediately quit clam by sending a CTRL + C combination.
If the query matches multiple results, you can also navigate the result set:
↓orTABmove to the next result↑moves to the previous result
At last, ENTER executes the displayed program.
Among the real programs, clam adds two virtual programs:
EXITreturns to DOSLISTshows a list of the registered programs, including itself andEXIT
They can be queried as normal:
@ ex_ (Exit to DOS)
or you can use the special characters * and . to invoke LIST and EXIT
respectively.