OS/8
|
OS/8 was the primary operating system used on the Digital PDP-8 minicomputer. OS/8 was originally called MS/8 and, for a brief time, PS/8 ("Programming System/8") before Digital settled on the name OS/8 in 1971.
A virtually identical version of OS/8, called OS/12, was later used with Digital's PDP-12 computer.
Contents |
Overview
OS/8 provided a simple operating environment that was commensurate in complexity and scale with the PDP-8 computers on which it ran. I/O was supported via a series of supplied drivers which used polled (not interrupt-driven) techniques. The memory-resident "footprint" of OS/8 was only 256 words; 128 words at the top of Field 0 and 128 words at the top of Field 1. The rest of the operating system (the USR, "User Service Routines") was swapped in and out of memory transparently (with regard to the user's program) as needed.
The Concise Command Language
OS/8 used the then-standard "CCL" (Concise Command Language) which could also be found on Digital's PDP-10 systems running TOPS-10 and later on PDP-11 computers running RT-11, RSX-11, and RSTS/E. In fact, much of the OS/8 software system was deliberately designed to mimic, as closely as possible, the TOPS-10 operating environment.
The OS/8 Filesystem
OS/8 supported a simple, flat file system on a variety of mass storage devices including:
- TU56 DECtapes
- DF32 32KB fixed-head disks
- RF08 256KB fixed-head disks
- RK01/02/03/04/05 cartridge disk drives
- RX01/02 floppy diskette drives
Filenames on the PDP-8 took the form of FFFFFF.XX where "F" represents an uppercase, alphanumeric character of the filename and "X" represents an upper-case, alphanumeric character of the extension (filetype). Assembly-language sources used the extension ".PA"; saved core-images (executable programs) used the extension ".SV".
The contents of any given file was stored contiguously in a single "extent". PIP included an option to compress ("squeeze") the filesystem so all unallocated space was moved to a single extent at the end of the disk.
OS/8 volumes had a very limited maximum storage size and the RK05 (2.4MB) moving-head disk exceeded this size. Because of this, RK05 cartridges were divided into two partitions. For example the first RK05 on a system would be known as both RKA0: (SY:) and RKB0:. This division was commonly thought to mean "the upper surface" and "the lower surface" but this was incorrect; it in fact was "the outer cylinders" and "the inner cylinders".
OS/8 CUSPs (Utility Programs)
The CUSPs (Commonly-Used System Programs, that is utilities) supplied with OS/8 included:
- BUILD (the program to install a configured OS/8 system onto mass storage)
- DIR (the directory-listing program)
- EDIT (A line-oriented editor)
- FLAP (Another relocating assembler)
- FORTRAN-II
- FOTP (File-Oriented Transfer Program, an alternative to PIP)
- PAL (The assembler)
- PIP (the Peripheral Interchange Program, used to copy files)
- PIP10 (a version of PIP used to copy files to from PDP-10 DECtapes)
- RALF (A relocating assembler)
- TECO (Text Editor and COrrector, a much-more-sophisticated editor)
CCL, the command langage processor, was supplied in source form and could be extended by the user.
A single-user BASIC and several multi-user versions of BASIC were available as options. The single-user BASIC used several overlays to provide the full functionality of the language.
OS/8 Trivia
- OS/8 did no time-keeping, but if you told it the date, it would willingly store that date as part of the directory information maintained for each file in the filesystem. The OS/8 calendar originally spanned only the 8 years from 1970 to 1978, but it was later extended to incorporate the idea of an 8-year sliding "window". The Y2K problem arrived very early for PDP-8 programmers!
- The archetypical bootstrap routine for a PDP-8 with RK05 mass storage was as follows:
- 30/ 6743 (Initiate a disk read of the boot block)
- 31/ 5031 (Jump to location 30)
- OS/8 CCL implemented the famous TECO ".MAKE LOVE" joke
- ALL of OS/8 was described in a single, rather-thick "OS/8 Handbook".