Simons' BASIC
   HOME

TheInfoList



OR:

Simons' BASIC is an
extension Extension, extend or extended may refer to: Mathematics Logic or set theory * Axiom of extensionality * Extensible cardinal * Extension (model theory) * Extension (proof theory) * Extension (predicate logic), the set of tuples of values that ...
to BASIC 2.0 for the
Commodore 64 The Commodore 64, also known as the C64, is an 8-bit computing, 8-bit home computer introduced in January 1982 by Commodore International (first shown at the Consumer Electronics Show, January 7–10, 1982, in Las Vegas). It has been listed in ...
home computer. Written by
British British may refer to: Peoples, culture, and language * British people, nationals or natives of the United Kingdom, British Overseas Territories and Crown Dependencies. * British national identity, the characteristics of British people and culture ...
programmer David Simons in 1983, who was 16 years old at the time, it was distributed by
Commodore Commodore may refer to: Ranks * Commodore (rank), a naval rank ** Commodore (Royal Navy), in the United Kingdom ** Commodore (India), in India ** Commodore (United States) ** Commodore (Canada) ** Commodore (Finland) ** Commodore (Germany) or ' ...
as a cartridge. It is widely, but incorrectly, called "Simon's BASIC", because of confusion between the first name "Simon" and the
surname In many societies, a surname, family name, or last name is the mostly hereditary portion of one's personal name that indicates one's family. It is typically combined with a given name to form the full name of a person, although several give ...
"Simons".


Features

Simons' BASIC added an array of features to Commodore BASIC 2.0: * 114 additional keywords * commands to ease the coding of sprites * commands to ease the coding of high-resolution and multicolor
graphics Graphics () are visual images or designs on some surface, such as a wall, canvas, screen, paper, or stone, to inform, illustrate, or entertain. In contemporary usage, it includes a pictorial representation of the data, as in design and manufa ...
* commands to ease the coding of
sound In physics, sound is a vibration that propagates as an acoustic wave through a transmission medium such as a gas, liquid or solid. In human physiology and psychology, sound is the ''reception'' of such waves and their ''perception'' by the br ...
* commands to aid in
structured programming Structured programming is a programming paradigm aimed at improving the clarity, quality, and development time of a computer program by making specific disciplined use of the structured control flow constructs of selection ( if/then/else) and repet ...
* keywords to assist in writing and editing BASIC programs, similar to those in the
VIC-20 The VIC-20 (known as the VC-20 in Germany and the VIC-1001 in Japan) is an 8-bit entry level home computer that was sold by Commodore International, Commodore Business Machines. The VIC-20 was announced in 1980, roughly three years after Commod ...
Programmer's Aid cartridge Programs written in Simons' BASIC could employ
hexadecimal Hexadecimal (also known as base-16 or simply hex) is a Numeral system#Positional systems in detail, positional numeral system that represents numbers using a radix (base) of sixteen. Unlike the decimal system representing numbers using ten symbo ...
numbers in assignments and calculations by including a prefix, or
binary Binary may refer to: Science and technology Mathematics * Binary number, a representation of numbers using only two values (0 and 1) for each digit * Binary function, a function that takes two arguments * Binary operation, a mathematical op ...
numbers by utilizing a prefix. Because a portion of the cartridge data is mapped into memory at addresses , which overlaps part of the standard C64 BASIC
RAM Ram, ram, or RAM most commonly refers to: * A male sheep * Random-access memory, computer memory * Ram Trucks, US, since 2009 ** List of vehicles named Dodge Ram, trucks and vans ** Ram Pickup, produced by Ram Trucks Ram, ram, or RAM may also ref ...
, the amount of available memory for BASIC programs was less than that of a standard C64 configuration. An extension was written by Simons and released by Commodore on
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, a diskette, or a disk) is a type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined with a ...
and tape as Simons' Basic Extension. This software is also known as Simons' Basic 2. It could not be released on cartridge because the original Simons' Basic cartridge had to be present in order to use the extension. Simons' Basic Extension adds another 91 commands including the much-coveted command which renumbers the destinations of and statements.Simons' Basic 2 User Manual (published by Commodore)


The 114 keywords


Sprite (MOB) handling keywords

* MOB SET – enables a sprite and defines its attributes * MMOB – positions a sprite on the screen * RLOCMOB – causes a sprite to smoothly move from one location to another * CMOB – sets up the two global colors for multicolor sprites * MOB OFF – disables a sprite * DETECT – initializes sprite collision detection * CHECK – checks for a sprite collision


High resolution graphics handling keywords

* HIRES – initializes a high-resolution graphics mode * MULTI – initializes a multicolor graphics mode * NRM – returns to the text display * LOW COL – changes the plotting colors * HI COL – returns to the original plotting colors * PLOT – draws a pixel * LINE – draws a line * CIRCLE – draws a circle * ARC – draws an arc * ANGL – draws the radius of a circle * PAINT – performs a flood fill * REC – draws a hollow rectangle * BLOCK – draws a solid rectangle * DRAW – draws a user-defined set of lines * ROT – sets scaling factors for DRAW * CHAR – plots a text character on a high-resolution screen * TEXT – plots a text string on a high-resolution screen * TEST – determines whether a pixel is plotted or empty


Other graphics handling keywords

* COLOUR – sets the background and border colors; the British spelling is used * CSET – selects a character set * MEM – copies character ROM to RAM * BCKGNDS – configures extended background color mode * FLASH – sets up a screen color to flash * OFF – cancels a previous FLASH directive * BFLASH – causes the screen border to flash * FCHR – fills an area of the text screen with a given character code * FCOL – changes character colors for a selected area of the screen * FILL – a combination of FCHR and FCOL * MOVE – copies a section of the screen * INV – displays a screen area in reverse * LEFT – scrolls the screen left * RIGHT – scrolls the screen right * UP – scrolls the screen up * DOWN – scrolls the screen down * GRAPHICS – reserved variable that always equals $D000 (the
VIC-II The VIC-II (Video Interface Chip II), specifically known as the MOS Technology 6567/6566/8562/8564 (NTSC versions), 6569/8565/8566 (PAL), is the microchip tasked with generating Y/C video signals (combined to composite video in the RF modulator) ...
chip's base address) * SCRSV – saves a text screen to tape or disk * SCRLD – loads a text screen from tape or disk


Sound handling keywords

* MUSIC – plays a series of notes based on the contents of a string variable * PLAY – determines whether the program continues to run during MUSIC * VOL – specifies the master sound volume * WAVE – specifies a voice type * ENVELOPE – sets ADSR parameters for a SID voice * SOUND – reserved variable that always equals $D400 (the SID chip's base address)


Keyboard input handling keywords

* FETCH – takes user input with restrictions defined by the command * INKEY – checks for a function key press * ON KEY – checks for a given keypress, then performs a branch if present * DISABLE – disables the previous ON KEY directive * RESUME – reenables the previous ON KEY directive


Input peripheral handling keywords

* JOY – reads a
joystick A joystick, sometimes called a flight stick, is an input device consisting of a stick that pivots on a base and reports its angle or direction to the device it is controlling. Also known as the control column, it is the principal control devic ...
* POT – reads a
paddle A paddle is a handheld tool with an elongated handle and a flat, widened end (the ''blade'') used as a lever to apply force onto the bladed end. It most commonly describes a completely handheld tool used to propel a human-powered watercraft by p ...
* PENX – reads the
light pen A light pen is a computer input device in the form of a light-sensitive wand used in conjunction with a computer's cathode-ray tube (CRT) display. It allows the user to point to displayed objects or draw on the screen in a similar way to a to ...
's horizontal position * PENY – reads the light pen's vertical position


Sprite/custom character definition keywords

* @ – describes one line in a sprite or custom character graphic * DESIGN – uses neighbouring @ lines to define a sprite or custom character


Error trapping keywords

* ON ERROR – sets up a routine to trap error conditions * OUT – ends an error handling routine * NO ERROR – cancels ON ERROR and restores normal BASIC error handling


Disk handling keywords

* DIR – displays the disk directory without destroying the BASIC program in memory (Drive #8 only) * DISK – sends a string to the disk drive's command channel (Drive #8 only)


Printer handling keywords

* HRDCPY – sends the text screen to the
printer Printer may refer to: Technology * Printer (publishing), a person * Printer (computing), a hardware device * Optical printer for motion picture films People * Nariman Printer (fl. c. 1940), Indian journalist and activist * James Printer (1640 ...
* COPY – sends the high-resolution screen to the printer


String manipulation keywords

* INSERT – inserts one string into the middle of another (Note: There is no dollar sign after INSERT, unlike other string operators such as STR$, LEFT$, RIGHT$, etc.) * INST – similar to INSERT, but overwrites rather than inserting. (Note: As with INSERT, there is no dollar sign after INST.) * PLACE – searches for one string in the middle of another * DUP – duplicates a character string a given number of times. (Note: As with INSERT, there is no dollar sign after DUP.)


Text formatting keywords

* PRINT AT – prints a string at a given screen location * CENTRE – centers a character string on the screen; the British spelling is used * USE – formats numeric data in strings based on a template, just like PRINT USING on other advanced versions of BASIC on other computers, e.g. the
Commodore 128 The Commodore 128, also known as the C128, is the last 8-bit home computer that was commercially released by Commodore Business Machines (CBM). Introduced in January 1985 at the CES in Las Vegas, it appeared three years after its predecessor, t ...
, for example. * LIN – returns the vertical position of the cursor


Maths keywords

Note: These operations are restricted to values that fit into a 16-bit unsigned integer, instead of the full floating-point range used by the built-in BASIC arithmetic operations and functions. * MOD – performs a division operation and returns the remainder * DIV – performs a division operation and returns the integer quotient * FRAC – isolates the fractional portion of a number * EXOR – performs an exclusive-OR logical operation


Programmer's aid keywords

* AUTO – automatically generates line numbers as a BASIC program is entered * RENUMBER – renumbers a BASIC program (but does not fix GOTO/
GOSUB Basic or BASIC may refer to: Science and technology * BASIC, a computer programming language * Basic (chemistry), having the properties of a base * Basic access authentication, in HTTP Entertainment * Basic (film), ''Basic'' (film), a 2003 film ...
statements.) * OLD – undeletes a program accidentally removed by the NEW command * KEY – assigns a string as a macro to a
function key A function key is a key on a computer or computer terminal, terminal computer keyboard, keyboard that can be programmed to cause the operating system or an application program to perform certain actions, a form of soft key. On some keyboards/com ...
* DISPLAY – displays all function key macros * MERGE – merges a BASIC program from tape or disk into the program currently in memory * PAGE – displays a BASIC program listing in page format * OPTION – highlights ''Simons' BASIC'' keywords when using the LIST command * DELAY – varies the rate at which the LIST command scrolls the screen * FIND – searches the program for a string * TRACE – displays the line numbers as a program is running * RETRACE – displays results of a trace * DUMP – displays all variable values except for arrays * COLD – resets the C64


Security-related keywords

* DISAPA – marks a BASIC program line for hiding * SECURE – hides all lines marked with DISAPA so that they cannot be viewed with LIST


Structured programming keywords

* ELSE – allows an alternative branch for IF/THEN conditionals * REPEAT – start of a REPEAT/UNTIL loop structure * UNTIL – defines the loop condition for a REPEAT/UNTIL loop structure, and marks its end * RCOMP – reinstates the most recently used IF/THEN/ELSE conditional * LOOP – defines the start of a loop that will run until an EXIT IF conditional is true * EXIT IF – the conditional is true, so it exits the current LOOP/END LOOP structure * END LOOP – defines the end of a loop that will run until an EXIT IF conditional is true * PROC – defines the start of a named subroutine * END PROC – defines the end of a named subroutine * CALL – jump to a named subroutine defined with PROC/END PROC, and stay there * EXEC – call a named subroutine defined with PROC/END PROC, then return * LOCAL – redefines variables for use in structures * GLOBAL – reverses the effects of a previous LOCAL command


Miscellaneous keywords

* CGOTO – equivalent to GOTO, but accepts calculated expressions * RESET – moves the DATA pointer to a given line number * PAUSE – pauses program execution for a specified number of seconds


Other

* $ and % are also considered keywords, for a total of 114.


Trivia

The band
Barcelona Barcelona ( ; ; ) is a city on the northeastern coast of Spain. It is the capital and largest city of the autonomous community of Catalonia, as well as the second-most populous municipality of Spain. With a population of 1.6 million within c ...
titled their 1999 debut album ''Simon Basic'' in tribute. The album includes the song "C-64".


Reception

''
Creative Computing ''Creative Computing'' was one of the earliest magazines covering the microcomputer revolution. Published from October 1974 until December 1985, the magazine covered the spectrum of hobbyist/home/personal computing in a more accessible format t ...
'' stated that Simons' BASIC "almost makes the 64 into a new computer. (Probably the one it should have been in the first place.)" It praised the "very fine manual" as a contrast to Commodore's usually poor documentation, and predicted that it would become "the standard language for programming the machine … Commodore had better be planning to manufacture lots of copies because they will go fast". ''
Ahoy! ''Ahoy!'' was a computer magazine published between January 1984 and January 1989 in the US, covering on all Commodore color computers, primarily Commodore 64 and Amiga. History The first issue of ''Ahoy!'' was published in January 1984. The ...
'' wrote "If you do any programming in BASIC and should happen to see this product on a dealer's shelf, do not ask any questions—do not hesitate—just buy it!" The magazine praised Simons' BASIC's power and "excellent manual", and stated that "its price makes it one of the biggest bargains available for the Commodore 64". '' RUN''s review was less favorable, stating that its "many powerful and useful commands … were, unfortunately, implemented very poorly for a commercial package. There is very little command parameter checking, and many things have been overlooked or ignored." The original SIMONS' BASIC cartridge (without the extension) has no provisions for reading the error channel on the
Commodore 1541 The Commodore 1541 (also known as the CBM 1541 and VIC-1541) is a floppy disk drive which was made by Commodore International for the Commodore 64 (C64), Commodore's most popular home computer. The best-known floppy disk drive for the C64, the ...
and Commodore 1571 disk drives, nor can it perform a DIRectory listing of files or issue a DISK command on any disk drive other than Drive #8 when more than one disk drive is connected to the Commodore 64. And while most "standard" BASIC 2.0 keywords can be abbreviated by typing the first or first and second letters and then holding down the SHIFT key while typing the second (or third) letter after that, all SIMONS' BASIC keywords must be completely spelled out in full exactly as shown in the accompanying user's manual. This includes the commands COLOUR (which selects the background color and exterior border color), and CENTRE (which prints text message that are "centered" on the screen), both of which are spelled as in British English and are incorporated that way into SIMONS' BASIC.


References


External links


Simons' Basic User Guide
on Internet Archive by David Simons, Commodore Computers, 1983. Downloadable as PDF.

by David Simons, Commodore Editor, 1983.
Lemon64 Forum topic
with some informal information from David Simons himself. {{BASIC 1983 software Commodore 64 software BASIC extensions CBM software