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.