Apple Integer Basic
Das Apple Integer BASIC ist der BASIC-Interpreter des Apple I und des ursprünglichen Apple II-Modells - dort im ROM fest eingebaut und mit dem Computer ab Werk ausgeliefert. Integer BASIC beruht auf HP-BASIC, dem von der Firma Hewlett Packard entwickelten BASIC-Dialekt der 70er Jahre.
Entstehungsgeschichte
Als Apple-Mitgründer und Entwickler Steve Wozniak den Apple I konstruierte, hatten Kleincomputer weder Display noch User-Interface; Konkurrenzgeräte wie der Altair brachten von Haus aus bestenfalls rudimentäre Ein- und Ausgaberoutinen mit, sie wurden in der Regel Byte für Byte programmiert. Wozniak erfuhr im Homebrew Computer Club von dem BASIC-Interpreter, den Bill Gates für den Altair geschrieben hatte und wollte es ihm gleich tun, obwohl er eigentlich eher in der Programmiersprache Fortran zuhause war. Als weiteren Anstoß gibt er das Buch "101 BASIC Computer Games" von David H. Ahl an.
Da Wozniak eigentlich Hardware-Entwickler war und kaum Kenntnisse in Software-Entwicklung hatte, ging er intuitiv an das Projekt heran: er analysierte Handbücher für HP-BASIC und leitete darauf eine Syntax für seinen BASIC-Interpreter ab. Er entschied sich, die Sprache einfach zu halten: Integer BASIC konnte nur mit 16-Bit-Ganzzahlen umgehen, Gleitkomma-Arithmetik sparte er aus. Er benötigte etwa vier Monate Entwicklungszeit und codierte den Interpreter zunächst in einem Notizbuch, um ihn dann Byte für Byte einzugeben. Bestandteil des Codes war auch ein kleines Monitorprogramm für Maschinensprache. Als Teil des Integer BASIC implementierte Wozniak außerdem eine kleine, aber vielseitige Virtuelle Maschine namens "Sweet 16", die in wenigen hundert Bytes Maschinencode einen fiktiven 16-Bit-Prozessor mit 16 Registern emulierte. Viele Operationen des Interpreters ließen sich in diesem 16-bit-Pseudocode wesentlich kompakter formulieren als in nativem 6502-Code, sodass der Speicherbedarf insgesamt deutlich sank.
Wozniak bezeichnete die Entwicklung des Integer BASIC später als größte technische Herausforderung seines ganzen Berufslebens. Der gesamte Code passte mitsamt der ROM-Routinen für Bildschirmdarstellung, Tastaturansteuerung etc. in 8 KB Speicher.
Integer BASIC war nicht kompatibel zum BASIC-Dialekt von Microsoft, der auf dem BASIC des Computerherstellers DEC beruhte. Wozniak entdeckte dies eigenen Aussagen zufolge erst, als er die Programme aus "101 BASIC Computer Games" auf den Apple übertragen wollte und scheiterte. Als erstes Programm passte er das Spiel "Star Trek" an seinen Computer an.
Weiterentwicklung
Für den 1977 erschienenen Apple II erweiterte Wozniak das Integer-BASIC um einige Grafikbefehle zur Ansteuerung des neuen LoRes-Grafikmodus und der Paddles; dabei ging er wieder eher praktisch vor, er implementierte genau die Befehle, die er benötigte, um einen brauchbaren Breakout-Clone in BASIC schreiben zu können. Damals herrschte bei Apple noch die Meinung vor, der hochauflösende HiRes-Grafikmodus werde besser den Maschinensprache-Programmierern überlassen, da ein interpretiertes BASIC auf einem 1-MHz-Rechner prinzipiell zu langsam sei, um damit ansprechende HiRes-Programme zu schreiben. Erst allmählich setzte sich die Erkenntnis durch, dass viele Anwender eher Interesse an einer einfachen als an einer schnellen Grafikprogrammierung hatten.
Bereits Ende 1977 bot Apple zusätzlich zum eingebauten Integer-BASIC einen von Microsoft zugekauften BASIC-Interpreter an, weil eigene Versuche der weiteren Fortentwicklung nicht gefruchtet hatten: Wozniak war der einzige, der den Code des Integer-BASIC wirklich verstand, aber er wurde bei der Entwicklung des neuen Diskettenlaufwerks für den Apple noch dringender gebraucht. Das aus dem Microsoft BASIC abgeleitete und um einige Apple-spezifische Befehle ergänzte Applesoft BASIC war deutlich langsamer und weniger sparsam im Speicherverbrauch, bot aber die schmerzlich vermisste Gleitkomma-Arithmetik und Befehle zur Darstellung des hochauflösenden "HiRes"-Grafikmodus des Apple II mit 280x192 Pixeln - Integer-BASIC war ohne Umwege über Maschinensprache nur zur Ansteuerung des "LoRes"-Grafikmodus mit 40x48 Pixeln in der Lage.
Zunächst war Applesoft BASIC als Programmcasette zu erhalten, bald dann auch auf Diskette sowie als ROM-Steckkarte, wodurch kein kostbarer RAM-Speicher mehr dafür benötigt wurde. Viele Anwender gingen bald dazu über, die ROM-Chips aus dieser Steckkarte herauszunehmen und direkt in die Hauptplatine einzusetzen, anstelle der Integer-BASIC-Chips. Die größere Beliebtheit des Applesoft BASIC wurde schließlich von Apple anerkannt: Mit Applesoft BASIC auf der Hauptplatine (und größerem Speicher) verkaufte Apple den Rechner ab 1979 als Apple II+. Bei diesem und allen späteren Modellen der Apple-II-Serie kann jedoch Integer BASIC weiterhin bei Bedarf von Diskette nachgeladen werden.