Auf zum Altair!

Ebenso wie es ein Bedürfnis vieler zu sein scheint, den ersten Computer überhaupt benennen zu können, wird auch der erste Personal Computer vielfach gesucht und benannt. Hier einen Ersten zu finden, ist aber fast noch müßiger und noch aussichtsloser, als beim Computer an sich, denn natürlich war es auch hier nicht so, dass der Blitz in jemanden fuhr, der dann mit einem Personal Computer etwas völlig Neues, noch nie Dagewesenes ersonnen hätte, ohne Anleihen bei bisherigen Computern zu nehmen. Ich stelle Ihnen in diesem Kapitel mit dem Altair 8800 den Computer vor, dem die Ehre, der erste Personal Computer gewesen zu sein, vielleicht am häufigsten zugeschrieben wird. Sie werden sehen, dass Funktions- und Arbeitsweisen bestehender Computer, vor allem der populären Minicomputer, bei der Konzeption des Altair eindeutig Pate standen.

Mit Minicomputern wie der PDP-8 aus dem vorhergehenden Kapitel wurden Computer relativ klein und günstig und waren so erstmals auch für kleine Organisationen erschwinglich. Für eine Firma mit einem Elektrolabor etwa war eine PDP-8/E von 1970 mit ihren 6.800 Dollar (2021: 47.000 Dollar) durchaus preisgünstig. Für Privatleute sah das aber anders aus, zudem ja auch noch Kosten für Terminals und Speichergeräte, etwa ein DECTape-Gerät, hinzukamen. Computer waren bis etwa Mitte der 1970er Jahre daher etwas, das es in Firmen, im Militär, in Universitäten und Hochschulen gab und von dem Privatleute vielleicht etwas gehört hatten, was ihnen aber nicht direkt zugänglich war. Computer umgab dadurch durchaus eine etwas mystische Aura. Gerade für eher Linksdenkende gehörten sie zum militärisch-industriellen Komplex. Das Bedürfnis vieler Hobbybastler, sich ihren eigenen Computer für zu Hause zu bauen, hat so neben dem reinen Interesse an der Technik durchaus auch einen politischen Aspekt. Sich seinen eigenen Computer zu bauen statt der Computertechnik nur ausgeliefert zu sein, kann man regelrecht als einen Akt der Befreiung und Selbstbestimmung interpretieren. Aus dieser Stimmungslage entstanden viele der amerikanischen Computerpioniere des Silicon Valley. Ein entsprechender Duktus findet sich noch heute oft in ihrer Außendarstellung, was eine gewisse Ironie innehat, denn die Rolle von Firmen wie Apple hat sich natürlich im Laufe der Jahrzehnte stark gewandelt. Werden wir aber nicht politisch und greifen wir der Geschichte nicht vor, sondern kommen wieder zur Situation in den 1970er Jahren, in der die ersten Personal Computer aufkamen.

Anfang der 1970er Jahre brachte die Firma Intel den ersten vollintegrierten Mikroprozessor auf den Markt. Der Prozessor mit der Bezeichnung 4004 und der ein Jahr später erschienene 8008 kamen zum Beispiel in Taschenrechnern, Tisch-Rechenmaschinen und teils auch in frühen Videospielen zum Einsatz. Auch Hobbybastler fanden Interesse an den Prozessoren und konstruierten sich eigene kleine, experimentelle Computersysteme auf Basis dieser Prozessoren. Für wirklich ernsthafte Rechenanlagen waren sie aber nicht geeignet. Das änderte sich im Jahr 1974 mit der Vorstellung des Intel 8080, einem 8-Bit-Mikroprozessor mit einem 16-Bit-Datenbus, der 64 KB Arbeitsspeicher adressieren konnte.

Angaben in Bit, hier 8-Bit, haben Sie in Bezug auf einen Prozessor sicher schon einmal gehört. Aber was bedeutet das eigentlich? Ich sollte an dieser Stelle vielleicht einige Begriffe und Sprechweisen erklären.

8-Bit Prozessor?

Dass ein Prozessor ein 8-Bit-Prozessor ist, bedeutet, dass er darauf ausgelegt ist, mit Folgen von je 8 Bit zu operieren. So ein Prozessor kann zum Beispiel zwei Zahlen, die je in 8 Bit binär codiert sind, in einem Schritt addieren, weil er über einen eingebauten 8-Bit-Addierer verfügt. Mit 8 Bit lassen sich nur 256 verschiedene Werte darstellen, etwa die von 0 bis 255. Die Konsequenz daraus ist aber nicht, dass man mit einem solchen Prozessor nur kleine Zahlen verarbeiten könnte. Es ist ohne weiteres möglich, viel größere Zahlen, die mehr Bits benötigen, zu verarbeiten. Das macht es aber komplizierter. Sie können sich das klarmachen, indem Sie einen Prozessor annehmen, der im normalen Zehnersystem rechnet. Das kann man es sich etwas leichter vorstellen, als die für den Menschen unhandlichen Einsen und Nullen im Binärsystem. Unser imaginärer Prozessor hat die Fähigkeit, zwei Zahlen zu addieren, kann allerdings immer nur drei Stellen einer Zahl gleichzeitig verarbeiten. 54 + 92 können sie ohne Probleme ausrechnen, doch was machen Sie bei 12742 + 7524? Ganz einfach, Sie rechnen zunächst mal nur mit den hinteren drei Stellen. 742 + 524 = 1266. Dieses Ergebnis ist mit 4 Stellen zu lang! Sie können nur die 266 „abspeichern“ und haben einen Überlauf von 1. Also „Eins im Sinn“, wie man in der Schule so schön sagte. Diese 1 müssen Sie mitverarbeiten, wenn Sie die vorderen Teile der Zahl verrechnen. Wir haben nun für den vorderen Teil also 1 + 12 + 7 zu berechnen. Diese Berechnung müssen Sie in zwei Schritten durchführen, denn der Prozessor kann immer nur zwei Zahlen addieren. Also: 1 + 12 = 13 und 13 + 7 = 20. Das Ergebnis des vorderen Ergebnisteils ist also 20, das des hinteren 266. Das Gesamtergebnis unserer Addition ist also 20266. Wie Sie sehen, konnten wir die Berechnung durchführen, doch statt einmal zu addieren, mussten wir gleich dreimal ran. Hinzu kam noch Aufwand für die Koordination des Prozesses.

Adress-Bus?

Auch der Adressraum des Arbeitsspeichers eines Systems wird in Bit angegeben. Was bedeutet die Bit-Zahl hier? Stellen Sie sich den Arbeitsspeicher eines Computers der Einfachheit halber wie einen Schrank mit ganz vielen Schubladen vor. In jede Schublade können Sie eine bestimmte Zahl von Bits hineinlegen. Diese Bitfolge nennt man ein „Wort“. Wie lang ein solches Wort ist, wie viel Bits es also enthält, hat sich im Laufe der Computergeschichte oft geändert. Nehmen wir hier der Ära entsprechend wieder einmal 8 Bit. 8 Bit werden üblicherweise auch ein Byte genannt. Die Größe des Arbeitsspeichers in Bytes ist nun die Anzahl der Schubladen des Schranks. Ein Prozessor muss dem Arbeitsspeicher im Computer mitteilen können, welche Schublade er braucht. Stellen Sie sich das so vor, dass an jeder Schublade eine Zahl steht. Ein Programm kann also das Byte aus Schublade Nummer 245 anfordern oder einen neuen Byte-Wert dort hineinschreiben. Die Auswahl der Schubladen geschieht über den sogenannten Adress-Bus, der einfach nur aus einer Reihe von Stromleitungen besteht. Die Frage ist nun, wie viele Stromleitungen benötigt werden. Würde der Adress-Bus aus nur einer einzigen Leitung bestehen, könnte nur die eine Speicherzelle – wenn keine Spannung auf der Leitung ist – oder die andere – wenn Spannung auf der Leitung ist – angesprochen werden. Es gäbe also nur zwei verschiedene Speicherstellen (0 und 1), die angesprochen werden könnten. Das Resultat wäre ein Arbeitsspeicher von 2 Byte. Bei zwei Leitungen wären es schon 22=4 Speicherstellen (00, 01, 10, 11), bei drei Leitungen 23=8 Byte und so weiter. Bestünde der Adress-Bus aus 8 Leitungen, man spricht dann von einer Busbreite von 8 Bit, könnten 28=256 verschiedene Speicherstellen direkt angesprochen werden. Damit ließe sich ein Taschenrechner bauen, aber für einen ernsthaften Computer reicht das natürlich nicht. Verwendet man nun wie beim Intel 8080 16-Bit-lange Adressen, sind es 216 Bytes, also 65.536 Bytes oder auch 64 KB3. Ein Prozessor mit einem 16-Bit Adressraum kann also 64 KB Speicher direkt adressieren. Mit Techniken wie Bank Switching kann man aber durchaus auch mehr Speicher ansprechen.

Bank Switching?

Die Beschränkung auf eine Adress-Bus-Breite von 16 Bit bedeutet nicht, dass man mit einem solchen Prozessor auch wirklich zwangsweise nur 64 KB nutzen könnte, denn es gibt Techniken, mit denen man die Speichergröße prinzipiell beliebig erweitern kann. Kommen wir nochmal zum Schrank mit den Schubladen zurück und erweitern das Bild ein wenig. Stellen Sie sich eine Wand vor. An diese Wand stellen Sie direkt nebeneinander Schränke mit Schubladen, bis die Wand voll ist. Die Schubladen bilden nach wie vor die direkt adressierbaren Speicherzellen des Systems. Sie können immer auf die Schubladen in den Schränken an der Wand zugreifen. Wenn Sie nun mehr Daten speichern müssen, können Sie sich behelfen, indem Sie ganze Teilschränke austauschen. Sie haben nebenan eine große Lagerhalle mit ganz vielen Schränken und können bei Bedarf einen oder mehrere der Teilschränke von der Wand ins Lager bringen und dafür andere Schränke aus dem Lager holen und an die Zugriffswand stellen. Diese Technik nennt man „Bank-Switching“. Commodores C128 von 1985 ist ein Beispiel für einen Rechner, der diese Technik verwendete, um trotz eines 16-Bit-Adress-Busses 128 KB Speicher zu verwalten. Der Nachteil des Bank-Switchings ist natürlich der Zusatzaufwand. Sie haben zwar viel Speicher, aber können Teile davon nicht direkt adressieren, sondern müssen erst immer dafür sorgen, dass der richtige Schrank an der Wand steht. Dadurch kann die Programmierung komplex werden, je nachdem wie maschinennah Sie programmieren. In jedem Fall benötigt es immer Zeit, die Speicherbänke auszutauschen.

Intels frühe Prozessoren 8008 und 8080 waren 8-Bit-Prozessoren. Der 8008 hatte einen 14-Bit-Adress-Bus, konnte also 16 KB Speicher direkt adressieren. Beim 8080 waren es, wie oben schon erwähnt, 16 Bit Busbreite und somit 64 KB direkt adressierbarer Arbeitsspeicher. Das war im Vergleich zu Großrechnern wenig, im Vergleich zu Minicomputern aber gar nicht mal schlecht. Eine PDP-8 konnte selbst in ihrer größten Ausbaustufe keine 64 KB adressieren. Das Maximum waren hier 32-K-Worte à 12 Bit, was rein rechnerisch 48 KB Speicher entspricht. Diese Umrechnung hinkt allerdings in der Praxis, denn wenn Sie 32.768 Speicherstellen mit je 12 Bits haben, sind das zwar genau so viele Bits wie 49.152 Speicherstellen à 8 Bit, also 48 KB, aber natürlich können Sie sie nicht so nutzen, denn die Bits sind ja nicht byte-weise ansprechbar und stehen nicht in dieser „Stückelung“ zur Verfügung.

Der Altair 8800 – Die Wunderkiste

„Bastel’ dir deinen eigenen Computer“ war ein beliebtes Thema von (US-amerikanischen) Elektronik-Hobbyzeitschriften in der Mitte der 1970er Jahre. Bemerkenswert war etwa der 1974 in der Zeitschrift „Radio-Electronics“ vorgestellte Bastelcomputer Mark-8. Die Zeitschrift erläuterte die Funktionsweise und stellte Bauanleitungen für den auf einem Intel 8008-Prozessor basierenden Computer zur Verfügung. Man konnte den Rechner nicht komplett zusammengebaut bestellen oder gar im Laden kaufen, sondern musste selbst zum Lötkolben greifen. Das war natürlich bei Weitem nicht jedermanns Sache. Der größte Einfluss des Mark-8 war dann auch nicht der Rechner selbst, sondern dass er die Redakteure der Zeitschrift „Popular Electronics“ dazu veranlasste, im Jahr 1975 selbst einen Computer, den Altair 8800, vorzustellen.

Altair 8800 – Bild: Ed Uthman from Houston, TX, USA (CC BY-SA 2.0)
Altair 8800 – Bild: Ed Uthman from Houston, TX, USA (CC BY-SA 2.0)

Dieser Computer basierte auf der oben genannten, modernen 8080-CPU. Computerinteressierte konnten den Rechner bei der Firma MITS als Bausatz bestellen und selbst zusammenbauen, aber auch diejenigen, die das nicht konnten oder wollten, hatten die Möglichkeit, an den Rechner zu kommen, denn für „nur“ 621 Dollar, was nach heutiger Kaufkraft (2021) etwa 3.100 Dollar entspricht, ließ sich der Rechner komplett zusammengebaut mit Gehäuse beziehen. Für die 621 Dollar bekam man die Grundausstattung des Rechners, die ziemlich spärlich war. Der Rechner verfügte dann über keinerlei externe Speichermöglichkeit und nur über sage und schreibe 256 Byte Arbeitsspeicher. Diese sparsame Grundausstattung hinderte die Autoren bei Popular Electronics nicht daran, den Computer euphorisch zu beschreiben:

The era of the computer in every home–a favorite topic among science-fiction writers–has arrived! It’s made possible by the POPULAR ELECTRONICS/MITS Altair 8800, a full-blown computer that can hold its own against sophisticated minicomputers now on the market. And it doesn’t cost several thousand dollars.

Hier wurde also überschwänglich der Anfang einer neuen Ära beschrieben, einer Ära, die man aus Science-Fiction-Literatur kenne. Nüchterner ist dann der Vergleich des Rechners mit schon bekannten Geräten. Der Altair könne es mit den Minicomputern aufnehmen. Auf dem Titelblatt der Zeitschrift ist der Altair dann auch mit „World’s First Minicomputer Kit to Rival Commercial Models…“ angekündigt. Popular Electronics propagierten hier zwar also einen Computer für zu Hause, aber der Computer, den man dann daheim hatte, entsprach den Computern der damaligen Zeit, den Minicomputern – eben ein Minicomputer für zu Hause. Mit diesem Hintergrund erklärt sich auch das Aussehen des Computers. Aus der heutigen Erwartung, wie PCs aussehen, ist das Design des Altair sehr außergewöhnlich, nimmt man aber einen Minicomputer wie DECs PDP-8 als Maßstab, ist das Design des Altair 8800 ganz folgerichtig: Es handelt sich um eine Kiste mit einem Front-Panel, an dem sich eine Reihe von Leuchtdioden und eine ganze Menge Kippschalter befinden. Jemand, der Minicomputer und ihre Bedienung kannte, fühlte sich hier sofort zu Hause.

Der Vergleich mit der zehn Jahre älteren Architektur der PDP-8 offenbart weitere Parallelen. Auch die PDP-8 musste in ihrem Grundzustand ohne weitere angeschlossene Ein- und Ausgabegeräte über das Front-Panel bedient werden. War ein kleines Loader-Programm in den Speicher eingegeben, konnte die PDP-8 Programme von einem externen Medium, etwa von einem Lochstreifen einlesen. Der Anschluss eines Fernschreibers oder eines anderen Terminals an eine PDP-8 ermöglichte die interaktive Nutzung des Systems. DEC stellte für die PDP-8 die im vorherigen Kapitel beschriebene einfache Interpreter-Programmiersprache FOCAL bereit. Später folgte dann mit OS/8 und einigen Parallelentwicklungen der Übergang zu kommandozeilenorientierten Betriebssystemen, die von der Bedienweise an verbreitete Time-Sharing-Systeme angelehnt waren, allerdings nicht deren Komplexität aufwiesen. Nahezu die gleichen Entwicklungsschritte konnte man nun, zehn Jahre später, beim Altair 8800 nochmals nachvollziehen. Auch hier verwirklichten sich mit der Entwicklung der Nutzungsschnittstellen die Potenziale digitaler Systeme. Es lohnt sich, diese Entwicklung etwas genauer zu betrachten, denn die Produkte, die hier entstanden, waren nicht auf den Altair beschränkt, sondern waren maßgeblich für die weitere Entwicklung der Personal Computer noch bis zum heutigen Tag.

Front-Panel-Programmierung – Bits zum Anfassen

Einen taufrischen Altair 8800 dazu zu bringen, etwas Sinnvolles zu tun, war gar nicht so einfach, denn es bedeutete, den Rechner über das Front-Panel zu programmieren, Werte einzugeben und Ergebnisse abzulesen. Mit dem charakteristischen Front-Panel aus Leuchtdioden und Kippschaltern ließen sich Speicherstellen mit Werten befüllen, entsprechend auslesen, der Programmzähler setzen, das Programm starten und unterbrechen oder, zwecks Fehlersuche, in Einzelschritten ausführen. Wollte man den Altair 8800 programmieren, musste man den Maschinencode des Intel 8080 kennen und die Befehle nacheinander, Byte für Byte, über Kippschalter in den Speicher eingeben. Wenn das geschehen war, empfahl es sich, die Werte im Speicher nochmals genau zu überprüfen, denn schnell konnten sich Fehler eingeschlichen haben. War das Programm in Ordnung, setzte man den Programmzähler auf den ersten Befehl des Programms und betätigte den mit RUN beschrifteten Schalter, um das Programm ablaufen zu lassen. Wenn das Programm zu einem Ende gekommen war, oder wenn der Programmablauf unterbrochen wurde, konnte, wieder über das Front-Panel, der Inhalt des Speichers und somit auch ein eventuelles Rechenergebnis abgelesen werden.

Das folgende Programm ist eine abgewandelte Form eines Programms aus dem Operator’s Manual des Altair. Es handelt sich um ein sehr einfaches Programm, das zwei Zahlen, die in den Speicherstellen 128 und 129 gespeichert wurden, addiert und das Ergebnis in Speicherstelle 130 speichert.

00 111 010 Lade in den Akkumulator Inhalt
10 000 000 von Speicherstelle 128
00 000 000 (2. Byte der Speicherstelle, da 16 Bit pro Adresse)

01 000 111 Speichere Akkumulator in Register B

00 111 010 Lade in den Akkumulator Inhalte
10 000 001 von Speicherstelle 129
00 000 000

10 000 000 Addiere Register B zum Akkumulator

00 110 010 Speichere den Akkumulator-Inhalt
10 000 010 in Speicherzelle 130
00 000 000 

01 110 110 Halt

Das eigentliche Programm besteht hier nur aus den vorne in den Zeilen angegebenen Bitfolgen. Die dahinterstehenden Texte sind nur Kommentar und dienen Ihnen als Leser des Programms dem Verständnis. Um das Programm eingeben zu können, musste man natürlich zunächst einmal den Computer einschalten. Er befand sich dann in einem zufälligen Startzustand. Alle Speicherstellen und Register des Rechners hatten einen zufälligen Wert. Das Betätigen von RESET beseitigte diesen misslichen Zustand und setzte alle Werte auf 0. Nun wurden die Befehle nacheinander binär über die Kippschalter eingegeben und mittels der DEPOSIT-Taste oder der DEPOSIT-NEXT-Taste bestätigt. DEPOSIT NEXT war eine Bequemlichkeitsfunktion. Statt jede einzelne Adresse erst anwählen zu müssen, bevor man einen Wert speicherte, sprang DEPOSIT NEXT jeweils automatisch zur nächsten Speicheradresse, sodass die Befehle hintereinander eingegeben werden konnten. Als nächstes mussten die beiden zu addierenden Zahlen eingegeben werden. Dies ging durch Setzen der Kippschalter auf 128 (binär 10 000 000) und einem Druck auf EXAMINE. Der aktuelle Speicherinhalt, also 0, wurde jetzt dadurch angezeigt, dass keine Leuchtdiode aufleuchtete. Ein Wert konnte nun eingegeben und mit DEPOSIT NEXT gespeichert werden. Angezeigt wurde dann automatisch Speicherstelle 129. Auf die gleiche Art und Weise konnte nun hier ein Wert gespeichert werden. Da nun Programm und Daten vollständig eingegeben wurden, konnte das Programm gestartet werden. Dafür wurde der Programmzähler auf den Beginn des Programms gesetzt. Da das Programm ab der Speicheradresse 0 eingegeben wurde, musste also der Programmzähler wieder auf 0 gestellt werden, um das Programm ab dieser Adresse loslaufen lassen zu können. Dazu wurden alle Kippschalter nach unten gestellt und dann EXAMINE betätigt. Nun konnte das Programm durch Betätigen von RUN gestartet werden. Das extrem kurze Programm hatte natürlich keinerlei nennenswerte Laufzeit. Direkt nach dem Auslösen von RUN war das Programm auch schon beendet, was durch das Aufleuchten der WAIT-Leuchtdiode angezeigt wurde. Man konnte nun das Ergebnis aus der Speicherzelle 130 ablesen. Dies geschah durch Eingeben von 130 (binär 10 000 010) und einer Auslösung von EXAMINE.

Die Front-Panel-Schnittstelle des Altair 8800 war eine reine Maschinenschnittstelle. Das, was man in dieser Schnittstelle sah und eingab, war ganz direkt der Zustand der Maschine, explizit vor allem der Zustand des Speichers. Die Ausgabe entsprach den Bits in Speicherzellen, die Eingaben entsprachen genau den Bits, die in die Speicherzellen geschrieben werden sollten und die einzelnen Befehle entsprachen eins zu eins den Operationen des Prozessors. Auf diese Art und Weise, durch das Eingeben von Programmen und Daten vom Front-Panel, mag es grundsätzlich möglich gewesen sein, alle möglichen komplexen Programme in den Computer einzugeben, wirklich praktikabel war das aber natürlich nicht. Die Betriebsart eignete sich eher dafür, die Funktionsweise des Computers zu erlernen und zu verstehen, aber nicht wirklich für ernsthafte Programmierung. Hinzu kam noch, dass das Programm ja nur im Arbeitsspeicher vorlag und dieser, ganz im Gegensatz zur PDP-8 mit ihrem Magnetkernspeicher, flüchtig war. Schaltete man das Gerät aus, waren sowohl Programm als auch Daten verschwunden.

Lochstreifen – Programme von der Rolle

Natürlich war die Front-Panel-Programmierung nicht die einzige Betriebsart des Altair. Über nachrüstbare Schnittstellen ließ sich zum Beispiel ein Fernschreiber an den Computer anschließen. Wie schon Jahre zuvor bei den Minicomputern und den Time-Sharing-Systemen war auch hier wieder der Teletype ASR Model 33 ein gern verwendetes Gerät. Dieser Fernschreiber verfügte über eine Tastatur, über die Buchstaben, Zahlen und Steuerzeichen eingegeben werden konnten. Außerdem hatte er einen Druckkopf, der Buchstaben auf „endloses“ Papier druckte. Der Fernschreiber war mit einem Lochstreifenleser und einem Lochstreifenstanzer ausgestattet. Zeichen konnten damit im 8-Bit-Code auf die Lochstreifen gestanzt und auch von ihnen gelesen werden. Der Lochstreifenstanzer konnte dafür genutzt werden, die von der Gegenstelle kommenden Zeichen nicht nur auszudrucken, sondern sie auch auf einem Lochstreifen zu speichern. Der Lochstreifenleser konnte umgekehrt anstelle der direkten Tastatureingabe genutzt werden. Dieses System hatte sich für die Weiterleitung von Nachrichten bewährt und konnte nun auch für das Laden von Programmen in den Altair genutzt werden. Dass der Fernschreiber einen 8-Bit-Code nutzte, war natürlich praktisch, denn der Rechner hatte ja eine Architektur, bei der jedes Datenwort 8 Bit lang war, also jede ansprechbare Speicherstelle 8 Bit an Daten speicherte.

Mit dem Fernschreiber war es möglich, Programme vom Lochstreifen einzulesen. Dabei stellte sich allerdings ein grundlegendes Problem: Ein Altair „wusste“ schlichtweg nichts von Fernschreibern oder Lochstreifen. Er konnte nur das im Arbeitsspeicher gespeicherte Programm ausführen, aber direkt nach dem Einschalten gab es dort ja gar kein Programm. Wollte man ein Programm vom Lochstreifen lesen, musste man daher zunächst ein kleines Programm per Front-Panel in den Computer eingeben und dieses starten. Die Aufgabe dieses Programms, „Loader“ genannt, war es, Daten vom Lochstreifenleser zu lesen, in den Arbeitsspeicher des Computers zu kopieren und dann auszuführen. Dieses Programm konnte sich dann seinerseits der Fähigkeiten des Fernschreibers bedienen, also etwa Ergebnisse ausdrucken oder Nutzereingaben verarbeiten. Eine wichtige Software, die auf diese Art und Weise ausgeliefert wurde, war ihrerseits eine Programmierumgebung.

BASIC – Programmierung interaktiv

Der Anschluss eines Fernschreibers erlaubte es, am Altair eine interaktive Programmierumgebung zu nutzen, also ein Programm in dem man programmieren und das Programm ausführen und testen kann. Auch hier kann man Parallelen zur PDP-8 ausmachen. Bei dieser stand seinerzeit mit dem FOCAL-Interpreter eine solche Umgebung zur Verfügung. FOCAL-Programme wurden zwar langsam ausgeführt, doch ihre Programmierung war recht komfortabel. Für den 8080-Prozessor von Intel gab es zunächst keine vergleichbare Programmierumgebung. Es gab zwar einige Compiler für höhere Programmiersprachen, jedoch keine interaktive Programmierumgebung. Eine solche Umgebung, und damit faktisch das erste Betriebssystem für den Altair 8800, wurde von Bill Gates und Paul Allen entwickelt. Die beiden gründeten mit ein paar Mitstreitern kurze Zeit darauf die Firma Microsoft. Die von Allan und Gates hier implementierte Programmiersprache BASIC war natürlich keine Erfindung der beiden. Von den Ursprüngen von BASIC war ja bereits im Kapitel über Time-Sharing die Rede. Als die Programmiersprache in den 1960er Jahren am Dartmouth College eingeführt wurde, wurde sie von Studierenden und Angestellten des College genutzt. Diese Nutzer saßen seinerzeit vor einem Fernschreiber, genau wie beim BASIC von Microsoft am Altair. Allerdings hatten die Dartmouth-Nutzer natürlich keinen kleinen Computer neben sich stehen, sondern verbanden sich mit dem zentralen Time-Sharing-System DTSS. Der Altair war natürlich kein Time-Sharing-System4 und im Gegensatz zum DTSS wurde nun kein BASIC-Compiler, sondern ein Interpreter5 eingesetzt, aber aus der Nutzungsperspektive waren die BASIC-Programmierungen am DTSS und am Altair ziemlich vergleichbar und in beiden Fällen profitierte die Programmierbarkeit des Computers durch die interaktiven Möglichkeiten der Programmiersprache und durch den auf Fernschreibernutzung optimierten interaktiven Editor.

Mit den 256 Byte Grundausstattung des Altair konnte natürlich kein BASIC verwendet werden. Der Speicher musste entsprechend aufgestockt werden. Gates und Allen schafften es, sehr speichereffizient zu programmieren, sodass schon 4 KB Arbeitsspeicher ausreichten, um BASIC zu betreiben.

Da es sich beim BASIC am Altair um einen Interpreter handelte, konnten BASIC-Befehle ausgeführt werden, ohne ein ganzes Programm schreiben zu müssen. Die Eingabe PRINT 5+5 wurde umgehend ausgeführt und das Ergebnis direkt ausgegeben. Das Erstellen eines Programms konnte ebenfalls sofort beginnen, indem die Zeilen mit vorangestellter Zeilennummer eingegeben wurden. In vielen Fällen würden Sie aber wahrscheinlich kein neues Programm erstellen, sondern ein vorhandenes wiederverwenden wollen. Es mag Sie nun verblüffen, dass der erste BASIC-Interpreter von Microsoft über keinerlei Einrichtung verfügte, Programme einzulesen. Es gab weder ein LOAD noch einen SAVE-Befehl. Microsoft hatte diese beiden Befehle aber nicht etwa einfach vergessen. Eine Laderoutine war vielmehr gar nicht nötig, denn Microsoft konnte sich eine Eigenart der Fernschreiber zunutze machen. Um ein neues Programm zu laden, musste ein Nutzer einfach NEW eintippen, um das vorherige Programm aus dem Speicher zu löschen, musste dann den Lochstreifen mit dem Programm in den Lochstreifenleser einfädeln und den Fernschreiber so einstellen, dass er den Lochstreifen einlas. Der Fernschreiber „tippte“ dann das BASIC-Programm anstelle des Nutzers ein. Für den Interpreter verhielt es sich genau so, als würde der Nutzer es selbst gerade händisch eingeben. Ähnlich funktionierte das Speichern. Der Nutzer tippte LIST, also den Befehl, der das komplette Programm ausdruckte, startete den Lochstreifenstanzer und drückte dann auf die Zeilenvorschubtaste. Der BASIC-Interpreter führte dann den LIST-Befehl aus, gab also das komplette Programm aus und der Fernschreiber schrieb es dabei auf dem Lochstreifen mit.

Stattete man seinen Computer mit BASIC von Microsoft aus, verfügte man über eine Schnittstelle, die es ermöglichte, das Gerät zu verwenden, ohne wissen zu müssen, wie der Arbeitsspeicher des Rechners strukturiert war. Man musste nun nicht mehr ein Programm in der Maschinensprache des Prozessors eingeben, vom Loader einmal abgesehen. Auf der Ebene der Programmierumgebung stand der Quelltext des Programms zeilenweise in Form virtueller Objekte zur Verfügung, die interaktiv manipuliert werden konnten. Ein BASIC-Programm konnte natürlich selbst virtuelle Objekte erzeugen, also so geschrieben worden sein, dass es Daten auf eine Art und Weise abfragte und anzeigte, die es der Nutzungswelt entsprechend zu Objekten machte. An vielen Stellen hatte ein Nutzer von BASIC am Altair aber noch sehr direkt mit der Technik des Computers und des Fernschreibers zu tun. Zwar war das geladene Programm am Rechner manipulierbar, die Programme selbst waren aber keine Objekte im Computer, sondern realweltliche Objekte, nämlich die Lochstreifenrollen, auf denen sie gespeichert waren. Wollte der Nutzer ein Programm laden oder speichern, konnte er nicht auf ein Objekt im Computer referenzieren, sondern musste sich mit dem auf dem Lochstreifen gespeicherten Datenstrom und seiner Verarbeitung im Lochstreifenleser und -stanzer beschäftigen. Auch Eingabedaten waren nicht als eigene Objekte verfügbar, denn es gab im Microsoft BASIC dieser Generation kein Konzept von Dateien, die man hätte laden oder speichern können. Eingabedaten, so nicht von der Tastatur eingegeben, standen vielmehr in DATA-Zeilen direkt im Programm oder kamen, wie die Programme selbst, von Lochstreifenrollen als Ersatz einer Eingabe per Tastatur.

Auftritt: Terminal und Kassette

Kassette in einem Kassetten-Recorder – Bild: mib18 at German Wikipedia (CC BY-SA 3.0) (freigestellt)
Kassette in einem Kassetten-Recorder – Bild: mib18 at German Wikipedia (CC BY-SA 3.0) (freigestellt)

Der frühe BASIC-Interpreter für den Altair war ganz und gar auf den Fernschreiber ausgelegt. Er diente nicht nur der Eingabe per Tastatur und der Ausgabe auf Papier, sondern auch als Lese- und Speichergerät für Massenspeicher (Lochstreifen) und als externalisierte Lade- und Speicherroutine. Fernschreiber waren aber Mitte der 1970er Jahre nicht mehr der neuste Schrei in Sachen Nutzungsschnittstelle und wurden daher auch am Altair schnell ersetzt. Natürlich konnte man das BASIC von Microsoft auch mit einem Terminal einsetzen, allerdings war dieses BASIC nicht im Geringsten auf Terminals ausgelegt und konnte seine Vorteile nicht nutzen.

  • BASIC hatte keine Möglichkeit, den Cursor auf dem Bildschirm zu positionieren oder den Bildschirminhalt zu löschen. So wie es der BASIC-Befehl PRINT nahelegt, konnte BASIC immer nur etwas Neues dazuschreiben.
  • Es gab keine Backspace-Funktionalität im heutigen Sinne, denn Fernschreiber hatten natürlich keine Möglichkeit, ein Zeichen wieder vom Papier zu entfernen. Wollte man etwas löschen, musste man dies durch Eingeben eines Unterstrichs tun. Wollte man PRINT tippen, hat aber versehentlich PRR eingegeben, konnte man das zweite R durch die Eingabe eines Unterstrichs „löschen“, das R und der Unterstrich blieben aber am Bildschirm stehen. Eine Eingabe von PRR_INT 5_6+_*6 wurde genau so angezeigt, wurde aber intern zu PRINT 6*6 verarbeitet und gab dementsprechend 36 aus.
  • Ein Terminal verfügte natürlich nicht über einen Lochstreifenleser und -stanzer. Es konnten aber ohne diese Vorrichtungen keine Programme geladen und gespeichert werden, was die Nutzbarkeit des BASIC-Interpreters am Terminal natürlich stark einschränkte.

Angepasste BASIC-Versionen gingen diese Probleme an. Sie erlaubten nun das Laden und Speichern von Programmen mittels der Befehle CLOAD und CSAVE. Das Medium für die Programme war dann eine Musikkassette, die sich in einem an den Altair angeschlossenen Kassetten-Recorder befand. Das Programm wurde auf den Kassetten als schrille Tonfolgen gespeichert. Außer dem anderen Medium änderte sich aber nicht viel, denn es gab keinerlei Dateisystem und damit auch keine Programme als Objekte. Im Gegensatz zu Bandlaufwerken von Großrechnern und Minicomputern, etwa dem DECTape, gab es hier keinen vom Computer verwalteten Index und keine Möglichkeit, das Band computergesteuert an bestimmte Stellen zu spulen. Diese lästige Aufgabe oblag ganz allein dem Nutzer. Spätere BASIC-Versionen ergänzten die Unterstützung der Backspace-Taste, sodass fälschlich eingegebene Zeichen wieder gelöscht werden konnten. Das BASIC des Altair unterstützte allerdings nie die programmierte Positionierung des Cursors auf dem Bildschirm. Es gab also keine Programme, die Objekte räumlich stabil und manipulierbar am Bildschirm darstellen konnten.

Disketten – mehr als nur schnell und wahlfrei

Während der pure Altair in seiner Grundausstattung relativ günstig war, kam schnell eine gehörige Summe zusammen, wenn der Rechner mit mehr Speicher, einer seriellen Schnittstelle und mit einem Terminal oder einem Fernschreiber versehen wurde. Derart ausgestattete Rechner standen eher nicht mehr bei Privatleuten, sondern in Firmen, Schulen oder Universitäten. Noch häufiger war dies so, wenn der Rechner mit einem Diskettenlaufwerk bestückt wurde, denn dieses kostete im Jahr 1975 allein schon 2.000 Dollar, was umgerechnet auf 2021 etwa 10.000 Dollar entspricht.

Altair 8800 mit Diskettenlaufwerk – Bild: Dr. Bernd Gross (CC BY-SA 4.0) (überarbeitet)
Altair 8800 mit Diskettenlaufwerk – Bild: Dr. Bernd Gross (CC BY-SA 4.0) (überarbeitet)

Oben sehen Sie unter dem eigentlichen Altair 8800 ein fast ebenso großes Gehäuse, in das ein 8-Zoll-Diskettenlaufwerk eingebaut ist. Disketten sind Ihnen vielleicht noch bekannt. Sie waren in verschiedenen Ausführungen bis in die 2000er Jahre als günstige, beschreibbare Wechseldatenträger verbreitet, bevor sie durch die USB-Sticks endgültig verdrängt wurden. Disketten waren im Prinzip billige, kleine Wechselfestplatten. Normale Festplatten bestehen aus mehreren magnetisierten Metallscheiben, die mittels Schreib-Leseköpfen gelesen und beschrieben werden können, indem die Magnetisierung der Oberfläche abgetastet oder verändert wird. Eine Diskette war nur eine einzige solche Scheibe und speicherte somit verhältnismäßig wenige Daten (einige 100 Kilobyte). Bei der Scheibe handelte es sich überdies nicht um eine Metallscheibe, sondern lediglich um eine magnetisierte Folie. Ähnlich wie bei der Festplatte bewegte sich ein Schreib-Lesekopf über die rotierende Scheibe und las und schrieb Daten. Die Rotationsgeschwindigkeit und damit die Schreib- und Lesegeschwindigkeit war aber natürlich erheblich niedriger. Im Vergleich zu Musikkassetten war die Diskette aber dennoch weit überlegen. Die höhere Datenrate und damit das schnellere Laden von Programmen wurde hier vielfach als der große Vorteil von Disketten beschrieben. Dieser Geschwindigkeitszuwachs ist natürlich nicht zu verachten, ist für uns hier aber nicht das Spannendste. Viel interessanter ist, dass mit der Diskette die Nutzungsschnittstelle nun um weitere Objekte bereichert wurde.

Disketten im Vergleich
Disketten im Vergleich

Das Diskettenlaufwerk des Altair las und beschrieb Disketten mit 8 Zoll Größe, hier links abgebildet. Diese Disketten sowie die später bei vielen Büro- und Heimcomputern üblichen 5,25 Zoll großen Disketten (Mitte) wurden „Floppy Disks“ oder kurz „Floppy“ genannt. Der Name rührt wohl schlicht daher, dass die Datenträger aufgrund ihrer biegsamen datentragenden Folie und der ebenfalls biegsamen Plastikummantelung ziemlich labbrig, oder englisch eben „floppy“ waren. Die später üblichen kleineren 3,5-Zoll-Disketten (rechts), die bis in die 2000er Jahre hinein verwendet wurden, verfügten über eine dickere Plastikummantelung und über eine metallische Schutzlasche, die den eigentlichen Datenträger vor Berührungen schützte. 3,5-Zoll-Disketten sind feste Gebilde. Der Begriff „Floppy“ passt hier, obwohl manchmal noch verwendet, nicht mehr wirklich.

Microsoft passte das BASIC so an, dass es mit Disketten umgehen konnte. Statt mit CLOAD und CSAVE konnte nun mit LOAD und SAVE geladen und gespeichert werden. Der Unterschied wirkt klein, ist aber doch gewaltig, denn bei der Diskette musste und konnte nicht mehr von Hand gespult werden. Ein Programm wurde nun geladen, indem ein vorher vergebener Name angegeben wurde. Mit der Unterstützung von Disketten wurden die Programme also selbst zu Objekten. Mittels CAT konnte eine Liste der gespeicherten Programme ausgegeben werden. Die Programme selbst konnten per Name referenziert und somit geladen, gespeichert oder auch gelöscht werden. Programme wurden zu Objekten der Nutzungsschnittstelle. Wie das Laden und Speichern technisch ablief, brauchte den Nutzer nun nicht mehr zu kümmern. Es war kein Spulen, kein Einfädeln und auch kein manuelles Ein- und Ausschalten von Lese- und Speichergeräten mehr nötig. Nicht nur die Programme wurden mit dem Disketten-BASIC zu Objekten. Auch Ein- und Ausgaben konnten Objekte werden, denn BASIC erlaubte nun das Einlesen von Daten aus Dateien, genauso wie die Ausgabe in Dateien. Mit dieser Funktionalität übertraf das Microsoft-BASIC die Fähigkeiten des originalen BASIC des Dartmouth-College, denn dort war es zwar möglich, Programme zu laden und zu speichern, ein Konzept von Daten-Dateien gab es aber nicht.

CP/M – Das Betriebssystem

Microsoft lieferte zwar ein BASIC mit Disketten-Funktionalitäten und rudimentärer Unterstützung von Terminals, schöpfte aber das volle Potenzial beider Techniken auf dem Altair nicht aus. Anders sah es aus, wenn man das Betriebssystem CP/M nutzte. CP/M steht für Control Program/Monitor (später geändert zu Control Program for Microcomputers). Das Betriebssystem wurde bereits 1974, also vor der Präsentation des Altair von Gary Kildall für den Prozessor Intel 8080 entwickelt. Kildall bot den Erzählungen nach Intel das Betriebssystem an. Der Prozessorhersteller war aber offenbar nicht daran interessiert. CP/M war das erste weit verbreitete Betriebssystem für Home- und Personal-Computer. Der Wikipedia-Eintrag zu CP/M listet sage und schreibe 200 verschiedene Rechnertypen, auf denen das System lief. Es ist leider heute selbst bei vielen Retro-Computing-Anhängern in Vergessenheit geraten, was wohl daran liegen mag, dass das System rein textbasiert war und nicht auf den beliebten, spieletauglichen Geräten der 1980er zu finden war oder dort zumindest nicht genutzt wurde. Obwohl den meisten nicht mehr bekannt, finden sich Spuren der Nutzungsschnittstelle von CP/M aber selbst in aktuellen Versionen von Microsoft Windows wieder. CP/M gehörte allerdings nie der Firma Microsoft. Kildall gründete 1976 seine eigene Software-Firma mit dem wohlklingenden Namen Digital Research. Wie die Nutzungsschnittstelle von CP/M in Windows landete, dazu später mehr.

Kildall traf in CP/M viele interessante technische Entscheidungen. Das System war im Prinzip auf allen Rechnern mit Intel 8080 und kompatiblen Prozessoren lauffähig. Abgesehen vom kompatiblen Prozessor waren die Rechner, auf denen CP/M lief, aber sehr verschieden. Um dennoch das gleiche System und die gleiche Software einsetzen zu können, ersann Kildall das Basic Input/Output System, kurz BIOS. Dieses BIOS musste für jede Systemarchitektur angepasst werden. Der Rest des Betriebssystems konnte wiederverwendet werden und, vielleicht noch wichtiger, die Software konnte rechnerunabhängig programmiert werden. Anstatt die Hardware direkt anzusprechen, galt es nun, die Funktionen des BIOS zu nutzen. In der Praxis ging diese Rechnerunabhängigkeit allerdings nicht so weit, wie es wünschenswert gewesen wäre. Das BIOS abstrahierte etwa nicht vom eingesetzten Terminal. Da verschiedene Terminals ganz unterschiedliche Fähigkeiten hatten und verschiedene Steuersignale verwendeten, um etwa den Bildschirm zu löschen und den Cursor zu positionieren, war man daher immer darauf angewiesen, eine passende Kombination aus Software und Terminal zu nutzen.

Das Betriebssystem CP/M mit laufendem Microsoft BASIC
Das Betriebssystem CP/M mit laufendem Microsoft BASIC

Die Eigenarten verschiedener Terminals wurden sicher deshalb nicht für das BIOS berücksichtigt, da CP/M selbst die Vorteile eines Terminals kaum ausnutzte. Die Haupt-Interaktion mit dem Betriebssystem erfolgte über einen Command Processor namens CCP (Console Command Processor). Da Kildall selbst Rechner von DEC nutzte und auf diesen auch CP/M entwickelte, war die Funktionsweise bis hin zu den Befehlen angelehnt an TOPS-10 und war damit dem OS/8 der PDP-8 ziemlich ähnlich. CP/M war im Vergleich zu OS/8 allerdings noch einfacher. Wie OS/8 hatte CP/M keinerlei Nutzerverwaltung und keine Vorrichtungen für Time-Sharing oder Multitasking. Während OS/8 allerdings sehr flexibel in Sachen Speichermedien war und vom DEC-Tape bis zu Festplatten so ziemlich alles unterstützte oder durch Programmieren eines Treibers zugänglich machen konnte, unterstützte CP/M ausschließlich Disketten, auf denen Dateien gespeichert werden konnten. Diese Dateien hatten einen Namen von maximal acht Zeichen Länge, gefolgt von einem Punkt gefolgt von drei weiteren Zeichen, dem sogenannten „Suffix“, auch „Dateiendung“ genannt. Das Suffix wurde genutzt, um klarzumachen, um welche Art von Datei es sich handelte. COM etwa stand für direkt ausführbare Programme, BAS für BASIC-Programme und TXT für Textdateien. CP/M unterstützte mehrere Diskettenlaufwerke, die mit Buchstaben angesprochen wurden. A stand für das erste Laufwerk, B für das zweite und so weiter. Mit dem Befehl dir konnten die Dateien auf der Diskette aufgelistet werden. Eine Ordnerstruktur unterstützte CP/M noch nicht, was aufgrund des beschränkten Speicherplatzes der Disketten aber kein Problem darstellte.

Auf der Abbildung oben sehen Sie, wie es aussah, wenn CP/M auf einem Altair mit angeschlossenem Terminal verwendet wurde. CP/M meldete dem Nutzer seine Eingabebereitschaft in Form einer Kommandozeile. A> bedeutete, dass sich die eingegebenen Kommandos auf die Diskette im ersten Diskettenlaufwerk beziehen. Der Befehl dir *.bas auf der Kommandozeile bewirkte, dass alle Dateien mit der Dateiendung .bas, also alle BASIC-Programme, angezeigt wurden. Der Befehl type diente dazu, eine Datei auf den Bildschirm auszugeben und der Aufruf von mbasic hallo.bas startete den BASIC-Interpreter von Microsoft, der mit jedem CP/M mitgeliefert wurde, und führte in ihm das Programm „hallo.bas“ aus. Dieses tat hier nichts mehr, als Hallo Welt auf den Bildschirm auszugeben. Die Ideenherkunft von CP/M in den Time-Sharing-Systemen der 1970er Jahre merkte man dem System stark an. Es bediente sich letztlich wie ein Time-Sharing-System, an das ein Fernschreiber angeschlossen wurde. Der Nutzer konnte Befehle eintippen, das Computersystem schrieb dann die Ausgabe der Ausführung des Befehls auf den Bildschirm, darunter konnte wieder ein Befehl eingegeben werden und so weiter.

Der Kommandozeilen-Interpreter von CP/M war einige Jahre später die Vorlage für das Betriebssystem 86-DOS von Seattle Computer Products. Im Gegensatz zu CP/M lief 86-DOS, ganz dem Namen entsprechend, nicht mit dem 8-Bit-Prozessor 8080, sondern mit Intels neuem 16-Bit-Prozessor 8086 und dessen günstiger Variante 8088, der im ersten IBM PC verbaut wurde. 86-DOS wurde mitsamt Entwickler von Microsoft gekauft und dann unter den Namen PC-DOS für IBM und MS-DOS für kompatible Rechner vertrieben. Sowohl CP/M als auch DOS fordern mit A> zu einer Eingabe auf. Das Konzept der Laufwerkszuordnung per Buchstabe wurde übernommen, das Wechseln zwischen den Laufwerken funktionierte auf die gleiche Art und Weise und auch die grundlegenden Befehle wie dir und type waren die gleichen. Da diese Grundkonzepte auch in die Eingabeaufforderung von Windows übernommen wurden, können Sie diese Grund-Arbeitsweisen des CP/M von 1974 auch heute, 46 Jahre später, noch erleben. Zu Microsofts DOS und der Entwicklung von Windows kommen wir aber später im Kapitel Windows und MacOS. Bleiben wir zunächst einmal in den 1970ern und werfen einen Blick auf die Killer-App von CP/M. Bei einer Killer-App handelt es sich nicht etwa um ein Ballerspiel. Es ist auch sonst nichts Gefährliches. Als Killer-App bezeichnet man Anwendungsprogramme, die einen so großen Nutzen bringen, dass sie allein die Anschaffung eines bestimmten Systems rechtfertigen.

WordStar – Die Killer-App

Die Interaktionsmethode von CP/Ms Kommandozeilen-Interpreter CCP war in keinster Weise herausragend. Sie glich der Methode von Time-Sharing-Systemen der 1960er und 1970er Jahre, blieb in Sachen Komfort aber sogar hinter diesen zurück. Viel interessanter in Bezug auf die Nutzungsschnittstelle waren viele Anwendungsprogramme, die unter CP/M liefen, denn durch CP/M wurde dem Computer nicht nur eine komfortable Umgebung zur Programmierung in verschiedensten Programmiersprachen bereitgestellt, sondern vor allem auch die Grundlage für Standard-Software geschaffen. Ein gutes und sehr wichtiges Beispiel ist hier das Programm „WordStar“, das erste nennenswerte Textverarbeitungsprogramm für Mikrocomputer. Es verfügte bereits über viele Funktionen, die man auch heute noch von Textverarbeitungssystemen kennt, von der Textformatierung bis hin zur Rechtschreibprüfung. Es war damit eine der frühen Killer-Apps für Mikrocomputer-Systeme. Neben seinen funktionalen Aspekten hatte WordStar auch eine sehr fortschrittliche Nutzungsschnittstelle, die auch heute noch in manchen Aspekten herausragend ist.

Die Textverarbeitung WordStar unter CP/M
Die Textverarbeitung WordStar unter CP/M

Diese Abbildung zeigt die Nutzungsoberfläche von WordStar mit einem schon geladenen Text. Der Bildschirm ist in zwei Bereiche eingeteilt. Der Bereich unterhalb der Zeile mit den vielen Minus-Zeichen ermöglicht die Textbearbeitung. Hier kann ein Eingabe-Cursor frei positioniert werden. Es ist möglich, Text zu löschen und neue Zeichen zwischen die bereits vorhandenen Textteile einzufügen. Statt einer damals noch verbreiteten Kommandozeile wurde bei WordStar also die direkte Manipulation verwendet. WordStar ist daher zwingend auf ein Terminal mit Bildschirm angewiesen, denn die Software nutzte den Vorteil von Terminals gegenüber Fernschreibern aus. Während ein Fernschreiber immer nur unten auf dem Papier etwas Neues ausdrucken konnte und sich das vorher Gedruckte nach oben verschob, konnte auf einem Terminal die Schreibmarke an beliebige Stellen gesetzt und dort konnte geschrieben werden. Dadurch bekamen die Zeichen am Bildschirm eine räumliche Position, an der sie stabil stehenblieben bzw. von der sie an beliebige andere Stellen verschoben werden konnten. Eine Manipulation der Zeichen bedeutete nicht ein komplettes Neu-Drucken, sondern wurde zu einer räumlichen Änderung an Ort und Stelle des Zeichens.

Der Bereich oberhalb der Trennlinie zeigte Status-Informationen und ermöglichte den Zugriff auf die Funktionalität der Software. Vor allem dieser Bereich war seinerzeit außergewöhnlich, denn mit den dort angezeigten Informationen war es möglich, sich das Programm zu erschließen und Auskunft darüber zu erhalten, welche Eingaben und Manipulationen möglich waren. In den seinerzeit üblichen Programmen mit Kommandozeile oder auch einem Editor wie „vi“ war das nicht so. Hier musste man wissen, welche Eingaben möglich waren oder musste es im Handbuch nachlesen. Die Programme selbst gaben keinerlei Hinweise darauf. Natürlich konnten nicht alle Funktionen des Programms vollständig in diesem Steuerungsbereich aufgeführt werden, denn schon zu diesem Zeitpunkt hatte die Textverarbeitungs-Software weit mehr Funktionen und Formatierungsmöglichkeiten als darstellbar waren. Genutzt wurde daher ein System von Menüs und Untermenüs. CTRL+k zum Beispiel öffnete das Untermenü für Block- und Speicher-Kommandos.

Die Erschließbarkeit von WordStar war in der damaligen Zeit herausragend. Bei Weitem nicht jede Software, die die Möglichkeit der räumlichen Einteilung auf dem Bildschirm ausnutzte, erläuterte ihre Bedienung auf diese Art und Weise selbst. Trotz der für heutige Verhältnisse arg eingeschränkten grafischen Möglichkeiten erlaubte es WordStar gut, sich die angebotenen Handlungsoptionen zu erschließen. In einigen Aspekten war die Erschließbarkeit sogar besser als bei heutigen Textverarbeitungen. Man kann das am Beispiel der Block-Operationen, die ich Ihnen zuvor für „vim“ beschrieben habe, ganz gut nachvollziehen. Die auszuführende Aktion war es, einen Textauszug zu markieren und an eine andere Stelle im Text zu verschieben. Grundvoraussetzung hierfür ist natürlich die Möglichkeit, Textbereiche markieren zu können. Zu Zeiten von WordStar war die Computermaus zwar schon erfunden, war jedoch auch in der Fachwelt noch im großen Stile unbekannt. Recht komfortabel konnte jedoch durch Positionieren des Schreibcursors und der Eingabe von Tastaturkürzeln beispielsweise ein Block Text räumlich selektiert und verschoben werden. Die Tastaturkürzel wurden jeweils auf dem Bildschirm angezeigt. Ein Druck auf CTRL und k wechselte das im oberen Bereich angezeigte Menü und gab die möglichen „Blockbefehle“ an. Ein Nutzer erfuhr dort unter anderem, dass B für Blockbeginn, K für Blockende und C für Kopieren steht. WordStar erlaubte es also, sich über die angezeigten Menüs herzuleiten, wie diese Markierung erreicht werden kann. Moderne Textverarbeitungen gehen hingegen davon aus, dass man schon wissen wird, wie man per Maus oder per Tastatur eine Selektion vornehmen kann. Am Bildschirm gibt es keine erkennbaren Hinweise darauf, wie das zu bewerkstelligen ist.

Die Rolle des Altair

Ob der Altair 8800 tatsächlich als erster Personal Computer bezeichnet werden sollte, ist, wie zu Beginn erläutert, fraglich. Durchaus sinnvoll ist es aber, im Altair den Rechner zu sehen, mit dem die Computer im Privatbesitz den Schritt von experimentellen Bastelrechnern zu voll ausgereiften Produkten schafften, die man im Laden kaufen konnte. Mit dem Altair und seinen vielen sehr ähnlichen Nachbauten wie dem IMSAI 8080 oder dem Cromemco-Z1 erhielt der PC seine eigene Charakteristik. Während das System zu Beginn mit seiner Programmierung über das Front-Panel und einem angeschlossenen Fernschreiber noch eher als ein erschwinglicher, leicht eingeschränkter Minicomputer für Hobbyisten anzusehen war, hatte er sich mit der Verbesserung der Ein- und Ausgabemöglichkeiten weiterentwickelt und trat mit dem Betriebssystem CP/M und Software wie WordStar aus dem Schatten seiner großen Brüder. Nutzer verfügten nun über ein System mit einer leistungsstarken Nutzungsschnittstelle. Statt mit den technischen Details der Maschine beschäftigten sie sich nun ausschließlich mit vom Computer für sie erzeugten virtuellen und räumlichen Objekten. Auch die Charakteristik von Software änderte sich von selbst geschriebenen, sehr spezifischen Programmen hin zu Anwendungsprogrammen als (kommerzielle) Produkte. Es war der Beginn der Standard-Software.

Der Altair war der Startschuss für viele Entwicklungen. Seine schiere Existenz hat Computerbastler und Unternehmer inspiriert. Von Microsoft war hier bereits die Rede, aber auch Steve Jobs und Steve Wozniak, die Gründer der Firma Apple, geben den Altair als ihre Inspiration an. Über die entstandenen Produkte erfahren Sie mehr in den folgenden Kapiteln.