fbpx
Wikipedia

Simons' BASIC

Simons' BASIC is an extension to BASIC 2.0 for the Commodore 64 home computer. Written by British programmer David Simons in 1983, who was 16 years old at the time, it was distributed by Commodore as a cartridge.

Simons' BASIC
BASIC program memory is reduced by the 8 KB used by the cartridge.
Original author(s)David Simons
Developer(s)Commodore
Initial release1983; 40 years ago (1983)
Operating systemCommodore 64
TypeExtension

It is widely, but incorrectly, called "Simon's BASIC", because of confusion between the first name "Simon" and the surname "Simons".

Manual front page
Simons' BASIC cartridge
Cartridge with the misspelled label contributing to the software's naming confusion.

Features edit

Simons' BASIC added an array of features to Commodore BASIC 2.0:[1]

  • 114 additional keywords
  • commands to ease the coding of sprites
  • commands to ease the coding of high-resolution and multicolor graphics
  • commands to ease the coding of sound
  • commands 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

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 is mapped into memory at addresses $8000–$9FFF, which overlaps 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.

An extension was written by Simons and released by Commodore on floppy disk 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 RENUMber command which renumbers the destinations of GOTO and GOSUB statements.[2]

The 114 keywords edit

Sprite (MOB) handling keywords edit

  • 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 edit

  • 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 edit

  • 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 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 edit

  • 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 edit

  • 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 edit

Sprite/custom character definition keywords edit

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

Error trapping keywords edit

  • 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 edit

  • 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 edit

  • HRDCPY – sends the text screen to the printer
  • COPY – sends the high-resolution screen to the printer

String manipulation keywords edit

  • 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 edit

  • 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, for example.
  • LIN – returns the vertical position of the cursor

Maths keywords edit

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 edit

  • 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 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 edit

  • 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 edit

  • 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 edit

  • 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 edit

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

Trivia edit

The band Barcelona titled their 1999 debut album Simon Basic in tribute. The album includes the song "C-64".

Reception edit

Creative Computing 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".[3] Ahoy! 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".[4] 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."[5]

The original SIMONS' BASIC cartridge (without the extension) has no provisions for reading the error channel on the Commodore 1541 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 edit

  1. ^ Simons' Basic User Manual (published by Commodore)
  2. ^ Simons' Basic 2 User Manual (published by Commodore)
  3. ^ Onosko, Tim (November 1983). "Simons' Basic". Creative Computing. p. 60. Retrieved 27 June 2014.
  4. ^ Kevelson, Morton A. (February 1984). "Simons' BASIC". Ahoy!. pp. 57–58. Retrieved 27 June 2014.
  5. ^ Baker, Robert W. (April 1985). "A Review of Simons' Basic". RUN. pp. 94–95. Retrieved 27 June 2014.

External links edit

  • Simons' Basic User Guide on Internet Archive by David Simons, Commodore Computers, 1983. Downloadable as PDF.
  • Simons' Basic Italian Reference Guide by David Simons, Commodore Editor, 1983.
  • Lemon64 Forum topic with some informal information from David Simons himself.

simons, basic, extension, basic, commodore, home, computer, written, british, programmer, david, simons, 1983, years, time, distributed, commodore, cartridge, basic, program, memory, reduced, used, cartridge, original, author, david, simonsdeveloper, commodore. Simons BASIC is an extension to BASIC 2 0 for the Commodore 64 home computer Written by British programmer David Simons in 1983 who was 16 years old at the time it was distributed by Commodore as a cartridge Simons BASICBASIC program memory is reduced by the 8 KB used by the cartridge Original author s David SimonsDeveloper s CommodoreInitial release1983 40 years ago 1983 Operating systemCommodore 64TypeExtensionIt is widely but incorrectly called Simon s BASIC because of confusion between the first name Simon and the surname Simons Manual front pageSimons BASIC cartridgeCartridge with the misspelled label contributing to the software s naming confusion Contents 1 Features 2 The 114 keywords 2 1 Sprite MOB handling keywords 2 2 High resolution graphics handling keywords 2 3 Other graphics handling keywords 2 4 Sound handling keywords 2 5 Keyboard input handling keywords 2 6 Input peripheral handling keywords 2 7 Sprite custom character definition keywords 2 8 Error trapping keywords 2 9 Disk handling keywords 2 10 Printer handling keywords 2 11 String manipulation keywords 2 12 Text formatting keywords 2 13 Maths keywords 2 14 Programmer s aid keywords 2 15 Security related keywords 2 16 Structured programming keywords 2 17 Miscellaneous keywords 2 18 Other 2 19 Trivia 3 Reception 4 References 5 External linksFeatures editSimons BASIC added an array of features to Commodore BASIC 2 0 1 114 additional keywords commands to ease the coding of sprites commands to ease the coding of high resolution and multicolor graphics commands to ease the coding of sound commands to aid in structured programming keywords to assist in writing and editing BASIC programs similar to those in the VIC 20 Programmer s Aid cartridgePrograms 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 is mapped into memory at addresses 8000 9FFF which overlaps 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 An extension was written by Simons and released by Commodore on floppy disk 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 RENUMber command which renumbers the destinations of GOTO and GOSUB statements 2 The 114 keywords editSprite MOB handling keywords edit 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 collisionHigh resolution graphics handling keywords edit 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 emptyOther graphics handling keywords edit 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 chip s base address SCRSV saves a text screen to tape or disk SCRLD loads a text screen from tape or diskSound handling keywords edit 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 edit 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 directiveInput peripheral handling keywords edit JOY reads a joystick POT reads a paddle PENX reads the light pen s horizontal position PENY reads the light pen s vertical positionSprite custom character definition keywords edit describes one line in a sprite or custom character graphic DESIGN uses neighbouring lines to define a sprite or custom characterError trapping keywords edit 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 handlingDisk handling keywords edit 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 edit HRDCPY sends the text screen to the printer COPY sends the high resolution screen to the printerString manipulation keywords edit 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 edit 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 for example LIN returns the vertical position of the cursorMaths keywords edit 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 operationProgrammer s aid keywords edit 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 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 C64Security related keywords edit DISAPA marks a BASIC program line for hiding SECURE hides all lines marked with DISAPA so that they cannot be viewed with LISTStructured programming keywords edit 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 commandMiscellaneous keywords edit 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 secondsOther edit and are also considered keywords for a total of 114 Trivia edit The band Barcelona titled their 1999 debut album Simon Basic in tribute The album includes the song C 64 Reception editCreative Computing 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 3 Ahoy 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 4 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 5 The original SIMONS BASIC cartridge without the extension has no provisions for reading the error channel on the Commodore 1541 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 edit Simons Basic User Manual published by Commodore Simons Basic 2 User Manual published by Commodore Onosko Tim November 1983 Simons Basic Creative Computing p 60 Retrieved 27 June 2014 Kevelson Morton A February 1984 Simons BASIC Ahoy pp 57 58 Retrieved 27 June 2014 Baker Robert W April 1985 A Review of Simons Basic RUN pp 94 95 Retrieved 27 June 2014 External links editSimons Basic User Guide on Internet Archive by David Simons Commodore Computers 1983 Downloadable as PDF Simons Basic Italian Reference Guide by David Simons Commodore Editor 1983 Lemon64 Forum topic with some informal information from David Simons himself Retrieved from https en wikipedia org w index php title Simons 27 BASIC amp oldid 1168100558, wikipedia, wiki, book, books, library,

article

, read, download, free, free download, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, picture, music, song, movie, book, game, games.