This document is the PDP-11 MACRO-11 Language Reference Manual, published in August 1977 by Digital Equipment Corporation. It serves as a comprehensive guide for users to develop programs in the MACRO-11 assembly language for PDP-11 processors, assuming familiarity with PDP-11 hardware but not prior MACRO-11 knowledge.
The manual is structured into three main parts and several appendices:
Part I: Introduction to MACRO-11
- Outlines the key features of the MACRO-11 Assembler, such as source and command string control, error listing, relocatable object modules, global symbols for linking, conditional assembly, program sectioning, and comprehensive macro capabilities.
- Explains the two-pass assembly process, detailing the functions of Assembly Pass 1 (building symbol tables, macro processing) and Assembly Pass 2 (generating object records and assembly listings).
Part II: Programming in MACRO-11 Assembly Language
- Covers the fundamentals of writing MACRO-11 programs, including programming standards and conventions, detailed statement format (label, operator, operand, comment fields), and format control.
- Describes symbols and expressions, including the character set, types of symbols (permanent, user-defined, macro), direct assignment statements, register and local symbols, current location counter, numbers, terms, and expressions.
- Explains relocation and linking, detailing how MACRO-11 output is processed by the linker to create executable images and how symbols are resolved.
- Provides an in-depth look at PDP-11 addressing modes (register, deferred, autoincrement, autodecrement, index, immediate, absolute, relative) and their application in instructions.
Part III: MACRO-11 Directives
- Offers a comprehensive reference to general assembler directives for controlling assembly, such as listing control (.LIST, .NLIST, .TITLE, .SBTTL, .IDENT, .PAGE), function control (.ENABL, .DSABL), data storage (.BYTE, .WORD, .ASCII, .ASCIZ, .RAD50), radix and numeric control (.RADIX), location counter control (.EVEN, .ODD, .BLKB, .BLKW), terminating directives (.END, .EOT), program boundaries (.LIMIT), and program sectioning (.PSECT, .ASECT, .CSECT, .GLOBL).
- Details macro directives for defining and calling macros (.MACRO, .ENDM, .MEXIT), handling macro arguments (nesting, special characters, local symbols, keyword arguments, concatenation), attribute directives (.NARG, .NCHR, .NTYPE), error and print directives, repeat blocks (.IRP, .IRPC, .REPT, .ENDR), and macro library directives (.MCALL).
- Includes conditional assembly directives (.IF, .ENDC, .IFF, .IFT, .IFTF, .IIF) for selective code inclusion during assembly.
Appendices provide additional reference material, including:
- ASCII and Radix-50 character sets.
- Summaries of special characters, addressing mode syntax, and all assembler directives.
- The Permanent Symbol Table (PST) listing OP Codes and MACRO-11 directives.
- A summary of diagnostic error messages.
- A sample coding standard for preparing MACRO-11 programs.
- Guidelines for allocating and optimizing virtual memory.
- Information and examples for writing position-independent code.
- A sample assembly and cross-reference listing.