This document introduces two programming systems for the PDP-1 computer: FRAP (FORTRAN/FAP/MACRO Assembler Program) and DECAL (Digital Equipment Compiler, Assembler, and Linking Loader). Both aim to simplify programming by allowing users to write programs in a symbolic language rather than directly in binary or octal machine code.
FRAP (Symbolic Assembly Program):
- Acts as an assembler, translating symbolic programs (composed of PDP mnemonic instructions, octal numbers, and symbolic addresses) into binary machine language.
- It operates in two passes, assigning numerical values and generating an executable paper tape in the READ-IN MODE format.
- FRAP supports defining new symbols and calling subroutines.
- It includes a "Floating Point Language" that provides access to various floating-point arithmetic and trigonometric subroutines (e.g., add, subtract, multiply, divide, sine, cosine) by treating them as FRAP-defined instructions.
DECAL (Compiler, Assembler, and Linking Loader):
- An integrated programming system combining the features of an advanced assembler, a compiler, and a linking loader.
- Unlike FRAP's primarily one-to-one assembly, DECAL offers both assembly (one symbolic instruction to one machine instruction) and compilation (one problem-oriented statement to several machine instructions).
- It allows the free intermixing of algebraic, problem-oriented language statements with symbolic machine language instructions.
- Key features include a flexible loader for specifying program location, "systems" variables for inter-routine communication, and an open-ended design that allows for modification and expansion via a skeleton compiler.
- A primary advantage over FRAP is its ability to directly interpret and compile complex algebraic expressions.
In summary, both FRAP and DECAL facilitate programming for the PDP-1 by moving from tedious machine code to more human-readable symbolic languages. FRAP is a basic assembler, while DECAL is a more comprehensive system offering advanced compilation capabilities, integration of different programming paradigms, and enhanced flexibility. The document also briefly mentions Miscellaneous Routines, such as the Typewriter Interrogator Program (TIP) for debugging and I/O, and other utilities for number conversions and device communication.