SuperBASIC is an advanced variant of the
BASIC programming language
BASIC (Beginners' All-purpose Symbolic Instruction Code) is a family of General-purpose programming language, general-purpose, high-level programming languages designed for ease of use. Dartmouth BASIC, The original version was created by John ...
with many
structured programming
Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making extensive use of the structured control flow constructs of selection ( if/then/else) and repetition ( ...
additions. It was developed at
Sinclair Research
Sinclair Research Ltd is a British consumer electronics company founded by Clive Sinclair in Cambridge. It was originally incorporated in 1973 as Westminster Mail Order Ltd, renamed Sinclair Instrument Ltd, then Science of Cambridge Ltd, the ...
by
Jan Jones during the early 1980s. Originally SuperBASIC was intended as the
BASIC interpreter
A BASIC interpreter is an interpreter that enables users to enter and run programs in the BASIC language and was, for the first part of the microcomputer era, the default application that computers would launch. Users were expected to use the BAS ...
for a
home computer code-named ''SuperSpectrum'', then under development. This project was later cancelled; however, SuperBASIC was subsequently included in the
ROM
Rom, or ROM may refer to:
Biomechanics and medicine
* Risk of mortality, a medical classification to estimate the likelihood of death for a patient
* Rupture of membranes, a term used during pregnancy to describe a rupture of the amniotic sac
* ...
firmware
In computing, firmware is a specific class of computer software that provides the low-level control for a device's specific hardware. Firmware, such as the BIOS of a personal computer, may contain basic functions of a device, and may provide h ...
of the
Sinclair QL
The Sinclair QL (for ''Quantum Leap'') is a personal computer launched by Sinclair Research in 1984, as an upper-end counterpart to the ZX Spectrum. The QL was aimed at the serious home user and professional and executive users markets from small ...
microcomputer
A microcomputer is a small, relatively inexpensive computer having a central processing unit (CPU) made out of a microprocessor. The computer also includes memory and input/output (I/O) circuitry together mounted on a printed circuit board (PC ...
(announced in January 1984), also serving as the
command line interpreter
A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
for the QL's
QDOS operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
. It was one of the first
second-generation BASICs to be integrated into a microcomputer's operating system (unlike
BBC BASIC
BBC BASIC is a version of the BASIC programming language released in 1981 as the native programming language for the BBC Micro home/personal computer, providing a standardized language for a UK computer literacy project of the BBC. It was wr ...
which preceded it in 1981), making the OS user-extendable—as done by
Linus Torvalds
Linus Benedict Torvalds ( , ; born 28 December 1969) is a Finnish software engineer who is the creator and, historically, the lead developer of the Linux kernel, used by Linux distributions and other operating systems such as Android. He also c ...
in his formative years.
Advanced features
* RESPR for resident
procedures
Procedure may refer to:
* Medical procedure
* Instructions or recipes, a set of commands that show how to achieve some result, such as to prepare or make something
* Procedure (business), specifying parts of a business process
* Standard opera ...
, 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
*
data type coercion between
numeric and
string variables
* actual parameters passing data type to formal parameters
*
array
An array is a systematic arrangement of similar objects, usually in rows and columns.
Things called an array include:
{{TOC right
Music
* In twelve-tone and serial composition, the presentation of simultaneous twelve-tone sets such that the ...
operations: slicing, joining etc.
*
LOCal
arrays & (string) variables
*
AUTOmatic
line 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 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."
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[ Motorola 68000#Example code]
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
Bibliography
* Donald Alcock: ''Illustrating Superbasic on the Sinclair QL.'' Cambridge University Press, 1985.
* Roy Atherton: ''Good Programming with QL Superbasic.'' Longman Software, 1984.
* A. A. Berk: ''QL SuperBasic''. Granada Publishing, 1984.
*
*
Jan Jones: ''QL SuperBasic: The Definitive Handbook''. McGraw-Hill, 1984 (
e-book
An ebook (short for electronic book), also known as an e-book or eBook, is a book publication made available in digital form, consisting of text, images, or both, readable on the flat-panel display of computers or other electronic devices. Alt ...
reissue 2014)
* Dick Meadows, Robin Bradbeer, Nigel Searle: ''Introduction to Superbasic on the Sinclair QL.'' Hutchinson Computer Publishing, 1984.
* Dick Meadows, Robin Bradbeer, Nigel Searle: ''Making the Most of the Sinclair QL: QL Superbasic and Its Applications.'' Hutchinson Computer Publishing, 1985.
* Andrew Nelson: ''Exploring the Sinclair QL: An Introduction to SuperBasic.'' Interface Publications, 1984.
* John K. Wilson: ''QL Superbasic: A Programmer's Guide.'' Micro Press, 1984.
References
External links
''The Quantum Leap - to where?'' a chapter from ''Sinclair and the 'Sunrise' Technology''
{{BASIC
BASIC interpreters
Discontinued BASICs
Sinclair Research
Programming languages created by women
BASIC programming language family