<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=BASIC_Programming</id>
	<title>BASIC Programming - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.sarg.dev/index.php?action=history&amp;feed=atom&amp;title=BASIC_Programming"/>
	<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=BASIC_Programming&amp;action=history"/>
	<updated>2026-10-18T11:11:18Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.44.2</generator>
	<entry>
		<id>https://wiki.sarg.dev/index.php?title=BASIC_Programming&amp;diff=124795&amp;oldid=prev</id>
		<title>imported&gt;Krótki: Added details to &quot;Halcyon Days&quot; citation template.</title>
		<link rel="alternate" type="text/html" href="https://wiki.sarg.dev/index.php?title=BASIC_Programming&amp;diff=124795&amp;oldid=prev"/>
		<updated>2025-09-15T11:16:16Z</updated>

		<summary type="html">&lt;p&gt;Added details to &amp;quot;Halcyon Days&amp;quot; citation template.&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{About|the Atari 2600 cartridge|programming in other BASIC dialects|BASIC|other uses|Basic programming (disambiguation){{!}}Basic programming}}&lt;br /&gt;
{{more citations needed|date=October 2017}}&lt;br /&gt;
{{Use dmy dates|date=July 2017}}&lt;br /&gt;
{{Infobox video game&lt;br /&gt;
|title        = BASIC Programming&lt;br /&gt;
|image        = BASIC Programming Cover Art.jpg&lt;br /&gt;
|developer    = [[Atari, Inc.]]&lt;br /&gt;
|publisher    = Atari, Inc.&lt;br /&gt;
|designer     = [[Warren Robinett]]&amp;lt;ref&amp;gt;{{cite book |last=Hague |first=James | date=March 1997 |title=Halcyon Days: Interviews with Classic Computer and Video Game Programmers |title-link=Halcyon Days (book) |chapter=Warren Robinett |access-date=September 15, 2025 |chapter-url=https://dadgum.com/halcyon/BOOK/ROBINETT.HTM |quote=How long did it take to write?...I had &amp;#039;&amp;#039;Adventure&amp;#039;&amp;#039; sort of done in the fall of 1978, but I wasn&amp;#039;t satisfied. I sort of put it on the shelf for the next six months while I did the &amp;#039;&amp;#039;BASIC Programming&amp;#039;&amp;#039; cartridge, and finished them both simultaneously, in June 1979.}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|released     = April 1980&amp;lt;ref&amp;gt;{{cite web |title=Atari VCS game release dates |url=https://www.atariarchive.org/atari-vcs-game-release-dates/ |website=Atari Archive}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
|platforms    = [[Atari 2600]]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;BASIC Programming&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; is an Atari Video Computer System (later called the [[Atari 2600]]) cartridge that teaches simple computer programming using a dialect of [[BASIC]]. Written by [[Warren Robinett]] and released by [[Atari, Inc.]] in 1980, this [[BASIC interpreter]] is one of a few non-game cartridges for the console. The Atari VCS&amp;#039;s [[Random-access memory|RAM]] size of 128 bytes restricts the possibilities for writing programs.&lt;br /&gt;
&lt;br /&gt;
==Details==&lt;br /&gt;
[[File:Basicprogramming.png|thumb|upright=2|Main display]]&lt;br /&gt;
&lt;br /&gt;
The &amp;#039;&amp;#039;BASIC Programming&amp;#039;&amp;#039; display is divided into six regions:&lt;br /&gt;
&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Program&amp;#039;&amp;#039;&amp;#039; is where instructions are typed. It has a maximum of eleven lines of code.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Call stack|Stack]]&amp;#039;&amp;#039;&amp;#039; shows temporary results of what the program does. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;[[Variable (computer science)|Variables]]&amp;#039;&amp;#039;&amp;#039; stores the values of any variables that the program is using. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Output&amp;#039;&amp;#039;&amp;#039; displays any output values that the program creates. &lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Status&amp;#039;&amp;#039;&amp;#039; shows the amount of available memory remaining.&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;Graphics&amp;#039;&amp;#039;&amp;#039; contains two colored squares that can be manipulated by the program.&lt;br /&gt;
&lt;br /&gt;
Input is given through two Atari keypad controllers, which came with special overlays to show how to type the different commands and letters.&amp;lt;ref&amp;gt;[https://atariage.com/controller_page.html?ControllerID=4&amp;amp;SystemID=2600 Controllers - Atari Keypad], {{Webarchive|url=https://web.archive.org/web/20150615042830/https://atariage.com/controller_page.html?ControllerID=4&amp;amp;SystemID=2600 |date=15 June 2015 }} Atari KeypadSystem: Atari 2600, Model Number: CX50, &amp;#039;&amp;#039;Sold in pairs, functionally identical to the Kid&amp;#039;s Controller and the Video Touch Pad. Included overlays with commands, meant to be used with Basic Programming.&amp;#039;&amp;#039;&amp;lt;/ref&amp;gt;  Programs are restricted to 64 characters in size and normally 9 lines of code, limiting the programs that can be written (users can disable all windows except Program and keep selecting &amp;quot;New Line&amp;quot; until 11 lines of code are present).&lt;br /&gt;
&lt;br /&gt;
===Language features===&lt;br /&gt;
&lt;br /&gt;
VCS BASIC supports the following keywords:&amp;lt;ref&amp;gt;{{cite book|title=BASIC Programming: Atari Game Program Instructions|date=1979|publisher=Atari, Inc.|location=Sunnyvale, CA}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* Statements: &amp;lt;code&amp;gt;Print&amp;lt;/code&amp;gt;&lt;br /&gt;
* Structure: &amp;lt;code&amp;gt;Goto&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;If-Then-Else&amp;lt;/code&amp;gt;&lt;br /&gt;
* Graphics: &amp;lt;code&amp;gt;Clear&amp;lt;/code&amp;gt;&lt;br /&gt;
* Functions: &amp;lt;code&amp;gt;Hit&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Key&amp;lt;/code&amp;gt;&lt;br /&gt;
* Math: &amp;lt;code&amp;gt;+ - × ÷ Mod&amp;lt;/code&amp;gt;&lt;br /&gt;
* Relational operators: &amp;lt;code&amp;gt;&amp;lt; &amp;gt; =&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Unlike most BASIC implementations of the time:&lt;br /&gt;
* VCS BASIC uses ← instead of = for assignment; e.g., &amp;lt;code&amp;gt;A←A+1&amp;lt;/code&amp;gt;.&lt;br /&gt;
* Statements can be strung together on a line without a delimiter; e.g., &amp;lt;code&amp;gt;Note←APrintA&amp;lt;/code&amp;gt;.&lt;br /&gt;
* An &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; statement can be used as a function, returning a value: &amp;lt;code&amp;gt;{{codett|2=cbmbas|Ver1←Ver1+IfVer1}}[[Modulo operation|Mod]]2{{codett|2=cbmbas|Then8}}{{codett|2=monkey|Else}}92&amp;lt;/code&amp;gt;&lt;br /&gt;
* &amp;lt;code&amp;gt;If&amp;lt;/code&amp;gt; statements can take an &amp;lt;code&amp;gt;Else&amp;lt;/code&amp;gt; clause.&lt;br /&gt;
&lt;br /&gt;
Special variable names:&lt;br /&gt;
* &amp;lt;code&amp;gt;Note&amp;lt;/code&amp;gt; sounds a musical note, assigned numbers from 0 to 7&lt;br /&gt;
** Numbers assigned to &amp;lt;code&amp;gt;Note&amp;lt;/code&amp;gt; are implicitly assigned modulus 8, thus 8 becomes 0, 9 becomes 1, etc.&lt;br /&gt;
* &amp;lt;code&amp;gt;Hor1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Hor2&amp;lt;/code&amp;gt; - the horizontal coordinate of one of two squares&lt;br /&gt;
* &amp;lt;code&amp;gt;Ver1&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;Ver2&amp;lt;/code&amp;gt; - the vertical coordinate of one of two squares&lt;br /&gt;
&lt;br /&gt;
The language supports 26 unsigned integer variables A to Z. VCS BASIC supports integers from 0 to 99. Math operations wrap, so 99+1 becomes 0, 99+2 becomes 1, etc.&lt;br /&gt;
&lt;br /&gt;
====Sample code====&lt;br /&gt;
The following example of a &amp;#039;&amp;#039;[[Pong]]&amp;#039;&amp;#039; game is provided.&lt;br /&gt;
{{pre|&lt;br /&gt;
1 Hor2←2+Key&lt;br /&gt;
2 {{codett|2=cbmbas|IfVer1&amp;gt;90ThenVer1←88}}&lt;br /&gt;
3 {{codett|2=cbmbas|IfHit}}{{codett|2=cbmbas|ThenVer1←9}}&lt;br /&gt;
4 {{codett|2=cbmbas|Ver1←Ver1+IfVer1}}[[Modulo operation|Mod]]2{{codett|2=cbmbas|Then8}}{{codett|2=monkey|Else}}92&lt;br /&gt;
5 Hor1←Hor1+7&lt;br /&gt;
6 {{codett|2=cbmbas|Goto1}}&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Video games}}&lt;br /&gt;
*[[List of Atari 2600 games]]&lt;br /&gt;
* [[CompuMate|Spectravideo CompuMate]]&lt;br /&gt;
* [[Family BASIC]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* {{webarchive |url=https://web.archive.org/web/20040123023347/http://www.mindspring.com/~sidartha/Basic%20and%20Compumate%20Programming.htm |date=23 January 2004 |title=Compumate FAQ:BASIC PROGRAMME EXAMPLES FOR ATARI 2600 (BASIC PROGRAMMING &amp;amp; CompuMate)}}&lt;br /&gt;
&lt;br /&gt;
{{BASIC}}&lt;br /&gt;
&lt;br /&gt;
[[Category:1980 software]]&lt;br /&gt;
[[Category:Atari 2600]]&lt;br /&gt;
[[Category:BASIC interpreters]]&lt;br /&gt;
[[Category:BASIC programming language family]]&lt;br /&gt;
[[Category:Discontinued BASICs]]&lt;br /&gt;
[[Category:Video game development software]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Krótki</name></author>
	</entry>
</feed>