Turbo-BASIC XL ist eine erweiterte Version der Programmiersprache BASIC [ 1 ] für Atari 8-Bit-Computer . Es handelt sich um eine kompatible Erweiterung des mit den Computern ausgelieferten Atari BASIC . Turbo-Basic XL wurde von Frank Ostrowski [ 1 ] entwickelt und in der Dezemberausgabe 1985 der deutschen Computerzeitschrift Happy Computer veröffentlicht . Kurz darauf erschien eine Version für die Modelle 400/800 unter dem Namen Frost Basic 1.4 . Verschiedene modifizierte Versionen für unterschiedliche DOS-Systeme wurden von anderen Autoren veröffentlicht.
Turbo-Basic XL beschleunigt die Programmausführung im Vergleich zu Atari BASIC erheblich. Ein unverändertes Atari-BASIC-Programm lief in Turbo-BASIC in der Regel drei- bis viermal so schnell. [ 1 ] Der Turbo-Basic-XL -Compiler erzeugte binäre ausführbare Dateien , wodurch die Programmleistung nochmals um etwa das Zehnfache gegenüber Atari BASIC gesteigert wurde. Turbo-Basic XL enthielt außerdem einen erweiterten Editor, Unterstützung für benannte Prozeduren WHILE...ENDWHILEund ähnliche Blockkonstrukte sowie zusätzlichen Zugriff auf die zugrundeliegende Hardware. Dies ermöglichte unter anderem den Betrieb angeschlossener Diskettenlaufwerke, ohne dass DOS aufgerufen werden musste .
Ostrowski fand bald eine Anstellung bei der GFA Systemtechnik GmbH (damals bekannt als Integral Hydraulik ), wo er Turbo-Basic XL zu GFA BASIC für den Atari ST adaptierte , das zu einem der beliebtesten BASICs auf dieser Plattform wurde.
Hintergrund
Die geringe Ausführungsgeschwindigkeit von Atari BASIC [ 2 ] , das allen Atari-8-Bit- Modellen beilag, führte zu einem Markt für BASIC-Interpreter und -Compiler von Drittanbietern mit besserer Leistung oder mehr Befehlen. Darunter befand sich eine offizielle Portierung von Microsoft BASIC, die von Atari, Inc. vertrieben wurde , sowie mehrere verbesserte Versionen von Optimized Systems Software , die das ursprüngliche Atari BASIC im Auftrag entwickelt hatten. Außerdem gab es Atari-BASIC-Compiler von verschiedenen Firmen.
Turbo-Basic XL erschien erst später in dieser Liste und wurde erstmals im Dezember 1985 als Eingabeprogramm in der Zeitschrift „Happy Computer“ veröffentlicht . Es gab es sowohl als Interpreter als auch als Compiler. Turbo-Basic XL nutzte den größeren Speicher der XL- (und später XE-)Serie und lief daher nicht auf den ursprünglichen 400er- und 800er-Modellen. Eine Version, die diese Systeme unterstützte, wurde später unter dem Namen Frost BASIC (kurz für „Frank Ostrowski“) veröffentlicht.
Die internen, festplattenbezogenen Befehle sind an bestimmte DOS-Versionen gebunden. Es wurden mehrere Portierungen für verschiedene DOS-Versionen veröffentlicht.
Leistung
Das auffälligste Merkmal von Turbo-Basic war seine drastisch verbesserte Geschwindigkeit; ein unverändertes Atari-BASIC-Programm lief in Turbo-Basic normalerweise drei- bis fünfmal schneller [ 1 ] , und der Geschwindigkeitsvorteil nahm mit zunehmender Programmgröße weiter zu. Der Compiler steigerte die Ausführungsgeschwindigkeit von Programmlisten um den Faktor 15 bis 20 [ 1 ]. Dies war größtenteils auf eine Reihe von Verbesserungen bekannter Probleme im ursprünglichen Atari-BASIC-Code zurückzuführen.
In den meisten BASIC-Versionen wurde GOTO durch Auslesen der zugehörigen Zeilennummer und anschließende Suche nach dieser Codezeile realisiert. In MS-basierten BASIC-Versionen wurden die Zeilennummern als 16-Bit- Ganzzahlen und numerische Konstanten im Code in ihrem ursprünglichen ASCII- Format gespeichert. Traf man auf eine Zeile wie „1000 GOTO 1000“, verwendete der Interpreter speziellen Code, um die vier ASCII-Zeichen „1000“ in das 16-Bit-Ganzzahlformat zu konvertieren und anschließend danach zu suchen. Atari BASIC funktionierte anders: Hier wurden alle numerischen Konstanten beim Zeilenaufruf in ein 6-Byte- Gleitkommaformat konvertiert . Das bedeutete, dass „1000“ nicht mehr im ASCII-Format vorlag und von Gleitkomma- in Ganzzahlformat konvertiert werden musste. Der dafür benötigte Code war nicht optimal und konnte über 2 ms dauern (durchschnittlich 1–1,5 ms).
FOR...NEXT-Schleifen sind eine weitere häufige Konstruktion in BASIC-Programmen. In den meisten BASIC-Versionen wurde beim Auftreten des FOR-Zweigs dessen Speicheradresse im Quellcode auf den Aufrufstapel gelegt , um beim Auftreten des zugehörigen NEXT-Aufrufs leicht dorthin zurückkehren zu können. Aus unbekannten Gründen legte Atari BASIC die Zeilennummer des FOR-Zweigs auf den Stapel und durchsuchte dann den gesamten Code nach dieser Zeile, sobald der NEXT-Aufruf erfolgte. Bei Programmen mit vielen Schleifen, was in BASIC häufig der Fall ist, konnte dies zu erheblichen Leistungseinbußen führen.
Turbo-Basic implementierte seine FOR-Schleifen wie MS BASIC mithilfe der Adresse und erreichte dadurch eine vergleichbare Laufzeit. Darüber hinaus verbesserte es die GOTO-Performance deutlich. Zeilennummern wurden einer Hash-Funktion übergeben , die sie in 256-Zeilen-Blöcke aufteilte. Beim Programmstart wurde die Adresse des ersten Blocks in einer Tabelle mit 128 Einträgen gespeichert. Zur Laufzeit wurde bei Bedarf die nächstniedrigere Adresse in der Tabelle ermittelt und anschließend die Zeile ab diesem Punkt gesucht. Die Verbesserung war besonders bei größeren Programmen spürbar, da die Suchzeit dort zunehmend länger war. Daher konnte Turbo-Basic bei größeren Programmen eine bis zu fünffache Leistungssteigerung erzielen.
Die andere Hauptursache für die schlechte Performance von Atari BASIC war der extrem langsame BCD - Gleitkommacode . Die Bibliothek , die in einem separaten 2-KB-ROM gespeichert und als Teil des Betriebssystems (im Gegensatz zu BASIC selbst) betrachtet wurde, war in Eile geschrieben und nie optimiert worden. Einige der Routinen, insbesondere die Multiplikations- und Potenzierungsfunktionen, waren deutlich langsamer als nötig.
Turbo-Basic behob dieses Problem durch die Integration einer eigenen, vollständigen Gleitkomma-Bibliothek. Diese löste nicht nur viele der genannten Probleme, sondern optimierte den Code auch durch das Abwickeln kleiner Schleifen. Bei Programmen mit umfangreichem mathematischem Aufwand führte die neue Bibliothek zu drastischen Leistungssteigerungen. Dadurch katapultierte sich der Atari von einem der hinteren Plätze in den Creative Computing Benchmark -Listen an die Spitze und übertraf sogar einige hardwaretechnisch deutlich leistungsstärkere Rechner.
Neue Funktionen
Zu den zusätzlichen Funktionen von Turbo-Basic XL, die Atari BASIC hinzugefügt wurden, gehören folgende:
- Erweiterte Sound- und Grafikbefehle
- flexiblere E/A - Befehle, einschließlich Festplattenzugriff
- strukturierte Programmierkonstrukte
- einfache Debugging -Funktionen
Siehe auch
Referenzen
- ^ a b c d e Lendino, Jamie (17.08.2023). Breakout: Wie Atari 8-Bit-Computer eine Generation prägten . Steel Gear Press. ISBN 978-1-957932-04-0Die
- ^ Ahl, David (November 1983). „Benchmark comparison test“ . Creative Computing . S. 260.
- Fetzer, Ron (1985). Erweiterte Turbo-BASIC XL Dokumentation (PDF) .
Externe Links
- Turbo-Basic XL- Angebote aus dem Happy Computer Magazin