Crasher by Ted Szczypiorski
About
Crasher by Ted Szczypiorski
For Atari BASIC
Crasher is written in standard Atari
BASIC. It utilizes custom characters to
make the star field appear to scroll
horizontally. It also uses
Player/Missile graphics and technique
to "print" the shapes to make them move
a little smoother. It also uses a
custom Display List.
Line 0:
Sets up protected memory for the custom
character set and P/M graphics and sets
variables for where they begin.
Displays WAIT message
Line 1:
sets up string variable storage. B$ has
five spaces - used for erasing PM
graphics. For loop is used to (a) copy
character set; (b) clear some
characters; (c) set up custom Display
List.
Line 2:
Initializes A$, which stores the star
field (a sequential string of
characters). Clears the screen and
switches to new character set. Sets
up initial game play variables.
Line 3:
Pokes used to set up PM graphics.
Initializes P$, which stores the ship
data for the ship shapes (every 5
characters is a different ship
direction). Sets more variables.
Line 4:
This line resets the game variables
(score, time, etc.). Changes screen
color. Displays PRESS FIRE. Loops
until button is pressed. Clears the
top two lines (leaves stars in
place). Resets screen to black.
Line 5:
This line resets the enemy ship.
Changes sets new direction and x/y
start.
Line 6:
This is the start of the game play
loop. Decrements the timer. Displays
time and score. Reads joystick and
sets variables depending on joystick
to move enemy ship accordingly.
Line 7:
Continues setting enemy ship
variables. Determines direction of
your ship. Updates character set for
horizontal star scroll. Determines
where a new line of stars (if any)
should go for a vertical scroll.
Line 8:
Inserts or deletes a blank line for
stars. Figures out string placement
of enemy ship shape. Sets screen to
Player 1 position and "prints" enemy
ship with blanks above and below.
Sets Screen to Player 0 position.
Line 9:
Prints player ship. Sets screen to
actual screen. Sets random number
used for stars and/or new ship.
Prints new line of characters for
stars, if need be. Updates counter
for initial stars. Determines where
to loop to: Line 6 for regular game
loop. Line 5 for a new enemy ship.
Line 4 for a new game. Line 7 for
initial stars.