# HDOS

HDOS oder HeathDOS ist ein frühes Betriebssystem des Unternehmens Heathkit.
Gordon Letwin, der später bei der Firma Microsoft der führende Entwickler und Chefarchitekt des Betriebssystems OS/2 war, entwickelte das Betriebssystem ab 1978. Ursprünglich wurde die Software für den Heathkit H8 implementiert, ist aber auch ohne Änderungen auf dem später erschienenen H89 lauffähig. Anfangs waren für HDOS lediglich einige wenige Systemprogramme wie ein Assembler verfügbar. Im Laufe der Zeit wurde von Fremdherstellern weitere Software entwickelt. Auch Spiele wie eine Implementierung von Space Invaders und der Pac-Man-Klon Munchkin wurden erstellt. Außerdem wurden die Programmiersprachen BASIC, COBOL und FORTRAN für HDOS implementiert.
1983 kostete eine Lizenz von HDOS etwa 150 US-$. Für einen Aufpreis von rund 200 US-$ konnte der auf Papier ausgedruckte Quelltext erworben werden.

## Technische Beschreibung

HDOS ist ein 8-Bit-Betriebssystem für den Single-User-Betrieb.

### Gerätetreiber

HDOS war – im Gegensatz zu dem weitverbreiteten Betriebssystem CP/M – ab der Version 2.0 eines der ersten Betriebssysteme, das nachladbare Gerätetreiber verwendete, um einen gewissen Grad an Geräteunabhängigkeit und Erweiterbarkeit zu erreichen. Ein Gerätetreiber besteht aus einer Datei mit dem Namen XX.dvd, wobei XX für das spezifische Zeichenkürzel des jeweiligen Geräts steht. Mittels des SET-Kommandos kann ein Gerätetreiber in den Speicher geladen und über verschiedene Parameter konfiguriert werden.

### Speicherverwaltung

Mit seinem 8 Bit breiten Datenbus kann der Z80-Prozessor des H89 insgesamt 64 kB Speicher adressieren. In den unteren 8 kB liegt das ROM, das die Routinen zum Booten und Teile der Verwaltungsroutinen für die Diskettenlaufwerke enthält. Der eigentliche RAM-Bereich beginnt bei der Adresse 2000hex. Zwischen dieser Adresse und der Adresse 27FFhex wird von HDOS ein Bereich für verschiedene Systemparameter und Systemtabellen sowie für den Programmstack reserviert. Bei der Adresse 2280hex beginnt der für Anwendungen nutzbare Bereich des Speichers, der bis zur Adresse D732hex reicht. Der Bereich ab der Adresse EB56hex ist vom Betriebssystem reserviert, wobei zwischen dieser Adresse und der Adresse EDAFhex ein Bereich für die zusätzlichen Gerätetreiber vorgehalten wird.
Der höchste Speicherblock zwischen EDB0hex und FFFFhex enthält den speicherresidenten Teil des Systems mit sämtlichen Systemroutinen wie für die Interruptbehandlung und die Gerätetreiber für die angeschlossenen Diskettenlaufwerke.
Der Bereich zwischen D733hex und EB55hex ist ein sogenannter Overlaybereich. Hier legt das Betriebssystem Routinen ab, die nicht ständig benötigt und nur bei Bedarf in den Speicher geladen werden. Ist dieser Speicherbereich durch eine Anwendung belegt, die auf diese Routinen zugreift, wird er auf einer Diskette zwischengespeichert. Daraufhin werden die Systemroutinen in dem Bereich abgelegt und der Systemaufruf ausgeführt. Sobald der Systemaufruf beendet ist, werden die ausgelagerten Programmteile wieder von der Diskette zurück in den Speicher geladen.

### Dateien

Das Betriebssystem ist in vier Bereiche unterteilt:
* der Kommandointerpreter. Er ist in der Datei SYSCMD.SYS enthalten.
* der speicherresidente Teil des Systems.
* die beiden Teile für den Overlaybereich.
* die Gerätetreiber.
Speicherresidenter Teil und die Overlayteile sind in der Datei HDOS.SYS enthalten.

## Mitgelieferte Software

Zusammen mit HDOS wurden ein zeilenorientierter Texteditor, ein Assembler und die BASIC-Variante Extended Benton Harbor BASIC ausgeliefert. Der Assembler bot die – für diese Zeit ungewöhnliche – Möglichkeit, Teile des Quelltextes in getrennte Dateien auszulagern und bei Bedarf per Anweisung in den Quelltext zu inkludieren.

## Versionshistorie

Als offizielle Veröffentlichungen existieren die Versionen 1.0 (veröffentlicht 1980), 1.5, 1.6, 2.0, 3.0 und 3.02. Die ersten vier Versionen wurden von Gordon Letwin geschrieben. William G. Parrott, David T. Carroll, Dale L. Wilson und Richard Musgrave entwickelten die Version 3.0 und nach dem Ausscheiden von Parrott, Carroll und Wilson erweiterte Richard Musgrave das System noch auf die letzte Version 3.02. Am 19. Juli 1989 wurde die Version 2.0 von Jim Buszkiewicz, geschäftsführender Redakteur der Heathkit Users Group, als Public Domain herausgegeben.