BASIC extension: Difference between revisions

Content deleted Content added
Created sections
Citation bot (talk | contribs)
Altered url. URLs might have been anonymized. | Use this bot. Report bugs. | Suggested by Jay8g | Linked from User:Jay8g/sandbox | #UCB_webform_linked 32/291
 
(30 intermediate revisions by 23 users not shown)
Line 1:
'''BASIC toolkits''' (aka '''BASIC extensions''') - not to be confused with [[toolkit|widget toolkits]] - were a common type of program for 1980s 8-bit [[home computer]]s. Generally third-party extensions, they added additional features to thea computer's built-in [[BASIC programming language|BASIC]] [[interpreter (computing)|interpreter]].
 
==Technical concept==
Toolkits ran as [[terminate and stay resident]] extensions to the BASIC interpreter supplied with the machine. At the time, such interpreters almost always came programmed into the [[Readread-only Only Memorymemory|ROM]] of the computer, making it impossible to modify or [[Patch (computing)|patch]] the [[computermachine code|code]]. It was also extremely rare for manufacturers to offer upgrades or bugfixes except as part of new models of machine.
 
As the original language was held in immutable [[read-only memory|ROM]], it generally was difficult for a toolkit to directly extend the language, except by adding new keywords to perform functions not implemented by the original interpreter.
== Functionality ==
Typical toolkit functionality included editing extensions, such as commands to renumber a program, perform block line deletions and so on, and additional keywords to perform new functions.
 
== Functionality ==
As the original language was held in immutable ROM, it generally was difficult for a toolkit to directly extend the language, except by adding new keywords to perform functions not implemented by the original interpreter.
Typical toolkit functionality included editing extensions, such as commands to renumber a program, perform block line deletions and so on, facilities to make [[structured programming]] possible, and additional keywords to perform new functions. In the case of the latter, these new functions often allowed the programmer to easily access the computer's [[computer graphics|graphics]], [[sound effects|sound]] and other hardware which was often partially or completely unsupported in the early BASICs. This would have otherwise been achieved by arcane usage of ''[[PEEK and POKE]]'' commands and [[machine language]] [[Subroutine|routines]].
 
== Examples ==
*[[Beta BASIC]]<ref>{{Cite web |title=Andy Wright {{!}} World of SAM |url=https://www.worldofsam.org/people/andy-wright |access-date=2025-05-09 |website=www.worldofsam.org}}</ref> ([[ZX Spectrum]]) &ndash; Extension to [[Sinclair BASIC]]; started out as a simple toolkit but grew into a full interpreter
The [[*Lightning BASIC]] toolkit extended the ([[Amstrad PCW]]'s) &ndash; Extension to [[Mallard BASIC]] language with many new facilities - (see the Mallard BASIC article for details.)
 
*[[Simons' BASIC]]<ref>{{Cite book |last=Dillon |first=Roberto |url=https://books.google.com/books?id=ecuoBQAAQBAJ&dq=Simons%27+BASIC+Commodore+64&pg=PA26 |title=Ready: A Commodore 64 Retrospective |date=2014-12-03 |publisher=Springer |isbn=978-981-287-341-5 |pages=26 |language=en}}</ref> ([[Commodore 64]]) &ndash; Extension to [[Commodore BASIC|BASIC 2.0]] with 114 extra commands; programmed by a 16-year-old boy and marketed by CBM
The [[Beta BASIC]] extension to [[Sinclair BASIC]] on the [[ZX Spectrum]] computer started out as a simple toolkit but grew into an interpreter in its own right.
*[[Super Expander]] ([[VIC-20]]) &ndash; A combined [[random-access memory|RAM]]-expansion (3 [[kibibyte]]s) and BASIC extension [[ROM cartridge|cartridge]]
 
The [[Super Expander]] was a [[cartridge (electronics)|cartridge]] for the [[Commodore VIC-20]]. It was designed to provide several extensions to the BASIC interpreter on the computer, mostly to help with programming [[computer graphics|graphics]] and [[sound effects|sound]].
 
==See also==
*[[List of BASIC dialects#BASIC extensions]]
* [[List of computers with on-board BASIC]]
 
==References==
{{reflist}}
 
{{BASIC}}
 
{{DEFAULTSORT:Basic Extension}}
[[Category:BASIC extensions|* ]]
[[category:Programming]]
[[Category:BASIC programming language]]