CINXE.COM
Commodore BASIC - Wikipedia
<!DOCTYPE html> <html class="client-nojs vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available" lang="en" dir="ltr"> <head> <meta charset="UTF-8"> <title>Commodore BASIC - Wikipedia</title> <script>(function(){var className="client-js vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-sticky-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-feature-night-mode-enabled skin-theme-clientpref-day vector-toc-available";var cookie=document.cookie.match(/(?:^|; )enwikimwclientpreferences=([^;]+)/);if(cookie){cookie[1].split('%2C').forEach(function(pref){className=className.replace(new RegExp('(^| )'+pref.replace(/-clientpref-\w+$|[^\w-]+/g,'')+'-clientpref-\\w+( |$)'),'$1'+pref+'$2');});}document.documentElement.className=className;}());RLCONF={"wgBreakFrames":false,"wgSeparatorTransformTable":["",""],"wgDigitTransformTable":["",""],"wgDefaultDateFormat":"dmy", "wgMonthNames":["","January","February","March","April","May","June","July","August","September","October","November","December"],"wgRequestId":"020f0be3-f1b6-47cc-b13c-8396966d4c80","wgCanonicalNamespace":"","wgCanonicalSpecialPageName":false,"wgNamespaceNumber":0,"wgPageName":"Commodore_BASIC","wgTitle":"Commodore BASIC","wgCurRevisionId":1239873261,"wgRevisionId":1239873261,"wgArticleId":318597,"wgIsArticle":true,"wgIsRedirect":false,"wgAction":"view","wgUserName":null,"wgUserGroups":["*"],"wgCategories":["Webarchive template wayback links","Articles with short description","Short description is different from Wikidata","Articles needing additional references from August 2011","All articles needing additional references","Articles that may contain original research from July 2013","All articles that may contain original research","Articles with multiple maintenance issues","All articles with unsourced statements","Articles with unsourced statements from March 2018", "All articles with specifically marked weasel-worded phrases","Articles with specifically marked weasel-worded phrases from September 2023","CBM software","Commodore 64 software","VIC-20 software","Discontinued Microsoft BASICs","BASIC interpreters","BASIC programming language family","Microsoft programming languages","Programming languages created in 1977"],"wgPageViewLanguage":"en","wgPageContentLanguage":"en","wgPageContentModel":"wikitext","wgRelevantPageName":"Commodore_BASIC","wgRelevantArticleId":318597,"wgIsProbablyEditable":true,"wgRelevantPageIsProbablyEditable":true,"wgRestrictionEdit":[],"wgRestrictionMove":[],"wgNoticeProject":"wikipedia","wgCiteReferencePreviewsActive":false,"wgFlaggedRevsParams":{"tags":{"status":{"levels":1}}},"wgMediaViewerOnClick":true,"wgMediaViewerEnabledByDefault":true,"wgPopupsFlags":0,"wgVisualEditor":{"pageLanguageCode":"en","pageLanguageDir":"ltr","pageVariantFallbacks":"en"},"wgMFDisplayWikibaseDescriptions":{"search":true,"watchlist":true, "tagline":false,"nearby":true},"wgWMESchemaEditAttemptStepOversample":false,"wgWMEPageLength":40000,"wgRelatedArticlesCompat":[],"wgCentralAuthMobileDomain":false,"wgEditSubmitButtonLabelPublish":true,"wgULSPosition":"interlanguage","wgULSisCompactLinksEnabled":false,"wgVector2022LanguageInHeader":true,"wgULSisLanguageSelectorEmpty":false,"wgWikibaseItemId":"Q337272","wgCheckUserClientHintsHeadersJsApi":["brands","architecture","bitness","fullVersionList","mobile","model","platform","platformVersion"],"GEHomepageSuggestedEditsEnableTopics":true,"wgGETopicsMatchModeEnabled":false,"wgGEStructuredTaskRejectionReasonTextInputEnabled":false,"wgGELevelingUpEnabledForUser":false};RLSTATE={"ext.globalCssJs.user.styles":"ready","site.styles":"ready","user.styles":"ready","ext.globalCssJs.user":"ready","user":"ready","user.options":"loading","ext.cite.styles":"ready","ext.pygments":"ready","skins.vector.search.codex.styles":"ready","skins.vector.styles":"ready","skins.vector.icons":"ready", "jquery.makeCollapsible.styles":"ready","ext.wikimediamessages.styles":"ready","ext.visualEditor.desktopArticleTarget.noscript":"ready","ext.uls.interlanguage":"ready","wikibase.client.init":"ready","ext.wikimediaBadges":"ready"};RLPAGEMODULES=["ext.cite.ux-enhancements","ext.pygments.view","mediawiki.page.media","site","mediawiki.page.ready","jquery.makeCollapsible","mediawiki.toc","skins.vector.js","ext.centralNotice.geoIP","ext.centralNotice.startUp","ext.gadget.ReferenceTooltips","ext.gadget.switcher","ext.urlShortener.toolbar","ext.centralauth.centralautologin","mmv.bootstrap","ext.popups","ext.visualEditor.desktopArticleTarget.init","ext.visualEditor.targetLoader","ext.echo.centralauth","ext.eventLogging","ext.wikimediaEvents","ext.navigationTiming","ext.uls.interface","ext.cx.eventlogging.campaigns","ext.cx.uls.quick.actions","wikibase.client.vector-2022","ext.checkUser.clientHints","ext.growthExperiments.SuggestedEditSession","wikibase.sidebar.tracking"];</script> <script>(RLQ=window.RLQ||[]).push(function(){mw.loader.impl(function(){return["user.options@12s5i",function($,jQuery,require,module){mw.user.tokens.set({"patrolToken":"+\\","watchToken":"+\\","csrfToken":"+\\"}); }];});});</script> <link rel="stylesheet" href="/w/load.php?lang=en&modules=ext.cite.styles%7Cext.pygments%2CwikimediaBadges%7Cext.uls.interlanguage%7Cext.visualEditor.desktopArticleTarget.noscript%7Cext.wikimediamessages.styles%7Cjquery.makeCollapsible.styles%7Cskins.vector.icons%2Cstyles%7Cskins.vector.search.codex.styles%7Cwikibase.client.init&only=styles&skin=vector-2022"> <script async="" src="/w/load.php?lang=en&modules=startup&only=scripts&raw=1&skin=vector-2022"></script> <meta name="ResourceLoaderDynamicStyles" content=""> <link rel="stylesheet" href="/w/load.php?lang=en&modules=site.styles&only=styles&skin=vector-2022"> <meta name="generator" content="MediaWiki 1.44.0-wmf.4"> <meta name="referrer" content="origin"> <meta name="referrer" content="origin-when-cross-origin"> <meta name="robots" content="max-image-preview:standard"> <meta name="format-detection" content="telephone=no"> <meta name="viewport" content="width=1120"> <meta property="og:title" content="Commodore BASIC - Wikipedia"> <meta property="og:type" content="website"> <link rel="preconnect" href="//upload.wikimedia.org"> <link rel="alternate" media="only screen and (max-width: 640px)" href="//en.m.wikipedia.org/wiki/Commodore_BASIC"> <link rel="alternate" type="application/x-wiki" title="Edit this page" href="/w/index.php?title=Commodore_BASIC&action=edit"> <link rel="apple-touch-icon" href="/static/apple-touch/wikipedia.png"> <link rel="icon" href="/static/favicon/wikipedia.ico"> <link rel="search" type="application/opensearchdescription+xml" href="/w/rest.php/v1/search" title="Wikipedia (en)"> <link rel="EditURI" type="application/rsd+xml" href="//en.wikipedia.org/w/api.php?action=rsd"> <link rel="canonical" href="https://en.wikipedia.org/wiki/Commodore_BASIC"> <link rel="license" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en"> <link rel="alternate" type="application/atom+xml" title="Wikipedia Atom feed" href="/w/index.php?title=Special:RecentChanges&feed=atom"> <link rel="dns-prefetch" href="//meta.wikimedia.org" /> <link rel="dns-prefetch" href="//login.wikimedia.org"> </head> <body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject mw-editable page-Commodore_BASIC rootpage-Commodore_BASIC skin-vector-2022 action-view"><a class="mw-jump-link" href="#bodyContent">Jump to content</a> <div class="vector-header-container"> <header class="vector-header mw-header"> <div class="vector-header-start"> <nav class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-dropdown" class="vector-dropdown vector-main-menu-dropdown vector-button-flush-left vector-button-flush-right" > <input type="checkbox" id="vector-main-menu-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-main-menu-dropdown" class="vector-dropdown-checkbox " aria-label="Main menu" > <label id="vector-main-menu-dropdown-label" for="vector-main-menu-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-menu mw-ui-icon-wikimedia-menu"></span> <span class="vector-dropdown-label-text">Main menu</span> </label> <div class="vector-dropdown-content"> <div id="vector-main-menu-unpinned-container" class="vector-unpinned-container"> <div id="vector-main-menu" class="vector-main-menu vector-pinnable-element"> <div class="vector-pinnable-header vector-main-menu-pinnable-header vector-pinnable-header-unpinned" data-feature-name="main-menu-pinned" data-pinnable-element-id="vector-main-menu" data-pinned-container-id="vector-main-menu-pinned-container" data-unpinned-container-id="vector-main-menu-unpinned-container" > <div class="vector-pinnable-header-label">Main menu</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-main-menu.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-main-menu.unpin">hide</button> </div> <div id="p-navigation" class="vector-menu mw-portlet mw-portlet-navigation" > <div class="vector-menu-heading"> Navigation </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-mainpage-description" class="mw-list-item"><a href="/wiki/Main_Page" title="Visit the main page [z]" accesskey="z"><span>Main page</span></a></li><li id="n-contents" class="mw-list-item"><a href="/wiki/Wikipedia:Contents" title="Guides to browsing Wikipedia"><span>Contents</span></a></li><li id="n-currentevents" class="mw-list-item"><a href="/wiki/Portal:Current_events" title="Articles related to current events"><span>Current events</span></a></li><li id="n-randompage" class="mw-list-item"><a href="/wiki/Special:Random" title="Visit a randomly selected article [x]" accesskey="x"><span>Random article</span></a></li><li id="n-aboutsite" class="mw-list-item"><a href="/wiki/Wikipedia:About" title="Learn about Wikipedia and how it works"><span>About Wikipedia</span></a></li><li id="n-contactpage" class="mw-list-item"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us" title="How to contact Wikipedia"><span>Contact us</span></a></li> </ul> </div> </div> <div id="p-interaction" class="vector-menu mw-portlet mw-portlet-interaction" > <div class="vector-menu-heading"> Contribute </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="n-help" class="mw-list-item"><a href="/wiki/Help:Contents" title="Guidance on how to use and edit Wikipedia"><span>Help</span></a></li><li id="n-introduction" class="mw-list-item"><a href="/wiki/Help:Introduction" title="Learn how to edit Wikipedia"><span>Learn to edit</span></a></li><li id="n-portal" class="mw-list-item"><a href="/wiki/Wikipedia:Community_portal" title="The hub for editors"><span>Community portal</span></a></li><li id="n-recentchanges" class="mw-list-item"><a href="/wiki/Special:RecentChanges" title="A list of recent changes to Wikipedia [r]" accesskey="r"><span>Recent changes</span></a></li><li id="n-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_upload_wizard" title="Add images or other media for use on Wikipedia"><span>Upload file</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> <a href="/wiki/Main_Page" class="mw-logo"> <img class="mw-logo-icon" src="/static/images/icons/wikipedia.png" alt="" aria-hidden="true" height="50" width="50"> <span class="mw-logo-container skin-invert"> <img class="mw-logo-wordmark" alt="Wikipedia" src="/static/images/mobile/copyright/wikipedia-wordmark-en.svg" style="width: 7.5em; height: 1.125em;"> <img class="mw-logo-tagline" alt="The Free Encyclopedia" src="/static/images/mobile/copyright/wikipedia-tagline-en.svg" width="117" height="13" style="width: 7.3125em; height: 0.8125em;"> </span> </a> </div> <div class="vector-header-end"> <div id="p-search" role="search" class="vector-search-box-vue vector-search-box-collapses vector-search-box-show-thumbnail vector-search-box-auto-expand-width vector-search-box"> <a href="/wiki/Special:Search" class="cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only search-toggle" title="Search Wikipedia [f]" accesskey="f"><span class="vector-icon mw-ui-icon-search mw-ui-icon-wikimedia-search"></span> <span>Search</span> </a> <div class="vector-typeahead-search-container"> <div class="cdx-typeahead-search cdx-typeahead-search--show-thumbnail cdx-typeahead-search--auto-expand-width"> <form action="/w/index.php" id="searchform" class="cdx-search-input cdx-search-input--has-end-button"> <div id="simpleSearch" class="cdx-search-input__input-wrapper" data-search-loc="header-moved"> <div class="cdx-text-input cdx-text-input--has-start-icon"> <input class="cdx-text-input__input" type="search" name="search" placeholder="Search Wikipedia" aria-label="Search Wikipedia" autocapitalize="sentences" title="Search Wikipedia [f]" accesskey="f" id="searchInput" > <span class="cdx-text-input__icon cdx-text-input__start-icon"></span> </div> <input type="hidden" name="title" value="Special:Search"> </div> <button class="cdx-button cdx-search-input__end-button">Search</button> </form> </div> </div> </div> <nav class="vector-user-links vector-user-links-wide" aria-label="Personal tools"> <div class="vector-user-links-main"> <div id="p-vector-user-menu-preferences" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-userpage" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-dropdown" class="vector-dropdown " title="Change the appearance of the page's font size, width, and color" > <input type="checkbox" id="vector-appearance-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-appearance-dropdown" class="vector-dropdown-checkbox " aria-label="Appearance" > <label id="vector-appearance-dropdown-label" for="vector-appearance-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-appearance mw-ui-icon-wikimedia-appearance"></span> <span class="vector-dropdown-label-text">Appearance</span> </label> <div class="vector-dropdown-content"> <div id="vector-appearance-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <div id="p-vector-user-menu-notifications" class="vector-menu mw-portlet emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> <div id="p-vector-user-menu-overflow" class="vector-menu mw-portlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en" class=""><span>Donate</span></a> </li> <li id="pt-createaccount-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:CreateAccount&returnto=Commodore+BASIC" title="You are encouraged to create an account and log in; however, it is not mandatory" class=""><span>Create account</span></a> </li> <li id="pt-login-2" class="user-links-collapsible-item mw-list-item user-links-collapsible-item"><a data-mw="interface" href="/w/index.php?title=Special:UserLogin&returnto=Commodore+BASIC" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o" class=""><span>Log in</span></a> </li> </ul> </div> </div> </div> <div id="vector-user-links-dropdown" class="vector-dropdown vector-user-menu vector-button-flush-right vector-user-menu-logged-out" title="Log in and more options" > <input type="checkbox" id="vector-user-links-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-user-links-dropdown" class="vector-dropdown-checkbox " aria-label="Personal tools" > <label id="vector-user-links-dropdown-label" for="vector-user-links-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-ellipsis mw-ui-icon-wikimedia-ellipsis"></span> <span class="vector-dropdown-label-text">Personal tools</span> </label> <div class="vector-dropdown-content"> <div id="p-personal" class="vector-menu mw-portlet mw-portlet-personal user-links-collapsible-item" title="User menu" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-sitesupport" class="user-links-collapsible-item mw-list-item"><a href="https://donate.wikimedia.org/wiki/Special:FundraiserRedirector?utm_source=donate&utm_medium=sidebar&utm_campaign=C13_en.wikipedia.org&uselang=en"><span>Donate</span></a></li><li id="pt-createaccount" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:CreateAccount&returnto=Commodore+BASIC" title="You are encouraged to create an account and log in; however, it is not mandatory"><span class="vector-icon mw-ui-icon-userAdd mw-ui-icon-wikimedia-userAdd"></span> <span>Create account</span></a></li><li id="pt-login" class="user-links-collapsible-item mw-list-item"><a href="/w/index.php?title=Special:UserLogin&returnto=Commodore+BASIC" title="You're encouraged to log in; however, it's not mandatory. [o]" accesskey="o"><span class="vector-icon mw-ui-icon-logIn mw-ui-icon-wikimedia-logIn"></span> <span>Log in</span></a></li> </ul> </div> </div> <div id="p-user-menu-anon-editor" class="vector-menu mw-portlet mw-portlet-user-menu-anon-editor" > <div class="vector-menu-heading"> Pages for logged out editors <a href="/wiki/Help:Introduction" aria-label="Learn more about editing"><span>learn more</span></a> </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="pt-anoncontribs" class="mw-list-item"><a href="/wiki/Special:MyContributions" title="A list of edits made from this IP address [y]" accesskey="y"><span>Contributions</span></a></li><li id="pt-anontalk" class="mw-list-item"><a href="/wiki/Special:MyTalk" title="Discussion about edits from this IP address [n]" accesskey="n"><span>Talk</span></a></li> </ul> </div> </div> </div> </div> </nav> </div> </header> </div> <div class="mw-page-container"> <div class="mw-page-container-inner"> <div class="vector-sitenotice-container"> <div id="siteNotice"><!-- CentralNotice --></div> </div> <div class="vector-column-start"> <div class="vector-main-menu-container"> <div id="mw-navigation"> <nav id="mw-panel" class="vector-main-menu-landmark" aria-label="Site"> <div id="vector-main-menu-pinned-container" class="vector-pinned-container"> </div> </nav> </div> </div> <div class="vector-sticky-pinned-container"> <nav id="mw-panel-toc" aria-label="Contents" data-event-name="ui.sidebar-toc" class="mw-table-of-contents-container vector-toc-landmark"> <div id="vector-toc-pinned-container" class="vector-pinned-container"> <div id="vector-toc" class="vector-toc vector-pinnable-element"> <div class="vector-pinnable-header vector-toc-pinnable-header vector-pinnable-header-pinned" data-feature-name="toc-pinned" data-pinnable-element-id="vector-toc" > <h2 class="vector-pinnable-header-label">Contents</h2> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-toc.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-toc.unpin">hide</button> </div> <ul class="vector-toc-contents" id="mw-panel-toc-list"> <li id="toc-mw-content-text" class="vector-toc-list-item vector-toc-level-1"> <a href="#" class="vector-toc-link"> <div class="vector-toc-text">(Top)</div> </a> </li> <li id="toc-History" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#History"> <div class="vector-toc-text"> <span class="vector-toc-numb">1</span> <span>History</span> </div> </a> <ul id="toc-History-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Technical_details" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Technical_details"> <div class="vector-toc-text"> <span class="vector-toc-numb">2</span> <span>Technical details</span> </div> </a> <button aria-controls="toc-Technical_details-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Technical details subsection</span> </button> <ul id="toc-Technical_details-sublist" class="vector-toc-list"> <li id="toc-Program_editing" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Program_editing"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.1</span> <span>Program editing</span> </div> </a> <ul id="toc-Program_editing-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Performance" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Performance"> <div class="vector-toc-text"> <span class="vector-toc-numb">2.2</span> <span>Performance</span> </div> </a> <ul id="toc-Performance-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Alternatives" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Alternatives"> <div class="vector-toc-text"> <span class="vector-toc-numb">3</span> <span>Alternatives</span> </div> </a> <ul id="toc-Alternatives-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Use_as_user_interface" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Use_as_user_interface"> <div class="vector-toc-text"> <span class="vector-toc-numb">4</span> <span>Use as user interface</span> </div> </a> <ul id="toc-Use_as_user_interface-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Versions_and_features" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Versions_and_features"> <div class="vector-toc-text"> <span class="vector-toc-numb">5</span> <span>Versions and features</span> </div> </a> <button aria-controls="toc-Versions_and_features-sublist" class="cdx-button cdx-button--weight-quiet cdx-button--icon-only vector-toc-toggle"> <span class="vector-icon mw-ui-icon-wikimedia-expand"></span> <span>Toggle Versions and features subsection</span> </button> <ul id="toc-Versions_and_features-sublist" class="vector-toc-list"> <li id="toc-Released_versions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Released_versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.1</span> <span>Released versions</span> </div> </a> <ul id="toc-Released_versions-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Unreleased_versions" class="vector-toc-list-item vector-toc-level-2"> <a class="vector-toc-link" href="#Unreleased_versions"> <div class="vector-toc-text"> <span class="vector-toc-numb">5.2</span> <span>Unreleased versions</span> </div> </a> <ul id="toc-Unreleased_versions-sublist" class="vector-toc-list"> </ul> </li> </ul> </li> <li id="toc-Notable_extension_packages" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Notable_extension_packages"> <div class="vector-toc-text"> <span class="vector-toc-numb">6</span> <span>Notable extension packages</span> </div> </a> <ul id="toc-Notable_extension_packages-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-References" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#References"> <div class="vector-toc-text"> <span class="vector-toc-numb">7</span> <span>References</span> </div> </a> <ul id="toc-References-sublist" class="vector-toc-list"> </ul> </li> <li id="toc-Sources" class="vector-toc-list-item vector-toc-level-1 vector-toc-list-item-expanded"> <a class="vector-toc-link" href="#Sources"> <div class="vector-toc-text"> <span class="vector-toc-numb">8</span> <span>Sources</span> </div> </a> <ul id="toc-Sources-sublist" class="vector-toc-list"> </ul> </li> </ul> </div> </div> </nav> </div> </div> <div class="mw-content-container"> <main id="content" class="mw-body"> <header class="mw-body-header vector-page-titlebar"> <nav aria-label="Contents" class="vector-toc-landmark"> <div id="vector-page-titlebar-toc" class="vector-dropdown vector-page-titlebar-toc vector-button-flush-left" > <input type="checkbox" id="vector-page-titlebar-toc-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-titlebar-toc" class="vector-dropdown-checkbox " aria-label="Toggle the table of contents" > <label id="vector-page-titlebar-toc-label" for="vector-page-titlebar-toc-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--icon-only " aria-hidden="true" ><span class="vector-icon mw-ui-icon-listBullet mw-ui-icon-wikimedia-listBullet"></span> <span class="vector-dropdown-label-text">Toggle the table of contents</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-titlebar-toc-unpinned-container" class="vector-unpinned-container"> </div> </div> </div> </nav> <h1 id="firstHeading" class="firstHeading mw-first-heading"><span class="mw-page-title-main">Commodore BASIC</span></h1> <div id="p-lang-btn" class="vector-dropdown mw-portlet mw-portlet-lang" > <input type="checkbox" id="p-lang-btn-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-p-lang-btn" class="vector-dropdown-checkbox mw-interlanguage-selector" aria-label="Go to an article in another language. Available in 8 languages" > <label id="p-lang-btn-label" for="p-lang-btn-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet cdx-button--action-progressive mw-portlet-lang-heading-8" aria-hidden="true" ><span class="vector-icon mw-ui-icon-language-progressive mw-ui-icon-wikimedia-language-progressive"></span> <span class="vector-dropdown-label-text">8 languages</span> </label> <div class="vector-dropdown-content"> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="interlanguage-link interwiki-de mw-list-item"><a href="https://de.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – German" lang="de" hreflang="de" data-title="Commodore BASIC" data-language-autonym="Deutsch" data-language-local-name="German" class="interlanguage-link-target"><span>Deutsch</span></a></li><li class="interlanguage-link interwiki-el mw-list-item"><a href="https://el.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Greek" lang="el" hreflang="el" data-title="Commodore BASIC" data-language-autonym="Ελληνικά" data-language-local-name="Greek" class="interlanguage-link-target"><span>Ελληνικά</span></a></li><li class="interlanguage-link interwiki-es mw-list-item"><a href="https://es.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Spanish" lang="es" hreflang="es" data-title="Commodore BASIC" data-language-autonym="Español" data-language-local-name="Spanish" class="interlanguage-link-target"><span>Español</span></a></li><li class="interlanguage-link interwiki-it mw-list-item"><a href="https://it.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Italian" lang="it" hreflang="it" data-title="Commodore BASIC" data-language-autonym="Italiano" data-language-local-name="Italian" class="interlanguage-link-target"><span>Italiano</span></a></li><li class="interlanguage-link interwiki-hu mw-list-item"><a href="https://hu.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Hungarian" lang="hu" hreflang="hu" data-title="Commodore BASIC" data-language-autonym="Magyar" data-language-local-name="Hungarian" class="interlanguage-link-target"><span>Magyar</span></a></li><li class="interlanguage-link interwiki-pl mw-list-item"><a href="https://pl.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Polish" lang="pl" hreflang="pl" data-title="Commodore BASIC" data-language-autonym="Polski" data-language-local-name="Polish" class="interlanguage-link-target"><span>Polski</span></a></li><li class="interlanguage-link interwiki-ru mw-list-item"><a href="https://ru.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Russian" lang="ru" hreflang="ru" data-title="Commodore BASIC" data-language-autonym="Русский" data-language-local-name="Russian" class="interlanguage-link-target"><span>Русский</span></a></li><li class="interlanguage-link interwiki-simple mw-list-item"><a href="https://simple.wikipedia.org/wiki/Commodore_BASIC" title="Commodore BASIC – Simple English" lang="en-simple" hreflang="en-simple" data-title="Commodore BASIC" data-language-autonym="Simple English" data-language-local-name="Simple English" class="interlanguage-link-target"><span>Simple English</span></a></li> </ul> <div class="after-portlet after-portlet-lang"><span class="wb-langlinks-edit wb-langlinks-link"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q337272#sitelinks-wikipedia" title="Edit interlanguage links" class="wbc-editpage">Edit links</a></span></div> </div> </div> </div> </header> <div class="vector-page-toolbar"> <div class="vector-page-toolbar-container"> <div id="left-navigation"> <nav aria-label="Namespaces"> <div id="p-associated-pages" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-associated-pages" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-nstab-main" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Commodore_BASIC" title="View the content page [c]" accesskey="c"><span>Article</span></a></li><li id="ca-talk" class="vector-tab-noicon mw-list-item"><a href="/wiki/Talk:Commodore_BASIC" rel="discussion" title="Discuss improvements to the content page [t]" accesskey="t"><span>Talk</span></a></li> </ul> </div> </div> <div id="vector-variants-dropdown" class="vector-dropdown emptyPortlet" > <input type="checkbox" id="vector-variants-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-variants-dropdown" class="vector-dropdown-checkbox " aria-label="Change language variant" > <label id="vector-variants-dropdown-label" for="vector-variants-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">English</span> </label> <div class="vector-dropdown-content"> <div id="p-variants" class="vector-menu mw-portlet mw-portlet-variants emptyPortlet" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> </ul> </div> </div> </div> </div> </nav> </div> <div id="right-navigation" class="vector-collapsible"> <nav aria-label="Views"> <div id="p-views" class="vector-menu vector-menu-tabs mw-portlet mw-portlet-views" > <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-view" class="selected vector-tab-noicon mw-list-item"><a href="/wiki/Commodore_BASIC"><span>Read</span></a></li><li id="ca-edit" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-history" class="vector-tab-noicon mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&action=history" title="Past revisions of this page [h]" accesskey="h"><span>View history</span></a></li> </ul> </div> </div> </nav> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-dropdown" class="vector-dropdown vector-page-tools-dropdown" > <input type="checkbox" id="vector-page-tools-dropdown-checkbox" role="button" aria-haspopup="true" data-event-name="ui.dropdown-vector-page-tools-dropdown" class="vector-dropdown-checkbox " aria-label="Tools" > <label id="vector-page-tools-dropdown-label" for="vector-page-tools-dropdown-checkbox" class="vector-dropdown-label cdx-button cdx-button--fake-button cdx-button--fake-button--enabled cdx-button--weight-quiet" aria-hidden="true" ><span class="vector-dropdown-label-text">Tools</span> </label> <div class="vector-dropdown-content"> <div id="vector-page-tools-unpinned-container" class="vector-unpinned-container"> <div id="vector-page-tools" class="vector-page-tools vector-pinnable-element"> <div class="vector-pinnable-header vector-page-tools-pinnable-header vector-pinnable-header-unpinned" data-feature-name="page-tools-pinned" data-pinnable-element-id="vector-page-tools" data-pinned-container-id="vector-page-tools-pinned-container" data-unpinned-container-id="vector-page-tools-unpinned-container" > <div class="vector-pinnable-header-label">Tools</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-page-tools.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-page-tools.unpin">hide</button> </div> <div id="p-cactions" class="vector-menu mw-portlet mw-portlet-cactions emptyPortlet vector-has-collapsible-items" title="More options" > <div class="vector-menu-heading"> Actions </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="ca-more-view" class="selected vector-more-collapsible-item mw-list-item"><a href="/wiki/Commodore_BASIC"><span>Read</span></a></li><li id="ca-more-edit" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&action=edit" title="Edit this page [e]" accesskey="e"><span>Edit</span></a></li><li id="ca-more-history" class="vector-more-collapsible-item mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&action=history"><span>View history</span></a></li> </ul> </div> </div> <div id="p-tb" class="vector-menu mw-portlet mw-portlet-tb" > <div class="vector-menu-heading"> General </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="t-whatlinkshere" class="mw-list-item"><a href="/wiki/Special:WhatLinksHere/Commodore_BASIC" title="List of all English Wikipedia pages containing links to this page [j]" accesskey="j"><span>What links here</span></a></li><li id="t-recentchangeslinked" class="mw-list-item"><a href="/wiki/Special:RecentChangesLinked/Commodore_BASIC" rel="nofollow" title="Recent changes in pages linked from this page [k]" accesskey="k"><span>Related changes</span></a></li><li id="t-upload" class="mw-list-item"><a href="/wiki/Wikipedia:File_Upload_Wizard" title="Upload files [u]" accesskey="u"><span>Upload file</span></a></li><li id="t-specialpages" class="mw-list-item"><a href="/wiki/Special:SpecialPages" title="A list of all special pages [q]" accesskey="q"><span>Special pages</span></a></li><li id="t-permalink" class="mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&oldid=1239873261" title="Permanent link to this revision of this page"><span>Permanent link</span></a></li><li id="t-info" class="mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&action=info" title="More information about this page"><span>Page information</span></a></li><li id="t-cite" class="mw-list-item"><a href="/w/index.php?title=Special:CiteThisPage&page=Commodore_BASIC&id=1239873261&wpFormIdentifier=titleform" title="Information on how to cite this page"><span>Cite this page</span></a></li><li id="t-urlshortener" class="mw-list-item"><a href="/w/index.php?title=Special:UrlShortener&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCommodore_BASIC"><span>Get shortened URL</span></a></li><li id="t-urlshortener-qrcode" class="mw-list-item"><a href="/w/index.php?title=Special:QrCode&url=https%3A%2F%2Fen.wikipedia.org%2Fwiki%2FCommodore_BASIC"><span>Download QR code</span></a></li> </ul> </div> </div> <div id="p-coll-print_export" class="vector-menu mw-portlet mw-portlet-coll-print_export" > <div class="vector-menu-heading"> Print/export </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li id="coll-download-as-rl" class="mw-list-item"><a href="/w/index.php?title=Special:DownloadAsPdf&page=Commodore_BASIC&action=show-download-screen" title="Download this page as a PDF file"><span>Download as PDF</span></a></li><li id="t-print" class="mw-list-item"><a href="/w/index.php?title=Commodore_BASIC&printable=yes" title="Printable version of this page [p]" accesskey="p"><span>Printable version</span></a></li> </ul> </div> </div> <div id="p-wikibase-otherprojects" class="vector-menu mw-portlet mw-portlet-wikibase-otherprojects" > <div class="vector-menu-heading"> In other projects </div> <div class="vector-menu-content"> <ul class="vector-menu-content-list"> <li class="wb-otherproject-link wb-otherproject-commons mw-list-item"><a href="https://commons.wikimedia.org/wiki/Category:Commodore_BASIC" hreflang="en"><span>Wikimedia Commons</span></a></li><li id="t-wikibase" class="wb-otherproject-link wb-otherproject-wikibase-dataitem mw-list-item"><a href="https://www.wikidata.org/wiki/Special:EntityPage/Q337272" title="Structured data on this page hosted by Wikidata [g]" accesskey="g"><span>Wikidata item</span></a></li> </ul> </div> </div> </div> </div> </div> </div> </nav> </div> </div> </div> <div class="vector-column-end"> <div class="vector-sticky-pinned-container"> <nav class="vector-page-tools-landmark" aria-label="Page tools"> <div id="vector-page-tools-pinned-container" class="vector-pinned-container"> </div> </nav> <nav class="vector-appearance-landmark" aria-label="Appearance"> <div id="vector-appearance-pinned-container" class="vector-pinned-container"> <div id="vector-appearance" class="vector-appearance vector-pinnable-element"> <div class="vector-pinnable-header vector-appearance-pinnable-header vector-pinnable-header-pinned" data-feature-name="appearance-pinned" data-pinnable-element-id="vector-appearance" data-pinned-container-id="vector-appearance-pinned-container" data-unpinned-container-id="vector-appearance-unpinned-container" > <div class="vector-pinnable-header-label">Appearance</div> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-pin-button" data-event-name="pinnable-header.vector-appearance.pin">move to sidebar</button> <button class="vector-pinnable-header-toggle-button vector-pinnable-header-unpin-button" data-event-name="pinnable-header.vector-appearance.unpin">hide</button> </div> </div> </div> </nav> </div> </div> <div id="bodyContent" class="vector-body" aria-labelledby="firstHeading" data-mw-ve-target-container> <div class="vector-body-before-content"> <div class="mw-indicators"> </div> <div id="siteSub" class="noprint">From Wikipedia, the free encyclopedia</div> </div> <div id="contentSub"><div id="mw-content-subtitle"></div></div> <div id="mw-content-text" class="mw-body-content"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><div class="shortdescription nomobile noexcerpt noprint searchaux" style="display:none">BASIC programming language dialect</div> <style data-mw-deduplicate="TemplateStyles:r1257001546">.mw-parser-output .infobox-subbox{padding:0;border:none;margin:-3px;width:auto;min-width:100%;font-size:100%;clear:none;float:none;background-color:transparent}.mw-parser-output .infobox-3cols-child{margin:auto}.mw-parser-output .infobox .navbar{font-size:100%}@media screen{html.skin-theme-clientpref-night .mw-parser-output .infobox-full-data:not(.notheme)>div:not(.notheme)[style]{background:#1f1f23!important;color:#f8f9fa}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .infobox-full-data:not(.notheme) div:not(.notheme){background:#1f1f23!important;color:#f8f9fa}}@media(min-width:640px){body.skin--responsive .mw-parser-output .infobox-table{display:table!important}body.skin--responsive .mw-parser-output .infobox-table>caption{display:table-caption!important}body.skin--responsive .mw-parser-output .infobox-table>tbody{display:table-row-group}body.skin--responsive .mw-parser-output .infobox-table tr{display:table-row!important}body.skin--responsive .mw-parser-output .infobox-table th,body.skin--responsive .mw-parser-output .infobox-table td{padding-left:inherit;padding-right:inherit}}</style><table class="infobox vevent"><caption class="infobox-title summary">Commodore BASIC</caption><tbody><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_design" title="Software design">Designed by</a></th><td class="infobox-data"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Software_developer" class="mw-redirect" title="Software developer">Developer</a></th><td class="infobox-data organiser"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></td></tr><tr><th scope="row" class="infobox-label">First appeared</th><td class="infobox-data">1977<span class="noprint">; 47 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1977</span>)</span></td></tr><tr><td colspan="2" class="infobox-full-data"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1257001546"></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle" title="Software release life cycle">Stable release</a></th><td class="infobox-data"><div style="margin:0px;">V7.0 / 1985<span class="noprint">; 39 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1985</span>)</span></div></td></tr><tr><th scope="row" class="infobox-label" style="white-space: nowrap;"><a href="/wiki/Software_release_life_cycle#Beta" title="Software release life cycle">Preview release</a></th><td class="infobox-data"><div style="margin:0px;">V10.0 / 1991<span class="noprint">; 33 years ago</span><span style="display:none"> (<span class="bday dtstart published updated">1991</span>)</span></div></td></tr><tr style="display:none"><td colspan="2"> </td></tr><tr><th scope="row" class="infobox-label">Implementation language</th><td class="infobox-data"><a href="/wiki/Assembly_language" title="Assembly language">Assembly</a> (<a href="/wiki/MOS_6502" class="mw-redirect" title="MOS 6502">6502</a>)</td></tr><tr><th scope="row" class="infobox-label"><a href="/wiki/Computing_platform" title="Computing platform">Platform</a></th><td class="infobox-data"><a href="/wiki/Commodore_PET" title="Commodore PET">PET</a> to the <a href="/wiki/Commodore_128" title="Commodore 128">Commodore 128</a></td></tr></tbody></table> <p><b>Commodore BASIC</b>, also known as <b>PET BASIC</b> or <b>CBM-BASIC</b>, is the <a href="/wiki/Dialect_(computing)" class="mw-redirect" title="Dialect (computing)">dialect</a> of the <a href="/wiki/BASIC" title="BASIC">BASIC</a> <a href="/wiki/Programming_language" title="Programming language">programming language</a> used in <a href="/wiki/Commodore_International" title="Commodore International">Commodore International</a>'s <a href="/wiki/8-bit" class="mw-redirect" title="8-bit">8-bit</a> <a href="/wiki/Home_computer" title="Home computer">home computer</a> line, stretching from the <a href="/wiki/Commodore_PET" title="Commodore PET">PET</a> (1977) to the <a href="/wiki/Commodore_128" title="Commodore 128">Commodore 128</a> (1985). </p><p>The core is based on <a href="/wiki/MOS_Technology_6502" title="MOS Technology 6502">6502</a> <a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a>, and as such it shares many characteristics with other 6502 BASICs of the time, such as <a href="/wiki/Applesoft_BASIC" title="Applesoft BASIC">Applesoft BASIC</a>. Commodore licensed BASIC from <a href="/wiki/Microsoft" title="Microsoft">Microsoft</a> in 1977 on a "pay once, no <a href="/wiki/Royalties" class="mw-redirect" title="Royalties">royalties</a>" basis after <a href="/wiki/Jack_Tramiel" title="Jack Tramiel">Jack Tramiel</a> turned down <a href="/wiki/Bill_Gates" title="Bill Gates">Bill Gates</a>' offer of a <span style="white-space: nowrap">$3</span> per unit fee, stating, "I'm already married," and would pay no more than <span style="white-space: nowrap">$25,000</span> for a perpetual license.<sup id="cite_ref-1" class="reference"><a href="#cite_note-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> </p><p>The original <a href="/wiki/Commodore_PET" title="Commodore PET">PET</a> version was very similar to the original Microsoft implementation with few modifications. BASIC 2.0 on the <a href="/wiki/Commodore_64" title="Commodore 64">C64</a> was also similar, and was also seen on <a href="/wiki/Commodore_128" title="Commodore 128">C128s</a> (in C64 mode) and other models. Later PETs featured BASIC 4.0, similar to the original but adding a number of commands for working with <a href="/wiki/Floppy_disk" title="Floppy disk">floppy disks</a>. </p><p>BASIC 3.5 was the first to really deviate, adding a number of commands for graphics and sound support on the <a href="/wiki/Commodore_16" title="Commodore 16">C16</a> and <a href="/wiki/Plus/4" class="mw-redirect" title="Plus/4">Plus/4</a>. BASIC 7.0 was included with the <a href="/wiki/Commodore_128" title="Commodore 128">Commodore 128</a>, and included <a href="/wiki/Structured_programming" title="Structured programming">structured programming</a> commands from the Plus/4's BASIC 3.5, as well as keywords designed specifically to take advantage of the machine's new capabilities. A <a href="/wiki/Sprite_(computer_graphics)" title="Sprite (computer graphics)">sprite</a> editor and <a href="/wiki/Machine_language_monitor" class="mw-redirect" title="Machine language monitor">machine language monitor</a> were added. The last, BASIC 10.0, was part of the unreleased <a href="/wiki/Commodore_65" title="Commodore 65">Commodore 65</a>. </p> <meta property="mw:PageProp/toc" /> <div class="mw-heading mw-heading2"><h2 id="History">History</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=1" title="Edit section: History"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Commodore took the source code of the flat-fee BASIC and further developed it internally for all their other 8-bit home computers. It was not until the <a href="/wiki/Commodore_128" title="Commodore 128">Commodore 128</a> (with V7.0) that a Microsoft copyright notice was displayed. However, Microsoft had built an <a href="/wiki/Easter_egg_(media)" title="Easter egg (media)">easter egg</a> into the version 2 or "upgrade" Commodore Basic that proved its provenance: typing the command <code>WAIT 6502, 1</code> would result in <code>Microsoft!</code> appearing on the screen. (The easter egg was well-obfuscated—the message did not show up in any <a href="/wiki/Disassembler" title="Disassembler">disassembly</a> of the interpreter.)<sup id="cite_ref-2" class="reference"><a href="#cite_note-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup> </p><p>The popular <a href="/wiki/Commodore_64" title="Commodore 64">Commodore 64</a> came with BASIC v2.0 in ROM even though the computer was released after the PET/CBM series that had version 4.0 because the 64 was intended as a home computer, while the PET/CBM series were targeted at business and educational use where their built-in programming language was presumed to be more heavily used. This saved manufacturing costs, as the V2 fit into smaller ROMs. </p> <div class="mw-heading mw-heading2"><h2 id="Technical_details">Technical details</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=2" title="Edit section: Technical details"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1251242444">.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}</style><style data-mw-deduplicate="TemplateStyles:r1248332772">.mw-parser-output .multiple-issues-text{width:95%;margin:0.2em 0}.mw-parser-output .multiple-issues-text>.mw-collapsible-content{margin-top:0.3em}.mw-parser-output .compact-ambox .ambox{border:none;border-collapse:collapse;background-color:transparent;margin:0 0 0 1.6em!important;padding:0!important;width:auto;display:block}body.mediawiki .mw-parser-output .compact-ambox .ambox.mbox-small-left{font-size:100%;width:auto;margin:0}.mw-parser-output .compact-ambox .ambox .mbox-text{padding:0!important;margin:0!important}.mw-parser-output .compact-ambox .ambox .mbox-text-span{display:list-item;line-height:1.5em;list-style-type:disc}body.skin-minerva .mw-parser-output .multiple-issues-text>.mw-collapsible-toggle,.mw-parser-output .compact-ambox .ambox .mbox-image,.mw-parser-output .compact-ambox .ambox .mbox-imageright,.mw-parser-output .compact-ambox .ambox .mbox-empty-cell,.mw-parser-output .compact-ambox .hide-when-compact{display:none}</style><table class="box-Multiple_issues plainlinks metadata ambox ambox-content ambox-multiple_issues compact-ambox" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span"><div class="multiple-issues-text mw-collapsible"><b>This section has multiple issues.</b> Please help <b><a href="/wiki/Special:EditPage/Commodore_BASIC" title="Special:EditPage/Commodore BASIC">improve it</a></b> or discuss these issues on the <b><a href="/wiki/Talk:Commodore_BASIC" title="Talk:Commodore BASIC">talk page</a></b>. <small><i>(<a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove these messages</a>)</i></small> <div class="mw-collapsible-content"> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-More_citations_needed_section plainlinks metadata ambox ambox-content ambox-Refimprove" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><a href="/wiki/File:Question_book-new.svg" class="mw-file-description"><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/50px-Question_book-new.svg.png" decoding="async" width="50" height="39" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/75px-Question_book-new.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/9/99/Question_book-new.svg/100px-Question_book-new.svg.png 2x" data-file-width="512" data-file-height="399" /></a></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>needs additional citations for <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verification</a></b>.<span class="hide-when-compact"> Please help <a href="/wiki/Special:EditPage/Commodore_BASIC" title="Special:EditPage/Commodore BASIC">improve this article</a> by <a href="/wiki/Help:Referencing_for_beginners" title="Help:Referencing for beginners">adding citations to reliable sources</a> in this section. Unsourced material may be challenged and removed.</span> <span class="date-container"><i>(<span class="date">August 2011</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1251242444"><table class="box-Original_research plainlinks metadata ambox ambox-content ambox-Original_research" role="presentation"><tbody><tr><td class="mbox-image"><div class="mbox-image-div"><span typeof="mw:File"><span><img alt="" src="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/40px-Ambox_important.svg.png" decoding="async" width="40" height="40" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/60px-Ambox_important.svg.png 1.5x, //upload.wikimedia.org/wikipedia/en/thumb/b/b4/Ambox_important.svg/80px-Ambox_important.svg.png 2x" data-file-width="40" data-file-height="40" /></span></span></div></td><td class="mbox-text"><div class="mbox-text-span">This section <b>possibly contains <a href="/wiki/Wikipedia:No_original_research" title="Wikipedia:No original research">original research</a></b>.<span class="hide-when-compact"> Please <a class="external text" href="https://en.wikipedia.org/w/index.php?title=Commodore_BASIC&action=edit">improve it</a> by <a href="/wiki/Wikipedia:Verifiability" title="Wikipedia:Verifiability">verifying</a> the claims made and adding <a href="/wiki/Wikipedia:Citing_sources#Inline_citations" title="Wikipedia:Citing sources">inline citations</a>. Statements consisting only of original research should be removed.</span> <span class="date-container"><i>(<span class="date">July 2013</span>)</i></span><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> </div> </div><span class="hide-when-compact"><i> (<small><a href="/wiki/Help:Maintenance_template_removal" title="Help:Maintenance template removal">Learn how and when to remove this message</a></small>)</i></span></div></td></tr></tbody></table> <div class="mw-heading mw-heading3"><h3 id="Program_editing">Program editing</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=3" title="Edit section: Program editing"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A convenient feature of Commodore's <a href="/wiki/Read-only_memory" title="Read-only memory">ROM</a>-resident <a href="/wiki/BASIC_interpreter" title="BASIC interpreter">BASIC interpreter</a> and <a href="/wiki/KERNAL" title="KERNAL">KERNAL</a> was the <a href="/wiki/Visual_editor" title="Visual editor">full-screen editor</a>.<sup id="cite_ref-3" class="reference"><a href="#cite_note-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-4" class="reference"><a href="#cite_note-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup> Although Commodore keyboards only have two <a href="/wiki/Cursor_keys" class="mw-redirect" title="Cursor keys">cursor keys</a> which reversed direction when the shift key was held, the screen editor allowed users to enter <a href="/wiki/Direct_mode" title="Direct mode">direct commands</a> or to input and edit program lines from anywhere on the screen. If a line was prefixed with a line number, it was <a href="/wiki/Tokenized" class="mw-redirect" title="Tokenized">tokenized</a> and stored in program memory. Lines not beginning with a number were executed by pressing the <style data-mw-deduplicate="TemplateStyles:r1249182868">.mw-parser-output .keyboard-key{border:1px solid #aaa;border-radius:0.2em;box-shadow:0.1em 0.1em 0.2em rgba(0,0,0,0.1);background-color:var(--background-color-neutral-subtle,#f8f9fa);background-image:linear-gradient(to bottom,var(--background-color-neutral,#eaecf0),var(--background-color-neutral-subtle,#f8f9fa),var(--background-color-neutral,#eaecf0));color:var(--color-base,#202122);padding:0.1em 0.3em;font-family:inherit;font-size:0.85em}</style><kbd class="keyboard-key nowrap">RETURN</kbd> key whenever the <a href="/wiki/Cursor_(computers)" class="mw-redirect" title="Cursor (computers)">cursor</a> happened to be on the line. This marked a significant upgrade in program entry interfaces compared to other common home computer BASICs at the time, which typically used <a href="/wiki/Line_editor" title="Line editor">line editors</a>, invoked by a separate <code>EDIT</code> command, or a "copy cursor" that truncated the line at the cursor's position. </p><p>It also had the capability of saving named files to any device, including the <a href="/wiki/Compact_Cassette" class="mw-redirect" title="Compact Cassette">cassette</a> – a popular storage device in the days of the PET, and one that remained in use throughout the lifespan of the 8-bit Commodores as an inexpensive form of mass storage. Most systems only supported filenames on <a href="/wiki/Diskette" class="mw-redirect" title="Diskette">diskette</a>, which made saving multiple files on other devices more difficult. The user of one of these other systems had to note the recorder's counter display at the location of the file, but this was inaccurate and prone to error. With the PET (and BASIC 2.0), files from cassettes could be requested by name. The device would search for the filename by reading data sequentially, ignoring any non-matching filenames. The file system was also supported by a powerful <a href="/wiki/Storage_record" title="Storage record">record structure</a> that could be loaded or saved to files. Commodore cassette data was recorded digitally, rather than less expensive (and less reliable) analog methods used by other manufacturers. Therefore, the specialized <a href="/wiki/Datasette" class="mw-redirect" title="Datasette">Datasette</a> was required rather than a standard tape recorder. Adapters were available that used an <a href="/wiki/Analog-to-digital_converter" title="Analog-to-digital converter">analog-to-digital converter</a> to allow use of a standard recorder, but these cost only a little less than the Datasette. </p><p>The <style data-mw-deduplicate="TemplateStyles:r886049734">.mw-parser-output .monospaced{font-family:monospace,monospace}</style><span class="monospaced">LOAD</span> command may be used with the optional parameter <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">,1</span> which will load a program into the memory address contained in the first two bytes of the file (these bytes are discarded and not retained in memory). If the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">,1</span> parameter is not used, the program will load into the start of the BASIC program area, which widely differs between machines. Some Commodore BASIC variants supplied <code>BLOAD</code> and <code><a href="/wiki/BSAVE" title="BSAVE">BSAVE</a></code> commands that worked like their counterparts in <a href="/wiki/Applesoft_BASIC" title="Applesoft BASIC">Applesoft BASIC</a>, loading or saving <a href="/wiki/Bitmap" title="Bitmap">bitmaps</a> from specified memory locations. </p><p>The PET does not support relocatable programs and the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">LOAD</span> command will always load at the first two bytes contained in the program file. This created a problem when trying to load BASIC programs saved on other Commodore machines as they would load at a higher address than where the PET's BASIC expected the program to be, there were workarounds to "move" programs to the proper location. If a program was saved on a <a href="/wiki/CBM-II" class="mw-redirect" title="CBM-II">CBM-II</a> machine, the only way to load it on a PET was by modifying the first two bytes with a disk sector editor as the CBM-II series had their BASIC program area at $0, which would result in a PET attempting to load into the zero page and locking up. </p><p>Commodore BASIC <a href="/wiki/Keyword_(computer_programming)" class="mw-redirect" title="Keyword (computer programming)">keywords</a> could be abbreviated by entering first an unshifted keypress, and then a shifted keypress of the next letter. This set the <a href="/wiki/Most_significant_bit" class="mw-redirect" title="Most significant bit">high bit</a>, causing the interpreter to stop reading and parse the statement according to a lookup table. This meant that the statement up to where the high bit was set was accepted as a substitute for typing the entire command out. However, since all BASIC keywords were stored in memory as single byte tokens, this was a convenience for statement entry rather than an optimization. </p><p>In the default uppercase-only character set, shifted characters appear as a graphics symbol; e.g. the command, <code>GOTO</code>, could be abbreviated <code>G{Shift-O}</code> (which resembled <code>G<b>Γ</b></code> onscreen). Most such commands were two letters long, but in some cases they were longer. In cases like this, there was an ambiguity, so more unshifted letters of the command were needed, such as <code>GO{Shift-S}</code> (<code>GO♥</code>) being required for <code><a href="/wiki/GOSUB" class="mw-redirect" title="GOSUB">GOSUB</a></code>. Some commands had no abbreviated form, either due to brevity or ambiguity with other commands. For example, the command, <code>INPUT</code> had no abbreviation because its spelling collided with the separate <code>INPUT#</code> keyword, which was located nearer to the beginning of the keyword <a href="/wiki/Lookup_table" title="Lookup table">lookup table</a>. The heavily used <code>PRINT</code> command had a single <code>?</code> shortcut, as was common in most Microsoft BASIC dialects. Abbreviating commands with shifted letters is unique to Commodore BASIC. </p><p>This tokenizing method had a glitch such that if one included a <code>REM</code> (BASIC statement to add a comment to the code) followed by a <code>{Shift-L}</code>, when trying to view the program listing, the BASIC interpreter would immediately abort the listing, display a <code>?SYNTAX ERROR</code> and return to the <code>READY.</code> prompt. This glitch was used to some effect by programmers who wanted to try and protect their work, although it was fairly easy to circumvent. </p><p>By abbreviating keywords, it was possible to fit more code on a single program line (which could take up two screen lines on 40-column displays - i.e., C64 or PET, or four lines on the VIC-20's 22-column display). This allowed for a slight saving on the overhead to store otherwise necessary extra program lines, but nothing more. All BASIC commands were tokenized and took up 1 byte (or two, in the case of several commands of BASIC 7 or BASIC 10) in memory no matter which way they were entered. Such long lines were a nuisance to edit. The <code>LIST</code> command displayed the entire command keyword - extending the program line beyond the 2 or 4 screen lines which could be entered into program memory. </p> <div class="mw-heading mw-heading3"><h3 id="Performance">Performance</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=4" title="Edit section: Performance"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>Like the original <a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a> <a href="/wiki/Interpreter_(programming)" class="mw-redirect" title="Interpreter (programming)">interpreter</a>, Commodore BASIC is slower than native <a href="/wiki/Machine_code" title="Machine code">machine code</a>. Test results have shown that copying 16 <a href="/wiki/Kilobytes" class="mw-redirect" title="Kilobytes">kilobytes</a> from <a href="/wiki/Read-only_memory" title="Read-only memory">ROM</a> to <a href="/wiki/Random-access_memory" title="Random-access memory">RAM</a> takes less than a second in machine code, compared to over a minute in BASIC.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2018)">citation needed</span></a></i>]</sup> To execute faster than the interpreter, programmers started using various techniques to speed up execution. One was to store often-used floating point values in variables rather than using literal values, as interpreting a variable name was faster than interpreting a literal number. Since floating point is default type for all commands, it's faster to use floating point numbers as arguments, rather than integers. When speed was important, some programmers converted sections of BASIC programs to <a href="/wiki/MOS_Technology_6502" title="MOS Technology 6502">6502</a> or <a href="/wiki/MOS_Technology_6510" title="MOS Technology 6510">6510</a> assembly language that was loaded separately from a file or POKEd into memory from DATA statements at the end of the BASIC program, and executed from BASIC using the <code>SYS</code> command, either from <a href="/wiki/Direct_mode" title="Direct mode">direct mode</a> or <a href="/wiki/BASIC_loader" class="mw-redirect" title="BASIC loader">from the program itself</a>. When the execution speed of machine language was too great, such as for a game or when waiting for user input, programmers could <a href="/wiki/Polling_(computer_science)" title="Polling (computer science)">poll</a> by reading selected memory locations (such as <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">$C6</code><sup id="cite_ref-map64_5-0" class="reference"><a href="#cite_note-map64-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> for the 64, or <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">$D0</code><sup id="cite_ref-map128_6-0" class="reference"><a href="#cite_note-map128-6"><span class="cite-bracket">[</span>6<span class="cite-bracket">]</span></a></sup> for the 128, denoting size of the keyboard queue) to delay or halt execution. </p><p>A unique feature of Commodore BASIC is the use of control codes to perform tasks such as clearing the screen or positioning the cursor within a program; these can be invoked either by issuing a <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">PRINT</span><span class="w"> </span><span class="nb">CHR$</span><span class="p">(</span><span class="n">X</span><span class="p">)</span></code> command where X corresponds to the control code to be issued (for example, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">PRINT</span><span class="w"> </span><span class="nb">CHR$</span><span class="p">(</span><span class="mf">147</span><span class="p">)</span></code> is the control code to clear the screen) or by pressing the key in question between quote marks, thus pressing <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1249182868"><kbd class="keyboard-key nowrap">⇧ Shift</kbd>+<kbd class="keyboard-key nowrap">CLR HOME</kbd> following a quote mark will cause BASIC to display the visual representation of the control code (in this case, a reversed heart) which is then acted upon at program execution (directly printing out the control codes uses less memory and executes faster than invoking a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">CHR$</span> function). This is in comparison to other implementations of BASIC which typically have dedicated commands to clear the screen or move the cursor. </p><p>BASIC 3.5 and up have proper commands for clearing the screen and moving the cursor. </p><p>Program lines in Commodore BASIC do not require spaces anywhere (but the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">LIST</span> command will always display one between the line number and the statement), e.g., <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">100</span><span class="w"> </span><span class="kr">IF</span><span class="n">A</span><span class="o">=</span><span class="mf">5</span><span class="kr">THENPRINT</span><span class="s">"YES"</span><span class="p">:</span><span class="kr">GOTO</span><span class="mf">160</span></code>, and it was common to write programs with no spacing. This feature was added to conserve memory since the tokenizer never removes any space inserted between keywords: the presence of spaces results in extra <code>0x20</code> bytes in the tokenized program which are merely skipped during execution. Spaces between the line number and program statement are removed by the tokenizer. </p><p>Program lines can be 80 characters total on most machines, but machines with 40 column text would cause the line to wrap around to the next line on the screen, and on the VIC-20, which had a 22 column display, program lines could occupy as many as four. BASIC 7.0 on the Commodore 128 increased the limit of a program line to 160 characters (four 40-column lines or two 80-column lines). By using abbreviations such as <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">?</code> instead of <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">PRINT</code>, it is possible to fit even more on a line. BASIC 7.0 displays a <samp style="padding-left:0.4em; padding-right:0.4em; color:var( --color-subtle, #666666);">?STRING TOO LONG</samp> error if the user enters a program line over 160 characters in length. Earlier versions do not produced an error and simply display the READY prompt two lines down if the line length is exceeded. The line number is counted in the number of characters in the program line, so a five digit line number will result in four fewer characters allowed than a one digit number. </p><p>The order of execution of Commodore BASIC lines was not determined by line numbering; instead, it followed the order in which the lines were linked in memory.<sup id="cite_ref-7" class="reference"><a href="#cite_note-7"><span class="cite-bracket">[</span>7<span class="cite-bracket">]</span></a></sup> Program lines were stored in memory as a <a href="/wiki/Singly_linked_list" class="mw-redirect" title="Singly linked list">singly linked list</a> with a pointer (containing the address of the beginning of the next program line), a line number, and then the tokenized code for the line. While a program was being entered, BASIC would constantly reorder program lines in memory so that the line numbers and pointers were all in ascending order. However, after a program was entered, manually altering the line numbers and pointers with the <a href="/wiki/PEEK_and_POKE" title="PEEK and POKE">POKE</a> commands could allow for out-of-order execution or even give each line the same line number. In the early days, when BASIC was used commercially, this was a <a href="/wiki/Software_protection" class="mw-redirect" title="Software protection">software protection</a> technique to discourage casual modification of the program. </p><p>Line numbers can range from 0 to 65520 and take five bytes to store regardless of how many digits are in the line number, although execution is faster the fewer digits there are. Putting multiple statements on a line will use less memory and execute faster. </p><p><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">GOTO</span> and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">GOSUB</span> statements will search downward from the current line to find a line number if a forward jump is performed, in case of a backwards jump, they will return to the start of the program to begin searching. This will slow down larger programs, so it is preferable to put commonly used subroutines near the start of a program. </p><p>Variable names are only significant to 2 characters; thus the variable names <code>VARIABLE1</code>, <code>VARIABLE2</code>, and <code>VA</code> all refer to the same variable. </p><p>Commodore BASIC also supports bitwise operators — <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">AND, OR</span>, and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">XOR</span>, although this feature was part of the core Microsoft 6502 BASIC code, it was usually omitted in other implementations such as <a href="/wiki/Applesoft_BASIC" title="Applesoft BASIC">Applesoft BASIC</a>. </p><p>The native number format of Commodore BASIC, like that of its parent <a href="/wiki/MS_BASIC" class="mw-redirect" title="MS BASIC">MS BASIC</a>, was <a href="/wiki/Floating_point" class="mw-redirect" title="Floating point">floating point</a>. Most contemporary BASIC implementations used one byte for the characteristic (<a href="/wiki/Exponent" class="mw-redirect" title="Exponent">exponent</a>) and three bytes for the <a href="/wiki/Significand" title="Significand">mantissa</a>. The accuracy of a floating point number using a three-byte mantissa is only about 6.5 decimal digits, and <a href="/wiki/Round-off_error" title="Round-off error">round-off error</a> is common. 6502 implementations of Microsoft BASIC utilized 40-bit floating point arithmetic, meaning that variables took five bytes to store (four byte mantissa and one byte for the exponent) unlike the 32-bit floating point found in BASIC-80. </p><p>While 8080/Z80 implementations of <a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a> supported integer and double precision variables, 6502 implementations were floating point only. </p><p>Although Commodore BASIC supports <a href="/wiki/Signed_number_representations" title="Signed number representations">signed integer</a> variables (denoted with a percent sign) in the range -32768 to 32767, in practice they are only used for array variables and serve the function of conserving memory by limiting array elements to two bytes each (an array of 2000 elements will occupy 10,000 bytes if declared as a floating point array, but only 4000 if declared as an integer array). Denoting any variable as integer simply causes BASIC to convert it back to floating point, slowing down program execution and wasting memory as each percent sign takes one additional byte to store (since this also applies to integer arrays, the programmer should avoid using them unless very large arrays are used that would exceed available memory if stored as floating point). Also, it is not possible to <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">POKE</span> or <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">PEEK</span> memory locations above 32767 with address defined as a signed integer. </p><p>A period (.) can be used in place of the number 0 (thus <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">10</span><span class="w"> </span><span class="n">A</span><span class="o">=</span><span class="mf">.</span></code> instead of <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">10</span><span class="w"> </span><span class="n">A</span><span class="o">=</span><span class="mf">0</span></code> or <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">10</span><span class="w"> </span><span class="kr">FOR</span><span class="w"> </span><span class="n">A</span><span class="o">=</span><span class="mf">.</span><span class="w"> </span><span class="kr">TO</span><span class="w"> </span><span class="mf">100</span></code> instead of <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">10</span><span class="w"> </span><span class="kr">FOR</span><span class="w"> </span><span class="n">A</span><span class="o">=</span><span class="mf">0</span><span class="w"> </span><span class="kr">to</span><span class="w"> </span><span class="mf">100</span></code>), this will execute slightly faster. </p><p>The <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SYS</span> statement, used to start machine language programs, was added by Commodore and was not in the original Microsoft BASIC code, which featured only the USR function for invoking machine language routines. It automatically loads the CPU's registers with the values in <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">$30C-$30F</code> (C64, varies on other machines)--this can be used to pass data to machine language routines or as a means of calling kernal functions from BASIC (as an example, <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">POKE</span><span class="w"> </span><span class="mf">780</span><span class="p">,</span><span class="mf">147</span><span class="p">:</span><span class="kr">SYS</span><span class="w"> </span><span class="mf">65490</span></code> clears the screen). </p><p>Since Commodore 8-bit machines other than the C128 cannot automatically boot disk software, the usual technique is to include a BASIC stub like <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="mf">10</span><span class="w"> </span><span class="kr">SYS</span><span class="w"> </span><span class="mf">2048</span></code> to begin program execution. It is possible to automatically start software after loading and not require the user to type a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RUN</span> statement, this is done by having a piece of code that hooks the BASIC "ready" vector at <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">$0302</code>. </p><p>As with most other versions of <a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a>, if an array is not declared with a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DIM</span> statement, it is automatically set to ten elements (in practice 11 since array elements are counted from 0). Larger arrays must be declared or BASIC will display an error when the program is run and an array cannot be re-dimensioned in a program unless all variables are wiped via a CLR statement. Numeric arrays are automatically filled with zeros when they are created, there may be a momentary delay in program execution if a large array is dimensioned. </p><p>String variables are represented by tagging the variable name with a dollar sign. Thus, the variables <code>AA$</code>, <code>AA</code>, and <code>AA%</code> would each be understood as distinct. Array variables are also considered distinct from simple variables, thus <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">A</span> and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">A(1)</span> do not refer to the same variable. The size of a string array merely refers to how many strings are stored in the array, not the size of each element, which is allocated dynamically. Unlike some other implementations of Microsoft BASIC, Commodore BASIC does not require string space to be reserved at the start of a program. </p><p>Unlike other 8-bit machines such as the Apple II, Commodore's machines all have a built-in clock that is initialized to 0 at power on and updated with every tick of the PIA/VIA/TED/CIA timer, thus 60 times per second. It is assigned two system variables in BASIC, <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">TI</span> and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">TI$</span>, which both contain the current time. TI is read-only and cannot be modified; doing so will result in a Syntax Error message. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">TI$</span> may be used to set the time via a six number string (an error results from using a string other than six numbers). The clock is not a very reliable method of timekeeping since it stops whenever interrupts are turned off (done by some kernal routines) and accessing the IEC (or IEEE port on the PET) port will slow the clock update by a few ticks. </p><p>The <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> function in Commodore BASIC can use the clock to generate random numbers; this is accomplished by <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">RND(0)</code>, however it is of relatively limited use as only numbers between 0 and 255 are returned. Otherwise, <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> works the same as other implementations of Microsoft BASIC in that a pseudo-random sequence is used via a fixed 5-byte seed value stored at power on in memory locations <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">$8B-$8F</code> on the C64 (the location differs on other machines). <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> with any number higher than 0 will generate a random number amalgamated from the value included with the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> function and the seed value, which is updated by 1 each time an RND function is executed. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> with a negative number goes to a point in the sequence of the current seed value specified by the number. </p><p>Since true random number generation is impossible with the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RND</span> statement, it is more typical on the C64 and C128 to utilize the SID chip's white noise channel for random numbers. </p><p>BASIC 2.0 notoriously suffered from extremely slow garbage collection of strings. Garbage collection is automatically invoked any time a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FRE</span> function is executed and if there are many string variables and arrays that have been manipulated over the course of a program, clearing them can take more than an hour under the worst conditions. It is also not possible to abort garbage collection as BASIC does not scan the RUN/STOP key while performing this routine. BASIC 4.0 introduced an improved garbage collection system with back pointers and all later implementations of Commodore BASIC also have it. </p><p>The <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FRE</span> function in BASIC 2.0 suffered from another technical flaw in that it cannot handle signed numbers over 32768, thus if the function is invoked on a C64 (38k BASIC memory), a negative amount of free BASIC memory will be displayed (adding 65535 to the reported number will obtain the correct amount of free memory). The PET and VIC-20 never had more than 32k of total memory available to BASIC, so this limitation did not become apparent until the C64 was developed. The <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FRE</span> function on BASIC 3.5 and 7.0 corrected this problem and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FRE</span> on BASIC 7.0 was also "split" into two functions, one to display free BASIC program text memory and the other to display free variable memory. </p> <div class="mw-heading mw-heading2"><h2 id="Alternatives">Alternatives</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=5" title="Edit section: Alternatives"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <figure class="mw-default-size mw-halign-right" typeof="mw:File/Thumb"><a href="/wiki/File:Simons_Basic_Splash_Screen.gif" class="mw-file-description"><img src="//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Simons_Basic_Splash_Screen.gif/220px-Simons_Basic_Splash_Screen.gif" decoding="async" width="220" height="147" class="mw-file-element" srcset="//upload.wikimedia.org/wikipedia/commons/thumb/9/96/Simons_Basic_Splash_Screen.gif/330px-Simons_Basic_Splash_Screen.gif 1.5x, //upload.wikimedia.org/wikipedia/commons/9/96/Simons_Basic_Splash_Screen.gif 2x" data-file-width="360" data-file-height="240" /></a><figcaption>The Simons' BASIC start-up screen</figcaption></figure> <p>Many BASIC extensions were released for the Commodore 64, due to the relatively limited capabilities of its native BASIC 2.0. One of the most popular extensions was the <a href="/wiki/DOS_Wedge" title="DOS Wedge">DOS Wedge</a>, which was included on the Commodore 1541 Test/Demo Disk. This 1 KB extension to BASIC added a number of disk-related commands, including the ability to read a disk directory without destroying the program in memory. Its features were subsequently incorporated in various third-party extensions, such as the popular <a href="/wiki/Epyx_FastLoad" class="mw-redirect" title="Epyx FastLoad">Epyx FastLoad</a> cartridge. Other BASIC extensions added additional keywords to make it easier to code sprites, sound, and high-resolution graphics like <a href="/wiki/Simons%27_BASIC" title="Simons' BASIC">Simons' BASIC</a> (1983) and Vision BASIC (2022). </p><p>Although BASIC 2.0's lack of sound or graphics features was frustrating to many users, some critics<sup class="noprint Inline-Template" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Manual_of_Style/Words_to_watch#Unsupported_attributions" title="Wikipedia:Manual of Style/Words to watch"><span title="The material near this tag possibly uses too-vague attribution or weasel words. (September 2023)">who?</span></a></i>]</sup> argued that it was ultimately beneficial since it forced the user to learn machine language. </p><p>The limitations of BASIC 2.0 on the C64 led to use of built-in ROM machine language from BASIC. To load a file to a designated memory location, the filename, drive, and device number would be read by a call: <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">SYS</span><span class="mf">57812</span><span class="s">"filename"</span><span class="p">,</span><span class="mf">8</span></code>;<sup id="cite_ref-8" class="reference"><a href="#cite_note-8"><span class="cite-bracket">[</span>8<span class="cite-bracket">]</span></a></sup> the location would be specified in the X and Y registers: <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">POKE</span><span class="mf">780</span><span class="p">,</span><span class="mf">0</span><span class="p">:</span><span class="kr">POKE</span><span class="mf">781</span><span class="p">,</span><span class="mf">0</span><span class="p">:</span><span class="kr">POKE</span><span class="mf">782</span><span class="p">,</span><span class="mf">192</span></code>;<sup id="cite_ref-9" class="reference"><a href="#cite_note-9"><span class="cite-bracket">[</span>9<span class="cite-bracket">]</span></a></sup> and the load routine would be called: <code class="mw-highlight mw-highlight-lang-cbmbas mw-content-ltr" style="" dir="ltr"><span class="kr">SYS</span><span class="mf">65493</span></code>.<sup id="cite_ref-10" class="reference"><a href="#cite_note-10"><span class="cite-bracket">[</span>10<span class="cite-bracket">]</span></a></sup> </p><p>A disk magazine for the C64, <i><a href="/wiki/Loadstar_(magazine)" title="Loadstar (magazine)">Loadstar</a></i>, was a venue for hobbyist programmers, who shared collections of proto-commands for BASIC, called with the <code class="mw-highlight mw-highlight-lang-text mw-content-ltr" style="" dir="ltr">SYS address + offset</code> command.<sup class="noprint Inline-Template Template-Fact" style="white-space:nowrap;">[<i><a href="/wiki/Wikipedia:Citation_needed" title="Wikipedia:Citation needed"><span title="This claim needs references to reliable sources. (March 2018)">citation needed</span></a></i>]</sup> </p><p>From a modern programming point of view, the earlier versions of Commodore BASIC presented a host of bad programming traps for the programmer. As most of these issues derived from <a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a>, virtually every home computer BASIC of the era suffered from similar deficiencies.<sup id="cite_ref-11" class="reference"><a href="#cite_note-11"><span class="cite-bracket">[</span>11<span class="cite-bracket">]</span></a></sup> Every line of a Microsoft BASIC program was assigned a <a href="/wiki/Line_number" title="Line number">line number</a> by the programmer. It was common practice to increment numbers by some value (5, 10 or 100) to make inserting lines during program editing or debugging easier, but bad planning meant that inserting large sections into a program often required restructuring the entire code. A common technique was to start a program at some low line number with an <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><a href="/wiki/GOSUB#Computed_GOSUB" class="mw-redirect" title="GOSUB">ON...GOSUB</a></span> <a href="/wiki/Jump_table" class="mw-redirect" title="Jump table">jump table</a>, with the body of the program structured into sections starting at a designated line number like 1000, 2000, and so on. If a large section needed to be added, it could just be assigned the next available major line number and inserted to the jump table. </p><p>In addition, all variables are treated as global variables. Clearly defined loops beyond the FOR...NEXT construct are hard to create, often causing the programmer to rely on the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><a href="/wiki/GOTO" class="mw-redirect" title="GOTO">GOTO</a></span> command (this was later rectified in BASIC 3.5 with the addition of the <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DO, LOOP, WHILE, UNTIL</span>, and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">EXIT</span> commands). Flag variables often needed to be created to perform certain tasks. </p><p>Later BASIC versions on Commodore and other platforms included a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DELETE</span> and <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RENUMBER</span> command, as well as an AUTO line numbering command that would automatically select and insert line numbers according to a selected increment. Earlier BASICs from Commodore also lack debugging commands, meaning that bugs and unused variables are hard to trap. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">IF...THEN...ELSE</span> structures, a standard part of Z80 Microsoft BASICs, were added to BASIC 3.5 after being unavailable in earlier versions of Commodore BASIC. </p> <div class="mw-heading mw-heading2"><h2 id="Use_as_user_interface">Use as user interface</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=6" title="Edit section: Use as user interface"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>In common with other <a href="/wiki/Home_computer" title="Home computer">home computers</a>, Commodore's machines booted directly into the BASIC interpreter. BASIC's file and programming commands could be entered in <a href="/wiki/Direct_mode" title="Direct mode">direct mode</a> to load and execute software. If program execution was halted using the RUN/STOP key, variable values would be preserved in RAM and could be PRINTed for debugging. The 128 even dedicated its second 64k bank to variable storage, allowing values to persist until a <code>NEW</code> or <code>RUN</code> command was issued. This, along with the advanced <a href="/w/index.php?title=Screen_editor&action=edit&redlink=1" class="new" title="Screen editor (page does not exist)">screen editor</a> included with Commodore BASIC gave the programming environment a <a href="/wiki/REPL" class="mw-redirect" title="REPL">REPL</a>-like feel; programmers could insert and edit program lines at any screen location, interactively building the program.<sup id="cite_ref-12" class="reference"><a href="#cite_note-12"><span class="cite-bracket">[</span>12<span class="cite-bracket">]</span></a></sup> This is in contrast to business-oriented operating systems of the time like <a href="/wiki/CP/M" title="CP/M">CP/M</a> or <a href="/wiki/MS-DOS" title="MS-DOS">MS-DOS</a>, which typically booted into a <a href="/wiki/Command_line_interface" class="mw-redirect" title="Command line interface">command line interface</a>. If a programming language was required on these platforms, it had to be loaded separately. </p><p>While some versions of Commodore BASIC included disk-specific <code>DLOAD</code> and <code>DSAVE</code> commands, the version built into the <a href="/wiki/Commodore_64" title="Commodore 64">Commodore 64</a> lacked these, requiring the user to specify the disk drive's device number (typically 8 or 9) to the standard <code>LOAD</code> command, which otherwise defaulted to tape. Another omission from the Commodore 64s BASIC 2.0 was a <code>DIRECTORY</code> command to display a disk's contents without clearing main memory. On the 64, viewing files on a disk was implemented as loading a "program" which when listed showed the directory as a pseudo BASIC program, with the file's block size as the line number. This had the effect of overwriting the currently loaded program. Addons like the DOS Wedge overcame this by rendering the directory listing direct to screen memory. </p> <div class="mw-heading mw-heading2"><h2 id="Versions_and_features">Versions and features</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=7" title="Edit section: Versions and features"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <p>A list of CBM BASIC versions in chronological order, with successively added features: </p> <div class="mw-heading mw-heading3"><h3 id="Released_versions">Released versions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=8" title="Edit section: Released versions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>V1.0: PET 2001 with <a href="/wiki/Chiclet_keyboard" title="Chiclet keyboard">chiclet keyboard</a> and built-in <a href="/wiki/Commodore_Datassette" class="mw-redirect" title="Commodore Datassette">Datassette</a> (original PET) <ul><li>arrays limited to 256 elements</li> <li><a href="/wiki/PEEK_and_POKE" title="PEEK and POKE">PEEK</a> command explicitly disabled over BASIC ROM locations above $C000</li></ul></li> <li>V2.0 (first release): PET 2001 with full-travel keyboard & upgrade ROMs <ul><li>add <a href="/wiki/IEEE-488" class="mw-redirect" title="IEEE-488">IEEE-488</a> support</li> <li>improved the garbage collection<sup id="cite_ref-zimmers.net_13-0" class="reference"><a href="#cite_note-zimmers.net-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup></li> <li>fix array bug</li> <li>Easter egg – entering <style data-mw-deduplicate="TemplateStyles:r1239335663">.mw-parser-output .mw-tmpl-kbd{background:#EEE;color:var(--color-base)}@media screen{html.skin-theme-clientpref-night .mw-parser-output .mw-tmpl-kbd{background:#171a1d}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .mw-tmpl-kbd{background:#171a1d}}</style><kbd class="mw-tmpl-kbd" style="letter-spacing:0.05em; padding-left:0.25em; padding-right:0.2em;">WAIT6502, <i>[number]</i></kbd> displays <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">MICROSOFT!</span> an arbitrary number of times</li></ul></li> <li>V4.0: PET/CBM 4000/8000 series (and late version PET 2001s) <ul><li><a href="/wiki/Commodore_DOS" title="Commodore DOS">disk operations</a>: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DLOAD,DSAVE,COPY,SCRATCH,</span> etc. (15 in all)</li> <li>disk error-channel variables: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DS,DS$</span></li> <li>greatly improved garbage-collection performance<sup id="cite_ref-zimmers.net_13-1" class="reference"><a href="#cite_note-zimmers.net-13"><span class="cite-bracket">[</span>13<span class="cite-bracket">]</span></a></sup></li></ul></li> <li>V2.0 (second release, after 4.0): <a href="/wiki/VIC-20" title="VIC-20">VIC-20</a>; <a href="/wiki/Commodore_64" title="Commodore 64">C64</a></li> <li>V2.2 <a href="/wiki/Commodore_64_Games_System" title="Commodore 64 Games System">C64GS</a> (1990)</li> <li>V4+ : <a href="/wiki/Commodore_CBM-II" title="Commodore CBM-II">CBM-II</a> series (aka B, P range) <ul><li>memory management: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">BANK</span></li> <li><a href="/wiki/Commodore_DOS" title="Commodore DOS">more disk operations</a>: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><a href="/wiki/BLOAD" class="mw-redirect" title="BLOAD">BLOAD</a>, <a href="/wiki/BSAVE" title="BSAVE">BSAVE</a>,DCLEAR</span></li> <li>formatted printing: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">PRINT USING,PUDEF</span></li> <li>error trapping: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DISPOSE</span></li> <li>alternative branching: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">ELSE</span></li> <li>dynamic error handling: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">TRAP,RESUME,ERR$()</span></li> <li>flexible <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DATA</span> read: <code>RESTORE <i>[line number]</i></code></li> <li>string search function: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">INSTR</span></li></ul></li> <li>V3.5: <a href="/wiki/Commodore_16" title="Commodore 16">C16/116</a>, <a href="/wiki/Commodore_Plus/4" title="Commodore Plus/4">Plus/4</a> <ul><li>sound and graphics commands</li> <li><a href="/wiki/Joystick" title="Joystick">joystick</a> input: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">JOY</span></li> <li><a href="/wiki/Decimal" title="Decimal">decimal</a> ↔ <a href="/wiki/Hexadecimal" title="Hexadecimal">hexadecimal</a> conversion: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DEC(),HEX$()</span></li> <li>structured looping: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DO,LOOP,WHILE,UNTIL,EXIT</span></li> <li>function key assignment: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">KEY</span> (also direct mode)</li> <li>program entry/editing: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">AUTO,DELETE,RENUMBER</span></li> <li><a href="/wiki/Debug" class="mw-redirect" title="Debug">debugging</a> (tracing): <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced"><a href="/wiki/TRON_command" title="TRON command">TRON</a>, <a href="/wiki/TROFF" class="mw-redirect" title="TROFF">TROFF</a></span></li> <li><a href="/wiki/Machine_code_monitor" title="Machine code monitor">MLM</a> entry command: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">MONITOR</span></li> <li>C(1)16, Plus/4 Easter egg – enter <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239335663"><kbd class="mw-tmpl-kbd" style="letter-spacing:0.05em; padding-left:0.25em; padding-right:0.2em;">SYS 52650</kbd></li></ul></li> <li>V7.0: <a href="/wiki/Commodore_128" title="Commodore 128">C128</a> <ul><li>more sound and graphics commands, including <a href="/wiki/Sprite_(computer_graphics)" title="Sprite (computer graphics)">sprite</a> handling</li> <li>built-in sprite editor: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SPRDEF</span></li> <li>multi-statement blocks for <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">IF THEN ELSE</span> structures: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">BEGIN,BEND</span></li> <li><a href="/wiki/Paddle_(game_controller)" title="Paddle (game controller)">paddle</a>, <a href="/wiki/Lightpen" class="mw-redirect" title="Lightpen">lightpen</a> input: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">POT,PEN</span></li> <li><a href="/wiki/Exclusive_disjunction" class="mw-redirect" title="Exclusive disjunction">exclusive or</a> function: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">XOR</span></li> <li>get variable address: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">POINTER</span></li> <li>text mode windowing: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">WINDOW</span></li> <li>controlled time delay: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SLEEP</span></li> <li>memory management: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SWAP,FETCH,STASH,FRE(1)</span></li> <li>used the 128's <a href="/wiki/Bank_switching" title="Bank switching">bank switching</a> to store program code separately from variables. Variable values would be preserved across program executions if the program was started with the GOTO command.</li> <li><a href="/wiki/Commodore_DOS" title="Commodore DOS">more disk operations</a>: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">BOOT,DVERIFY</span></li> <li>CPU speed adjustment: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FAST,SLOW</span> (2 vs 1 MHz)</li> <li>enter C64 mode: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">GO64</span></li> <li>undocumented, working: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">RREG</span> (read CPU registers after a <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SYS</span>)</li> <li>unimplemented commands: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">OFF,QUIT</span></li> <li>C128 Easter egg – enter <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1239335663"><kbd class="mw-tmpl-kbd" style="letter-spacing:0.05em; padding-left:0.25em; padding-right:0.2em;">SYS 32800,123,45,6</kbd></li></ul></li></ul> <div class="mw-heading mw-heading3"><h3 id="Unreleased_versions">Unreleased versions</h3><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=9" title="Edit section: Unreleased versions"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li>V3.6 : <a href="/wiki/Commodore_LCD" title="Commodore LCD">Commodore LCD</a> (unreleased prototype). Almost identical to V7.0, with the following differences:<sup id="cite_ref-14" class="reference"><a href="#cite_note-14"><span class="cite-bracket">[</span>14<span class="cite-bracket">]</span></a></sup> <ul><li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">VOLUME</span> instead of <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">VOL</span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">EXIT</span> instead of <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">QUIT</span></li> <li><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FAST,SLOW</span> commands not present</li> <li>Additional command: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">POPUPS</span></li></ul></li> <li>V10 : <a href="/wiki/Commodore_65" title="Commodore 65">Commodore 65</a> (unreleased prototype) <ul><li>graphics/video commands: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">PALETTE,GENLOCK</span></li> <li><a href="/wiki/Computer_mouse" title="Computer mouse">mouse</a> input: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">MOUSE,RMOUSE</span></li> <li>text file (<link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">SEQ</span>) utility: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">TYPE</span></li> <li>program editing: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">FIND,CHANGE</span></li> <li>memory management: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">DMA,FRE(2)</span></li> <li>unimplemented commands: <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r886049734"><span class="monospaced">PAINT,LOCATE,SCALE,WIDTH,SET,VIEWPORT,PASTE,CUT</span></li></ul></li></ul> <div class="mw-heading mw-heading2"><h2 id="Notable_extension_packages">Notable extension packages</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=10" title="Edit section: Notable extension packages"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <ul><li><a href="/wiki/Super_Expander" title="Super Expander">Super Expander</a> (VIC-20; delivered on <a href="/wiki/ROM_cartridge" title="ROM cartridge">ROM cartridge</a>) (Commodore)</li> <li><a href="/wiki/Super_Expander_64" title="Super Expander 64">Super Expander 64</a> (C64; cartridge) (Commodore)</li> <li><a href="/wiki/Simons%27_BASIC" title="Simons' BASIC">Simons' BASIC</a> (C64; cartridge) (Commodore)</li> <li>Graphics BASIC (C64; floppy disk) (<a href="/wiki/Hesware" class="mw-redirect" title="Hesware">Hesware</a>)</li> <li><a href="/wiki/BASIC_8" title="BASIC 8">BASIC 8</a> (C128; floppy disk and optional internal ROM chip) (<a href="/wiki/Walrusoft" class="mw-redirect" title="Walrusoft">Walrusoft</a>)</li> <li><a rel="nofollow" class="external text" href="https://visionbasic.net/">Vision BASIC</a> (C64; floppy disk) (Dennis Osborn)</li></ul> <div class="mw-heading mw-heading2"><h2 id="References">References</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=11" title="Edit section: References"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239543626">.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}</style><div class="reflist"> <div class="mw-references-wrap mw-references-columns"><ol class="references"> <li id="cite_note-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-1">^</a></b></span> <span class="reference-text">Stated by <a href="/wiki/Jack_Tramiel" title="Jack Tramiel">Jack Tramiel</a> at the Commodore 64 25th Anniversary Celebration at the <a href="/wiki/Computer_History_Museum" title="Computer History Museum">Computer History Museum</a> December 10, 2007 <a rel="nofollow" class="external autonumber" href="http://www.computerhistory.org/events/index.php?id=1193702785">[1]</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20081211123347/http://www.computerhistory.org/events/index.php?id=1193702785">Archived</a> 2008-12-11 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a><a rel="nofollow" class="external autonumber" href="http://www.computerhistory.org/events/video/75/">[2]</a> <a rel="nofollow" class="external text" href="https://web.archive.org/web/20171003111509/http://www.computerhistory.org/events/video/75/">Archived</a> 2017-10-03 at the <a href="/wiki/Wayback_Machine" title="Wayback Machine">Wayback Machine</a><a rel="nofollow" class="external autonumber" href="https://www.youtube.com/watch?v=NBvbsPNBIyk">[3]</a>.</span> </li> <li id="cite_note-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-2">^</a></b></span> <span class="reference-text"><style data-mw-deduplicate="TemplateStyles:r1238218222">.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("//upload.wikimedia.org/wikipedia/commons/6/65/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("//upload.wikimedia.org/wikipedia/commons/d/d6/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("//upload.wikimedia.org/wikipedia/commons/a/aa/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("//upload.wikimedia.org/wikipedia/commons/4/4c/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}</style><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.pagetable.com/?p=43">"Bill Gates' Personal Easter Eggs in 8 Bit BASIC - pagetable.com"</a>. <i>www.pagetable.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.pagetable.com&rft.atitle=Bill+Gates%27+Personal+Easter+Eggs+in+8+Bit+BASIC+-+pagetable.com&rft_id=http%3A%2F%2Fwww.pagetable.com%2F%3Fp%3D43&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-3">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://archive.org/stream/Commodore_Microcomputers_Volume_6_Number_4_Issue_36_1985-07_Commodore_US#page/n41/mode/2up">"Keyboarding and the Screen Editor"</a>. July 1985.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Keyboarding+and+the+Screen+Editor&rft.date=1985-07&rft_id=https%3A%2F%2Farchive.org%2Fstream%2FCommodore_Microcomputers_Volume_6_Number_4_Issue_36_1985-07_Commodore_US%23page%2Fn41%2Fmode%2F2up&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-4">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://web.archive.org/web/20170824214757/http://www.classiccmp.org/dunfield/c64/bytejl83.pdf">"Byte July 1983"</a> <span class="cs1-format">(PDF)</span>. Archived from <a rel="nofollow" class="external text" href="http://www.classiccmp.org/dunfield/c64/bytejl83.pdf">the original</a> <span class="cs1-format">(PDF)</span> on 2017-08-24<span class="reference-accessdate">. Retrieved <span class="nowrap">2015-05-01</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=unknown&rft.btitle=Byte+July+1983&rft_id=http%3A%2F%2Fwww.classiccmp.org%2Fdunfield%2Fc64%2Fbytejl83.pdf&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-map64-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-map64_5-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLeemon1987" class="citation book cs1">Leemon, Sheldon (1987). <a rel="nofollow" class="external text" href="https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n49/mode/2up"><i>Mapping the Commodore 64 & 64C</i></a>. COMPUTE! Publications. p. 37. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780874550825" title="Special:BookSources/9780874550825"><bdi>9780874550825</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-03-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Mapping+the+Commodore+64+%26+64C&rft.pages=37&rft.pub=COMPUTE%21+Publications&rft.date=1987&rft.isbn=9780874550825&rft.aulast=Leemon&rft.aufirst=Sheldon&rft_id=https%3A%2F%2Farchive.org%2Fstream%2FCompute_s_Mapping_the_64_and_64C%23page%2Fn49%2Fmode%2F2up&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-map128-6"><span class="mw-cite-backlink"><b><a href="#cite_ref-map128_6-0">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFCowper1986" class="citation book cs1">Cowper, Ottis R. (1986). <a rel="nofollow" class="external text" href="https://archive.org/details/Compute_s_Mapping_the_Commodore_128"><i>Mapping the Commodore 128</i></a>. COMPUTE! Publications. p. <a rel="nofollow" class="external text" href="https://archive.org/details/Compute_s_Mapping_the_Commodore_128/page/n70">66</a>. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780874550603" title="Special:BookSources/9780874550603"><bdi>9780874550603</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Mapping+the+Commodore+128&rft.pages=66&rft.pub=COMPUTE%21+Publications&rft.date=1986&rft.isbn=9780874550603&rft.aulast=Cowper&rft.aufirst=Ottis+R.&rft_id=https%3A%2F%2Farchive.org%2Fdetails%2FCompute_s_Mapping_the_Commodore_128&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-7"><span class="mw-cite-backlink"><b><a href="#cite_ref-7">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.unusedino.de/ec64/technical/project64/mapping_c64.html">"Mapping The C64"</a>. <i>www.unusedino.de</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 August</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.unusedino.de&rft.atitle=Mapping+The+C64&rft_id=http%3A%2F%2Fwww.unusedino.de%2Fec64%2Ftechnical%2Fproject64%2Fmapping_c64.html&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-8"><span class="mw-cite-backlink"><b><a href="#cite_ref-8">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLeemon1987" class="citation book cs1">Leemon, Sheldon (1987). <a rel="nofollow" class="external text" href="https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n221/mode/2up"><i>Mapping the Commodore 64 & 64C</i></a>. COMPUTE! Publications. p. 209. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780874550825" title="Special:BookSources/9780874550825"><bdi>9780874550825</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-03-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Mapping+the+Commodore+64+%26+64C&rft.pages=209&rft.pub=COMPUTE%21+Publications&rft.date=1987&rft.isbn=9780874550825&rft.aulast=Leemon&rft.aufirst=Sheldon&rft_id=https%3A%2F%2Farchive.org%2Fstream%2FCompute_s_Mapping_the_64_and_64C%23page%2Fn221%2Fmode%2F2up&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-9"><span class="mw-cite-backlink"><b><a href="#cite_ref-9">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLeemon1987" class="citation book cs1">Leemon, Sheldon (1987). <a rel="nofollow" class="external text" href="https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n83/mode/2up"><i>Mapping the Commodore 64 & 64C</i></a>. COMPUTE! Publications. p. 71. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780874550825" title="Special:BookSources/9780874550825"><bdi>9780874550825</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-03-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Mapping+the+Commodore+64+%26+64C&rft.pages=71&rft.pub=COMPUTE%21+Publications&rft.date=1987&rft.isbn=9780874550825&rft.aulast=Leemon&rft.aufirst=Sheldon&rft_id=https%3A%2F%2Farchive.org%2Fstream%2FCompute_s_Mapping_the_64_and_64C%23page%2Fn83%2Fmode%2F2up&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-10"><span class="mw-cite-backlink"><b><a href="#cite_ref-10">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFLeemon1987" class="citation book cs1">Leemon, Sheldon (1987). <a rel="nofollow" class="external text" href="https://archive.org/stream/Compute_s_Mapping_the_64_and_64C#page/n243/mode/2up"><i>Mapping the Commodore 64 & 64C</i></a>. COMPUTE! Publications. p. 231. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9780874550825" title="Special:BookSources/9780874550825"><bdi>9780874550825</bdi></a><span class="reference-accessdate">. Retrieved <span class="nowrap">2018-03-25</span></span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=Mapping+the+Commodore+64+%26+64C&rft.pages=231&rft.pub=COMPUTE%21+Publications&rft.date=1987&rft.isbn=9780874550825&rft.aulast=Leemon&rft.aufirst=Sheldon&rft_id=https%3A%2F%2Farchive.org%2Fstream%2FCompute_s_Mapping_the_64_and_64C%23page%2Fn243%2Fmode%2F2up&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-11"><span class="mw-cite-backlink"><b><a href="#cite_ref-11">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="https://www.atariarchives.org/c1ba/page007.php">"Compute!'s First Book of Atari"</a>. <i>www.atariarchives.org</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 August</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=www.atariarchives.org&rft.atitle=Compute%21%27s+First+Book+of+Atari&rft_id=https%3A%2F%2Fwww.atariarchives.org%2Fc1ba%2Fpage007.php&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-12"><span class="mw-cite-backlink"><b><a href="#cite_ref-12">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite id="CITEREFScrimshaw2013" class="citation book cs1">Scrimshaw, N. B. (11 November 2013). <a rel="nofollow" class="external text" href="https://books.google.com/books?id=UbvzBwAAQBAJ&pg=PA9"><i>An Introduction to the Commodore 64: Adventures in Programming</i></a>. Birkhäuser. <a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/9781489967879" title="Special:BookSources/9781489967879"><bdi>9781489967879</bdi></a>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=book&rft.btitle=An+Introduction+to+the+Commodore+64%3A+Adventures+in+Programming&rft.pub=Birkh%C3%A4user&rft.date=2013-11-11&rft.isbn=9781489967879&rft.aulast=Scrimshaw&rft.aufirst=N.+B.&rft_id=https%3A%2F%2Fbooks.google.com%2Fbooks%3Fid%3DUbvzBwAAQBAJ%26pg%3DPA9&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-zimmers.net-13"><span class="mw-cite-backlink">^ <a href="#cite_ref-zimmers.net_13-0"><sup><i><b>a</b></i></sup></a> <a href="#cite_ref-zimmers.net_13-1"><sup><i><b>b</b></i></sup></a></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://www.zimmers.net/anonftp/pub/cbm/firmware/README.txt">"BASIC 4.0 Memory Map"</a>. <i>zimmers.net</i><span class="reference-accessdate">. Retrieved <span class="nowrap">21 August</span> 2023</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=zimmers.net&rft.atitle=BASIC+4.0+Memory+Map&rft_id=http%3A%2F%2Fwww.zimmers.net%2Fanonftp%2Fpub%2Fcbm%2Ffirmware%2FREADME.txt&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> <li id="cite_note-14"><span class="mw-cite-backlink"><b><a href="#cite_ref-14">^</a></b></span> <span class="reference-text"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><cite class="citation web cs1"><a rel="nofollow" class="external text" href="http://mikenaberezny.com/2008/10/04/commodore-lcd-firmware/">"Mike Naberezny – Commodore LCD Firmware"</a>. <i>mikenaberezny.com</i><span class="reference-accessdate">. Retrieved <span class="nowrap">8 August</span> 2018</span>.</cite><span title="ctx_ver=Z39.88-2004&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Ajournal&rft.genre=unknown&rft.jtitle=mikenaberezny.com&rft.atitle=Mike+Naberezny+%E2%80%93+Commodore+LCD+Firmware&rft_id=http%3A%2F%2Fmikenaberezny.com%2F2008%2F10%2F04%2Fcommodore-lcd-firmware%2F&rfr_id=info%3Asid%2Fen.wikipedia.org%3ACommodore+BASIC" class="Z3988"></span></span> </li> </ol></div></div> <div class="mw-heading mw-heading2"><h2 id="Sources">Sources</h2><span class="mw-editsection"><span class="mw-editsection-bracket">[</span><a href="/w/index.php?title=Commodore_BASIC&action=edit&section=12" title="Edit section: Sources"><span>edit</span></a><span class="mw-editsection-bracket">]</span></span></div> <style data-mw-deduplicate="TemplateStyles:r1239549316">.mw-parser-output .refbegin{margin-bottom:0.5em}.mw-parser-output .refbegin-hanging-indents>ul{margin-left:0}.mw-parser-output .refbegin-hanging-indents>ul>li{margin-left:0;padding-left:3.2em;text-indent:-3.2em}.mw-parser-output .refbegin-hanging-indents ul,.mw-parser-output .refbegin-hanging-indents ul li{list-style:none}@media(max-width:720px){.mw-parser-output .refbegin-hanging-indents>ul>li{padding-left:1.6em;text-indent:-1.6em}}.mw-parser-output .refbegin-columns{margin-top:0.3em}.mw-parser-output .refbegin-columns ul{margin-top:0}.mw-parser-output .refbegin-columns li{page-break-inside:avoid;break-inside:avoid-column}@media screen{.mw-parser-output .refbegin{font-size:90%}}</style><div class="refbegin" style=""> <ul><li><a rel="nofollow" class="external text" href="http://www.weihenstephan.org/~michaste/pagetable/wait6502/msbasic_timeline.pdf">Commodore/Microsoft Basic version timeline</a></li> <li><a rel="nofollow" class="external text" href="http://www.pagetable.com/?p=43">Bill Gates’ Personal Easter Eggs in 8 Bit BASIC</a>, pagetable.com</li></ul> <dl><dt>BASIC 2.0</dt> <dd></dd></dl> <ul><li>Angerhausen et al. (1983). <i>The Anatomy of the Commodore 64</i> (for the full reference, see the <a href="/wiki/Commodore_64#References" title="Commodore 64">C64</a> article).</li></ul> <dl><dt>BASIC 3.5</dt> <dd></dd></dl> <ul><li>Gerrard, Peter; Bergin, Kevin (1985). <i>The Complete COMMODORE 16 ROM Disassembly</i>. Gerald Duckworth & Co. Ltd. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-7156-2004-5" title="Special:BookSources/0-7156-2004-5">0-7156-2004-5</a>.</li></ul> <dl><dt>BASIC 7.0</dt> <dd></dd></dl> <ul><li>Jarvis, Dennis; Springer, Jim D. (1987). <i>BASIC 7.0 Internals</i>. Grand Rapids, Michigan: Abacus Software, Inc. <link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1238218222"><a href="/wiki/ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a> <a href="/wiki/Special:BookSources/0-916439-71-2" title="Special:BookSources/0-916439-71-2">0-916439-71-2</a>.</li></ul> <dl><dt>BASIC 10.0</dt> <dd></dd></dl> <ul><li><a rel="nofollow" class="external text" href="http://www.zimmers.net/cbmpics/cbm/c65/c65manual.txt">c65manual.txt Commodore 65 preliminary documentation (March 1991), with addendum for ROM version 910501.</a></li></ul> </div> <div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}</style><style data-mw-deduplicate="TemplateStyles:r1236075235">.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}</style></div><div role="navigation" class="navbox" aria-labelledby="Dialects_of_the_BASIC_programming_language_(list)" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><link rel="mw-deduplicated-inline-style" href="mw-data:TemplateStyles:r1129693374"><style data-mw-deduplicate="TemplateStyles:r1239400231">.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}</style><div class="navbar plainlinks hlist navbar-mini"><ul><li class="nv-view"><a href="/wiki/Template:BASIC" title="Template:BASIC"><abbr title="View this template">v</abbr></a></li><li class="nv-talk"><a href="/wiki/Template_talk:BASIC" title="Template talk:BASIC"><abbr title="Discuss this template">t</abbr></a></li><li class="nv-edit"><a href="/wiki/Special:EditPage/Template:BASIC" title="Special:EditPage/Template:BASIC"><abbr title="Edit this template">e</abbr></a></li></ul></div><div id="Dialects_of_the_BASIC_programming_language_(list)" style="font-size:114%;margin:0 4em">Dialects of the <a href="/wiki/BASIC" title="BASIC">BASIC</a> programming language (<a href="/wiki/List_of_BASIC_dialects" title="List of BASIC dialects">list</a>)</div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Classic</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microsoft" title="Microsoft">Microsoft</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Microsoft_BASIC" title="Microsoft BASIC">Microsoft BASIC</a></li> <li>TRS-80 BASICs (<a href="/wiki/Level_I_BASIC" title="Level I BASIC">Level I</a>, <a href="/wiki/TRS-80_Level_II_BASIC" class="mw-redirect" title="TRS-80 Level II BASIC">Level II/III</a>)</li> <li>Thomson <a href="/wiki/Microsoft_Basic_1.0" title="Microsoft Basic 1.0">BASIC 1.0</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Texas_Instruments" title="Texas Instruments">Texas Instruments</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/TI-BASIC" title="TI-BASIC">TI-BASIC (calculators)</a></li> <li><a href="/wiki/TI_Extended_BASIC" class="mw-redirect" title="TI Extended BASIC">TI Extended BASIC</a> (aka XBasic)</li> <li><a href="/wiki/TI-BASIC_83" title="TI-BASIC 83">TI-BASIC 83</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Hewlett-Packard" title="Hewlett-Packard">Hewlett-Packard</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/HP_Time-Shared_BASIC" title="HP Time-Shared BASIC">HP Time-Shared BASIC</a></li> <li><a href="/wiki/Rocky_Mountain_BASIC" title="Rocky Mountain BASIC">Rocky Mountain BASIC</a></li> <li><a href="/wiki/HP_Time-Shared_BASIC" title="HP Time-Shared BASIC">HP Basic</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Locomotive_Software" title="Locomotive Software">Locomotive Software</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Locomotive_BASIC" title="Locomotive BASIC">Locomotive BASIC</a></li> <li><a href="/wiki/Mallard_BASIC" title="Mallard BASIC">Mallard BASIC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Microcomputer" title="Microcomputer">Microcomputers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Atom_BASIC" class="mw-redirect" title="Atom BASIC">Atom BASIC</a></li> <li><a href="/wiki/Integer_BASIC" title="Integer BASIC">Integer BASIC</a></li> <li><a href="/wiki/North_Star_BASIC" title="North Star BASIC">North Star BASIC</a></li> <li><a href="/wiki/SCELBAL" title="SCELBAL">SCELBAL</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Minicomputer" title="Minicomputer">Minicomputers</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BASIC-11" title="BASIC-11">BASIC-11</a></li> <li><a href="/wiki/Business_Basic" title="Business Basic">Business Basic</a> (<a href="/wiki/B32_Business_Basic" title="B32 Business Basic">B32</a>, <a href="/wiki/Data_General_Business_Basic" title="Data General Business Basic">Data General</a>)</li> <li><a href="/wiki/Data_General_Extended_BASIC" title="Data General Extended BASIC">Data General Extended BASIC</a></li> <li><a href="/wiki/Southampton_BASIC_System" title="Southampton BASIC System">Southampton BASIC System</a></li> <li><a href="/wiki/Wang_BASIC" title="Wang BASIC">Wang BASIC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Time-sharing" title="Time-sharing">Time-sharing</a> computers</th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BASIC-PLUS" title="BASIC-PLUS">BASIC-PLUS</a></li> <li><a href="/w/index.php?title=Extra!_Basic_Macro_Language&action=edit&redlink=1" class="new" title="Extra! Basic Macro Language (page does not exist)">Extra! Basic Macro Language</a></li> <li><a href="/wiki/VSI_BASIC_for_OpenVMS" title="VSI BASIC for OpenVMS">VSI BASIC for OpenVMS</a></li> <li><a href="/wiki/SUPER_BASIC" title="SUPER BASIC">SUPER BASIC</a></li> <li><a href="/wiki/CALL/360:BASIC" title="CALL/360:BASIC">CALL/360:BASIC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Other</th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AlphaBasic" title="AlphaBasic">AlphaBasic</a></li> <li><a href="/wiki/Astro_BASIC" class="mw-redirect" title="Astro BASIC">Astro BASIC</a></li> <li><a href="/wiki/BASICODE" title="BASICODE">BASICODE</a></li> <li><a href="/wiki/Business_application_language" title="Business application language">BAL</a></li> <li><a href="/wiki/Casio_BASIC" title="Casio BASIC">Casio BASIC</a></li> <li><a href="/wiki/CBASIC" title="CBASIC">CBASIC</a></li> <li><a href="/wiki/PBASIC" title="PBASIC">PBASIC</a></li> <li><a href="/wiki/SDS_BASIC" title="SDS BASIC">SDS BASIC</a></li> <li><a href="/wiki/Tiny_BASIC" title="Tiny BASIC">Tiny BASIC</a></li> <li><a href="/wiki/UBASIC" title="UBASIC">UBASIC</a></li> <li><a href="/wiki/ZBasic" title="ZBasic">ZBasic</a></li> <li><a href="/w/index.php?title=ETBASIC&action=edit&redlink=1" class="new" title="ETBASIC (page does not exist)">ETBASIC</a><span class="noprint" style="font-size:85%; font-style: normal;"> [<a href="https://zh.wikipedia.org/wiki/ETBASIC" class="extiw" title="zh:ETBASIC">zh</a>]</span></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/BASIC_extension" title="BASIC extension">Extenders</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/BASIC_8" title="BASIC 8">BASIC 8</a></li> <li>Graphics BASIC</li> <li><a href="/wiki/Simons%27_BASIC" title="Simons' BASIC">Simons' BASIC</a></li> <li><a href="/wiki/Super_Expander" title="Super Expander">Super Expander</a></li> <li><a href="/wiki/Super_Expander_64" title="Super Expander 64">Super Expander 64</a></li> <li><a href="/wiki/YS_MegaBasic" title="YS MegaBasic">YS MegaBasic</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Procedural_programming" title="Procedural programming">Procedure</a>-<br />oriented</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AmigaBASIC" class="mw-redirect" title="AmigaBASIC">AmigaBASIC</a></li> <li><a href="/wiki/AMOS_(programming_language)" title="AMOS (programming language)">AMOS BASIC</a></li> <li><a href="/wiki/ASIC_programming_language" title="ASIC programming language">ASIC</a></li> <li><a href="/wiki/BasicX" title="BasicX">BasicX</a></li> <li><a href="/wiki/Beta_BASIC" title="Beta BASIC">Beta BASIC</a></li> <li><a href="/wiki/FutureBASIC" title="FutureBASIC">FutureBASIC</a></li> <li><a href="/wiki/GRASS_(programming_language)" title="GRASS (programming language)">GRASS</a></li> <li><a href="/wiki/Liberty_BASIC" title="Liberty BASIC">Liberty BASIC</a></li> <li><a href="/wiki/LSE_(programming_language)" title="LSE (programming language)">LSE</a></li> <li><a href="/wiki/MapBasic" title="MapBasic">MapBasic</a></li> <li><a href="/wiki/Mobile_BASIC" title="Mobile BASIC">Mobile BASIC</a></li> <li><a href="/wiki/OWBasic" title="OWBasic">OWBasic</a></li> <li><a href="/wiki/PowerBASIC" title="PowerBASIC">PowerBASIC</a></li> <li><a href="/wiki/PureBasic" title="PureBasic">PureBasic</a></li> <li><a href="/wiki/Petit_Computer" title="Petit Computer">SmileBASIC</a></li> <li><a href="/wiki/Tiger-BASIC" title="Tiger-BASIC">Tiger-BASIC</a></li> <li><a href="/wiki/True_BASIC" title="True BASIC">True BASIC</a></li> <li><a href="/wiki/Turbo_Basic" class="mw-redirect" title="Turbo Basic">Turbo Basic</a></li> <li><a href="/wiki/WordBASIC" title="WordBASIC">WordBASIC</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Free_and_open_source" class="mw-redirect" title="Free and open source">Free and<br />open source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Basic-256" title="Basic-256">Basic-256</a></li> <li><a href="/wiki/Basic4GL" title="Basic4GL">Basic4GL</a></li> <li><a href="/wiki/BBC_BASIC#Acorn_Archimedes_(RISC_OS)" title="BBC BASIC">BBC BASIC V</a></li> <li><a href="/wiki/The_Game_Creators" title="The Game Creators">DarkBASIC</a></li> <li><a href="/wiki/Euphoria_(programming_language)" title="Euphoria (programming language)">Euphoria</a></li> <li><a href="/wiki/Hindawi_Programming_System" title="Hindawi Programming System">Indic BASIC</a></li> <li><a href="/wiki/Open_Programming_Language" title="Open Programming Language">Open Programming Language</a></li> <li><a href="/wiki/SdlBasic" title="SdlBasic">SdlBasic</a></li> <li><a href="/wiki/SmallBASIC" title="SmallBASIC">SmallBASIC</a></li> <li><a href="/wiki/QB64" title="QB64">QB64</a></li> <li><a href="/wiki/WxBasic" title="WxBasic">wxBasic</a></li> <li><a href="/wiki/XBasic" title="XBasic">XBasic</a></li> <li><a href="/wiki/XBLite" title="XBLite">Xblite</a></li> <li><a href="/wiki/Yabasic" title="Yabasic">Yabasic</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">With <a href="/wiki/Object-oriented_programming" title="Object-oriented programming">object</a><br />extensions</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/AutoIt" title="AutoIt">AutoIt</a></li> <li><a href="/wiki/Chipmunk_Basic" title="Chipmunk Basic">Chipmunk Basic</a></li> <li><a href="/wiki/GLBasic" title="GLBasic">GLBasic</a></li> <li><a href="/wiki/LotusScript" title="LotusScript">LotusScript</a></li> <li><a href="/wiki/Morfik" title="Morfik">Morfik</a></li> <li><a href="/wiki/PowerBASIC" title="PowerBASIC">PowerBASIC</a></li> <li>ProvideX</li> <li>Run BASIC</li> <li><a href="/wiki/Visual_Basic_for_Applications" title="Visual Basic for Applications">VBA</a></li> <li><a href="/wiki/VBScript" title="VBScript">VBScript</a></li> <li>VB 5 for <a href="/wiki/Microsoft_Excel" title="Microsoft Excel">Microsoft Excel</a> 5.0 <ul><li><a href="/wiki/Visual_Studio_Tools_for_Office" title="Visual Studio Tools for Office">VSTO</a></li> <li><a href="/wiki/Visual_Studio_Tools_for_Applications" title="Visual Studio Tools for Applications">VSTA</a></li></ul></li> <li><a href="/wiki/Embedded_Visual_Basic" title="Embedded Visual Basic">Embedded Visual Basic</a></li> <li>WinWrap Basic</li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Free_and_open_source" class="mw-redirect" title="Free and open source">Free and<br />open source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Blitz_BASIC" title="Blitz BASIC">BlitzMax</a></li> <li><a href="/wiki/FreeBASIC" title="FreeBASIC">FreeBASIC</a></li> <li><a href="/wiki/Microsoft_Small_Basic" title="Microsoft Small Basic">Microsoft Small Basic</a></li> <li><a href="/wiki/Mono_(software)" title="Mono (software)">Mono-Basic</a></li> <li><a href="/wiki/OpenOffice_Basic" title="OpenOffice Basic">OpenOffice Basic</a></li> <li>ScriptBasic</li> <li><a href="/wiki/Roslyn_(compiler)" title="Roslyn (compiler)">Roslyn</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Rapid_application_development" title="Rapid application development">RAD</a><br /><a href="/wiki/GUI_designer" class="mw-redirect" title="GUI designer">designers</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"></div><table class="nowraplinks navbox-subgroup" style="border-spacing:0"><tbody><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Proprietary_software" title="Proprietary software">Proprietary</a></th><td class="navbox-list-with-group navbox-list navbox-even" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/CA-Realizer" title="CA-Realizer">CA-Realizer</a></li> <li><a href="/wiki/Visual_Basic_(classic)" title="Visual Basic (classic)">Visual Basic (classic)</a></li> <li><a href="/wiki/NS_Basic" title="NS Basic">NS Basic</a></li> <li><a href="/wiki/RapidQ" title="RapidQ">RapidQ</a></li> <li><a href="/wiki/Visual_Basic_(.NET)" title="Visual Basic (.NET)">Visual Basic .NET</a> (<a href="/wiki/Mercury_(RemObjects_BASIC_programming_language)" title="Mercury (RemObjects BASIC programming language)">Mercury</a>)</li> <li><a href="/wiki/Xojo" title="Xojo">Xojo</a></li></ul> </div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="/wiki/Free_and_open_source" class="mw-redirect" title="Free and open source">Free and<br />open source</a></th><td class="navbox-list-with-group navbox-list navbox-odd" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li>B4X (<a href="/wiki/Basic4android" title="Basic4android">Basic4android</a>, <a href="/wiki/Basic4ppc" title="Basic4ppc">Basic4ppc</a>)</li> <li><a href="/wiki/Gambas" title="Gambas">Gambas</a></li> <li><a href="/wiki/FreeBASIC" title="FreeBASIC">WinFBE, Visual FB Editor</a></li></ul> </div></td></tr></tbody></table><div></div></td></tr></tbody></table><div></div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Defunct</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em"> <ul><li><a href="/wiki/Altair_BASIC" title="Altair BASIC">Altair BASIC</a></li> <li><a href="/wiki/Applesoft_BASIC" title="Applesoft BASIC">Applesoft BASIC</a></li> <li><a href="/wiki/Atari_BASIC" title="Atari BASIC">Atari BASIC</a></li> <li><a href="/wiki/Atari_Microsoft_BASIC" title="Atari Microsoft BASIC">Atari Microsoft BASIC</a></li> <li><a href="/wiki/Atari_ST_BASIC" title="Atari ST BASIC">Atari ST BASIC</a></li> <li><a href="/wiki/BASIC_A%2B" title="BASIC A+">BASIC A+</a></li> <li><a href="/wiki/Optimized_Systems_Software#BASIC_XE" title="Optimized Systems Software">BASIC XE</a></li> <li><a href="/wiki/Optimized_Systems_Software#BASIC_XL" title="Optimized Systems Software">BASIC XL</a></li> <li><a href="/wiki/BASIC_Programming" title="BASIC Programming"><i>BASIC Programming</i> (Atari 2600)</a></li> <li><a href="/wiki/BBC_BASIC" title="BBC BASIC">BBC BASIC</a></li> <li><a href="/wiki/Benton_Harbor_BASIC" title="Benton Harbor BASIC">Benton Harbor BASIC</a></li> <li><a href="/wiki/Chinese_BASIC" title="Chinese BASIC">Chinese BASIC</a></li> <li><a class="mw-selflink selflink">Commodore BASIC</a></li> <li><a href="/wiki/Color_BASIC" title="Color BASIC">Color BASIC</a></li> <li><a href="/wiki/Dartmouth_BASIC" title="Dartmouth BASIC">Dartmouth BASIC</a></li> <li><a href="/wiki/Disk_Extended_Color_BASIC" title="Disk Extended Color BASIC">Disk Extended Color BASIC</a></li> <li><a href="/wiki/Extended_Color_BASIC" title="Extended Color BASIC">Extended Color BASIC</a></li> <li><a href="/wiki/Family_BASIC" title="Family BASIC">Family BASIC</a></li> <li><a href="/wiki/GFA_BASIC" title="GFA BASIC">GFA BASIC</a></li> <li><a href="/wiki/GW-BASIC" title="GW-BASIC">GW-BASIC</a></li> <li><a href="/wiki/IBM_BASIC" title="IBM BASIC">IBM BASIC</a></li> <li><a href="/wiki/JR-BASIC" title="JR-BASIC">JR-BASIC</a></li> <li><a href="/wiki/MacBASIC" title="MacBASIC">MacBASIC</a></li> <li><a href="/wiki/MBASIC" title="MBASIC">MBASIC</a></li> <li><a href="/wiki/MSX_BASIC" title="MSX BASIC">MSX BASIC</a></li> <li><a href="/wiki/MS_BASIC_for_Macintosh" title="MS BASIC for Macintosh">MS BASIC for Macintosh</a></li> <li><a href="/wiki/QBasic" title="QBasic">QBasic</a></li> <li><a href="/wiki/QuickBASIC" title="QuickBASIC">QuickBASIC</a></li> <li><a href="/wiki/S-BASIC" title="S-BASIC">S-BASIC</a></li> <li><a href="/wiki/Sinclair_BASIC" title="Sinclair BASIC">Sinclair BASIC</a></li> <li><a href="/wiki/STOS_BASIC" title="STOS BASIC">STOS BASIC</a></li> <li><a href="/wiki/SuperBASIC" title="SuperBASIC">SuperBASIC</a></li> <li><a href="/wiki/TI_BASIC_(TI_99/4A)" title="TI BASIC (TI 99/4A)">TI BASIC (TI 99/4A)</a></li> <li><a href="/wiki/Turbo-BASIC_XL" title="Turbo-BASIC XL">Turbo-BASIC XL</a></li> <li><a href="/wiki/Vilnius_BASIC" title="Vilnius BASIC">Vilnius BASIC</a></li></ul> </div></td></tr></tbody></table></div> <!-- NewPP limit report Parsed by mw‐web.eqiad.main‐5dc468848‐tkzlt Cached time: 20241122141114 Cache expiry: 726541 Reduced expiry: true Complications: [vary‐revision‐sha1, show‐toc] CPU time usage: 0.724 seconds Real time usage: 1.433 seconds Preprocessor visited node count: 6149/1000000 Post‐expand include size: 134087/2097152 bytes Template argument size: 15447/2097152 bytes Highest expansion depth: 22/100 Expensive parser function count: 29/500 Unstrip recursion depth: 1/20 Unstrip post‐expand size: 88542/5000000 bytes Lua time usage: 0.361/10.000 seconds Lua memory usage: 6534483/52428800 bytes Number of Wikibase entities loaded: 1/400 --> <!-- Transclusion expansion time report (%,ms,calls,template) 100.00% 1314.736 1 -total 43.79% 575.710 21 Template:Code 14.72% 193.566 1 Template:Reflist 11.21% 147.332 5 Template:Navbox 9.30% 122.294 1 Template:BASIC 9.18% 120.704 7 Template:Cite_web 7.70% 101.276 2 Template:Infobox 6.98% 91.819 1 Template:Multiple_issues 6.19% 81.383 1 Template:Short_description 5.66% 74.422 1 Template:Infobox_programming_language --> <!-- Saved in parser cache with key enwiki:pcache:idhash:318597-0!canonical and timestamp 20241122141114 and revision id 1239873261. Rendering was triggered because: page-view --> </div><!--esi <esi:include src="/esitest-fa8a495983347898/content" /> --><noscript><img src="https://login.wikimedia.org/wiki/Special:CentralAutoLogin/start?type=1x1" alt="" width="1" height="1" style="border: none; position: absolute;"></noscript> <div class="printfooter" data-nosnippet="">Retrieved from "<a dir="ltr" href="https://en.wikipedia.org/w/index.php?title=Commodore_BASIC&oldid=1239873261">https://en.wikipedia.org/w/index.php?title=Commodore_BASIC&oldid=1239873261</a>"</div></div> <div id="catlinks" class="catlinks" data-mw="interface"><div id="mw-normal-catlinks" class="mw-normal-catlinks"><a href="/wiki/Help:Category" title="Help:Category">Categories</a>: <ul><li><a href="/wiki/Category:CBM_software" title="Category:CBM software">CBM software</a></li><li><a href="/wiki/Category:Commodore_64_software" title="Category:Commodore 64 software">Commodore 64 software</a></li><li><a href="/wiki/Category:VIC-20_software" title="Category:VIC-20 software">VIC-20 software</a></li><li><a href="/wiki/Category:Discontinued_Microsoft_BASICs" title="Category:Discontinued Microsoft BASICs">Discontinued Microsoft BASICs</a></li><li><a href="/wiki/Category:BASIC_interpreters" title="Category:BASIC interpreters">BASIC interpreters</a></li><li><a href="/wiki/Category:BASIC_programming_language_family" title="Category:BASIC programming language family">BASIC programming language family</a></li><li><a href="/wiki/Category:Microsoft_programming_languages" title="Category:Microsoft programming languages">Microsoft programming languages</a></li><li><a href="/wiki/Category:Programming_languages_created_in_1977" title="Category:Programming languages created in 1977">Programming languages created in 1977</a></li></ul></div><div id="mw-hidden-catlinks" class="mw-hidden-catlinks mw-hidden-cats-hidden">Hidden categories: <ul><li><a href="/wiki/Category:Webarchive_template_wayback_links" title="Category:Webarchive template wayback links">Webarchive template wayback links</a></li><li><a href="/wiki/Category:Articles_with_short_description" title="Category:Articles with short description">Articles with short description</a></li><li><a href="/wiki/Category:Short_description_is_different_from_Wikidata" title="Category:Short description is different from Wikidata">Short description is different from Wikidata</a></li><li><a href="/wiki/Category:Articles_needing_additional_references_from_August_2011" title="Category:Articles needing additional references from August 2011">Articles needing additional references from August 2011</a></li><li><a href="/wiki/Category:All_articles_needing_additional_references" title="Category:All articles needing additional references">All articles needing additional references</a></li><li><a href="/wiki/Category:Articles_that_may_contain_original_research_from_July_2013" title="Category:Articles that may contain original research from July 2013">Articles that may contain original research from July 2013</a></li><li><a href="/wiki/Category:All_articles_that_may_contain_original_research" title="Category:All articles that may contain original research">All articles that may contain original research</a></li><li><a href="/wiki/Category:Articles_with_multiple_maintenance_issues" title="Category:Articles with multiple maintenance issues">Articles with multiple maintenance issues</a></li><li><a href="/wiki/Category:All_articles_with_unsourced_statements" title="Category:All articles with unsourced statements">All articles with unsourced statements</a></li><li><a href="/wiki/Category:Articles_with_unsourced_statements_from_March_2018" title="Category:Articles with unsourced statements from March 2018">Articles with unsourced statements from March 2018</a></li><li><a href="/wiki/Category:All_articles_with_specifically_marked_weasel-worded_phrases" title="Category:All articles with specifically marked weasel-worded phrases">All articles with specifically marked weasel-worded phrases</a></li><li><a href="/wiki/Category:Articles_with_specifically_marked_weasel-worded_phrases_from_September_2023" title="Category:Articles with specifically marked weasel-worded phrases from September 2023">Articles with specifically marked weasel-worded phrases from September 2023</a></li></ul></div></div> </div> </main> </div> <div class="mw-footer-container"> <footer id="footer" class="mw-footer" > <ul id="footer-info"> <li id="footer-info-lastmod"> This page was last edited on 12 August 2024, at 03:10<span class="anonymous-show"> (UTC)</span>.</li> <li id="footer-info-copyright">Text is available under the <a href="/wiki/Wikipedia:Text_of_the_Creative_Commons_Attribution-ShareAlike_4.0_International_License" title="Wikipedia:Text of the Creative Commons Attribution-ShareAlike 4.0 International License">Creative Commons Attribution-ShareAlike 4.0 License</a>; additional terms may apply. By using this site, you agree to the <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Terms_of_Use" class="extiw" title="foundation:Special:MyLanguage/Policy:Terms of Use">Terms of Use</a> and <a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy" class="extiw" title="foundation:Special:MyLanguage/Policy:Privacy policy">Privacy Policy</a>. Wikipedia® is a registered trademark of the <a rel="nofollow" class="external text" href="https://wikimediafoundation.org/">Wikimedia Foundation, Inc.</a>, a non-profit organization.</li> </ul> <ul id="footer-places"> <li id="footer-places-privacy"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Privacy_policy">Privacy policy</a></li> <li id="footer-places-about"><a href="/wiki/Wikipedia:About">About Wikipedia</a></li> <li id="footer-places-disclaimers"><a href="/wiki/Wikipedia:General_disclaimer">Disclaimers</a></li> <li id="footer-places-contact"><a href="//en.wikipedia.org/wiki/Wikipedia:Contact_us">Contact Wikipedia</a></li> <li id="footer-places-wm-codeofconduct"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Universal_Code_of_Conduct">Code of Conduct</a></li> <li id="footer-places-developers"><a href="https://developer.wikimedia.org">Developers</a></li> <li id="footer-places-statslink"><a href="https://stats.wikimedia.org/#/en.wikipedia.org">Statistics</a></li> <li id="footer-places-cookiestatement"><a href="https://foundation.wikimedia.org/wiki/Special:MyLanguage/Policy:Cookie_statement">Cookie statement</a></li> <li id="footer-places-mobileview"><a href="//en.m.wikipedia.org/w/index.php?title=Commodore_BASIC&mobileaction=toggle_view_mobile" class="noprint stopMobileRedirectToggle">Mobile view</a></li> </ul> <ul id="footer-icons" class="noprint"> <li id="footer-copyrightico"><a href="https://wikimediafoundation.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/static/images/footer/wikimedia-button.svg" width="84" height="29" alt="Wikimedia Foundation" loading="lazy"></a></li> <li id="footer-poweredbyico"><a href="https://www.mediawiki.org/" class="cdx-button cdx-button--fake-button cdx-button--size-large cdx-button--fake-button--enabled"><img src="/w/resources/assets/poweredby_mediawiki.svg" alt="Powered by MediaWiki" width="88" height="31" loading="lazy"></a></li> </ul> </footer> </div> </div> </div> <div class="vector-settings" id="p-dock-bottom"> <ul></ul> </div><script>(RLQ=window.RLQ||[]).push(function(){mw.config.set({"wgHostname":"mw-web.codfw.main-f69cdc8f6-6vrgq","wgBackendResponseTime":150,"wgPageParseReport":{"limitreport":{"cputime":"0.724","walltime":"1.433","ppvisitednodes":{"value":6149,"limit":1000000},"postexpandincludesize":{"value":134087,"limit":2097152},"templateargumentsize":{"value":15447,"limit":2097152},"expansiondepth":{"value":22,"limit":100},"expensivefunctioncount":{"value":29,"limit":500},"unstrip-depth":{"value":1,"limit":20},"unstrip-size":{"value":88542,"limit":5000000},"entityaccesscount":{"value":1,"limit":400},"timingprofile":["100.00% 1314.736 1 -total"," 43.79% 575.710 21 Template:Code"," 14.72% 193.566 1 Template:Reflist"," 11.21% 147.332 5 Template:Navbox"," 9.30% 122.294 1 Template:BASIC"," 9.18% 120.704 7 Template:Cite_web"," 7.70% 101.276 2 Template:Infobox"," 6.98% 91.819 1 Template:Multiple_issues"," 6.19% 81.383 1 Template:Short_description"," 5.66% 74.422 1 Template:Infobox_programming_language"]},"scribunto":{"limitreport-timeusage":{"value":"0.361","limit":"10.000"},"limitreport-memusage":{"value":6534483,"limit":52428800}},"cachereport":{"origin":"mw-web.eqiad.main-5dc468848-tkzlt","timestamp":"20241122141114","ttl":726541,"transientcontent":true}}});});</script> <script type="application/ld+json">{"@context":"https:\/\/schema.org","@type":"Article","name":"Commodore BASIC","url":"https:\/\/en.wikipedia.org\/wiki\/Commodore_BASIC","sameAs":"http:\/\/www.wikidata.org\/entity\/Q337272","mainEntity":"http:\/\/www.wikidata.org\/entity\/Q337272","author":{"@type":"Organization","name":"Contributors to Wikimedia projects"},"publisher":{"@type":"Organization","name":"Wikimedia Foundation, Inc.","logo":{"@type":"ImageObject","url":"https:\/\/www.wikimedia.org\/static\/images\/wmf-hor-googpub.png"}},"datePublished":"2003-09-14T21:12:11Z","dateModified":"2024-08-12T03:10:07Z","headline":"BASIC programming language"}</script> </body> </html>