Content deleted Content added
(140 intermediate revisions by 82 users not shown) | |||
Line 1:
{{About|the Atari 2600 cartridge|programming in other BASIC dialects|BASIC|other uses|Basic programming (disambiguation){{!}}Basic programming}}
{{more citations needed|date=October 2017}}
{{Use dmy dates|date=July 2017}}
{{Infobox video game
|title = BASIC Programming
|image = BASIC Programming Cover Art.jpg
|developer = [[Atari, Inc.]]
|publisher = Atari, Inc.
|designer = [[Warren Robinett]]<ref>[https://dadgum.com/halcyon/BOOK/ROBINETT.HTM Interview:Warren Robinett], By James Hague, ''Halcyon Days'', "How long did it take to write?...I had ''Adventure'' sort of done in the fall of 1978, but I wasn't satisfied. I sort of put it on the shelf for the next six months while I did the ''BASIC Programming'' cartridge, and finished them both simultaneously, in June 1979."</ref>
|released = {{vgrelease|NA|April 1980<ref>{{cite web |title=Atari VCS game release dates |url=https://www.atariarchive.org/atari-vcs-game-release-dates/ |website=Atari Archive}}</ref>}}
|platforms = [[Atari 2600]]
}}
'''''BASIC Programming''''' 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's [[Random-access memory|RAM]] size of 128 bytes restricts the possibilities for writing programs.
==Details==
[[File:Basicprogramming.png|thumb|upright=2|Main display]]
The ''BASIC Programming'' display is divided into six regions:
*"Program" - where instructions are written (maximum of nine lines of code).▼
*"Stack" - shows temporary results of what your program does. ▼
*"Variables" - displays the values of any variables your program is using. ▼
*"Output" - displays any output values your program is creating. ▼
*"Status" - displays the amount of available memory remaining▼
*"Graphics" - contains two colored squares that can be manipulated by your program.▼
▲*
▲*
▲*
Input is given through two Atari keypad controllers, which came with special overlays to show how to type the different commands and letters.<ref>[https://atariage.com/controller_page.html?ControllerID=4&SystemID=2600 Controllers - Atari Keypad], {{Webarchive|url=https://web.archive.org/web/20150615042830/https://atariage.com/controller_page.html?ControllerID=4&SystemID=2600 |date=15 June 2015 }} Atari KeypadSystem: Atari 2600, Model Number: CX50, ''Sold in pairs, functionally identical to the Kid's Controller and the Video Touch Pad. Included overlays with commands, meant to be used with Basic Programming.''</ref> 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 "New Line" until 11 lines of code are present).
===Language features===
VCS BASIC supports the following keywords:<ref>{{cite book|title=BASIC Programming: Atari Game Program Instructions|date=1979|publisher=Atari, Inc.|___location=Sunnyvale, CA}}</ref>
* Statements: <code>Print</code>
* Structure: <code>Goto</code>, <code>If-Then-Else</code>
* Graphics: <code>Clear</code>
* Functions: <code>Hit</code>, <code>Key</code>
* Math: <code>+ - × ÷ Mod</code>
* Relational operators: <code>< > =</code>
Unlike most BASIC implementations of the time:
* VCS BASIC uses ← instead of = for assignment; e.g., <code>A←A+1</code>.
* Statements can be strung together on a line without a delimiter; e.g., <code>Note←APrintA</code>.
* An <code>If</code> statement can be used as a function, returning a value: <code>{{codett|2=cbmbas|Ver1←Ver1+IfVer1}}[[Modulo operation|Mod]]2{{codett|2=cbmbas|Then8}}{{codett|2=monkey|Else}}92</code>
* <code>If</code> statements can take an <code>Else</code> clause.
Special variable names:
* <code>Note</code> sounds a musical note, assigned numbers from 0 to 7
** Numbers assigned to <code>Note</code> are implicitly assigned modulus 8, thus 8 becomes 0, 9 becomes 1, etc.
* <code>Hor1</code>, <code>Hor2</code> - the horizontal coordinate of one of two squares
* <code>Ver1</code>, <code>Ver2</code> - the vertical coordinate of one of two squares
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.
====Sample code====
The following example of a ''[[Pong]]'' game is provided.
{{pre|
1 Hor2←2+Key
2 {{codett|2=cbmbas|IfVer1>90ThenVer1←88}}
3 {{codett|2=cbmbas|IfHit}}{{codett|2=cbmbas|ThenVer1←9}}
4 {{codett|2=cbmbas|Ver1←Ver1+IfVer1}}[[Modulo operation|Mod]]2{{codett|2=cbmbas|Then8}}{{codett|2=monkey|Else}}92
5 Hor1←Hor1+7
6 {{codett|2=cbmbas|Goto1}}
}}
==See also==
{{Portal|Video games}}
*[[List of Atari 2600 games]]
* [[CompuMate|Spectravideo CompuMate]]
* [[Family BASIC]]
==References==
{{reflist}}
==External links==
* {{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 & CompuMate)}}
{{BASIC}}
[[Category:
[[Category:Atari 2600
[[Category:BASIC interpreters]]
[[Category:BASIC programming language family]]
[[Category:Discontinued BASICs]]
[[Category:Video game development software]]
|