This document describes the "PDP-8 DUAL PROCESS SYSTEM," a software library designed to enhance the multiprocessing capabilities of the PDP-8 and PDP-8/S computers.
Purpose: The system aims to maximize I/O speed and the portion of real time available for calculations by allowing programs to run during I/O operations through interrupt-driven processing and data buffering. It is especially useful for slower machines to prevent them from becoming I/O-bound.
Key Features & Methods:
- Circular Buffers: Maintains circular character buffers for each input and output device (e.g., keyboard, paper tape reader/punch, TTY).
- Concurrent Processing: Programs can run while I/O commands are being processed in the background, minimizing wait times.
- Input Queuing & Editing: Allows queuing of input data and provides real-time editing features for keyboard input, such as character deletion (rubout) and line deletion ("). Input lines are processed upon a carriage return.
- Subroutines: Provides specific subroutines (e.g.,
GETC for input, OUTCT for output) that users can call to interact with I/O devices. User programs specify addresses (KADR, RADR) for processing input.
- Echo Mode: Includes an optional automatic echo for keyboard input.
- Resource Requirements: Requires approximately 600 octal registers for the system plus buffer space.
- Efficiency: Claims low overhead, estimated at 2.4% for a 10 cps TTY.
Limitations & Usage Notes:
- It is a USER program from the DECUS Program Library, meaning it undergoes minimal quality control, and no warranty is provided.
- Users are responsible for tailoring the program to their specific applications and managing potential issues like buffer overflows, which can cause the system to halt.
- The document provides flowcharts illustrating the
IDLE loops, interrupt processing (NTRPT), and input/output subroutine logic.