TASC compiler sources
Microsoft TASC 2.01. TASC runs as three Applesoft programs compiled by TASC itself, sharing a COMMON block: PASS0 asks the questions and sets up, PASS1 compiles, PASS2 finishes the object file. RUNTIME is the machine language library compiled programs call; MAKE RUNTIME builds it.
| Program | What it does | ||
|---|---|---|---|
| PASS0 | Pass 0: dialog, DOS patches, tables, then runs pass 1 | overview | listing |
| PASS1 | Pass 1: parsing, symbol table and code generation | overview | listing |
| PASS2 | Pass 2: constants, variable routines, backpatching, header and report | overview | listing |
| MAKE RUNTIME | Builds the RUNTIME library file from DATA statements | overview | listing |
| RUNTIME | The machine language library compiled programs call (6502 source) | overview | listing |
The TASC manual
Microsoft’s TASC User’s Manual (1981): read it here, transcribed and proofread against the printed pages, or download the scanned manual (PDF, 1,161,448 bytes) or the transcription (Markdown text, 144,509 bytes).
Disk images
140K DOS 3.3 disk images (16 sectors, DOS order) for an Apple II or an emulator. To compile a pass, boot the TASC disk with the source disk in drive 2 and answer PASS1,D2 at the source file question and PASS1.OBJ,D1 at the object file question (the source disk has no room for object files).
| Image | Contents | Size | SHA-256 |
|---|---|---|---|
| TASC-2.01.dsk | The TASC 2.01 disk as distributed: PASS0, PASS1, PASS2, RUNTIME and the BALL demonstration (boots into the compiler) | 143,360 bytes | ae1baff97b74413f… |
| TASC-2.01-SOURCE.dsk | The source disk: PASS0, PASS1 and PASS2 as Applesoft programs, MAKE RUNTIME, and the RUNTIME source (RUNTIME.S1-S6 for the DOS Tool Kit assembler) | 143,360 bytes | 955409da583788e3… |
AASCAD
aascad.py (253,925 bytes, sha256 167812fe52f76912…)
Another AppleSoft Compiler And Decompiler: one Python script (3.9 or later, nothing to install) that compiles an Applesoft program exactly as TASC 2.01 does, byte for byte, and turns a TASC object file back into an Applesoft program, checking that it compiles to the same bytes. Its options and how to use it; project page on GitHub. AASCAD is copyright © 2026 Lydian Scale Software, with portions by Microsoft.
python3 aascad.py compile BALL.txt -o BALL.OBJ python3 aascad.py decompile BALL.OBJ -o BALL.txt --bas BALL.bas python3 aascad.py compile "TASC.dsk::BALL" -o "WORK.dsk::BALL.OBJ" python3 aascad.py --help
Copyright and use
TASC, its compiler passes and the RUNTIME library are the copyrighted work of Microsoft (Copyright © 1981 Microsoft), and Microsoft’s ownership of this code is respected. The sources, listings and documentation here are prepared with the intent of staying within the bounds of fair use, and are for educational and historical purposes only: to study and preserve how an early Apple II compiler worked. They are not offered for sale or for any commercial use.
Any takedown or removal request from the copyright holder will be respected and acted on promptly.