OS/8

OS/8 is the primary operating system used on the Digital Equipment Corporation's PDP-8 minicomputer.

OS/8
DeveloperDigital Equipment Corporation
Working stateDiscontinued
Source modelClosed source
Initial release1971 (1971)
PlatformsPDP-8
Default
user interface
Concise Command Language (CCL)
(Command-line interface)
LicenseProprietary
Preceded byPS/8

PDP-8 operating systems which precede OS/8 include:

Other/related DEC operating systems are OS/78, OS/278,[3] and OS/12. The latter is a virtually identical version of OS/8, and runs on Digital's PDP-12 computer.

Digital released OS/8 images for non-commercial purposes[4] which can be emulated through SIMH.

Overview

OS/8 provides a simple operating environment[5] that is commensurate in complexity and scale with the PDP-8 computers on which it ran. I/O is supported via a series of supplied drivers which uses polled (not interrupt-driven) techniques. The device drivers have to be cleverly written[6] as they can occupy only one or two memory pages of 128 12-bit words, and have to be able to run in any page in field 0. This often requires considerable cleverness, such as the use of the OPR instruction (7XXX) for small negative constants.

The memory-resident "footprint" of OS/8 is 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") swaps in and out of memory transparently (with regard to the user's program) as needed.

The Concise Command Language

Early versions of OS/8 have a very rudimentary command-line interpreter with very few basic commands: GET, SAVE, RUN, ASSIGN, DEASSIGN, and ODT. With version 3 they add a more sophisticated overlay called CCL (Concise Command Language) that implements many more commands. OS/8's CCL is directly patterned after the CCL found on Digital's PDP-10 systems running TOPS-10. In fact, much of the OS/8 software system is deliberately designed to mimic, as closely as possible, the TOPS-10 operating environment. (The CCL command language is 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 implements many rather sophisticated commands, many of which still do not exist in modern command languages, not even in MS-DOS, Windows, or Unix-like operating systems.

For example, the COMPILE command automatically finds the right compiler for a given source file and starts the compile/assemble/link cycle.

The ASSIGN and DEASSIGN commands permit the use of logical device names in a program instead of physical names (as required in MS-DOS). For example, a program can write to device FLOP:AAA.TXT, and with an initial "ASSIGN FLOP: RXA2:" then the file is created on physical device RXA2 (the second floppy disk drive). VAX/VMS and the Amiga's operating system AmigaOS (and other OSes built around TRIPOS) make considerable use of this feature.

The SET command is capable of setting many system options by patching locations in the system binary code. One of them, a command under OS-78,[7] is SET SYS OS8, which re-enables the MONITOR commands that are not part of OS-78.

The BUILD command can reconfigure the OS on the fly, even adding device drivers, often without having to reboot the OS.

The OS can boot from a hard disk and present the command prompt in under half a second.

The OS/8 Filesystem

OS/8 supports a simple, flat file system on a variety of mass storage devices including:

Filenames on the PDP-8 take the form of FFFFFF.XX where "F" represents an uppercase, alphanumeric character of the filename and "X" represents an uppercase, alphanumeric character of the extension (filetype).

The contents of any given file is stored contiguously in a single "extent". PIP includes an option to compress ("squeeze") the filesystem, so that all unallocated space is moved to a single extent at the end of the disk. This can be invoked by the SQuish CCL command, much as MUNG can be used to run a TECO macro.

OS/8 volumes have a limited maximum storage size (4096 blocks of 256 twelve-bit words) and the RK05 (2.4MB) moving-head disk exceeds this size: "1.6 million words of storage".[9] Because of this, RK05 cartridges are divided into two partitions. For example, the first RK05 on a system is known as both RKA0: (SY:) and RKB0:. This division refers to "the outer cylinders" and "the inner cylinders".

ASCII files

ASCII files are stored as three 8-bit characters per pair of 12-bit words. The first two characters (marked with bits a0–a7 and b0–b7 below) are stored whole in their words, while the third character (bits c0–c7) is stored with half of its bits in word 1 and the other half in word 2.[7]

  • 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
    ASCII files end with a CTRL/Z (ASCII 232).

OS/8 date format

OS/8 allocates the PDP-8's 12 bit words for storing dates per:

The insufficiency of a three-bit year field, capable of storing only eight years, was recognized when COS-310 was developed.[11]

OS/8 CUSPs (Utility Programs)

The CUSPs (Commonly-Used System Programs, that is utilities) supplied with OS/8 include:

  • BUILD (the program to install a configured OS/8 system onto mass storage)
  • DIR (the directory-listing program)
  • EDIT (A line-oriented editor)[12]
  • MACREL (A relocating assembler that, unlike PAL, implements macros. Written by Stanley Rabinowitz of DEC's Small Systems Group. Stan had an ASCII-artwork picture of a fish in his office that said "MACREL IS A FISH")
  • FLAP (An absolute assembler derived from RALF)
  • FORTRAN-II.[13]
  • 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 (Another relocating assembler for the FPP)
  • TECO (Text Editor and COrrector, a sophisticated editor). The MUNG command runs TECO macros.
  • CCL, the command line interpreter, supplied in source form and user-extensible.

Programming languages

BASIC

A single-user BASIC and two multi-user versions of BASIC are available as options.

The single-user BASIC uses several overlays to provide the full functionality of the language; when OS/8 is booted from a DECtape, a noticeable delay occurred each time BASIC is required to switch overlays as they need to be read from tape.

The multi-user versions of BASIC (EDU20 and EDU25) differ only in whether or not they support block-replaceable devices (DECtape or disk). Due to cost constraints, many PDP-8s have punched paper tape readers as their only mass-storage I/O device. EDU20 loads from paper tape and can do output to a paper tape writer if the machine has one, whereas EDU25 understands the structure of a filesystem, can load from DECtape or disk, and can create files on DECtape or disk. Both can run multiple BASIC programs simultaneously using a primitive task-scheduler that round-robins among the attached terminals. Memory is always tight because the PDP-8 uses core memory, which was extremely expensive compared to RAM technology. In 8K of 12-bit words EDU20 can support up to 4 terminals at once, although more memory was recommended. EDU25 requires an additional 4K memory bank (for a minimum of 12K) because the code contains a disk device driver and a filesystem handler. While running, EDU20 and EDU25 are self-contained programs that don't use any OS/8 system calls. Immediately upon being invoked from the OS/8 command interpreter, they overwrite OS/8's entire resident portion – all 256 words of it. Upon startup, EDU25 saves the contents of memory to DECtape or disk and restores it upon exit. But EDU20 cannot do this as it is targeted at hardware configurations without any block-replaceable device.

FORTRAN

In addition to a freely available FORTRAN II compiler, there is also a rather complete FORTRAN IV compiler available. This compiler generates code for the optional FPP-8 floating-point processor, which is essentially a separate CPU, only sharing memory with the PDP-8 CPU. With the FPP-8 option installed, the FORTRAN runtime code detects it and uses the FPP-8 to run the main program code, and the PDP-8 CPU runs as an I/O processor. Lacking the FPP-8, the runtime code instead calls an FPP-8 interpreter running on the PDP-8 CPU, so the program runs at reduced speed.

This FORTRAN IV compiler in version 1 has the interesting bug that DO loops counted incorrectly: DO loops would count 1,2,3,5,6,7,… (skipping 4). A quick patch was released to fix this.

See also

Footnotes

  1. Yes, with a question-mark!
  2. Measured in 12-bit words
  3. 256K × 12-bit words
  4. Although other filetypes can also be used for storing data.
  5. 1970 to 1977.

References

  1. for Richard Lary, who also was involved with OS/8 and RTS8. "What is a PDP 8?". Archived from the original on 2004-08-25.
  2. "Disk Monitor System" (PDF). BitSavers.
  3. COMPUTERWORLD, June 1984: "OS/278 is available for $74." "Decmate II 08/278 Digital Equipment Corp. has introduced a new version of its OS/8 ..." Computerworld. June 11, 1984. p. 130.
  4. File: /Licenses/os8_license.txt in os8swre.tar.Z
  5. An annotated list of commands is available at "OS/8 MONITOR COMMANDS".
  6. "My PDP8/E".
  7. Moore, Rick. "OS-8 Field Service Assistance Brochure".
  8. "DF32/DS32 hard disk drive". The DF32 Disk File and Control is a fixed head hard drive with a total capacity of 32K 12 bit words.
  9. pp. 6–67 in PDP 8/e Small Computer Handbook. Digital Equipment Corporation. 1973.
  10. "Directory of linctape-images/os8l/ps-8-system-25.linc". Online PDP-8 Home Page. This directory is in the format the OS/8 operating system uses. OS/8 can only store dates for an 8 year period so dates will be shown as 1970–1977 unless the media had a printed directory or other information find the correct date range.
  11. "The Digital Equipment Corporation PDP-8: Frequently Asked Questions". COS-310 was a derivative of MS/8 and OS/8, but with a new text file format. The file system is almost the same as OS/8, but dates are recorded differently[...].
  12. For a programmer's overview of OS/8 EDIT, see "Editing Files on a PDP-8 using OS/8 EDIT". 24 May 2014.
  13. "4K Fortran programmer's reference manual" (PDF).
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.