πŸ›‘οΈ TA Archive

The TA BOS toolchain, archived β€” ggs' BOS compiler, Mafia's BASM & COBASM

Download Archive Β· Total Annihilation

The BOS toolchain, archived

Every version of the classic TA scripting compilers β€” ggs' BOS Compiler (BOS β†’ BASM β†’ COB), Mafia's BASM assembler, and Mafia's COBASM β€” with source code and readmes. Hosted here because the originals live behind a bot wall at TAUniverse's Central Consciousness and exist in no web archive.

What this is. The Total Annihilation community's scripting toolchain, published 2003–2005 on cc.tauniverse.com (Β© Central Consciousness / TAUniverse). Authors: ggs (BOS compiler) and Mafia (BASM, COBASM). The files below were taken from the original server in October 2026 and cross-checked against the Internet Archive where captures exist. Every file passes unzip -t; hashes are in SHA256SUMS.txt. These are the real period tools β€” they compile the game's actual bytecode, and we used them to prove our AMPH bytecode reconstruction round-trips.

1 Β· ggs' BOS Compiler (BOS β†’ BASM)

The BOS-language compiler: it preprocesses, parses and compiles .bos script source to the stack-based .basm assembly, then hands that to BASM.exe (below) to produce the final .cob the game loads. Delphi, Windows console; runs fine under Wine. The 0.8.2 archive also ships the full Delphi source and the standard include library (EXPTYPE.H, SFXTYPE.H, STDTANK.H, SMOKEUNIT.H, STATECHG.H, …) β€” the authoritative flag/constant registries.

VersionFileReadmeNotes
0.8.2boscompiler082.zip (175 KB)readme082.txtnewest β€” with Delphi source + includes; inline-expander label fix
0.8.1binary lostreadme081.txtreadme preserved (comment-stripping in defines fix); the zip is no longer on the origin server
0.8boscompiler08.zip (175 KB)readme08.txtinline functions, Scriptor compatibility mode, AND/OR/XOR keywords
0.76boscompiler076.zipreadme076.txtbasm update
0.75boscompiler075.zipreadme075.txtpreprocessor error positions
0.7boscompiler07.zipreadme07.txthex literals, constant-number codegen fix
0.6boscompiler06.zipreadme06.txtbitwise-and opcode codegen fix
0.5boscompiler05.zipreadme05.txtturn-now / move-now handling fix
0.4bboscompiler04b.zipreadme04b.txt0.4 quickfix
0.4boscompiler04.zipreadme04.txtcompiler speed rewrite
0.3boscompiler03.zipreadme03.txt
0.2fboscompiler02f.zipreadme02f.txtfirst public line

2 Β· Mafia's BASM (BASM β†’ COB)

The assembler that turns the compiler's .basm output into the game's .cob container. Its source archive contains the authoritative opcode registry (basm ops.txt) and the code generator β€” our reference for the bytecode tables in the AMPH decode article. Every version below is available as binary and source.

VersionBinarySource
0.8.1.1basm0811.zipbasm0811src.zip
0.8.1.0basm0810.zipbasm0810src.zip
0.6.2basm0620.zipbasm0620src.zip
0.6.1basm0610.zipbasm0610src.zip
0.3.3basm0303.zipbasm0303src.zip

3 Β· Mafia's COBASM

A lower-level .bos→.cob assembler that skips the BASM layer.

VersionBinarySource
0.3.2.0cobasm0320.zipcobasm0320src.zip

4 Β· How to run them

On Windows: drop a .bos file onto BOS_to_BASM.exe. On Linux/macOS: wine BOS_to_BASM.exe ARMALT.BOS β€” all outputs land next to the source (.prebasm = the preprocessor's view, .basm = the intermediate assembly, .cob = the game file; errors in <name>_BASM_errors.txt).

Configuration β€” an INI next to the exe, section [Settings]:

[Settings]
SearchPaths=
IncludePaths=includes
EnableBASMExtentions=1
AssemblerExeName=BASM.exe
AssemblerParams=-l -o0 -t0
CompileAndDoNotAssemble=0
PauseOnException=0
PauseAtEnd=0

Practical notes (verified with 0.8.2 + BASM 0.8.1.1 under Wine): pieces need an explicit piece base, flare1, …; declaration; a query out-parameter cannot be named piece (reserved word); the assembler must sit in the same directory as the compiler. The generated code differs from Cavedog-era COBBLER output in style (branch lowering, argument-slot numbering) but is semantically equivalent β€” see the round-trip comparison.

5 Β· Version history

Condensed from the readmes' own History sections (full text in each readme).

VersionChanges
0.8.2fixed the inline expander's non-unique labels
0.8.1comments stripped from defines (fixes the original includes)
0.8inlineable functions; Scriptor compatibility mode (default on); AND/OR/XOR logical keywords; fixed codegen for if/while loops
0.76basm update, history fixes
0.75preprocessor reports line/column/file of errors; named constants instead of global defines
0.7hexadecimal literals; constant-number codegen fix
0.6basm update; bitwise-and opcode codegen fix; basm keyword β†’ __basm
0.5basm update; turn-now/move-now handling fix; preprocessor race fix
0.4 / 0.4bcompiler speed rewrite
0.3 / 0.2fearly public versions (preprocessor output, error reporting, BASM hand-off)

6 Β· Other Central Consciousness tools

The same server carried the rest of the modding toolbox (and the TA Demo Recorder). Mirrored here too:

ToolFileWhat it is
Scriptor 0.74Scriptor074.zipthe classic BOS scripting editor; ships with real example scripts (zonter.bos, Arasword.bos, Arapries.bos, verharp.bos)
3DO Builder 2.023doBInstall202.zipthe mesh editor for .3do models
GAF Viewer 1.2gafviewer12.zipextracts frames from .gaf archives
TA Demo Recorder 1 RC2tadr1RC2.ziprecords and plays back MP games via a Dplayx.dll wrapper (2006)
TA2K PublicTA2KPublic.zipthe OpenGL TA preview project β€” with C++ source
EMG Patchemgpatch.exeremoves the EMG sound (lag fix)
Script packs (BOS include headers β€” drop into your script's include path)
FireArcsFireArcs.zipFireArcs.h β€” firing-arc helpers
Flakflak.zipflak.h β€” flak/AA behaviour
Headmoveheadmove.zipheadmove.h β€” aim-follows-turret helper
Multiturrets & multibarrelsmultiturrets&multibarrels.zipmultiturrets.h β€” multi-weapon script framework
SpeedUpSpeedUp.zipSpeedUp.h β€” script speed helpers
The original Central Consciousness downloads page
The original Central Consciousness downloads page, captured while rescuing the files (October 2026).

Also from that server and archived under Unit, map & total-conversion downloads: ~30 unit mods (several with full .bos source), six maps, and Total Battletech 1.40 (total conversion with a modded EXE).

7 Β· Provenance & integrity

Source of record: cc.tauniverse.com/downloads/boscompiler/ (TAUniverse Central Consciousness), downloaded 2026-10-05. Where the Internet Archive holds captures, the files match. The Internet Archive itself only ever captured a subset (BASM 0.8.1.x, compiler 0.5 & 0.8.2, COBASM 0.3.2.0); the older versions were rescued from the origin server directly. All 23 archives pass unzip -t. Verify with SHA256SUMS.txt β€” for orientation, the two files used in the round-trip test:

a00034132c33bc2ea9280a03798d0bfbbd7d2af4ddc49b48905cea8b9a1addcc boscompiler05.zip
f76693fa8366a3d3b74318fc35a557c0fe24ae0a1eb4a721a2c4fe53b20e9c83 basm0811.zip

8 Β· Credits

ggs β€” BOS compiler. Mafia β€” BASM and COBASM (source released, hence the opcode registry). Cavedog Entertainment β€” BOS language, the script library headers (EXPTYPE.H, SFXTYPE.H …, Β©1997) and the game. TAUniverse / Central Consciousness β€” distribution, 2003–2005. Not affiliated with Cavedog or its successors; preserved for modders and historians. Related: the AMPH decode article (100% of one unit explained and round-trip-verified with exactly these tools).