The Commodore 64 had a sound chip, eight hardware sprites and a 320×200 bitmap screen, and its BASIC had no commands for any of them. Drawing a line or moving a sprite meant working out register addresses and POKEing numbers into them. Simons’ BASIC filled the gap with 114 new commands, and it was written by a schoolboy.
David Simons, from Welwyn Garden City in Hertfordshire, had shown Commodore an extended BASIC he had written for the VIC-20. Commodore gave him a prototype 64 and asked for the same again. The result went on sale in 1983 as a Commodore cartridge. It made the 64’s graphics and sound reachable from BASIC, and it earned a reputation for bugs.
Fast facts
- Author: David Simons, aged about 16 when he finished it.
- Publisher: Commodore, 1983.
- Format: 16K cartridge; Commodore’s American magazine reviewed a version loaded from disk.
- Commands: 114.
- Price: about £45–50 in the UK in 1983–84; $29.95 in the US.
- Memory: 30,719 bytes free for BASIC programs, against the standard 38,911.
A teenager’s BASIC
Simons told the story himself to Commodore Power Play in the summer of 1984, when he was 18. He began in 1979 on “a Commodore PET that my father borrowed from his company”. By 1981 he had written an extended BASIC for the VIC-20, “which I demonstrated for Commodore at the London Commodore Show”. Commodore “gave me a prototype and asked me to write an extended BASIC for it”. The VIC-20 version was never released.
He wrote the machine code; Commodore designed the cartridge and its own technical writers produced the manual. He set up his own company, D. S. Software Limited, at 16, and was paid about five per cent of the warehouse price, “about 1.50 per unit” in the UK. Period reports agreed on his age: the American author Tim Onosko described Simons’ BASIC in 1983 as “created by a sixteen-year-old British programmer”, and the New Zealand magazine Bits & Bytes as the work of “a 16 year old English schoolboy”.
What it added
Ahoy! printed the full list of 114 commands in February 1984. They cover almost everything BASIC 2.0 left out:
| Area | Some of the commands |
|---|---|
| High-resolution graphics | HIRES, MULTI, PLOT, LINE, REC, CIRCLE, ARC, DRAW, PAINT, BLOCK, TEXT, CSET, NRM |
| Sprites | DESIGN and @ to define a sprite; MOB SET to set it up; MMOB and RLOCMOB to move it; DETECT and CHECK for collisions; MOB OFF |
| Sound | VOL, WAVE, ENVELOPE, MUSIC, PLAY |
| Structure | IF...THEN...ELSE, REPEAT...UNTIL, LOOP...EXIT IF...END LOOP, PROC, END PROC, CALL, EXEC, LOCAL, GLOBAL, ON ERROR |
| Programming aids | AUTO, RENUMBER, FIND, TRACE, RETRACE, DUMP, MERGE, OLD, DISAPA and SECURE to hide lines from listing |
| Screen and input | scrolling in four directions, FILL, FLASH, CENTRE, SCRSV and SCRLD to save and load screens, JOY, POT, PENX and PENY |
The C64 calls its sprites “movable object blocks”, which is why the sprite commands are built around MOB. Jim Gracely’s review for Commodore’s own magazine went through them in order: you design your own sprites “(DESIGN, @, CMOB and MOB SET)”, move them around the screen “(MMOB, RLOCMOB)” and check for collisions “(DETECT, CHECK)”.
The price of 114 commands
The commands cost memory. The cartridge bank-switched itself into 8K of the 64’s BASIC RAM, so, as Ahoy! reported, “the bytes free message is reduced to 30,719 bytes”. Programs written with it also needed it to run. The INPUT partwork, which used Simons’ BASIC for its Commodore graphics listings, warned that “the cartridge has to be fitted if the programs written with it are to RUN at all”.
The first cartridges had faults. In December 1983 Commodore User reported that Commodore admitted problems with “early versions”: BLOCK and REC did not work with LOW COL, the manual needed an errata sheet, and some of its examples were “for the Vic-20 and not the 64!” Commodore’s response was that “these bugs will be corrected in subsequent cartridges”. Readers kept writing in: “The LIST bug in Simon’s Basic is very irritating,” one tip began in February 1984. RENUMBER did not change the line numbers in GOTO and GOSUB statements, which Ahoy! called “something of a nuisance with existing programs”.
Reviewers liked it anyway. Ahoy!‘s advice was blunt: “do not ask any questions—do not hesitate—just buy it!” Gracely found “very few programs that will not run when Simons’ BASIC is in place”, though its MUSIC could play “only one voice” at a time. The American Home Computer Magazine was cooler, finding it “powerful, but fairly difficult to learn”, because none of the parameters could be left out.
Listings and extensions
Simons’ BASIC became common enough that magazines had to say which BASIC a listing was for. INPUT built its early Commodore painting and drawing programs on it, then printed its own machine-code high-resolution routine so readers without the cartridge could follow along. Commodore Horizons marked one of its February 1984 type-ins “REM NOT FOR USE WITH SIMONS BASIC!”
By April 1984 a follow-up was on sale in the UK. Commodore Horizons reported the Simons’ BASIC Extension, loaded from tape or disk alongside the cartridge, at £19.95. Simons told Power Play it added 91 more commands, including a full RENUMBER and better sprite handling; a rival’s advertisement on the same Horizons page put the figure at 86. He said it was not sold in the US.
Simons’ BASIC was not the only way to extend the 64. Commodore’s own Super Expander 64 cartridge, developed at its MOS Technology division, came out in 1983 and took only 8K of memory. Its sprite commands, SPRITE and MOVSPR, are sometimes wrongly credited to Simons’ BASIC. In 1986 Ocean’s IQ label brought Laser BASIC, written by Oasis Software, to the 64 as a games-creation language.
Sources
- Commodore Power Play, vol. 4 no. 2 (issue 14), April/May 1985, pp. 56–58, David R. Brooks and Susan G. Caughlan, “What Next for David Simons?” (interview from August 1984; the authors note that the answers are condensed rather than verbatim): his age, the PET, the VIC-20 extended BASIC and the London Commodore Show, Commodore’s role, D. S. Software, royalties, memory left, and the Extension.
- Commodore: The Microcomputer Magazine, issue 26, September 1983, pp. 40–43, Jim Gracely: 114 commands, the disk version, sprite commands, compatibility, and one voice at a time. Pp. 34–35, Stephen Murri: the Super Expander 64 and its origin at MOS Technology.
- Ahoy! issue 2, February 1984, pp. 57–58 and 94–95: review, $29.95 price, memory use, renumbering, verdict, and the full command list.
- Commodore User, December 1983, pp. 35–38, Mike Todd, “Simons’ Basic vs BC-Basic”: the schoolboy author, the cartridge, and the early bugs. Commodore User, February 1984: the reader’s tip on the LIST bug.
- Commodore Computing International, vol. 2 no. 6, October 1983, and vol. 3 no. 3, September 1984: dealer advertisements at £44.95 and at £50.00, discounted to £41.95.
- Tim Onosko, Commodore 64: Getting the Most From It (Robert J. Brady Co., 1983), p. 190.
- Bits & Bytes (New Zealand), vol. 2 no. 4, December 1983/January 1984.
- INPUT (Marshall Cavendish), issue 3, 1984, p. 87, and issues 24–25: listings in Simons’ BASIC and the cartridge warning.
- Home Computer Magazine (US), vol. 4 no. 1, 1984, p. 152: review.
- Commodore Horizons, February 1984: the “NOT FOR USE WITH SIMONS BASIC” listing. April 1984, p. 8: the Simons’ BASIC Extension at £19.95. February 1986: Laser BASIC for the 64 from Ocean.
- Super Expander 64 manual (Commodore): the
SPRITEandMOVSPRcommands.