SuperBASIC
SuperBASIC is an advanced variant of the BASIC programming language with many structured programming additions. It was developed at Sinclair Research by Jan Jones during the early 1980s.
| Developer(s) | Sinclair Research, Jan Jones | 
|---|---|
| Initial release | 1984 | 
| Operating system | QDOS | 
| Platform | Sinclair QL microcomputer | 
| Type | second-generation BASIC | 
| License | Proprietary | 
Originally SuperBASIC was intended as the BASIC interpreter for a home computer code-named SuperSpectrum, then under development. This project was later cancelled; however, SuperBASIC was subsequently included in the ROM firmware of the Sinclair QL microcomputer (announced in January 1984), also serving as the command line interpreter for the QL's QDOS operating system.[1][2]
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 RETurnfrom within procedures & functions
- data type coercion between numeric and string variables
- actual parameters passing data type to formal parameters
- array operations: slicing, joining etc.
- LOCalarrays & (string) variables
- AUTOmaticline numbering
- relative RESTORE&DATA
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
 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
Bibliography
    
- 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
- "Illustrating Superbasic on the Sinclair QL - World of Spectrum". www.worldofspectrum.org. Retrieved 2016-04-11.
- Jan Jones: QL SuperBasic: The Definitive Handbook. McGraw-Hill, 1984 ISBN 0070847843 (e-book reissue 2014)
- 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
References
    
- "Illustrating Super-BASIC on the Sinclair QL". Computing History. Retrieved 2023-02-06.
- Apostolo, Alberto. "Sinclair QL: mistakes, misfortune and so many regrets". RetroMagazineWorld. Retrieved 2023-02-06.
- gopher://sdf.org/0/users/retroburrowers/TemporalRetrology/QL/JG
- Berry, Stephen (1984). QL User Guide (2nd ed.). Cambridge: Sinclair Research Ltd.
- "Motorola 68000", Wikipedia, 2023-01-11, retrieved 2023-02-06
External links
    
- The Quantum Leap - to where?: a chapter from Sinclair and the 'Sunrise' Technology