LLMpediaThe first transparent, open encyclopedia generated by LLMs

MACRO-11

Generated by GPT-5-mini
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: MACRO-10 Hop 4
Expansion Funnel Raw 46 → Dedup 0 → NER 0 → Enqueued 0
1. Extracted46
2. After dedup0 (None)
3. After NER0 ()
4. Enqueued0 ()
MACRO-11
NameMACRO-11
DesignerDigital Equipment Corporation
DeveloperDigital Equipment Corporation
Released1970s
ParadigmAssembly language, macro assembly
PlatformPDP-11
InfluencedVAX MACRO-32, MACRO-32 macro features, IAS assembler traditions

MACRO-11 is an assembly language and macro assembler developed by Digital Equipment Corporation for the PDP-11 series of minicomputers. It provided mnemonic instruction encoding, symbolic labels, and a powerful macro facility that simplified system programming tasks for operating systems, device drivers, and firmware. Widely used in the 1970s and 1980s, it became a de facto standard for low-level development on PDP-11 machines in environments such as DECUS laboratories, university research groups, and commercial sites.

Overview

MACRO-11 combined a traditional two-pass assembly model with an extensible macro language, enabling concise expansion of complex instruction sequences. It supported the PDP-11 architecture's orthogonal register set and addressing modes, integrating with linkers and loaders like LINK-11 and RSTS-11 utilities. MACRO-11 facilitated development of system software for operating systems including RSX-11, RT-11, and early versions of UNIX ported to PDP-11 hardware. Prominent commercial and academic adopters included Bell Labs, MIT, Stanford University, and various U.S. Department of Defense contractors.

History and Development

Early development of MACRO-11 occurred within Digital Equipment Corporation design groups during the PDP-11 launch, influenced by prior assemblers for the PDP-8 and PDP-10 lines. Designers incorporated lessons from assembly systems at Bell Labs, Hewlett-Packard, and Intel to address increasing complexity in system code. MACRO-11 evolved through DEC software releases alongside hardware revisions such as the UNIBUS and Q-bus, and later informed assemblers on the VAX-11 family. DEC documentation and internal DECUS exchanges circulated macros and idioms widely, and vendors like DEC Professional workstations ported tooling to varied storage and bootstrapping environments.

Language Features and Syntax

MACRO-11 syntax centered on mnemonic opcodes, symbolic labels, and operand specifiers reflecting PDP-11's addressing modes. Source files used directives for data allocation, conditional assembly, and segment control compatible with linkers prevalent in V7 Unix and RSX-11/M. The macro language supported parameter substitution, conditional expansion, local labels, and iterative constructs, aiding portability across device driver and interrupt handler codebases. Assemblers accepted expressions involving constants and relocatable symbols interoperable with object file formats used by Assemblers in DEC toolchains. Source-level debugging was facilitated by listing options that interoperated with debuggers like SDA and loader utilities used in DEC system sites.

Assembler Usage and Tools

Typical development workflows combined MACRO-11 with editors such as ed, TECO, and vendor-specific tools, plus build automation scripts used by groups at Bell Labs and universities. Object files produced by MACRO-11 were linked using utilities like LINK-11 and loaded into monitors or operating systems including RT-11 and RSX-11/M. Toolchains often integrated with cross-assemblers running on VAX-11 or DECsystem-10 hosts, and were distributed through outlets like DECUS tapes and manuals. Peripheral support in assemblers included symbol table generation for profilers used at research centers like Carnegie Mellon University and University of California, Berkeley.

Instruction Set and Macros

MACRO-11 encoded the PDP-11 instruction set, turning mnemonics such as MOV, JMP, and EMT into machine opcodes for the KL11 and subsequent CPU implementations. The assembler exposed addressing modes including register, autoincrement, autodecrement, indexed, and absolute forms used in drivers for hardware such as MASSBUS controllers and TU58 tape drives. Its macro facility allowed creation of parameterized instruction templates for interrupt entry sequences, context-saving stubs, and device I/O primitives common in RSX-11 and V7 Unix kernel modules. Libraries of macros circulated among organizations like Bell Labs, DEC, and DECnet developers to standardize calling sequences and exception handling.

Applications and Systems Written in MACRO-11

A broad range of system software and utilities were implemented in MACRO-11, including boot loaders, interrupt handlers, device drivers, and core operating system components. Notable systems and projects that used MACRO-11 include early UNIX PDP-11 kernel components, the RSX-11 family of operating systems, the RT-11 monitor, and firmware for peripheral controllers created by DEC and OEMs. Academic research projects at MIT, Stanford, and UC Berkeley produced experimental operating systems, compilers, and real-time control systems relying on MACRO-11 for performance-critical sections. Commercial applications encompassed process control systems for companies such as GE and Siemens that deployed PDP-11-based solutions.

Legacy and Influence on Later Assemblers

MACRO-11's macro paradigms, conditional assembly constructs, and mnemonic conventions influenced assemblers for later DEC architectures, notably MACRO-32 for the VAX family and assembler features in VMS. Its idioms informed educational materials and assembly programming curricula at institutions like MIT and Stanford, and many system-level techniques were carried forward into compiler backends and embedded toolchains developed by companies including Intel and Motorola. Enthusiast and preservation communities at Computer History Museum, The Open Group, and DECUS have archived MACRO-11 sources and documentation, ensuring its role in the evolution of systems programming continues to be studied.

Category:Assembly languages Category:Digital Equipment Corporation software