# OS/8

OS/8 ist ein Betriebssystem aus den 1970er Jahren für den PDP-8-Computer von Digital Equipment (DEC). Das System erlaubt die Verwendung einer großen Anzahl von Peripheriegeräten und benutzt den gesamten Kernspeicher von 32 KB.
OS/8 wird unter dem Realtimesystem RTS-8 als Backgroundmodul eingesetzt, um neben den Echtzeitanwendungen im Hintergrund Dateibearbeitung und Programmentwicklung zu ermöglichen. Ohne RTS-8 wird OS/8 als Betriebssystem mit nur 8-KB-Speicherbedarf zur Programmentwicklung eingesetzt.

## Aufbau

OS/8 besteht aus einem Kern und einer Bibliothek von Systemprogrammen.
Der Kern besteht im Wesentlichen aus 4 Elementen:
* dem Keyboard-Monitor,
* dem Command-Decoder,
* der USR (User Service Routine),
* den I/O-Geräte-Treibern.
Mit dem Keyboard-Monitor erfolgt der Zugriff auf die Bibliothek von Systemprogrammen. Diese besteht aus:

### Concise Command Language (CCL)

    CCL versorgt den Anwender mit einer großen Anzahl von Terminalbefehlen. Typische Kommandos sind: COPY, DIRECTORY, HELP, RENAME, LIST, DELETE usw.

### Symbolic Editor (EDIT)

    EDIT wird verwendet, um Quellcode zu erstellen und zu pflegen, der dann in Compilern wie PAL8, SABR oder FORTRAN übersetzt werden kann.

### PAL8 Assembler

    PAL8 ist der Assembler des OS/8-Systems. PAL8 akzeptiert Quellcode in PAL-Sprache und generiert Binärcode. Außerdem generiert PAL8 Listen, die in CREF verarbeitet werden können.

### Peripheral Interchange Program (PIP)

    Mit PIP werden Dateien zwischen den Geräten transferiert, die im OS/8 vorhanden sind. Es sind Befehle für Dateien und Verzeichnisse vorhanden.

### Absolute Binary Loader (ABSLDR)

    ABSLDR lädt Binärdateien, die mit PAL8 erstellt sind, in den Hauptspeicher.

### Octal Debugging Technique (ODT)

    ODT ist ein leistungsfähiges Programm zur Fehlersuche.

### File-Oriented Transfer Program (FOTP)

    FOTP erlaubt den Transfer von Dateien und Dateigruppen zwischen Geräten mit OS/8-Dateistruktur. So können ASCII-Dateien zwischen DECTape und Festplatte mit einem Befehl übertragen werden.

### Cross Reference (CREF)

    CREF arbeitet mit den Listen von PAL8 und SABR. Es erzeugt nummerierte Listen und eine Tabelle, in der alle Sprungadressen und Feldnamen sortiert sind.

### DIRECT

    DIRECT erlaubt dem Anwender erweiterte Verzeichnislisten zu drucken.

### BOOT

    Das BOOT-Programm lädt die Standardtreiber ins RAM.

### Cassette/Magtape Positioner (CAMP)

    CAMP erlaubt den Zugriff auf Kassette und Magnetband.

### Resources (RESORC)

    RESORC bindet die Systemtabellen ein und druckt eine Liste der aktiven Treiber.

### Magtape/Cassette PIP (MCPIP)

    MCPIP ist ein Dateitransferprogramm für Cassette und Magtape.

### PIP10

    PIP10 ist ein Dateitransferprogramm, welches das Lesen und Schreiben von PDP-10-ASCII-Dateien vom DECTape unter Verwendung des TC8- bzw. TD8E-Kontrollers erlaubt.

### FORTRAN II

    Das OS/8-System enthält ein leistungsfähiges FORTRAN-Paket, bestehend aus dem FORTRAN-Compiler, SABR-Assembler, Link-Loader und Bibliotheksfunktionen. Einige der Vorteile von Fortran sind:
   * FORTRAN II ist leicht zu benutzen. FORTRAN-Quellprogramme können mit einem Befehl kompiliert, geladen und gestartet werden.
   * In FORTRAN II sind Schleifen erlaubt.
   * In FORTRAN II können Programme verkettet werden. Das erlaubt eine effiziente Programm-Struktur.
   * Es ist eine geräteunabhängige Input/Output-Struktur vorhanden für Konsole, Schnell-Leser/-Stanzer und Drucker.

### Library-Setup (LIBSET)

    OS/8-LIBSET erlaubt, eigene Programmbibliotheken zu erzeugen. Die Standardbibliothek LB8 wird mit OS/8 geliefert. Mit LIBSET kann man seine eigenen Routinen in SABR schreiben und eine Bibliothek erzeugen.

### System Build (BUILD)

    BUILD erlaubt eine einfache Änderung der Gerätekonfiguration im System. Neue Geräte können mit einfachen Befehlen eingefügt werden.

## Andere Programme

Zusätzlich zu den Standardprogrammen gibt es die folgenden Programme, wobei BASIC, BATCH und TECO in einem Erweiterungssatz geliefert wurden.
* OS/8 BASIC ist eine interaktive Sprache mit einer Reihe von Anwendungen. Es enthält Möglichkeiten zur Verkettung, Textbearbeitung und dateiorientierte Ein- und Ausgabe. Ebenso sind in BASIC einige Funktionen zur Verwendung in LAB/8E enthalten.
* OS/8 BATCH gibt dem Anwender die Möglichkeit der Stapelverarbeitung, die in der OS/8-Monitor-Struktur integriert ist. Das System ist so aufgebaut, dass man es entweder von der Tastatur oder für Stapelverarbeitung verwenden kann. Mit BATCH kann man die Befehle von Lochkarten, Lochstreifen oder einem OS/8-Systemgerät eingeben.
* OS/8 TECO ist ein Texteditor, der unter dem OS/8-Betriebssystem läuft. Mit TECO kann man jeden ASCII-Text bearbeiten wie Programme, Manuskripte, Korrespondenz usw.
* OS/8 FORTRAN IV bietet das volle ANSI FORTRAN IV unter dem OS/8-Betriebssystem. Das System ist optimiert auf geringen Speicherbedarf und enthält die Overlay-Möglichkeit, die es erlaubt, Programme von 300 KB im virtuellen Speicher von PDP-8 oder PDP-12 laufen zu lassen. Die Bibliotheksfunktionen erlauben den Zugriff auf Laborgeräte, auf transzendente Funktionen, Verarbeitung von Text und die Ausgabe auf Standard-Increment-Plotter.

## Gerätetreiber

OS/8 ist völlig geräteunabhängig. Zuerst können Programme auf einem PDP-8-Computer geschrieben werden, ohne den Zugriff auf spezielle I/O-Geräte. Im laufenden Programm kann der Anwender die meisten verfügbaren Geräte auswählen. Außerdem muss das Programm nicht neu geschrieben werden, wenn sich die Konfiguration des Rechners ändert.
Das OS/8-System kontrolliert die Übertragung von Daten von einem auf ein anderes Medium durch den Aufruf der entsprechenden I/O-Routinen. Geräte können logische Namen erhalten, um den symbolischen Zugriff zu ermöglichen.
Im Programm können variable I/O-Puffer definiert werden. Große Puffer sichern ein effizientes Arbeiten der Speichereinheiten, ohne dass viel Zeit für Platten-/Bandbewegungen erforderlich ist. OS/8 nutzt alle Möglichkeiten des RK8E-Plattenspeichers, kann aber auch von einem einzigen DEC-Tape laufen.