OS/8

Last updated
OS/8
Developer Digital Equipment Corporation
Working stateDiscontinued
Source model Closed source
Initial release1971;53 years ago (1971)
Platforms PDP-8
Default
user interface
Concise Command Language (CCL)
(Command-line interface)
License Proprietary
Preceded by PS/8

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

Contents

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. This disk-resident (or more properly, system-device-resident) part of OS/8 is the first 14K words (56 blocks) of the SYS: device, including swap space.

The remaining memory contents are preserved between some of the basic user commands. This is exploited by the process by which executable programs are built: for example, an assembly language program is first assembled into a .BN (binary) file. Then one or more .BN files are loaded into memory using the LOAD (ABSLDR) command. You could then execute the loaded program with the START command, debug it with ODT, or SAVE it to a .SV file which can be later retrieved with the GET command or executed immediately with R or RUN commands. Information about the currently loaded program is maintained in the CCB (Core Control Block), which is located on the SYS: device. This information includes which parts of memory are used by the program (which parts should be saved) and the program's starting address.

This concept of preserved memory being associated with a user or job also appears in other DEC operating systems, including TOPS-10 for the PDP-10, where such memory is known as a context.

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

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/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". Allocation works as follows [9] : a program first opens a tentative file (using the User Service Router (USR) "ENTER" function). This assigns either the largest free extent to the file, or if the desired file size is known in advance, the smallest extent that it fits in. ENTER returns the starting block number and size of the file to the program which then writes to the file by directly calling the device driver. Once writing is complete, the program calls the USR "CLOSE" function. CLOSE marks the tentative file as a permanent file and creates an extent for the remaining free space for future allocations. It also deletes (marks as available free space) any other file with the same name. This facilitates replacing an existing file with a new version, for example after editing ("CLOSE" doubles as the file deletion call). Only one tentative file per volume may be open at a time. This seems limiting, but works for something like the PAL8 assembler since only one output file is generated at a time for each pass.

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.[ citation needed ]

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". [10] 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

There are two systems for handling ASCII text. 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]

6-bits per character uppercase only ASCII strings are also used. In this case, two characters efficiently fit in each word. This is used for filenames in directory entries, but also for strings in BASIC. In BASIC, even though strings use 6-bit characters, you may print any 8-bit code by using the PNT() function within PRINT, for example use PNT(27) to print an ASCII ESC character.

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. [12]

OS/8 CUSPs (Utility Programs)

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

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.[ citation needed ]

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.

Related Research Articles

<span class="mw-page-title-main">PDP-10</span> 36-bit computer by Digital (1966–1983)

Digital Equipment Corporation (DEC)'s PDP-10, later marketed as the DECsystem-10, is a mainframe computer family manufactured beginning in 1966 and discontinued in 1983. 1970s models and beyond were marketed under the DECsystem-10 name, especially as the TOPS-10 operating system became widely used.

<span class="mw-page-title-main">PDP-8</span> Minicomputer product line

The PDP-8 is a family of 12-bit minicomputers that was produced by Digital Equipment Corporation (DEC). It was the first commercially successful minicomputer, with over 50,000 units being sold over the model's lifetime. Its basic design follows the pioneering LINC but has a smaller instruction set, which is an expanded version of the PDP-5 instruction set. Similar machines from DEC are the PDP-12 which is a modernized version of the PDP-8 and LINC concepts, and the PDP-14 industrial controller system.

<span class="mw-page-title-main">PDP-11</span> Series of 16-bit minicomputers

The PDP–11 is a series of 16-bit minicomputers sold by Digital Equipment Corporation (DEC) from 1970 into the late 1990s, one of a set of products in the Programmed Data Processor (PDP) series. In total, around 600,000 PDP-11s of all models were sold, making it one of DEC's most successful product lines. The PDP-11 is considered by some experts to be the most popular minicomputer.

<span class="mw-page-title-main">History of operating systems</span> Aspect of computing history

Computer operating systems (OSes) provide a set of functions needed and used by most application programs on a computer, and the links needed to control and synchronize computer hardware. On the first computers, with no operating system, every program needed the full hardware specification to run correctly and perform standard tasks, and its own drivers for peripheral devices like printers and punched paper card readers. The growing complexity of hardware and application programs eventually made operating systems a necessity for everyday use.

RT-11 is a discontinued small, low-end, single-user real-time operating system for the full line of Digital Equipment Corporation PDP-11 16-bit computers. RT-11 was first implemented in 1970. It was widely used for real-time computing systems, process control, and data acquisition across all PDP-11s. It was also used for low-cost general-use computing.

<span class="mw-page-title-main">RSTS/E</span> Computer operating system

RSTS is a multi-user time-sharing operating system developed by Digital Equipment Corporation for the PDP-11 series of 16-bit minicomputers. The first version of RSTS was implemented in 1970 by DEC software engineers that developed the TSS-8 time-sharing operating system for the PDP-8. The last version of RSTS was released in September 1992. RSTS-11 and RSTS/E are usually referred to just as "RSTS" and this article will generally use the shorter form. RSTS-11 supports the BASIC programming language, an extended version called BASIC-PLUS, developed under contract by Evans Griffiths & Hart of Boston. Starting with RSTS/E version 5B, DEC added support for additional programming languages by emulating the execution environment of the RT-11 and RSX-11 operating systems.

<span class="mw-page-title-main">IBM 1130</span> 16-bit IBM minicomputer introduced in 1965

The IBM 1130 Computing System, introduced in 1965, was IBM's least expensive computer at that time. A binary 16-bit machine, it was marketed to price-sensitive, computing-intensive technical markets, like education and engineering, succeeding the decimal IBM 1620 in that market segment. Typical installations included a 1 megabyte disk drive that stored the operating system, compilers and object programs, with program source generated and maintained on punched cards. Fortran was the most common programming language used, but several others, including APL, were available.

<span class="mw-page-title-main">DECtape</span>

DECtape, originally called Microtape, is a magnetic tape data storage medium used with many Digital Equipment Corporation computers, including the PDP-6, PDP-8, LINC-8, PDP-9, PDP-10, PDP-11, PDP-12, and the PDP-15. On DEC's 32-bit systems, VAX/VMS support for it was implemented but did not become an official part of the product lineup.

FOCAL is an interactive interpreted programming language based on JOSS and mostly used on Digital Equipment Corporation (DEC) Programmed Data Processor (PDP) series machines.

MBASIC is the Microsoft BASIC implementation of BASIC for the CP/M operating system. MBASIC is a descendant of the original Altair BASIC interpreters that were among Microsoft's first products. MBASIC was one of the two versions of BASIC bundled with the Osborne 1 computer. The name "MBASIC" is derived from the disk file name MBASIC.COM of the BASIC interpreter.

VSI BASIC for OpenVMS is the latest name for a dialect of the BASIC programming language created by Digital Equipment Corporation (DEC) and now owned by VMS Software Incorporated (VSI). It was originally developed as BASIC-PLUS in the 1970s for the RSTS-11 operating system on the PDP-11 minicomputer. It was later ported to OpenVMS, first on VAX, then Alpha, and most recently Integrity.

<span class="mw-page-title-main">PDP-15</span> 18-bit computer by Digital, 1970–79

The PDP-15 was the fifth and last of the 18-bit minicomputers produced by Digital Equipment Corporation. The PDP-1 was first delivered in December 1959 and the first PDP-15 was delivered in February 1970. More than 400 of these successors to the PDP-9 were ordered within the first eight months.

<span class="mw-page-title-main">RK05</span> Disk drive for Digital Equipment Corporation minicomputers

Digital Equipment Corporation's RK05 is a disk drive whose removable disk pack can hold about 2.5 megabytes of data. Introduced 1972, it is similar to IBM's 1964-introduced 2310, and uses a disk pack similar to IBM's 2315 disk pack, although the latter only held 1 megabyte. An RK04 drive, which has half the capacity of an RK05, was also offered.

<span class="mw-page-title-main">NOS (operating system)</span>

NOS is a discontinued operating system with time-sharing capabilities, written by Control Data Corporation in 1975.

The CDC 1700 was a 16-bit word minicomputer, manufactured by the Control Data Corporation with deliveries beginning in May 1966.

BATCH-11/DOS-11, also known simply as DOS-11, is a discontinued operating system by Digital Equipment Corporation (DEC) of Maynard, Massachusetts. The first version of DOS-11 (V08-02) was released in 1970 and was the first operating system to run on the Digital PDP-11 minicomputer. DOS-11 was not known to be easy to use even in its day and became much less used in 1973 with the release of the RT-11 operating system.

TSS/8 is a discontinued time-sharing operating system co-written by Don Witcraft and John Everett at Digital Equipment Corporation in 1967. DEC also referred to it as Timeshared-8 and later the EduSystem 50.

The PDP-11 architecture is a 16-bit CISC instruction set architecture (ISA) developed by Digital Equipment Corporation (DEC). It is implemented by central processing units (CPUs) and microprocessors used in PDP-11 minicomputers. It was in wide use during the 1970s, but was eventually overshadowed by the more powerful VAX architecture in the 1980s.

<span class="mw-page-title-main">PDP-8/e</span> 1970 model of the DEC PDP-8 line of minicomputers

The PDP-8/e was a model of the PDP-8 line of minicomputers, designed by the Digital Equipment Corporation to be a general purpose computer that inexpensively met the needs of the average user while also being capable of modular expansion to meet the more specific needs of advanced user.

Concise Command Language (CCL) was the term used by Digital Equipment Corporation for the Command-line interpreter / User interface supplied on several of their computing systems; its successor was named DIGITAL Command Language (DCL).

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. 1 2 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. For an explanation of the allocation algorithm, see chapter 2 of "OS/8 Software Support Manual" (PDF). Bitsavers. Digital Equipment Corporation.
  10. pp. 6–67 in PDP 8/e Small Computer Handbook. Digital Equipment Corporation. 1973.
  11. "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.
  12. "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[...].
  13. For a programmer's overview of OS/8 EDIT, see "Editing Files on a PDP-8 using OS/8 EDIT". 24 May 2014.
  14. "4K Fortran programmer's reference manual" (PDF).