16K Cassette or Disk
by David Karp
In the game of Buzz-zap! you are Stanley the Bug on his way to work. However, this is not an ordinary morning. This morning Stanley is pursued by a pair of killer strawberries and is trapped in a maze of deadly no-pest strips. As if this isn't bad enough, the hive he works in seems to be (and is!) moving away from the hapless bug.
Buzz-zap! is written in Atari BASIC with two machine language subroutines, called with the USR command. The first of these is Tom Hudson's P/M mover subroutine (issue 10, page 73), the second is just to flash the title screen. In the program's main loop first the stick is read, then Stanley is moved accordingly. Then the strawberries are moved so that they go towards Stanley. Then the hive is moved away from Stanley. Lastly, the collision registers are checked to see if Stanley has touched the walls, the strips, the berries or the hive. One point of interest is that each time Stanley gets to work (each board), the variable B is incremented and POKED into location 201 decimal for storage until the title screen prints it. This way the score or number of boards is recorded.
Line documentation
- Lines 10-140 -- Initialize; colors, shapes, M/L routines.
- Lines 150-450 -- Main loop; read stick, move bug, move hive, move berries, check collisions.
- Lines 460-480 -- Death routine, reinitialize.
- Lines 490-510 -- Next board routine, end.
- Lines 520-770 -- Title screen.
- Lines 780-840 -- Draw board routine.
- Lines 850-870 -- Tom Hudson's P/M mover initialize.
- Lines 880-890 -- Data for title screen M/L.
- Lines 950-980 -- Data for P/M mover M/L.
- Lines 950-980 -- Player shape data.
- Lines 990-2060 -- Board data.
Variables
- C, I, N, Q, Z -- Working, data, or loop variables.
- A -- USR variable.
- B -- Board flag.
- MOVE, PMMOV$ -- M/L variables for P/M mover.
- PMBASE, PMB -- P/M base variables.
- P$, PL$, PS$ -- Player shape data strings.
- P, PL, PS -- ADRess of above.
- X, Y -- Stanley's position.
- EX, EY, GX, GY -- Berries' position.
- FX, FY -- Hive's position.
- AA -- Stick variable.
- XI, YL -- Modifiers to X and Y.
- Xl, Y1, X2, Y2 -- Coordinates of strips.
10 DATA 878,525,753,529,773,317,749,48
8,476,975,631,287,988,522,304,9195
160 DATA 84,919,642,170,60,749,319,504
,976,989,298,334,999,12,374,7429
310 DATA 318,24,312,19,44,2,15,314,342
,499,510,501,522,329,719,4470
460 DATA 786,240,543,795,827,37,101,58
8,80,751,607,543,490,763,591,7742
610 DATA 732,152,945,71,901,940,900,35
6,924,832,801,202,797,908,370,9831
760 DATA 862,614,341,663,169,924,81,24
6,607,463,527,709,13,803,636,7658
910 DATA 729,432,185,354,942,227,462,3
66,263,728,84,595,368,10,537,6282
1060 DATA 455,324,452,329,134,184,453,
514,154,297,370,161,790,4617
Digitized by Eric Petrich for CyberRoach’s Digital A.N.A.L.O.G. Archive; restored here with permission.



