This document outlines the initial specifications for XAP-6, a symbolic assembly program designed to assemble PDP-X programs.
Key aspects of XAP-6 include:
- Platform: It runs on a PDP-6 system under the PDP-6 Time-Sharing Monitor, effectively acting as a cross-assembler for PDP-X software development.
- Operation: It is a two-pass assembler requiring a minimum of 5K core memory and is designed to be device-independent, allowing users to specify input/output devices.
- Output: Generates relocatable or non-relocatable binary object programs compatible with the PDP-X Simulator on the PDP-9 (XSIM-9). It also provides an optional output listing with source code, object code, and error flags.
- Input: Processes source programs written in 7-bit ASCII using the PDP-X Assembler Language.
- Language Features: Supports comprehensive assembly language elements, including labels, operators, operands, symbols, direct assignments, various number formats (octal, decimal, single/double precision, floating point, binary shifting), and expressions.
- Pseudo-Operations: Includes a wide range of pseudo-ops for defining user-created operators (EOPDEF), reserving memory blocks (BLOCK, PBLOCK), handling text strings (ASCII, VFD), controlling location assignments and addressing modes (LOC, RELOC, MORG), managing subroutine linkages (INTERN, EXTERN), and conditional assembly (IF, ENDC).
- Design Goals: Aims for downward compatibility and 100% language compatibility with the eventual PDP-X assembler (XAP), with a modular design for maintainability.
- Limitations: Due to size considerations, some features intended for XAP (e.g., hexadecimal numbers, Radix 50, automatic optimization) were not implemented in XAP-6.
- Implementation: Written in MACROX and designed to be re-entrant.
XAP-6 served as a crucial tool for system and diagnostic programmers in the early development of PDP-X software.