| Ant Attack | The city of Antescher |
Antescher is a map of 128 by 128 cells at CITY_MAP, one byte a cell and one bit a height: bit 0 is a block on the ground, bit 5 a block five up, so a wall is a column of set bits. Coordinates run from $80 to $FF; anything lower is outside the walls, where nothing is solid and nothing collides. Each row of the map is an entry of its own in the listing.
The whole city at once, the way the game draws a corner of it: view 0, each block the picture DRAW_BLOCK paints -- captured by running that routine rather than copied -- and painted in the same order DRAW_SCENE uses, lowest height first and then from the back, so every block hides exactly what it hides in the game. x runs up and to the right, y down and to the right; the open ground past the gate, where the player starts, is in front of the city at the bottom right. Each layer is read from the game when these pages are built -- the city map, BASIC's DATA and the levels -- and a box shows or hides it; a mark sits on its cell's ground, so one behind a wall shows through it. Click a row of the city to see its bytes.





Where the player starts: x=$B9, y=$04 -- the home BASIC gives the player (PLAYER, +$0A and +$0B, from the DATA at line 110), just outside the gate: past y=$FF the coordinate wraps round to $00, and anything under $80 is outside the walls.
The way in and out: the 14 cells of the outer wall with nothing in them, x=$AE to $BB on the y=$FF side -- the only gap. A rescue is done when both people are out of the city (CHECK_RESCUED).
Where the ants start: x=$BA, y=$A8, x=$B8, y=$A8, x=$B6, y=$A8, x=$B4, y=$A8, x=$B2, y=$A8 -- each ant's home from lines 140-180; an object goes home when its explosion countdown (+$09) runs out, and BASIC sets that to 1, so they appear there as a level starts.
Where someone waits, numbered by level: see the levels for how one of each level's places is picked.