This document is the MACRO ASSEMBLER REFERENCE MANUAL, published in April 1978 for the DECsystem-10 (specifically MACRO-10, Version 53, and TOPS-10, Version 6.03).
It serves as a comprehensive reference for programmers familiar with assemblers and assembly languages. The manual details the MACRO assembler's operation as a two-pass process that translates MACRO statements into relocatable binary machine instruction code suitable for the system's linking loader (LINK).
Key aspects covered include:
- Language Elements: Descriptions of special characters, numbers (integers, radix, fixed/floating-point, binary shifting, bit querying), literals, symbols (selection, definition, attributes like local/global/external, variables), and expressions (arithmetic, logical, Polish/complex, and their evaluation).
- Pseudo-operations: An extensive section detailing numerous pseudo-ops that control assembly and listing (e.g.,
ARRAY, ASCII, DEFINE, END, EXTERN, IFx for conditional assembly, IRP/IRPC for indefinite repetition, LIT, LOC, RELOC, RADIX, UNIVERSAL), manage storage, and define program structure.
- Macro Processing: Comprehensive guidance on defining, calling, nesting, and handling arguments for user-created macros, allowing for tailored language elements.
- Statement Processing & Addressing: How MACRO processes statements, assigns memory addresses, and interprets machine instruction mnemonics and formats (primary, I/O, extended instructions).
- Assembler Output: Details on the generated program listing (.LST) file, relocatable binary program (.REL) file, and universal (.UNV) file.
- Programming Considerations: Information on using the assembler, program segmentation (single-segment, two-segment, and PSECTs), and conditional assembly techniques.
- Error Handling: A guide to informational messages, single-character error codes, and MCRxxx messages generated during assembly.
- Appendices: Provide lists of MACRO character sets, special character interpretations, and all MACRO-defined mnemonics.