====== FAIL Assembler ======
**FAIL** is the winning assembler from Stanford SAIL. It was originally written for the WAITS operating system, but was ported to TOPS-20 and is now available on twenex.org.
From the help file:
FAIL is a fast, one-pass assembler for the DECsystem-10/DECsystem-20.
FAIL is documented in DOC:FAIL.MANUAL.
Although FAIL is a great deal faster than MACRO-20, which is the
DEC-supplied assembler, new programs should be written in MACRO
because MACRO has a wider set of features to support complex
assemblies and extended addressing, e.g., PSECT.
FAIL is not entirely compatible with MACRO-20, differing most notably in
its macro capabilities, and its support for ``block structured'' symbols.
FAIL is unsupported.
FAIL works with the TOPS-20 build commands (''EXECUTE'', ''COMPILE'', ''LOAD''). The standard source file extension is ''.FAI''.
There is a complete manual on-line in ''DOC:FAIL.MANUAL''. An older version of the manual is available at [[http://www.bitsavers.org/pdf/stanford/sail/STAN-CS-74-407_FAIL_Apr74.pdf|Bitsavers']].
Here's a working Hello program. Save the following program in file ''HELLO.FAI'', then assemble, link, and run it with ''@EXEC HELLO'':
; Hello program in FAIL assembly
start: hrroi 1,[asciz/Hello, World!/]
PSOUT
HALTF
jrst start
end start