Baja is a Synchronet module compiler and BASIC-like language for creating programmable command shells and modules for Synchronet versions 2 and 3.
Most Synchronet command shells are currently written in Baja.
The Programmable Command and Menu Structure implementation (basically, the compiled
Baja source files (
*.inc) are plain ASCII text files (IBM CP437 characters may also be used). The Baja language is documented here.
Baja source files are normally stored in the Synchronet
Baja source files may include other source files (usually named
*.inc) using the Baja
!include directive. Included files are normally stored in the same directory as the
*.src files but you can direct the Baja compiler to look in a different directory for included files by either defining the
BAJAINCLUDE environment variable or by using the '-i' command-line option.
By forcing the Baja compiler to look in a different directory (e.g.
!included files, you could, for example, compile
.src files in your
mods directory which still
!include files from the
Synchronet modules written “in baja”, rely on the
baja utility to compile their “source” into an “executable” (interpretted) binary format (
Note: There is a corresponding unbaja utility, created by Deuce, for decompiling Baja
.bin files into somewhat readable (and modifiable) Baja source (
usage: baja [-opts] file[.src] opts: -d display debug during compile -c case sensitive variables, labels, and macros -o set output directory (e.g. -o/sbbs/exec) -i set include directory (e.g. -i/sbbs/exec) -q quiet mode (no banner) -p pause on error
To compile the Baja source file
exec/default.src into the executable module
exec/default.bin, from the Synchronet
exec directory, type:
The marketing name “Baja”, was coined by Dr. Seuss and inspired by vacations at our father's house in Baja California.