Basic_Programming.html
The BASIC Programming manual is 24 pages, plus 2 keyboard overlays.
Transcriber's note: This manual contains numerous uses of a left-arrow symbol. Because
there is no ASCII equivalent, I will use an exclamation point (!) to represent the
left-arrow. Also, wherever the division sign is used (a - with dots over and below it), I
will use a /.
BASIC
PROGRAMMING
GAME PROGRAM(tm)
INSTRUCTIONS
Model CX2620
ATARI(R)
A Warner Communications Company
ATARI, INC., Consumer Division
1195 Borregas Ave., Sunnyvale, CA 94086
(C) 1979 ATARI, INC.
BASIC PROGRAMMING
INTRODUCTION
BASIC PROGRAMMING is an instructional tool designed to teach you the fundamental
steps of computer programming. BASIC is an acronym for Beginners All-purpose Symbolic
Instruction Code. It was originated to that people could easily learn to "write"
computer programs.
Computer programs are simply a series of instructions. The programs control the flow of
information within the computer. BASIC PROGRAMMING allows you to give the Video Computer
System(tm) the instructions it needs to carry out some simple tasks.
Keep in mind that BASIC PROGRAMMING has a limited amount of memory in comparison to
more sophisticated computer systems. It is, however, an excellent instructional device for
learning the essentials of computer programming.
NOTE: Turn the console off when inserting or removing a Game Program(tm). This
will protect the electronic components and prolong the life of your Atari(R) Video
Computer System.
This Game Program may cause some television screens to "roll" slightly. If
this occurs, adjustment of the VERTICAL HOLD may be necessary.
KEYBOARD CONTROLLERS
Use your Keyboard Controllers with this ATARI(R) Game Program.(tm) Be sure the
Controllers are firmly plugged into the LEFT and RIGHT CONTROLLER jacks at the rear of
your ATARI Video Computer System.(tm)
To connect the two controllers, slide the tongue of the left controller into the groove
on the right controller. The two Keyboard Controllers, locked together, form a 24-key
Keyboard used to enter your program and to control the display on your television screen.
(Transcriber's note: The above paragraph is accompanied by a line drawing of the
keyboard controllers partially fitted together. Below that is a reproduction of the
keyboard labels. See the end of this manual for a transcription of the labels.)
Remove the Keyboard Controller labels from the envelope. Place the label marked LEFT
over the Keyboard plugged into the LEFT CONTROLLER jack at the rear of your computer
console. Place the label marked RIGHT over the Keyboard plugged into the RIGHT CONTROLLER
jack at the rear of your computer console.
DISPLAY REGIONS
The display is divided into six regions:
1. The PROGRAM region is used to give the computer your instructions.
2. The STACK region will give you the temporary results of your program as the computer
is running it.
3. The VARIABLES region will give you the value of each variable item in your program
as the computer is running it.
4. The OUTPUT region will show you the output being produced as your program is being
run.
5. The STATUS region shows you the amount of memory available at any time for your
program. This region will also give you the speed of execution of your program.
6. The GRAPHICS region has two colored squares which can be moved around under your
program control.
Before beginning your program, place the left difficulty switch in the b position. This
will show you where each region is on your display. When the left difficulty switch is
place in the a position, the titles of each region will disappear from the display and the
GRAPHICS region will come into view.
The right difficulty switch has no function in this Game Program.
Illustration 1 (B setting):
STATUS
SYMBOLS=63
SPEED=30
PROGRAM
1
STACK
VARIABLES
OUTPUT
Illustration 2 (A setting):
SYMBOLS=63
SPEED=30
1
THE CURSOR
Place the left difficulty switch into the b position and turn your console off and then
on again. In the PROGRAM region there is a white rectangle. This is the cursor. Locate the
"shift control key" at the center of the bottom row on the left controller. Push
this key four times. The color of the cursor will change from white to red, from red to
blue, from blue to green, and from green to white again.
The cursor is used to input your program. Each of the four colors on the shift key
corresponds to the colored commands or inputs on your Keyboard. The white mode is used to
give your computer commands, the other modes are used to insert symbols into your program.
Moving the Cursor from Region to Region
Make sure the left difficulty switch is in the b position and turn your console unit
off and then on again. Push the FORWARD key and the cursor will move from PROGRAM to
STACK. Press the FORWARD key again and the cursor will move from STACK to VARIABLES. Push
the key again and the cursor will move from VARIABLES to OUTPUT.
By pushing the BACKWARD key you can move the cursor back to the PROGRAM region. The
FORWARD and BACKWARD keys can be pushed once for each region or held down.
Now place the left difficulty switch into the a position. The titles of each region
will disappear and a portion of the GRAPHICS region will appear. Step the cursor through
each of the regions again. Notice that the cursor will not move into the GRAPHICS region.
Removing the Regions from the Display
Place the left difficulty switch into the b position again and turn your console unit
off and then on. On the left side of the Keyboard are a series of commands (white mode)
that correspond with each of the regions: STATUS, PROGRAM, STACK, VARIABLES, OUTPUT, and
GRAPHICS. Let's start with the STATUS region. Push the STATUS key once and the STATUS
region will disappear from the screen and the PROGRAM region will move to the top of the
display.
Push the PROGRAM key and the PROGRAM region will disappear and the STACK region will
move to the top of the display. Push the STACK key and the STACK region will disappear and
the VARIABLES region will move to the top of the display. Push the VARIABLES key and the
VARIABLES region will disappear causing the OUTPUT region to move to the top of the
display.
Remove the OUTPUT region by pushing the OUTPUT key. This will also cause the GRAPHICS
region to be fully visible on the display. Push the GRAPHICS key to remove the GRAPHICS
region. Your display should show no regions.
Now push the STACK key. The STACK region will reappear on your display. Remove the
STACK region, and bring up the OUTPUT and VARIABLES regions. You may display or remove any
region with the left difficulty switch in either the a or b position.
It is important to note that whether or not the various regions are displayed has no
effect on the execution of a program.
RUNNING A PROGRAM
Let's do a simple program. Make sure the left difficulty switch is in the b position
and turn your console unit off and then on again. (Another way to erase a program and
reset all values is to depress the game select switch. Pushing the game reset switch
erases all values and returns a program to its beginning without erasing the program.)
Remove the STACK, VARIABLES, OUTPUT, and GRAPHICS regions from the display. The cursor
will be in the white mode and to the right of the number 1 in the PROGRAM region. Change
the cursor to the blue mode and push the A key. The letter A will appear on the display
next to the 1. (Each line is numbered, making it possible to see where one line ends and
the next one begins.) Now change the cursor to the red mode and push the ! key. A small
arrow will appear next to the A. Now go back to blue and input B. Changing the cursor to
red, input + and the number 2. Now go back to the white mode and input New Line. You must
always be in the white mode in order to start a new line in your program.
Your display should look like this.
STATUS
SYMBOLS=57
SPEED=30
PROGRAM
1 A!B=2
2
(Transcriber's note: remember that I'm using ! to indicate the left arrow symbol)
If you make an error in entering your program, it can be erased using the ERASE key.
Notice that the ERASE key is not color coded. It can be used when the shift key is in any
color mode.
Using the line that you have just entered into your program, let's do an exercise. Push
the ERASE key once. The cursor will move from line 2 directly to the right of the 2 on
line 1. Push the ERASE key again and the 2 will be erased from the program. Now enter 1,
using the red mode. Change the cursor to the white mode and using the BACKWARD key, move
the cursor until it is directly to the right of the B in the program. Push the ERASE key
and the letter will be removed from the program. Now replace it with A (blue mode). In the
white mode, use the FORWARD key to move to the end of line 1 and input New Line.
Remember that the cursor should not be on the symbol to be erased but directly to the
right of it. Your screen display will now look like this:
STATUS
SYMBOLS=57
SPEED=30
PROGRAM
1 A!A+1
2
The cursor is directly to the right of the 2 in line 2. Now input PRINT using the green
mode. Then, with the blue mode, input A and go to a New Line. Your display will look like
this:
STATUS
SYMBOLS=54
SPEED=30
PROGRAM
1 A!A+1
2 Print A
3
Now, with the cursor in the green mode, input GOTO, and then, in the red mode, input 1.
Before we do anything else, let's look at the display again.
STATUS
SYMBOLS=52
SPEED=30
PROGRAM
1 A!A+1
2 Print A
3 Goto 1
Notice that the STATUS region shows we have 52 "bytes" or symbols of memory
remaining. The speed is set at 30 (SPEED=30). Put the cursor into the white mode and
depress the SLOWER key. Notice that every time you depress this key the speed decreases.
Depress the FASTER key and the SPEED will increase.
Before we start the program, input SPEED=1. Now depress the STACK key. Press the
RUN/HALT key twice and the program will begin. You can watch the computer work each part
of the program.
STATUS
SYMBOLS=41
SPEED=1
PROGRAM
1 A!A+1
2 Print A
3 Goto 1
STACK
A!3
To stop the program press RUN/HALT. As noted before, pressing the game reset switch
erases all values in your program (without erasing the program itself), and returns the
program to its beginning.
Let's analyze the program step by step as the computer runs through it. Change SPEED to
60. With the cursor in the white mode depress the STEP key. This will take each part of
the program one step at a time, each time it is pressed.
In line 1 the program reads A!A+1. The computer reads this as A "becomes"
A+1. Watch the STACK region as you step through line 1. In line 2, you have told the
computer in Print A. This means you want the computer to print the value of A (as
determined by line 1) in the OUTPUT region.
We'll see how that works later. Line 3 tells the computer to Goto 1. The computer is to
return to line 1 and find a new value for A. Each time the program is run through it will
find a new value for A, print that value, and then return to line 1. The computer will
continue to run through the program in this manner until all the "memory" is
used. The amount of remaining memory is shown in the SYMBOLS area of the STATUS region.
Bring up the VARIABLES region on the display. Change the SPEED to 1 and clear the
values of the program by pressing the game reset switch. Push the RUN/HALT key and watch
as the computer runs through the program. The computer will show you the current value of
A at each step of your program. Your screen display will look like this:
STATUS
SYMBOLS=27
SPEED=1
PROGRAM
1 A!A+1
2 Print A
3 Goto 1
STACK
Print 11
VARIABLES
A is 11
Stop the program and clear the values (game reset). Remove the VARIABLES region and
bring up the OUTPUT region on the display. Change SPEED to 60. The display will now look
like this:
STATUS
SYMBOLS=52
SPEED 60
PROGRAM
1 A!A+1
2 Print A
3 Goto 1
STACK
OUTPUT
Press the RUN/HALT key and start the program. In line 2, the computer is instructed to
PRINT A. When it reaches this command, it will bring the current value of A in the OUTPUT
region. Watch the SYMBOLS area of the STATUS region. Even though 1 shows in the OUTPUT
region on your display, the computer is still printing the changing value of A. Put the
left difficulty switch in the a position. Your display will now look something like this:
SYMBOLS=2
SPEED=60
1 A!A+1
2 Print A
3 Goto1
Print12
1
2
3
4
How can we show more of the OUTPUT region on the display? Remove the STATUS, PROGRAM,
and STACK regions from the display. Your display will look like this:
1
2
3
4
5
6
7
8
9
10
11
Suppose we don't want to overload the OUTPUT region of the program? Stop the program
and erase the values with the game reset switch. Remove the OUTPUT region from the display
and bring up the PROGRAM region. Using the FORWARD key, move the cursor to the end of line
1, so that your display looks like this:
1 A!A+1
2 Print A
3 Goto 1
Now depress the NEW LINE key. We will insert a new command here. Input CLEAR (green
mode). Your display will look like this:
1 A!A+1
2 Clear
3 Print A
4 Goto 1
Bring up STACK, VARIABLES and OUTPUT. Leave the left difficulty switch in the a
position and start the program. As the program passes line 2 CLEAR it erases the value of
A in the OUTPUT region and the prints the next value of A in line 3.
BASIC PROGRAMMING can only work with two-digit numbers, so as it reaches 99 it will
"wraparound" and begin again showing A's value to be 0.
USING THE NOTE FUNCTION
Each time the program stores a number into NOTE (red mode), a note from the musical
scale will be sounded by your television speaker.
Let's do some programs to demonstrate. If you have any programs in your Video Computer
System, depress the game select switch on the console unit.
Input the following:
1 Note!Note+1
2 Goto 1
Now start the program. Slow the program down and watch it being worked in the STACK
region. Also notice that the program will print the current value of NOTE in the VARIABLES
region.
Stop the program and insert a new line 2 (in the white mode, move the cursor to the end
of line 1 and press NEW LINE. The previous line 2 will become line 3).
2 If Note>6 Then Note!0
Your display will look like this:
(IF STACK and VARIABLES regions are removed.)
1 Note!Note+1
2 If Note>6 Then Note
!0
3 Goto 1
With the IF and THEN commands, we are instructing the program that IF something
happens, THEN it is to do something else. In this case, IF Note is more than 6, THEN Note
is to be changed to 0. Start the program and watch it being worked in the STACK region.
Notice that as the value of Note reaches 7, it becomes more then (>) 6 and the program
changes the value to 0.
Let's do another program to achieve the same result in a different way. Input the
following:
1 Note!C
2 C!C+1
3 If C>7 Then C!0
4 Goto 1
Run the program. Notice that the same results are achieved, except that the notes are
spaced evenly. If you want the program to give you the value of C in the OUTPUT region,
input Print C and Clear as instructions anywhere in the program. To cut down on the
flicker in the OUTPUT region as the program is giving you the value, insert a comma,
(green mode) after the value in the Print line, Print C.
You may use any letter of the alphabet for the variable in your programs. The following
program has all the key functions we have learned so far and uses nearly all the available
"memory" in the computer. After entering this program, remove the program from
the display, bring up the STATUS, STACK, and OUTPUT regions, and run the program.
In this program we have given two IF/THEN commands. If the conditions set up in the
first command are not met (line 4) the computer will move to the next line (line 5). Given
enough memory, there can be several commands between any two IF/THEN commands.
In some cases we can put two commands on one line, as in line 1 and line 2 in the above
program. In this way we can save some of the memory for later in the program.
USING THE KEY AND PRINT FUNCTIONS
The KEY function (red mode) is used to input a variable while the program is running.
The program will evaluate KEY and replace it with a number that you input from the right
side of the Keyboard. If no number is inputted, then the program will read KEY as 0.
Here's a simple program using the KEY function:
SYMBOLS=50
SPEED=30
1 If Key>0 Then Note!
Key
2 Goto 1
Start the program and push some of the keys on the right side of the Keyboard. With
practice you may be able to play a tune.
The KEY function can also be used for programming in the GRAPHICS region as we will see
later.
Try this program using the KEY, NOTE, and PRINT functions:
SYMBOLS=34
SPEED=30
1 A!Key
2 Note!A Print A
3 If A=0 Then Clear
4 Goto 1
9
Watch this program in the OUTPUT region. Notice that as you input a number from the
right side of the Keyboard the program will play that tone and display that number in the
OUTPUT region.
Now let's make a minor modification in the program. In line 2, insert a comma (,) after
Print A and start the program. By inserting the comma here you have told the program that
you want as many of the variables printed on one line as possible.
USING THE PRINT FUNCTION
As we showed in earlier programs, you can use the PRINT function to instruct the
program to print the value of a variable in the OUTPUT region. The PRINT function can also
be used to instruct the program to print words on the display. Words to be displayed must
be enclosed in quotation marks ("). Set the SPEED at 8 and input the following
program:
1 Print "A"
2 Print "IS"
3 Print A
4 A!A+1
5 Clear
6 Goto 1
Now run the program and watch the OUTPUT region. The program prints the words you have
inputted, but they are "stacked."
Let's change the program slightly by inputting a comma (,) at the end of line 1 and
line 2. The program now looks like this:
1 Print "A"
2 Print "IS"
3 Print A
4 A!A+1
5 Clear
6 Goto 1
A IS 12
The comma (,) in line 1 has instructed the program that whatever is on line 2 is to be
displayed in the OUTPUT region on the same line as the instruction on line 1. The comma in
line 2 has instructed the program that the line 3 instruction is to follow line 2. These
instructions can be shortened by changing the program to read:
1 Print "A","IS"
,A
2 A!A+1
3 Clear
4 Goto 1
A IS 15
The program can be further shortened:
1 Print "A IS", A
2 A!A+1
3 Clear
4 Goto 1
A IS 18
Writing the program in this fashion will also save some memory.
USING THE GRAPHICS REGION
The GRAPHICS region is the blue rectangular field on your television screen. At first
glance it appears to contain one red square in the upper left corner. The red square
actually covers a white square and both may be moved independently on the field under your
program control.
To move the squares you must change their coordinates. The red square is object number
1. Its horizontal coordinate is represented on the Keyboard by Hor 1 and its vertical
coordinate by Ver 1. Hor 2 and Ver 2 are the coordinates of object number 2, the white
square.
Both objects or squares start out in the upper left corner of the blue field, with only
the red square showing. The upper left corner is the zero (0) position or origin. When the
variables Hor 1, Ver 1, Hor 2 and Ver 2 are not defined (given values) they have values of
0 (therefore causing the squares to remain in the upper left corner position).
When a coordinate is assigned a value other than 0, (e.g. Hor 1!10), the object
involved will jump to the corresponding position on the blue field when the program is
executed.
Input the following program:
1 Hor 1!Hor 1+1
2 Goto 1
Hor 1 is 17
This program will move the red square to the right, one horizontal space at a time. Run
this program and you will see the red square moving slowly to the right. Check the
VARIABLES region and you will see the value of Hor 1 increasing. It will increase until it
reaches 99, the largest number allowed, and then drop back to 0. When Hor 1 reaches 99,
the red square will have reached the far right side of the blue field. At this point, the
red square "wraps around" and starts again from the far left side of the field,
with Hor 1 at 0.
The horizontal coordinates (Hor 1 and Hor 2) then, range from 0 to 99. The vertical
coordinates (Ver 1 and Ver 2) also range from 0 to 99, with 0 being the position at the
top of the blue field, and 99 being the position at the bottom.
Input the following program:
1 Hor 1!Hor 1+6
2 Ver 1!Ver 1+8
3 Hor 2!Hor 2+4
4 Ver 2!Ver 2+4
5 If Hit Then Note!2
Else Note!7
6 Goto 1
Remove the program from the screen and make sure the GRAPHICS region is fully visible.
Set the speed at 60 and run the program. This program shows you one way to move the
squares on the field. It also reveals how the HIT and ELSE functions may be put to use.
In line 5 the program is instructing the computer to sound the 2 note IF the squares
HIT, which they do periodically. To HIT means the squares must occupy the same
coordinates. Otherwise (ELSE) the computer is instructed to play the 7 note, which it will
do until the squares hit.
(Remove ELSE NOTE!7 from line 5 and note 2 will be played when the squares hit and no
other note will be sounded.)
USING THE MOD FUNCTION
Mod is an arithmetic operator, much like the division operator (/). BASIC PROGRAMMING
employs integer division, which means it works with whole numbers only, and leaves no
remainder. For example, what is 14/5? You might say 2 and 4/5, or 2, remainder 4. In BASIC
PROGRAMMING 14/5 is 2. Although 5 divides into 14 twice (making 10), with 4 left over,
BASIC uses whole numbers only, so the answer it gives you is 2.
The computer will give you the same answer for 12/4 as it will for 13/4. The answer in
both instances is 3, since 4 will divide into both 12 and 13, 3 whole times. The computer
will not recognize the remainder of 1 in the case of 13/4.
Now for the Mod function. Mod gets the remainder left over after dividing the first
number into the second number. So, 14 Mod 5 is 4. Five divides into 14 twice (making 10)
with 4 left over. Mod gets the remainder left over, therefore Mod is 4.
What is 13 Mod 4? The answer is 1 since 1 is left over after dividing 4 into 13 (which
makes 12). How about 12 Mod 4? In this case, Mod is 0 since 4 divides into 12 evenly with
nothing or 0 remaining.
Normally, dividing by 0 is undefined, mathematically speaking. In BASIC PROGRAMMING,
dividing by 0 just gives a result of 0, so that 5/0 is 0.
Operator Priorities
In an equation, the arithmetic operators (+, -, x, /, Mod, etc.) are worked out in
order of an established priority. BASIC PROGRAMMING uses the following operator priority
guide:
1. x / (Highest)
2. + -
3. Mod
4. =
5. ! (Lowest)
Using Parenthesis
Using parenthesis (green mode, left side of Keyboard), gives priority to whichever
numbers the parenthesis surround when working out an equation.
For example, when working out the following equation:
A 5+3x2 Mod 7
the first step is: 3x2=6
the second step is: 5+6=11
the third step is: 11 Mod 7=4
A=4
However, the same equation with parenthesis inserted, is worked out differently and
gives a different answer for A.
A (5+3)x2 Mod 7
first step: 5+3=8
second step: 8x2=16
third step: 16 Mod 7=2
A=2
SAMPLE PROGRAMS
Here are some sample programs. They will help you see the wide range of possibilities
you have to work with. Remember to pay close attention to how a particular command (IF,
THEN, HIT, ELSE, PRINT, KEY, etc.) affects a program. Remember too that a KEY command may
depend on your input from the right side of the Keyboard for successful operation of the
program.
Whenever a particular program confuses you, stop the program, reset it to the
beginning, and STEP through it. By watching the program in the STACK region and seeing how
the computer works out each step, you should be able to understand what is happening and
why it is happening.
After running the programs and becoming familiar with the fundamentals of computer
programming in general, you'll be well on your way toward writing some programs of your
own.
Hit
1 Clear Print Hit
2 Hor 2!Hor 2+1 Mod
3 3
4 Goto 1
Music
1 Note!If Note>4
Then Note-11 Else
Note+1
2 Note!Note+2
3 Note!Note-2
4 Goto 1
1 A!Key
2 If A>0 Then Note!A
-1
3 Goto 1
1 Note!Note+Key+
7
2 Goto 1
1 A!A+1
2 Note!A
3 If (A Mod 2)=2 Then
Note!0 Else Note!4
4 Goto 1
Clock-Like Program
When running the Clock program bring up the OUTPUT region only. The SPEED may be set at
30 or 60.
1 Clear
2 A!A+1 Mod 60
3 If A=0 Then B!B+1
Mod 60
4 Print B,A
5 Goto 1
Pong(R) Game
(Ball & Paddle)
1 Hor 1!Hor 1+Key
2 Hor 2!Hor 2+8
3 Ver 2!Ver 2-3
4 If Hit Then Ver 2!99
,Note!7
5 Goto 1
Pong(R) Game
without sound
1 Hor 2!Hor 2+Key
2 If Ver 1>90 Then
Ver 1!88
3 If Hit Then Ver 1!9
4 Ver 1!Ver 1+If
Ver 1 Mod 2 Then 8 Else
92
5 Hor 1!Hor 1+7
6 Goto 1
C011402-20 Rev. 2 Printed in USA
Keyboard labels
Each key (except the bottom 3 on the left controller) has either 3 or 4 meanings,
depending on what color the shift key is set for. For example, the top left key on the
left controller is as follows:
STATUS
+ A IF
STATUS is printed in white, + in red, A in blue and IF in green. Please remember that !
means the left arrow and / means the divsion symbol.
LEFT CONTROLLER
STATUS PROGRAM STACK
+ A IF - B THEN ! C ELSE
VARIABLES OUTPUT GRAPHICS
X D GOTO / E PRINT NOTE F "
STEP SLOWER FASTER
HOR1 G ( VER1 H ) KEY I ,
RUN/HALT SHIFT ERASE
RIGHT CONTROLLER
1 J U 2 K V 3 L W
4 M X 5 N Y 6 O Z
7 P CLEAR 8 Q MOD 9 R HIT
BACKWARD FORWARD NEW LINE
HOR2 S = VER2 T > 0 SPACE <
Document converted to html by gchance@ecst.csuchico.edu -------------------Atari 2600
Instructions Archive-------------------
This document obtained from the History of Home Video Games Homepage,
©1997-1998 by Greg Chance
|