Simons' BASIC

Simons' BASIC

:"This product is widely, but incorrectly, called "Simon's BASIC", because of confusion between the first name "Simon" and the surname "Simons".Simons' BASIC was an extension to BASIC 2.0 for the Commodore 64 home computer. Written by 16-year-old British programmer David Simons in 1983, it was distributed by Commodore in cartridge format.

Features

114 additional keywords were added to BASIC 2.0 by Simons' BASIC. These included commands to ease the coding of sprites, high-resolution and multicolour graphics, and sound. In addition, commands were also implemented to aid in structured programming. Keywords to assist in writing and editing BASIC programs, similar to those in the VIC-20 Programmer's Aid cartridge, were also included. Also, programs written in Simons' BASIC could employ hexadecimal numbers in assignments and calculations by including a $ prefix, or binary numbers by utilizing a % prefix.

Because a portion of the cartridge data was mapped into memory at addresses $8000–$9FFF, which overlapped part of the standard C64 BASIC RAM, the amount of available memory for BASIC programs was 8 KB less than that of a standard C64 configuration.

The 114 keywords

prite (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 colours for multicolour 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 multicolour graphics mode
*NRM - returns to the text display
*LOW COL - changes the plotting colours
*HI COL - returns to the original plotting colours
*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 colours
*CSET - selects a character set
*MEM - copies character ROM to RAM
*BCKGNDS - configures extended background colour mode
*FLASH - sets up a screen colour 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 colours 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 chip's base address)

ound 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
*POT - reads a paddle
*PENX - reads the light pen's horizontal position
*PENY - reads the light pen's vertical position

prite/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
*DISK - sends a string to the disk drive's command channel
*SCRSV - saves a text screen to disk
*SCRLD - loads a text screen from disk

Printer handling keywords

*HRDCPY - sends the text screen to the printer
*COPY - sends the high-resolution screen to the printer

tring manipulation keywords

*INSERT - inserts one string into the middle of another
*INST - similar to INSERT, but overwrites rather than inserting
*PLACE - searches for one string in the middle of another
*DUP - duplicates a character string a given number of times

Text formatting keywords

*AT - prints a string at a given screen location
*CENTER - centers a character string on the screen
*USE - formats numeric data in strings based on a template
*LIN - returns the vertical position of the cursor

Math keywords

*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 statements)
*OLD - undeletes a program accidentally removed by the NEW command
*KEY - assigns a string as a macro to a function key
*DISPLAY - displays all function key macros
*MERGE - merges a BASIC program from 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

ecurity-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

tructured 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 - recapitulates the last IF/THEN conditional
*LOOP - defines the start of a loop that will run until an EXIT IF conditional is true
*EXIT IF - if conditional is true, 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 titled their 1999 debut album "Simon Basic" in tribute. The album includes the song "C-64".

External links

* [http://www.atarimagazines.com/creative/v9n11/60_Simons_Basic.php Simons' Basic (evaluation)] – By Tim Onosko, "Creative Computing" Vol.9 No.11, Nov 1983, p.60
* [http://retrocomputing.altervista.org/scansioni/scansioni.html Simons' Basic Italian Reference Guide] by David Simons, Commodore Editor, 1983.


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать реферат

Look at other dictionaries:

  • Simons' Basic — Simons’ BASIC Modul Simons’ BASIC war eine Erweiterung des Commodore BASIC 2.0 Befehlsatzes für den Commodore 64 Homecomputer. Die Erweiterung wurde 1983 von dem damals 16 jährigen britischen Programmierer David Simons geschrieben und von der… …   Deutsch Wikipedia

  • Simons Basic — Simons’ BASIC Modul Simons’ BASIC war eine Erweiterung des Commodore BASIC 2.0 Befehlsatzes für den Commodore 64 Homecomputer. Die Erweiterung wurde 1983 von dem damals 16 jährigen britischen Programmierer David Simons geschrieben und von der… …   Deutsch Wikipedia

  • Simons’ Basic — Modul Simons’ BASIC ist eine Erweiterung des Commodore BASIC 2.0 Befehlsatzes für den Commodore 64 Homecomputer. Die Erweiterung wurde 1983 von dem damals 16 jährigen britischen Programmierer David Simons geschrieben und von der Firma Commodore… …   Deutsch Wikipedia

  • Simons' Basic — El cartucho Simons Basic comercializado por Commodore El Simons Basic[1] es una extensión del Commodore Basic 2.0 para el Commodore 64. Escrito en 1983 por un joven programador inglés de 16 años, David Simons, fue comercializado por Commodor …   Wikipedia Español

  • Simons' BASIC — La cartouche d extension Simon s Basic commercialisée par Commodore Le Simons BASIC est une extension du BASIC V2 de Commodore utilisé par le Commodore 64. Écrit en 1983 par un jeune programmeur anglais de 16 ans, David Simons, il a été… …   Wikipédia en Français

  • BASIC — Información general Paradigma estructurado imperativo Apareció en 1964 Diseñado por John George Kemeny; Thomas Eugene Kurtz …   Wikipedia Español

  • BASIC 8 — (or BASIC 8.0) mdash; The Enhanced Graphics System For The C128 mdash; developed by Walrusoft of Gainesville, Florida and published in 1986 by Patech Software of Somerset, New Jersey, USA, was an extension of Commodore s BASIC 7.0 for the C128… …   Wikipedia

  • BASIC extension — BASIC toolkits (aka BASIC extensions) mdash;not to be confused with widget toolkits mdash;were a common type of program for 1980s 8 bit home computers. Generally third party extensions, they added additional features to a computer s built in… …   Wikipedia

  • Simon's Basic — Simons’ BASIC Modul Simons’ BASIC war eine Erweiterung des Commodore BASIC 2.0 Befehlsatzes für den Commodore 64 Homecomputer. Die Erweiterung wurde 1983 von dem damals 16 jährigen britischen Programmierer David Simons geschrieben und von der… …   Deutsch Wikipedia

  • Simon's BASIC — Simons BASIC La cartouche d extension Simon s Basic commercialisée par Commodore Le Simons BASIC est une extension du BASIC V2 de Commodore utilisé par le Commodore 64. Écrit en 1983 par un jeune programmeur anglais de 16 ans, David Simons, il a… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”