OS/8
| Company type | Operating system |
|---|---|
| Industry | Computer software |
| Predecessor | PS/8 |
| Founded | 1971 |
| Founder | Digital Equipment Corporation |
| Headquarters | Maynard , United States |
| Products | OS/8 operating system for PDP-8 minicomputers |
| Owner | Digital Equipment Corporation |
OS/8 serves as the chief operating system designed for Digital Equipment Corporation's PDP-8 minicomputer series.
Earlier operating systems for the PDP-8 include:
- R-L Monitor, also known as MS/8
- P?S/8, which required only 4K of memory
- PDP-8 4K Disk Monitor System
- PS/8 ("Programming System/8"), demanding 8K memory and evolving into OS/8 in 1971
Associated DEC operating systems encompass OS/78, OS/278, and OS/12—a nearly identical adaptation of OS/8 tailored for the PDP-12.
Digital made OS/8 disk images available for non-commercial purposes, compatible with emulation through SIMH.
Overview
OS/8 offers a compact and efficient operating environment optimized for PDP-8 hardware. Input/output operations are handled via provided drivers that use polling methods instead of interrupts. These drivers are finely tuned to fit within one or two 128-word memory pages, executing in field 0, and often utilize ingenious instruction sequences to minimize memory usage.
The fundamental operating system occupies a mere 256 words of memory—split evenly with 128 words at the top of Field 0 and another 128 at the top of Field 1. Larger user service routines (USR) are loaded dynamically from the disk-based system area (the initial 14K words on the SYS: device), which also includes swap space.
Memory contents remain intact across user commands under OS/8, facilitating an efficient development process. For example, assembly source files compile into .BN files; these are loaded using the LOAD command, run via START, debugged with ODT, and saved as .SV files that can be retrieved by GET or executed directly. Program-specific information is maintained in the Core Control Block (CCB) on SYS:, tracking memory allocation and entry points.
This approach to preserving memory state is comparable to concepts found in other DEC environments such as TOPS-10 on the PDP-10, where it is referred to as a context.
Booting from hard disk is swift under OS/8, with the command prompt appearing in less than half a second.
The Concise Command Language
Initial versions of OS/8 included a rudimentary command-line interpreter offering only basic commands like , , and . The introduction of version 3 brought the enhanced CCL (Concise Command Language), modeled after the CCL used on Digital’s PDP-10 systems running TOPS-10. This design aimed to replicate the TOPS-10 user experience across PDP-8, PDP-10, and PDP-11 platforms.
OS/8’s CCL incorporates advanced commands that remain uncommon in many contemporary operating systems such as MS-DOS, Windows, or Unix-like systems. For instance, automatically selects the correct compiler and initiates the entire build process including compile, assemble, and link stages.
Commands like and enable logical device naming schemes, allowing software to address devices abstractly rather than by physical identifiers—offering greater flexibility than MS-DOS. This capability influenced subsequent operating systems including VAX/VMS and AmigaOS.
The command modifies system options by patching executable binaries; for example, under OS-78 it restores MONITOR commands that OS-78 omits. The command allows dynamic reconfiguration of the operating system by adding or removing device drivers without requiring a reboot in many cases.
The OS/8 Filesystem
OS/8 utilizes a flat file system structure compatible with various types of mass storage devices:
- TU56 DECtape drives
- DF32 fixed-head disks (32KW)
- RF08 fixed-head disks (256KW)
- RK01 through RK05 cartridge disk drives
- RL01 and RL02 cartridge disk drives
- RX01 and RX02 floppy disk drives
File naming conventions on PDP-8 follow the pattern , where "F" represents an uppercase alphanumeric filename and "X" is an uppercase extension denoting file type:
- .PA : Assembly language source files
- .SV : Saved core images (executables)
- .FT : Fortran source code
- .DA : Data files (other formats may also be stored as data)
Files are stored contiguously within single extents. Allocation occurs by opening a tentative file via the User Service Router (USR) "ENTER" function, which assigns an extent based on requested size. After writing data using direct device driver calls, invoking USR "CLOSE" finalizes the file—marking it permanent and reclaiming space from any previous file sharing that name. Only one tentative file per volume can be open simultaneously, aligning well with workflows such as PAL8 assembler’s single output file per pass.
The PIP utility provides a filesystem compression feature ("squeeze") accessible via the SQuish CCL command, which consolidates free space into a single extent located at the disk's end.
Volumes under OS/8 have a maximum capacity of 4096 blocks consisting of 256 twelve-bit words each. The larger RK05 disk (2.4MB) surpasses this limit and is therefore partitioned into two logical volumes—commonly designated RKA0: and RKB0:—corresponding to its outer and inner cylinder groups respectively.
ASCII
Within OS/8, two distinct methods manage ASCII text files. Each ASCII file encodes three 8-bit characters across two 12-bit words: the initial two characters are fully contained within the first word, while the third character’s bits are distributed between both words.
- WORD 1: c0 c1 c2 c3 | a0 a1 a2 a3 a4 a5 a6 a7
- WORD 2: c4 c5 c6 c7 | b0 b1 b2 b3 b4 b5 b6 b7
An ASCII file concludes with the CTRL/Z character (ASCII code 232).
Additionally, OS/8 employs a 6-bit uppercase-only ASCII variant, packing two characters per word. This encoding is utilized for filenames and BASIC string data. In BASIC, the PNT() function facilitates printing any 8-bit code through the PRINT statement.
OS/8 date format
Dates in OS/8 are stored within PDP-8’s 12-bit word structure as follows:
- 4 bits allocated for the month
- 5 bits representing the day
- 3 bits indicating the year (spanning 1970 to 1977)
Because the year field is limited to three bits—covering only eight years—subsequent systems such as COS-310 adopted enhanced text file formats and alternative date storage methods to overcome this restriction.
OS/8 CUSPs (Utility Programs)
OS/8 provides a collection of Commonly-Used System Programs (CUSPs), including:
- BUILD – installs a configured OS/8 system onto mass storage devices
- DIR – lists directory contents
- EDIT – a line-based text editor
- MACREL – relocating assembler with macro capabilities, created by Stanley Rabinowitz from DEC’s Small Systems Group
- FLAP – an absolute assembler derived from RALF
- FORTRAN II – FORTRAN II language compiler
- FOTP – File-Oriented Transfer Program, serving as an alternative to PIP
- PAL – assembler tool
- PIP – utility for copying files
- PIP10 – variant of PIP designed for PDP-10 DECtape media
- RALF – relocating assembler tailored for the Floating Point Processor (FPP)
- TECO – sophisticated text editor supporting macros; the MUNG command executes TECO macros
- CCL – command line interpreter distributed as source code and customizable by users
BASIC
The system offers one single-user BASIC interpreter alongside two multi-user versions. The single-user variant relies on overlays, which results in noticeable delays when running from DECtape due to tape access during overlay transitions.
The multi-user versions, EDU20 and EDU25, differ primarily in their device support: EDU20 handles block-replaceable devices such as DECtape or disk differently than EDU25. EDU20 loads from paper tape and outputs to paper tape writers, whereas EDU25 supports filesystem operations on DECtape or disk drives, enabling file creation and retrieval. Both versions can execute multiple BASIC programs simultaneously through a simple task scheduler that cycles terminals in round-robin fashion. Memory availability is constrained because core memory is expensive; EDU20 supports up to four terminals within an 8K 12-bit word memory space, while EDU25 requires at least 12K due to additional disk and filesystem drivers. Launching either version replaces OS/8’s resident memory; however, EDU25 saves and restores this memory upon exit, unlike EDU20 which targets hardware lacking block-replaceable devices.
FORTRAN
A complimentary FORTRAN II compiler is provided alongside a more advanced FORTRAN IV compiler that supports the optional FPP-8 floating-point processor—a separate CPU sharing memory with the PDP-8. When equipped with the FPP-8, FORTRAN runtime delegates main program execution to it while the PDP-8 manages input/output operations. In the absence of the FPP-8, an interpreter runs directly on the PDP-8 at reduced performance. An early release of FORTRAN IV contained a bug affecting DO loop counting which was subsequently corrected.