It was one of the first second-generation BASICs to be integrated into a microcomputer's operating system (unlike BBC BASIC which preceded it in 1981), making the OS user-extendable—as done by Linus Torvalds in his formative years.
Advanced features
RESPR for resident procedures, e.g. to extend QDOS
choice of parameters passed to procedures
procedures return parameters as chosen
IF - THEN - ELSE - END IF
FOR - NEXT - EXIT - END FOR
REPeat - NEXT - EXIT - END REPeat
SELect ON - ON - REMAINDER - END SELect
arbitrarily RETurn from within procedures & functions
The function below illustrates the last eight of these features. After having RUN it, entering
PRINT weekdays$(Iso("19631122",1))
will print FRI to the screen. Until cleared (e.g. by entering NEW), the function Iso[3] will act like an extension to the operating system. Similarly, according to the QL User Guide, "many of the operating system commands are themselves defined as procedures."[4]
Example
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[5]
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)
ctrl+space
100DIMmonth$(12,9)110RESTORE120REMQLUserGuide's "Data Read Restore" example ii130REMappropriatelyamendedrelativetoexamplei140FORcount=1TO12:READmonth$(count)150DATA"January","February","March"160DATA"April","May","June"170DATA"July","August","September"180DATA"October","November","December"190DATA"SUN","MON","TUE","WED","THU","FRI","SAT"199ENDDEFineIso
Bibliography
Donald Alcock: Illustrating Superbasic on the Sinclair QL. Cambridge University Press, 1985. ISBN0-521-31517-4
Roy Atherton: Good Programming with QL Superbasic. Longman Software, 1984. ISBN0-582-29662-5
A. A. Berk: QL SuperBasic. Granada Publishing, 1984. ISBN0-246-12596-9
Dick Meadows, Robin Bradbeer, Nigel Searle: Introduction to Superbasic on the Sinclair QL. Hutchinson Computer Publishing, 1984. ISBN0-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. ISBN0-09-160561-X
Andrew Nelson: Exploring the Sinclair QL: An Introduction to SuperBasic. Interface Publications, 1984. ISBN0-907563-84-8
John K. Wilson: QL Superbasic: A Programmer's Guide. Micro Press, 1984. ISBN0-7447-0020-5