This document is a Programming Manual for the LINC-8 computer system, developed by Digital Equipment Corporation. It primarily focuses on programming the LINC subsystem, which can operate in one of two modes: as a standard PDP-8 computer or as a LINC with specific input/output and speed characteristics. The LINC subsystem uses the PDP-8 memory, with interpretive routines (PROGOFOP) handling certain instructions and console interactions.
The manual is structured into several key sections:
Introduction: Describes the LINC-8 system architecture, its two main subsystems (PDP-8 and LINC), and fundamental concepts like number systems (binary, octal, signed numbers) and basic console elements (accumulator, link bit, switches, DO lever).
Instructions: This is the core of the manual, detailing the LINC instruction set. Instructions are grouped into classes based on their function:
- Simple Instructions: Basic operations on the accumulator (Clear, Complement, Accumulator to Relay, Relay to Accumulator, Read Switches).
- Shift Class Instructions: Operations for rotating or scaling the accumulator contents (Rotate Right/Left, Scale Right), with or without including the Link bit.
- Memory Reference Instructions: Operations for interacting with memory (Store-Clear, Add, Jump), including address modification techniques for program loops and the use of the instruction location register.
- Index Class Instructions: Instructions for more complex memory addressing, including indirect addressing, indexing using dedicated index registers, and various operations like Load/Store Accumulator, Add to Accumulator, Add to Memory, Skip If Accumulator Equals, Bit Clear/Set/Complement. It also covers multi-length arithmetic (Link Add to Memory) and multiplication (Multiply), detailing signed integer and fraction operations, and how to handle 22-bit products.
- Special Index Register Instructions: Focuses on instructions that directly manipulate index registers for counting and initialization (Index and Skip, Set).
- Half-Word Class Instructions: Deals with operations on 6-bit halves of memory words (Load/Store Half, Skip if Half Differs), incorporating half-word indexing.
- Keyboard Instruction: Describes reading character codes from the ASR 33 Teletype keyboard.
- Display Instructions: Explains how to program the LINC scopes to display points, lines, and characters, using coordinate systems and pattern words. Specific instructions include Display (DIS), Skip Rotate (SRO), and Display Character (DSC).
- Analog Input and Sample Instruction: Covers reading analog signals from external lines and converting them to digital values (Sample), often used in conjunction with display for real-time plotting.
- Skip Class Instructions: Tests various conditions (e.g., accumulator zero/positive, link zero, external level status, key struck, inter-block zone) to control program flow by skipping the next instruction.
- Subroutine Techniques: Discusses methods for creating and managing subroutines, including control transfer between the LINC and PDP-8 processors using special OPR and EXC instructions and the PROGOFOP system.
- Magnetic Tape Instructions: Comprehensive coverage of LINC tape operations, including reading/writing data blocks, checking data integrity with checksums, group transfers, controlling tape motion (Move Toward Block), and understanding tape format and timing considerations.
Utility Systems: The manual also describes two high-level utility systems:
- GUIDE: A system for managing binary programs on LINC-tape, allowing users to file, load, execute, and delete programs, and display an index of stored programs.
- LAP4 (LINC Assembly Program 4): An assembly program for creating, editing (Remove, Insert, Pack, Display), saving, adding, and converting symbolic source code (manuscripts) into binary programs. It details the LAP4 language, meta-commands, and operational procedures.
Appendices: Provide supplementary information, including a detailed glossary of terms, charts listing LINC instruction codes and ASR 33 keyboard codes, pattern words for character display, and allocation details for utility system tapes. Appendix 3 specifically addresses Extended Memory Programming, discussing double memory and changing memory banks within the LINC-8's larger memory capacity. Appendix 4 lists all instructions with their codes, execution times, and detailed effects.
In essence, the manual serves as a comprehensive guide for programmers to understand the LINC-8's architecture, write programs using its instruction set, manage programs with its utility software, and interact with its various hardware components including memory, display, keyboard, analog input, and magnetic tape units.