This document is a collection of eight internal "Maintenance Memos" for the PDP-10 Time-Sharing Monitor, published in January 1969. Its primary purpose is to consolidate previously separate memoranda for more convenient storage and distribution. It explicitly states that it contains no new or revised information and is not intended to be a complete, up-to-date coverage of the Monitor.
The memos detail various internal workings of the PDP-10 Time-Sharing Monitor, including:
- Executive Mode Use of the Priority Interrupt System: Explains the significance of priority levels, channel assignments, control of the interrupt system, machine actions upon interrupts, and input/output programming techniques.
- Job Scheduling: Describes how jobs are scheduled, queued, and transferred in both the 10/40 (nonswapping) and 10/50 (swapping) Monitor systems, including the process of swapping jobs between core and disk.
- Command Decoder (COMCON): Outlines the structure and function of the command decoder, covering initial setup, command routines (e.g., START, R, RUN), and how to add new commands.
- APR and Clock Interrupt Routines: Details the specific routines that handle interrupts from the Arithmetic Processor (APR) and the system clock (CLK), including their functional relationships.
- Programmed Operator Service (UUOCON): Describes the system's handling of User-Utilized Operations (UUOs), including preprocessing, dispatching to service routines, exit routines, and procedures for adding new programmed operators or subfunctions.
- System Initialization and Restarts: Explains the Monitor's startup sequence (FIRST, SYSINI, ONCE), including initializing data areas, configuring devices, setting system parameters, and handling various restart conditions.
- Context Switching: Details the mechanisms for saving and restoring the software and hardware state of a job when the Monitor switches between different user jobs.
- I/O Operators and Device Service Routines: Provides a comprehensive overview of how the Monitor manages input/output operations, covering the software link between users and devices, various I/O commands (INIT, OPEN, INBUF, OUTBUF, INPUT, OUTPUT, CLOSE, RELEASE, LOOKUP, ENTER), device data blocks, and interrupt-level I/O processing, including buffered and unbuffered transfers.