This document is a programmer's reference manual for the MACRO-9 Assembler, designed for the PDP-9 ADVANCED Software System. It details how the assembler translates symbolic assembly language into machine code, operating in two passes under Monitor systems and requiring less than 6K of core memory.
Key features of MACRO-9 include:
- Symbolic Programming: It allows programmers to use mnemonic symbols for operation codes, memory locations, and numeric quantities, simplifying machine language development.
- Output Flexibility: The assembler primarily produces relocatable binary object programs, which can be loaded and linked by the PDP-9 Linking Loader. It also offers options for generating absolute addresses or full binary output.
- Pseudo-Operations (Pseudo-ops): A comprehensive set of directives enables programmers to control the assembly process, including setting the numerical radix, reserving storage blocks, defining program segments, handling text strings (ASCII and 6-bit), conditional assembly, loader control, and listing management.
- Macro Instructions: A powerful macro generator allows for defining reusable code sequences with dummy arguments, supporting nesting, redefinition, and recursive calls to adapt the assembler to specific programming needs.
- Debugging Tools: It provides detailed assembly listings, including source code, generated object code, symbol table output, and error flagging to aid in program analysis and debugging.
The manual outlines the system's hardware requirements (minimum 8K core memory, Teletype, paper tape I/O, with optional bulk storage for Keyboard Monitor support), explains the two-pass assembly process, and describes the various elements of the assembly language, such as program statements, symbols, numbers, and address assignments. An abbreviated version, MACROA, is also mentioned for 8K systems with DECtape, which omits some features like user-defined macros and certain pseudo-ops to conserve memory.