SuperBASIC | |
---|---|
Basisdaten
| |
Entwickler | Sinclair Research Ltd. |
Erscheinungsjahr | 1984 |
Betriebssystem | QDOS |
Kategorie | BASIC zweiter Generation |
Lizenz | Proprietär |
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.
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.
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 FunktionenLOCal
(lokale) Arrays & (Zeichenketten) VariablenAUTOmatic
(automatische) ZeilennummerierungRESTORE
& 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]
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