SuperBASIC ist eine erweiterte Variante der BASIC Programmiersprache mit vielen Erweiterungen im Bereich des strukturellen Programmierens. Sie wurde bei Sinclair Research von Jan Jones in den frühen 1980ern entwickelt.

QS-Informatik
Beteilige dich an der Diskussion!
Dieser Artikel wurde wegen inhaltlicher Mängel auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen, und beteilige dich an der Diskussion! (+)
SuperBASIC
Basisdaten

Entwickler Sinclair Research Ltd.
Erscheinungsjahr 1984
Betriebssystem QDOS
Kategorie BASIC zweiter Generation
Lizenz Proprietär

Eigentlich war SuperBASIC als der BASIC-Interpreter für einen Heimcomputer mit dem Entwicklungsnamen SuperSpectrum gedacht, welcher sich zu der Zeit in Entwicklung befand. Jedoch wurde dieses Projekt später abgebrochen, SuperBASIC wurde folglich in der ROM-Firmware des Sinclair QL Mikrocomputer (im Januar 1984 vorgestellt) integriert, außerdem fungierend als Kommandozeileninterpreter für das QDOS-Betriebssystem[1][2] des QL.

SuperBASIC war eines der ersten BASICs der zweiten Generation, welche in einem Betriebssystem eines Mikrocomputers vorhanden war (nicht wie BBC BASIC, welches in 1981 erschien), was es möglich machte, das Betriebssystem vom Benutzer zu erweitern — wie erfolgt von Linus Torvalds in seinen frühen Jahren.

Erweiterte Funktionen

Bearbeiten
  • RESPR für Residenzprozesse, z. B. um QDOS zu erweitern
  • Parameterwahl zu Prozessen weitergeleitet
  • Prozesse geben Parameter wie gewählt aus
  • IF - THEN - ELSE - END IF (wenn - dann - sonst - beenden wenn)
  • FOR - NEXT - EXIT - END FOR (für - nächste/s - beenden - beenden für)
  • REPeat - NEXT - EXIT - END REPeat (wiederholen - nächste/s - beenden - Wiederholend beenden)
  • SELect ON - ON - REMAINDER - END REPeat (auswählen an - an - Rest - wiederholen beenden)
  • RETurn (Ausgabe) von innerhalb Prozessen und Funktionen
  • Datentypzwang zwischen numerischen and Zeichenkettenvariablen
  • Parameter geben Datentypen zu formalen Parametern weiter
  • Arrayoperationen: Schneiden, verbinden etc.
  • LOCal (lokale) Arrays & (Zeichenketten) Variablen
  • AUTOmatic (automatische) Zeilennummerierung
  • relative RESTORE & DATA (wiederherstellen & Daten)

Die folgende Funktion zeigt die letzten 8 dieser genannten Merkmale. Nach der Ausführung des Codes mit RUN und Eingabe von

      PRINT weekdays$(Iso("19631122",1))

wird FRI als Ausgabe auf dem Bildschirm angezeigt. Bis zur Löschung (z. B. durch Eingabe von NEW), wird sich die Funktion ISO wie eine Erweiterung des Betriebssystems verhalten. Ähnlicherweise, laut dem QL-Benutzerhandbuch, "sind viele der Kommandos im Betriebssystems als Prozesse definiert."[3]

Beispiel

Bearbeiten
AUTO 11,2
  DEFine FN Iso(S,O)
  LOCal y%,m%,d%,i$,n%,w%
  REM Step 0 - to isolate components of date-stamp S="YEARMoDa"
  LET y%=S(1TO 4) : m%=S(5TO 6) : d%=S(7TO 8)
  REM Step 1 - to initiate Lachman's Congruence
  LET i$=m%*2.56+ 193 : S=S(1TO 6)- 3
  REM Step 2 - to compute the day-number within the week
  LET w%=(S(1TO 2)&"32"DIV 16+ S(1TO 4)DIV 4+ y%+ i$(2TO 3)+ d%)MOD 7
  REM Step 3 - to return result
         SELect ON O
                ON O= 5 : n%=i$(2TO 3)
                ON O= 4 : n%=y%
                ON O= 3 : n%=m%
                ON O= 2 : n%=d%
                ON O= 1 : n%=w%
                ON O= REMAINDER : n%=-1
         END SELect
  RETurn n%
  REM data statements
  DIM weekdays$(6,3)
  RESTORE 190
  FOR count=0 TO 6 : READ weekdays$(count)
 100 DIM month$(12,9)
 110 RESTORE
 120 REM QL User Guide's "Data Read Restore" example ii
 130 REM appropriately amended relative to example i
 140 FOR count=1 TO 12 : READ month$(count)
 150 DATA "January","February","March"
 160 DATA "April","May","June"
 170 DATA "July","August","September"
 180 DATA "October","November","December"
 190 DATA "SUN","MON","TUE","WED","THU","FRI","SAT"
 199 END DEFine Iso
  • Donald Alcock: Illustrating Superbasic on the Sinclair QL. Cambridge University Press, 1985. ISBN 0-521-31517-4
  • Roy Atherton: Good Programming with QL Superbasic. Longman Software, 1984. ISBN 0-582-29662-5
  • A. A. Berk: QL SuperBasic. Granada Publishing, 1984. ISBN 0-246-12596-9* Dick Meadows, Robin Bradbeer, Nigel Searle: Introduction to Superbasic on the Sinclair QL. Hutchinson Computer Publishing, 1984. ISBN 0-09-158951-7
  • Dick Meadows, Robin Bradbeer, Nigel Searle: Making the Most of the Sinclair QL: QL Superbasic and Its Applications. Hutchinson Computer Publishing, 1985. ISBN 0-09-160561-X
  • Andrew Nelson: Exploring the Sinclair QL: An Introduction to SuperBasic. Interface Publications, 1984. ISBN 0-907563-84-8
  • John K. Wilson: QL Superbasic: A Programmer's Guide. Micro Press, 1984. ISBN 0-7447-0020-5

Einzelnachweise

Bearbeiten
  1. Illustrating Super-BASIC on the Sinclair QL. In: Computing History. Abgerufen am 6. Februar 2023 (englisch).
  2. Alberto Apostolo: Sinclair QL: mistakes, misfortune and so many regrets. In: RetroMagazineWorld. Abgerufen am 6. Februar 2023 (englisch).
  3. Stephen Berry: QL User Guide. 2nd Auflage. Sinclair Research Ltd, Cambridge 1984 (englisch, me.uk).