The OS/8 Operating System

Introduction

This is the operating system best known to most PDP-8 users. It is a single user OS. There are several versions of OS/8 and later versions were not backward compatible with earlier PDP-8 systems. The last operating system version that was relatively bug free and the choice for most systems was OS/8 V3D. The original system was known as PS/8, and there is a version 1 and a version 2 at least. Eventually, the name was changed to OS/8, and all of them are some variation on a version 3.

OS/8 was a very simple operating system that ran within the constraints of the PDP8's 12 bit architecture and limited memory. For example, device drivers, could only occupy one or two 128 word memory pages. The memory-resident "footprint" of OS/8 was only 256 words. The rest of the operating system was swapped in and out of memory transparently. Early versions of OS/8 had a very rudimentary command-line interpreter with very few basic commands: GET, SAVE, RUN, ASSIGN, DEASSIGN, and ODT. With version 3 they added a more sophisticated overlay called CCL (Concise Command Language) that implemented many more commands. OS/8's CCL was directly patterned after the CCL found on Digital's PDP-10 systems running TOPS-10. In fact, much of the OS/8 software system was deliberately designed to mimic, as closely as possible, the TOPS-10 operating environment. (The CCL command language was later used on PDP-11 computers running RT-11, RSX-11, and RSTS/E, providing a similar user operating environment across all three architectures: PDP-8s, PDP-10s, and PDP-11s.).

The basic OS and CCL implemented many rather sophisticated commands, many of which still do not exist in modern command languages. For example, the COMPILE command would automatically find the right compiler for a given source file and start the compile/assemble/link cycle. As well, the ASSIGN and DEASSIGN commands allowed one to use logical device names in a program instead of physical names. For example, a program could write to device FLOP:AAA.TXT, and if the user first specified "ASSIGN FLOP: RXA2:" then the file would be created on physical device RXA2 (the second floppy disk drive. The SET command was capable of setting many system options, albeit by the crude method of patching locations in the system binary code. One of them, a command under OS-78,[8] was SET SYS OS8, and it re-enabled the MONITOR commands that were not part of OS-78. The BUILD command could reconfigure the OS on the fly, even adding device drivers, often without having to reboot the OS.

The minimum OS/8 configuration is a PDP-8 series computer with 8K words of memory, one DECtape used as the system device, and a console terminal. A multiple DECtape system performs appreciably faster than a single DECtape system. The multiple DECtape system reduces DECtape motion since it is possible to copy directly (without intermediate searching) from the system DECtape to another DECtape (or vice versa) when editing or assembling. A typical medium-sized system might contain a PDP-8/E with at least 8K words of core memory, TD8E DECtape and control, and an RK8E disk pack and control. A disk system offers the additional convenience of easy and fast access to files and large amounts of storage. Up to fifteen devices can be included in a single OS/8 system. All peripheral operations are handled without using interrupts.

OS/8 System Software Components

The main software components of an OS/8 system include:

Component Description
Keyboard Monitor The Keyboard Monitor provides communication between the user and the OS/8 executive routines by accepting commands from the console terminal. The commands enable a user to create logical names for devices, run system and user programs, and save programs
Concise Command Language The Concise Command Language (CCL) provides an extended set of Monitor Commands.
Command Decoder The Command Decoder allows the user to communicate with a system library program by accepting a command string from the keyboard indicating input/output files. Following a keyboard command to run a system library program, the Command Decoder prints an asterisk and then accepts the command line containing device and file specifications.
System Program Library contains the programs that come with the OS/8 OS and any of the extension programs the user chooses. These system programs enable the user to develop user-written programs in PAL8 assembly language, BASIC, FORTRAN IV, and other languages available under OS/8. Please refer to the OS/8 system program list below.
Device Handlers Device handlers are subroutines designed to transfer data to and from peripheral devices. OS/8 can interface with as many as 15 different peripherals at a time. During system generation, device handlers become an integral part of the system; both system and user programs have access to any available device. (The BUILD program allows quick and easy alteration of any available device.)
User Service Routine The User Service Routine (USR) controls the directory operations for the OS/8 system. A program can use the USR by means of standard subroutine calls such as those used to activate device handler subroutines. Some of the functions performed by the USR are loading device handlers, searching file directories, creating and closing output files, calling the Command Decoder, and chaining of programs. The details on the operation and use of the USR are contained in the OS/8 Software Support Manual (DEC-S8-OSSMB-A-D). For normal OS/8 usage, the USR function is unseen by the user and need be of no concern.

OS/8 System Program Library List

Program Description
BATCH The BATCH monitor enables a user to prepare a job on punched cards, high-speed paper tape, or the system device and then leave it for OS/8 to run.
BITMAP The BITMAP program produces a table to show the locations that a binary file occupies in memory.
BOOT The BOOT program loads standard hardware bootstraps into memory.
BUILD The BUILD program allows a user to alter the device configuration to insert new devices or add user-written handlers.
CAMP The Cassette and Magnetic Tape Positioner program enables the user to manipulate cassettes and magnetic tapes.
CREF The Cross Reference Program produces a table in assembly listings that enables you to locate references to symbols and literals.
DIRECT The DIRECT program produces various types of directories.
DTFRMT, DTCOPY,TDFRMT, TDCOPY These programs format and copy DECtapes.
DUMP The DUMP program sends listings to the LP08 line printer.
EPIC The Edit, Punch, and Compare program reads and punches paper tapes, edits files, and compares files in any format.
FOTP The File-Oriented Transfer Program transfers groups of files between file-structured devices.
FUTIL The File Utility program enables you to examine and modify the contents of mass storage devices.
MCPIP The Magtape/Cassette Peripheral Interchange Program is a file-transfer program for cassettes and magnetic tapes.
ODT The Octal Debugging Technique enables you to run and debug a program by typing instructions at the keyboard.
PIP The Peripheral Interchange Program transfers files between devices and provides file and directory maintenance functions.
PIP10 This is a file-transfer program that reads and writes ASCII DECtape files using a TC08 or TD8E DECtape controller.
RESORC The RESORC program prints a listing of active device handlers.
RKLFMT The RKLFMT program formats RK05 disks.
RXCOPY The RXCOPY program copies diskettes.
SET The SET program makes it possible for the user to modify the operating characteristics of OS/8.
SRCCOM The Source Compare program compares two source files line by line and prints the differences.