    DEVICE ZXSPECTRUM48
  ORG $5C00

; System variables
;
; The tape block starts here, so it carries a set of system variables of its
; own: PROG, VARS and the rest point at the game's BASIC, and ERR_SP and RAMTOP
; at its stack, just below the machine code.
SYSTEM_VARIABLES:
  DEFB $FF,$00,$00,$00,$FF,$00,$22,$0D
  DEFB $0D,$23,$05,$00,$00,$00,$00,$00
  DEFB $01,$00,$06,$00,$0B,$00,$01,$00
  DEFB $01,$00,$06,$00,$10,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$3C
  DEFB $40,$00
ERR_NR:
  DEFB $FF                ; ERR_NR: INTERRUPT watches it for an error to
                          ; restart from
  DEFB $CC,$01
ERR_SP:
  DEFB $FC,$7F            ; ERR_SP: RESTART_BASIC restarts BASIC with the stack
                          ; it points at
  DEFB $FC,$7F,$00,$00,$00,$FF,$FE,$FF
  DEFB $01,$38,$5F,$00,$DA,$7D,$00,$00
  DEFB $B6,$5C,$B6,$5C,$CB,$5C,$E9,$7D
  DEFB $CA,$5C
E_LINE:
  DEFB $DB,$7D            ; E_LINE: where RESTART_BASIC types RUN
  DEFB $E2,$7D,$E8,$7D,$01,$00,$EA,$7D
  DEFB $EA,$7D,$EA,$7D,$2D,$92,$5C,$10
  DEFB $02,$00,$00,$FE,$FF,$01,$00,$00
  DEFB $00,$B6,$1A
SEED:
  DEFB $00,$00            ; SEED: PLAY leaves the game's random number here,
                          ; and RANDOMIZE USR overwrites it at once
  DEFB $1E,$33,$00,$58,$FF,$00,$00,$21
  DEFB $00,$5B,$21,$17,$00,$40,$E0,$50
  DEFB $21,$18,$21,$17,$01,$38,$00,$38
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$5A,$00,$00,$00,$00,$0A,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$FF,$7F,$FF,$FF

; Channel information
CHANNELS:
  DEFB $F4,$09,$A8,$10,$4B,$F4,$09,$C4
  DEFB $15,$53,$81,$0F,$C4,$15,$52,$F4
  DEFB $09,$C4,$15,$50,$80

; BASIC line 10
;
; 10 INK 0: PAPER 6: LET w=46237: LET r=0: LET ink=0: LET sp=2: LET fin=10: LET
; se=0: LET sg=0: POKE w,0: GO SUB 600
LINE10:
  DEFB $00,$0A,$81,$00    ; Line number (big-endian) and length
  DEFB $D9,$30,$0E,$00,$00,$00,$00,$00
  DEFB $3A,$DA,$36,$0E,$00,$00,$06,$00
  DEFB $00,$3A,$F1,$77,$3D,$34,$36,$32
  DEFB $33,$37,$0E,$00,$00,$9D,$B4,$00
  DEFB $3A,$F1,$72,$3D,$30,$0E,$00,$00
  DEFB $00,$00,$00,$3A,$F1,$69,$6E,$6B
  DEFB $3D,$30,$0E,$00,$00,$00,$00,$00
  DEFB $3A,$F1,$73,$70,$3D,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3A,$F1,$66,$69
  DEFB $6E,$3D,$31,$30,$0E,$00,$00,$0A
  DEFB $00,$00,$3A,$F1,$73,$65,$3D,$30
  DEFB $0E,$00,$00,$00,$00,$00,$3A,$F1
  DEFB $73,$67,$3D,$30,$0E,$00,$00,$00
  DEFB $00,$00,$3A,$F4,$77,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$3A,$ED,$36
  DEFB $30,$30,$0E,$00,$00,$58,$02,$00
  DEFB $0D

; BASIC line 20
;
; 20 GO SUB 750: GO SUB 800: GO SUB 900: GO SUB 300: GO SUB 700
LINE20:
  DEFB $00,$14,$37,$00    ; Line number (big-endian) and length
  DEFB $ED,$37,$35,$30,$0E,$00,$00,$EE
  DEFB $02,$00,$3A,$ED,$38,$30,$30,$0E
  DEFB $00,$00,$20,$03,$00,$3A,$ED,$39
  DEFB $30,$30,$0E,$00,$00,$84,$03,$00
  DEFB $3A,$ED,$33,$30,$30,$0E,$00,$00
  DEFB $2C,$01,$00,$3A,$ED,$37,$30,$30
  DEFB $0E,$00,$00,$BC,$02,$00,$0D

; BASIC line 60
;
; 60 IF PEEK 46134=0 AND PEEK 46135=0 AND PEEK w<>2 THEN GO SUB 3200: GO SUB
; 2600: RANDOMIZE USR 32919: RUN
LINE60:
  DEFB $00,$3C,$5E,$00    ; Line number (big-endian) and length
  DEFB $FA,$BE,$34,$36,$31,$33,$34,$0E
  DEFB $00,$00,$36,$B4,$00,$3D,$30,$0E
  DEFB $00,$00,$00,$00,$00,$C6,$BE,$34
  DEFB $36,$31,$33,$35,$0E,$00,$00,$37
  DEFB $B4,$00,$3D,$30,$0E,$00,$00,$00
  DEFB $00,$00,$C6,$BE,$77,$C9,$32,$0E
  DEFB $00,$00,$02,$00,$00,$CB,$ED,$33
  DEFB $32,$30,$30,$0E,$00,$00,$80,$0C
  DEFB $00,$3A,$ED,$32,$36,$30,$30,$0E
  DEFB $00,$00,$28,$0A,$00,$3A,$F9,$C0
  DEFB $33,$32,$39,$31,$39,$0E,$00,$00
  DEFB $97,$80,$00,$3A,$F7,$0D

; BASIC line 70
;
; 70 IF PEEK w<>2 THEN GO SUB 400: GO SUB 800: GO SUB 100: GO SUB 200: GO SUB
; 300: GO SUB 700: GO TO 60
LINE70:
  DEFB $00,$46,$58,$00    ; Line number (big-endian) and length
  DEFB $FA,$BE,$77,$C9,$32,$0E,$00,$00
  DEFB $02,$00,$00,$CB,$ED,$34,$30,$30
  DEFB $0E,$00,$00,$90,$01,$00,$3A,$ED
  DEFB $38,$30,$30,$0E,$00,$00,$20,$03
  DEFB $00,$3A,$ED,$31,$30,$30,$0E,$00
  DEFB $00,$64,$00,$00,$3A,$ED,$32,$30
  DEFB $30,$0E,$00,$00,$C8,$00,$00,$3A
  DEFB $ED,$33,$30,$30,$0E,$00,$00,$2C
  DEFB $01,$00,$3A,$ED,$37,$30,$30,$0E
  DEFB $00,$00,$BC,$02,$00,$3A,$EC,$36
  DEFB $30,$0E,$00,$00,$3C,$00,$00,$0D

; BASIC line 90
;
; 90 LET sg=sg+1: LET tim=PEEK 46135+(PEEK 46134)*256: LET scr=tim*sg: LET
; se=se+scr: IF sg>=4 THEN LET sp=2+INT (sg/4)
LINE90:
  DEFB $00,$5A,$77,$00    ; Line number (big-endian) and length
  DEFB $F1,$73,$67,$3D,$73,$67,$2B,$31
  DEFB $0E,$00,$00,$01,$00,$00,$3A,$F1
  DEFB $74,$69,$6D,$3D,$BE,$34,$36,$31
  DEFB $33,$35,$0E,$00,$00,$37,$B4,$00
  DEFB $2B,$28,$BE,$34,$36,$31,$33,$34
  DEFB $0E,$00,$00,$36,$B4,$00,$29,$2A
  DEFB $32,$35,$36,$0E,$00,$00,$00,$01
  DEFB $00,$3A,$F1,$73,$63,$72,$3D,$74
  DEFB $69,$6D,$2A,$73,$67,$3A,$F1,$73
  DEFB $65,$3D,$73,$65,$2B,$73,$63,$72
  DEFB $3A,$FA,$73,$67,$C8,$34,$0E,$00
  DEFB $00,$04,$00,$00,$CB,$F1,$73,$70
  DEFB $3D,$32,$0E,$00,$00,$02,$00,$00
  DEFB $2B,$BA,$28,$73,$67,$2F,$34,$0E
  DEFB $00,$00,$04,$00,$00,$29,$0D

; BASIC line 95
;
; 95 IF sg>=fin THEN GO SUB 3600: PAUSE 500: GO SUB 2600: RANDOMIZE USR 32919:
; RUN
LINE95:
  DEFB $00,$5F,$3B,$00    ; Line number (big-endian) and length
  DEFB $FA,$73,$67,$C8,$66,$69,$6E,$CB
  DEFB $ED,$33,$36,$30,$30,$0E,$00,$00
  DEFB $10,$0E,$00,$3A,$F2,$35,$30,$30
  DEFB $0E,$00,$00,$F4,$01,$00,$3A,$ED
  DEFB $32,$36,$30,$30,$0E,$00,$00,$28
  DEFB $0A,$00,$3A,$F9,$C0,$33,$32,$39
  DEFB $31,$39,$0E,$00,$00,$97,$80,$00
  DEFB $3A,$F7,$0D

; BASIC line 99
;
; 99 GO TO 20
LINE99:
  DEFB $00,$63,$0A,$00    ; Line number (big-endian) and length
  DEFB $EC,$32,$30,$0E,$00,$00,$14,$00
  DEFB $00,$0D

; BASIC line 100
;
; 100 RESTORE 100: FOR i=46208 TO 46207+16*8: READ p: IF p>=0 THEN POKE i,p
LINE100:
  DEFB $00,$64,$4A,$00    ; Line number (big-endian) and length
  DEFB $E5,$31,$30,$30,$0E,$00,$00,$64
  DEFB $00,$00,$3A,$EB,$69,$3D,$34,$36
  DEFB $32,$30,$38,$0E,$00,$00,$80,$B4
  DEFB $00,$CC,$34,$36,$32,$30,$37,$0E
  DEFB $00,$00,$7F,$B4,$00,$2B,$31,$36
  DEFB $0E,$00,$00,$10,$00,$00,$2A,$38
  DEFB $0E,$00,$00,$08,$00,$00,$3A,$E3
  DEFB $70,$3A,$FA,$70,$C8,$30,$0E,$00
  DEFB $00,$00,$00,$00,$CB,$F4,$69,$2C
  DEFB $70,$0D

; BASIC line 105
;
; 105 NEXT i
LINE105:
  DEFB $00,$69,$03,$00    ; Line number (big-endian) and length
  DEFB $F3,$69,$0D

; BASIC line 110
;
; 110 DATA 0,0,0,-1,2,0,0,1,0,1,185,4,0,0,0,0
LINE110:
  DEFB $00,$6E,$84,$00    ; Line number (big-endian) and length
  DEFB $E4,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$31,$38,$35,$0E,$00,$00
  DEFB $B9,$00,$00,$2C,$34,$0E,$00,$00
  DEFB $04,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$0D

; BASIC line 120
;
; 120 DATA -1,-1,-1,-1,0,0,4,17,3,0,0,0,0,0,0,0
LINE120:
  DEFB $00,$78,$86,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$2D,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$34,$0E,$00
  DEFB $00,$04,$00,$00,$2C,$31,$37,$0E
  DEFB $00,$00,$11,$00,$00,$2C,$33,$0E
  DEFB $00,$00,$03,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$0D

; BASIC line 130
;
; 130 DATA 0,0,0,104,0,0,0,16,0,1,0,64,0,0,0,0
LINE130:
  DEFB $00,$82,$85,$00    ; Line number (big-endian) and length
  DEFB $E4,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$31,$30,$34,$0E,$00,$00,$68
  DEFB $00,$00,$2C,$30,$0E,$00,$00,$00
  DEFB $00,$00,$2C,$30,$0E,$00,$00,$00
  DEFB $00,$00,$2C,$30,$0E,$00,$00,$00
  DEFB $00,$00,$2C,$31,$36,$0E,$00,$00
  DEFB $10,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$2C,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$30,$0E,$00,$00
  DEFB $00,$00,$00,$2C,$36,$34,$0E,$00
  DEFB $00,$40,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$0D

; BASIC line 140
;
; 140 DATA -1,-1,-1,248,0,0,0,4,0,1,186,168,0,20,1,0
LINE140:
  DEFB $00,$8C,$8B,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$32,$34,$38,$0E
  DEFB $00,$00,$F8,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$34,$0E
  DEFB $00,$00,$04,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$38
  DEFB $36,$0E,$00,$00,$BA,$00,$00,$2C
  DEFB $31,$36,$38,$0E,$00,$00,$A8,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$30,$0E,$00,$00,$14
  DEFB $00,$00,$2C,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$30,$0E,$00,$00,$00
  DEFB $00,$00,$0D

; BASIC line 150
;
; 150 DATA -1,-1,-1,248,0,0,0,4,0,1,184,168,0,2,4,0
LINE150:
  DEFB $00,$96,$8A,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$32,$34,$38,$0E
  DEFB $00,$00,$F8,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$34,$0E
  DEFB $00,$00,$04,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$38
  DEFB $34,$0E,$00,$00,$B8,$00,$00,$2C
  DEFB $31,$36,$38,$0E,$00,$00,$A8,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$34,$0E,$00,$00,$04,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$0D

; BASIC line 160
;
; 160 DATA -1,-1,-1,248,0,0,0,4,0,1,182,168,0,2,3,0
LINE160:
  DEFB $00,$A0,$8A,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$32,$34,$38,$0E
  DEFB $00,$00,$F8,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$34,$0E
  DEFB $00,$00,$04,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$38
  DEFB $32,$0E,$00,$00,$B6,$00,$00,$2C
  DEFB $31,$36,$38,$0E,$00,$00,$A8,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$33,$0E,$00,$00,$03,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$0D

; BASIC line 170
;
; 170 DATA -1,-1,-1,248,0,0,0,4,0,1,180,168,0,2,2,0
LINE170:
  DEFB $00,$AA,$8A,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$32,$34,$38,$0E
  DEFB $00,$00,$F8,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$34,$0E
  DEFB $00,$00,$04,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$38
  DEFB $30,$0E,$00,$00,$B4,$00,$00,$2C
  DEFB $31,$36,$38,$0E,$00,$00,$A8,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$0D

; BASIC line 180
;
; 180 DATA -1,-1,-1,248,0,0,0,4,0,1,178,168,0,2,1,0
LINE180:
  DEFB $00,$B4,$8A,$00    ; Line number (big-endian) and length
  DEFB $E4,$2D,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$2D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$2C,$2D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$32,$34,$38,$0E
  DEFB $00,$00,$F8,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$34,$0E
  DEFB $00,$00,$04,$00,$00,$2C,$30,$0E
  DEFB $00,$00,$00,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$37
  DEFB $38,$0E,$00,$00,$B2,$00,$00,$2C
  DEFB $31,$36,$38,$0E,$00,$00,$A8,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$0D

; BASIC line 190
;
; 190 POKE 46285,sp: POKE 46301,sp: POKE 46317,sp: POKE 46333,sp: RETURN
LINE190:
  DEFB $00,$BE,$42,$00    ; Line number (big-endian) and length
  DEFB $F4,$34,$36,$32,$38,$35,$0E,$00
  DEFB $00,$CD,$B4,$00,$2C,$73,$70,$3A
  DEFB $F4,$34,$36,$33,$30,$31,$0E,$00
  DEFB $00,$DD,$B4,$00,$2C,$73,$70,$3A
  DEFB $F4,$34,$36,$33,$31,$37,$0E,$00
  DEFB $00,$ED,$B4,$00,$2C,$73,$70,$3A
  DEFB $F4,$34,$36,$33,$33,$33,$0E,$00
  DEFB $00,$FD,$B4,$00,$2C,$73,$70,$3A
  DEFB $FE,$0D

; BASIC line 200
;
; 200 RESTORE 200: FOR i=46112 TO 46136: READ p: IF p>=0 THEN POKE i,p
LINE200:
  DEFB $00,$C8,$39,$00    ; Line number (big-endian) and length
  DEFB $E5,$32,$30,$30,$0E,$00,$00,$C8
  DEFB $00,$00,$3A,$EB,$69,$3D,$34,$36
  DEFB $31,$31,$32,$0E,$00,$00,$20,$B4
  DEFB $00,$CC,$34,$36,$31,$33,$36,$0E
  DEFB $00,$00,$38,$B4,$00,$3A,$E3,$70
  DEFB $3A,$FA,$70,$C8,$30,$0E,$00,$00
  DEFB $00,$00,$00,$CB,$F4,$69,$2C,$70
  DEFB $0D

; BASIC line 205
;
; 205 NEXT i
LINE205:
  DEFB $00,$CD,$03,$00    ; Line number (big-endian) and length
  DEFB $F3,$69,$0D

; BASIC line 210
;
; 210 DATA 185,237,0,1,1,1,1,1,1,1,1,1,0,0
LINE210:
  DEFB $00,$D2,$75,$00    ; Line number (big-endian) and length
  DEFB $E4,$31,$38,$35,$0E,$00,$00,$B9
  DEFB $00,$00,$2C,$32,$33,$37,$0E,$00
  DEFB $00,$ED,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$2C,$30,$0E,$00
  DEFB $00,$00,$00,$00,$0D

; BASIC line 220
;
; 220 DATA 0,0,20,0,20,0,20,1,-1,-1,1
LINE220:
  DEFB $00,$DC,$5E,$00    ; Line number (big-endian) and length
  DEFB $E4,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$30,$0E,$00,$00,$00,$00,$00
  DEFB $2C,$32,$30,$0E,$00,$00,$14,$00
  DEFB $00,$2C,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$30,$0E,$00,$00,$14
  DEFB $00,$00,$2C,$30,$0E,$00,$00,$00
  DEFB $00,$00,$2C,$32,$30,$0E,$00,$00
  DEFB $14,$00,$00,$2C,$31,$0E,$00,$00
  DEFB $01,$00,$00,$2C,$2D,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$2D,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$0D

; BASIC line 230
;
; 230 RETURN
LINE230:
  DEFB $00,$E6,$02,$00    ; Line number (big-endian) and length
  DEFB $FE,$0D

; BASIC line 300
;
; 300 PAPER 7: INK 0: BORDER 0: CLS : GO SUB 350: GO SUB 350: PRINT
; "{0x8F}";TAB 31;: FOR i=1 TO 13: PRINT "{0x8F}{0x8F}";TAB 31;: NEXT i
LINE300:
  DEFB $01,$2C,$6B,$00    ; Line number (big-endian) and length
  DEFB $DA,$37,$0E,$00,$00,$07,$00,$00
  DEFB $3A,$D9,$30,$0E,$00,$00,$00,$00
  DEFB $00,$3A,$E7,$30,$0E,$00,$00,$00
  DEFB $00,$00,$3A,$FB,$3A,$ED,$33,$35
  DEFB $30,$0E,$00,$00,$5E,$01,$00,$3A
  DEFB $ED,$33,$35,$30,$0E,$00,$00,$5E
  DEFB $01,$00,$3A,$F5,$22,$8F,$22,$3B
  DEFB $AD,$33,$31,$0E,$00,$00,$1F,$00
  DEFB $00,$3B,$3A,$EB,$69,$3D,$31,$0E
  DEFB $00,$00,$01,$00,$00,$CC,$31,$33
  DEFB $0E,$00,$00,$0D,$00,$00,$3A,$F5
  DEFB $22,$8F,$8F,$22,$3B,$AD,$33,$31
  DEFB $0E,$00,$00,$1F,$00,$00,$3B,$3A
  DEFB $F3,$69,$0D

; BASIC line 302
;
; 302 GO SUB 350: PRINT "{0x8F}";: FOR i=1 TO 5: GO SUB 350:: NEXT i
LINE302:
  DEFB $01,$2E,$33,$00    ; Line number (big-endian) and length
  DEFB $ED,$33,$35,$30,$0E,$00,$00,$5E
  DEFB $01,$00,$3A,$F5,$22,$8F,$22,$3B
  DEFB $3A,$EB,$69,$3D,$31,$0E,$00,$00
  DEFB $01,$00,$00,$CC,$35,$0E,$00,$00
  DEFB $05,$00,$00,$3A,$ED,$33,$35,$30
  DEFB $0E,$00,$00,$5E,$01,$00,$3A,$3A
  DEFB $F3,$69,$0D

; BASIC line 305
;
; 305 PRINT AT 0,2; PAPER 0; INK 7;"SCORE :";se;AT 0,18;"Rescued :";sg;
LINE305:
  DEFB $01,$31,$53,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$3B,$DA,$30,$0E,$00,$00,$00
  DEFB $00,$00,$3B,$D9,$37,$0E,$00,$00
  DEFB $07,$00,$00,$3B,$22,$53,$43,$4F
  DEFB $52,$45,$20,$3A,$22,$3B,$73,$65
  DEFB $3B,$AC,$30,$0E,$00,$00,$00,$00
  DEFB $00,$2C,$31,$38,$0E,$00,$00,$12
  DEFB $00,$00,$3B,$22,$52,$65,$73,$63
  DEFB $75,$65,$64,$20,$3A,$22,$3B,$73
  DEFB $67,$3B,$0D

; BASIC line 310
;
; 310 PRINT AT 17,1; PAPER 3; INK 7;"                              ";AT 21,1;"
; AMMO  ";b$;"  ";g$;"  TIME  SCAN "
LINE310:
  DEFB $01,$36,$7D,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$37,$0E,$00,$00,$11
  DEFB $00,$00,$2C,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$33,$0E,$00,$00
  DEFB $03,$00,$00,$3B,$D9,$37,$0E,$00
  DEFB $00,$07,$00,$00,$3B,$22,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$22,$3B,$AC,$32
  DEFB $31,$0E,$00,$00,$15,$00,$00,$2C
  DEFB $31,$0E,$00,$00,$01,$00,$00,$3B
  DEFB $22,$20,$41,$4D,$4D,$4F,$20,$20
  DEFB $22,$3B,$62,$24,$3B,$22,$20,$20
  DEFB $22,$3B,$67,$24,$3B,$22,$20,$20
  DEFB $54,$49,$4D,$45,$20,$20,$53,$43
  DEFB $41,$4E,$20,$22,$0D

; BASIC line 320
;
; 320 PRINT AT 18,1; PAPER
; 1;"{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}
; {0x8F}{0x8F}"
LINE320:
  DEFB $01,$40,$38,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$38,$0E,$00,$00,$12
  DEFB $00,$00,$2C,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$31,$0E,$00,$00
  DEFB $01,$00,$00,$3B,$22,$8F,$80,$80
  DEFB $80,$80,$8F,$8F,$80,$80,$80,$80
  DEFB $8F,$8F,$80,$80,$80,$80,$8F,$8F
  DEFB $20,$20,$20,$20,$8F,$8F,$22,$0D

; BASIC line 330
;
; 330 PRINT AT 20,1; PAPER
; 1;"{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x8F}
; {0x8F}{0x8F}": RETURN
LINE330:
  DEFB $01,$4A,$3A,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$32,$30,$0E,$00,$00,$14
  DEFB $00,$00,$2C,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$31,$0E,$00,$00
  DEFB $01,$00,$00,$3B,$22,$8F,$80,$80
  DEFB $80,$80,$8F,$8F,$80,$80,$80,$80
  DEFB $8F,$8F,$80,$80,$80,$80,$8F,$8F
  DEFB $20,$20,$20,$20,$8F,$8F,$22,$3A
  DEFB $FE,$0D

; BASIC line 350
;
; 350 PRINT
; "{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}{0x8F}";:
; RETURN
LINE350:
  DEFB $01,$5E,$27,$00    ; Line number (big-endian) and length
  DEFB $F5,$22,$8F,$8F,$8F,$8F,$8F,$8F
  DEFB $8F,$8F,$8F,$8F,$8F,$8F,$8F,$8F
  DEFB $8F,$8F,$8F,$8F,$8F,$8F,$8F,$8F
  DEFB $8F,$8F,$8F,$8F,$8F,$8F,$8F,$8F
  DEFB $8F,$8F,$22,$3B,$3A,$FE,$0D

; BASIC line 400
;
; 400 PRINT AT 6,7; FLASH 1; PAPER 6;" Have another go! ";AT 7,7;" ";AT 5,7;"
; ": RETURN
LINE400:
  DEFB $01,$90,$87,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$36,$0E,$00,$00,$06,$00
  DEFB $00,$2C,$37,$0E,$00,$00,$07,$00
  DEFB $00,$3B,$DB,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$36,$0E,$00,$00
  DEFB $06,$00,$00,$3B,$22,$20,$48,$61
  DEFB $76,$65,$20,$61,$6E,$6F,$74,$68
  DEFB $65,$72,$20,$67,$6F,$21,$20,$22
  DEFB $3B,$AC,$37,$0E,$00,$00,$07,$00
  DEFB $00,$2C,$37,$0E,$00,$00,$07,$00
  DEFB $00,$3B,$22,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$22,$3B,$AC
  DEFB $35,$0E,$00,$00,$05,$00,$00,$2C
  DEFB $37,$0E,$00,$00,$07,$00,$00,$3B
  DEFB $22,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$22,$3A,$FE,$0D

; BASIC line 600
;
; 600 GO SUB 3100
LINE600:
  DEFB $02,$58,$0C,$00    ; Line number (big-endian) and length
  DEFB $ED,$33,$31,$30,$30,$0E,$00,$00
  DEFB $1C,$0C,$00,$0D

; BASIC line 610
;
; 610 LET sx=USR 32912: IF sx=0 THEN LET b$="BOY ": LET g$="GIRL": POKE
; 46211,220: POKE 46227,108: RETURN
LINE610:
  DEFB $02,$62,$63,$00    ; Line number (big-endian) and length
  DEFB $F1,$73,$78,$3D,$C0,$33,$32,$39
  DEFB $31,$32,$0E,$00,$00,$90,$80,$00
  DEFB $3A,$FA,$73,$78,$3D,$30,$0E,$00
  DEFB $00,$00,$00,$00,$CB,$F1,$62,$24
  DEFB $3D,$22,$42,$4F,$59,$20,$22,$3A
  DEFB $F1,$67,$24,$3D,$22,$47,$49,$52
  DEFB $4C,$22,$3A,$F4,$34,$36,$32,$31
  DEFB $31,$0E,$00,$00,$83,$B4,$00,$2C
  DEFB $32,$32,$30,$0E,$00,$00,$DC,$00
  DEFB $00,$3A,$F4,$34,$36,$32,$32,$37
  DEFB $0E,$00,$00,$93,$B4,$00,$2C,$31
  DEFB $30,$38,$0E,$00,$00,$6C,$00,$00
  DEFB $3A,$FE,$0D

; BASIC line 620
;
; 620 IF sx=6 THEN LET b$="GIRL": LET g$="BOY ": POKE 46211,108: POKE
; 46227,220: RETURN
LINE620:
  DEFB $02,$6C,$52,$00    ; Line number (big-endian) and length
  DEFB $FA,$73,$78,$3D,$36,$0E,$00,$00
  DEFB $06,$00,$00,$CB,$F1,$62,$24,$3D
  DEFB $22,$47,$49,$52,$4C,$22,$3A,$F1
  DEFB $67,$24,$3D,$22,$42,$4F,$59,$20
  DEFB $22,$3A,$F4,$34,$36,$32,$31,$31
  DEFB $0E,$00,$00,$83,$B4,$00,$2C,$31
  DEFB $30,$38,$0E,$00,$00,$6C,$00,$00
  DEFB $3A,$F4,$34,$36,$32,$32,$37,$0E
  DEFB $00,$00,$93,$B4,$00,$2C,$32,$32
  DEFB $30,$0E,$00,$00,$DC,$00,$00,$3A
  DEFB $FE,$0D

; BASIC line 630
;
; 630 GO TO 610
LINE630:
  DEFB $02,$76,$0B,$00    ; Line number (big-endian) and length
  DEFB $EC,$36,$31,$30,$0E,$00,$00,$62
  DEFB $02,$00,$0D

; BASIC line 700
;
; 700 POKE 46136,2: RANDOMIZE USR 32768: PRINT AT 17,6; PAPER 6; FLASH 1;"
; READY WHEN YOU ARE "
LINE700:
  DEFB $02,$BC,$5F,$00    ; Line number (big-endian) and length
  DEFB $F4,$34,$36,$31,$33,$36,$0E,$00
  DEFB $00,$38,$B4,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3A,$F9,$C0,$33
  DEFB $32,$37,$36,$38,$0E,$00,$00,$00
  DEFB $80,$00,$3A,$F5,$AC,$31,$37,$0E
  DEFB $00,$00,$11,$00,$00,$2C,$36,$0E
  DEFB $00,$00,$06,$00,$00,$3B,$DA,$36
  DEFB $0E,$00,$00,$06,$00,$00,$3B,$DB
  DEFB $31,$0E,$00,$00,$01,$00,$00,$3B
  DEFB $22,$20,$52,$45,$41,$44,$59,$20
  DEFB $57,$48,$45,$4E,$20,$59,$4F,$55
  DEFB $20,$41,$52,$45,$20,$22,$0D

; BASIC line 710
;
; 710 RANDOMIZE USR 32919
LINE710:
  DEFB $02,$C6,$0E,$00    ; Line number (big-endian) and length
  DEFB $F9,$C0,$33,$32,$39,$31,$39,$0E
  DEFB $00,$00,$97,$80,$00,$0D

; BASIC line 720
;
; 720 PRINT AT 17,1; PAPER 3;"                              ": RANDOMIZE USR
; 32768: RETURN
LINE720:
  DEFB $02,$D0,$4D,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$37,$0E,$00,$00,$11
  DEFB $00,$00,$2C,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$33,$0E,$00,$00
  DEFB $03,$00,$00,$3B,$22,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$22,$3A,$F9,$C0,$33
  DEFB $32,$37,$36,$38,$0E,$00,$00,$00
  DEFB $80,$00,$3A,$FE,$0D

; BASIC line 750
;
; 750 POKE 46134,3: POKE 46135,233: RETURN
LINE750:
  DEFB $02,$EE,$2E,$00    ; Line number (big-endian) and length
  DEFB $F4,$34,$36,$31,$33,$34,$0E,$00
  DEFB $00,$36,$B4,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$3A,$F4,$34,$36
  DEFB $31,$33,$35,$0E,$00,$00,$37,$B4
  DEFB $00,$2C,$32,$33,$33,$0E,$00,$00
  DEFB $E9,$00,$00,$3A,$FE,$0D

; BASIC line 800
;
; 800 LET c$="": LET t=sg*10+1000: RESTORE t: GO SUB t: GO SUB 850: READ t:
; POKE 46224,t: READ t: POKE 46225,t: READ t: POKE 46226,t: RETURN
LINE800:
  DEFB $03,$20,$6A,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$22,$3A,$F1
  DEFB $74,$3D,$73,$67,$2A,$31,$30,$0E
  DEFB $00,$00,$0A,$00,$00,$2B,$31,$30
  DEFB $30,$30,$0E,$00,$00,$E8,$03,$00
  DEFB $3A,$E5,$74,$3A,$ED,$74,$3A,$ED
  DEFB $38,$35,$30,$0E,$00,$00,$52,$03
  DEFB $00,$3A,$E3,$74,$3A,$F4,$34,$36
  DEFB $32,$32,$34,$0E,$00,$00,$90,$B4
  DEFB $00,$2C,$74,$3A,$E3,$74,$3A,$F4
  DEFB $34,$36,$32,$32,$35,$0E,$00,$00
  DEFB $91,$B4,$00,$2C,$74,$3A,$E3,$74
  DEFB $3A,$F4,$34,$36,$32,$32,$36,$0E
  DEFB $00,$00,$92,$B4,$00,$2C,$74,$3A
  DEFB $FE,$0D

; BASIC line 850
;
; 850 IF PEEK 46237=2 THEN LET r=tim-(INT (tim/4))*4
LINE850:
  DEFB $03,$52,$36,$00    ; Line number (big-endian) and length
  DEFB $FA,$BE,$34,$36,$32,$33,$37,$0E
  DEFB $00,$00,$9D,$B4,$00,$3D,$32,$0E
  DEFB $00,$00,$02,$00,$00,$CB,$F1,$72
  DEFB $3D,$74,$69,$6D,$2D,$28,$BA,$28
  DEFB $74,$69,$6D,$2F,$34,$0E,$00,$00
  DEFB $04,$00,$00,$29,$29,$2A,$34,$0E
  DEFB $00,$00,$04,$00,$00,$0D

; BASIC line 860
;
; 860 IF r<>0 THEN FOR i=1 TO r: READ t: READ t: READ t: NEXT i: RETURN
LINE860:
  DEFB $03,$5C,$26,$00    ; Line number (big-endian) and length
  DEFB $FA,$72,$C9,$30,$0E,$00,$00,$00
  DEFB $00,$00,$CB,$EB,$69,$3D,$31,$0E
  DEFB $00,$00,$01,$00,$00,$CC,$72,$3A
  DEFB $E3,$74,$3A,$E3,$74,$3A,$E3,$74
  DEFB $3A,$F3,$69,$3A,$FE,$0D

; BASIC line 870
;
; 870 RETURN
LINE870:
  DEFB $03,$66,$02,$00    ; Line number (big-endian) and length
  DEFB $FE,$0D

; BASIC line 900
;
; 900 GO SUB 2000: IF sg=0 THEN PRINT AT 2,2;"WELCOME TO ....";AT 5,2;: GO SUB
; 3000: PRINT AT 11,2; PAPER 8;c$: GO TO 960
LINE900:
  DEFB $03,$84,$84,$00    ; Line number (big-endian) and length
  DEFB $ED,$32,$30,$30,$30,$0E,$00,$00
  DEFB $D0,$07,$00,$3A,$FA,$73,$67,$3D
  DEFB $30,$0E,$00,$00,$00,$00,$00,$CB
  DEFB $F5,$AC,$32,$0E,$00,$00,$02,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$3B,$22,$57,$45,$4C,$43,$4F
  DEFB $4D,$45,$20,$54,$4F,$20,$2E,$2E
  DEFB $2E,$2E,$22,$3B,$AC,$35,$0E,$00
  DEFB $00,$05,$00,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3B,$3A,$ED,$33
  DEFB $30,$30,$30,$0E,$00,$00,$B8,$0B
  DEFB $00,$3A,$F5,$AC,$31,$31,$0E,$00
  DEFB $00,$0B,$00,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3B,$DA,$38,$0E
  DEFB $00,$00,$08,$00,$00,$3B,$63,$24
  DEFB $3A,$EC,$39,$36,$30,$0E,$00,$00
  DEFB $C0,$03,$00,$0D

; BASIC line 910
;
; 910 PRINT ;AT 2,6; PAPER 0; INK 7;"**** ANT ATTACK ****";AT 3,6;"**** SCORE
; CARD ****": PRINT AT 6,2; INK 1;"LIVES SAVED :";TAB 24;sg;AT 9,2;"TIME LEFT
; :";TAB 24;tim
LINE910:
  DEFB $03,$8E,$CB,$00    ; Line number (big-endian) and length
  DEFB $F5,$3B,$AC,$32,$0E,$00,$00,$02
  DEFB $00,$00,$2C,$36,$0E,$00,$00,$06
  DEFB $00,$00,$3B,$DA,$30,$0E,$00,$00
  DEFB $00,$00,$00,$3B,$D9,$37,$0E,$00
  DEFB $00,$07,$00,$00,$3B,$22,$2A,$2A
  DEFB $2A,$2A,$20,$41,$4E,$54,$20,$41
  DEFB $54,$54,$41,$43,$4B,$20,$2A,$2A
  DEFB $2A,$2A,$22,$3B,$AC,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$36,$0E,$00
  DEFB $00,$06,$00,$00,$3B,$22,$2A,$2A
  DEFB $2A,$2A,$20,$53,$43,$4F,$52,$45
  DEFB $20,$43,$41,$52,$44,$20,$2A,$2A
  DEFB $2A,$2A,$22,$3A,$F5,$AC,$36,$0E
  DEFB $00,$00,$06,$00,$00,$2C,$32,$0E
  DEFB $00,$00,$02,$00,$00,$3B,$D9,$31
  DEFB $0E,$00,$00,$01,$00,$00,$3B,$22
  DEFB $4C,$49,$56,$45,$53,$20,$53,$41
  DEFB $56,$45,$44,$20,$3A,$22,$3B,$AD
  DEFB $32,$34,$0E,$00,$00,$18,$00,$00
  DEFB $3B,$73,$67,$3B,$AC,$39,$0E,$00
  DEFB $00,$09,$00,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3B,$22,$54,$49
  DEFB $4D,$45,$20,$4C,$45,$46,$54,$20
  DEFB $20,$20,$3A,$22,$3B,$AD,$32,$34
  DEFB $0E,$00,$00,$18,$00,$00,$3B,$74
  DEFB $69,$6D,$0D

; BASIC line 920
;
; 920 PRINT AT 13,2;"TOTAL SCORE :"
LINE920:
  DEFB $03,$98,$23,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$33,$0E,$00,$00,$0D
  DEFB $00,$00,$2C,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$22,$54,$4F,$54,$41
  DEFB $4C,$20,$53,$43,$4F,$52,$45,$20
  DEFB $3A,$22,$0D

; BASIC line 930
;
; 930 LET x=12: LET y=23: GO SUB 3700
LINE930:
  DEFB $03,$A2,$24,$00    ; Line number (big-endian) and length
  DEFB $F1,$78,$3D,$31,$32,$0E,$00,$00
  DEFB $0C,$00,$00,$3A,$F1,$79,$3D,$32
  DEFB $33,$0E,$00,$00,$17,$00,$00,$3A
  DEFB $ED,$33,$37,$30,$30,$0E,$00,$00
  DEFB $74,$0E,$00,$0D

; BASIC line 950
;
; 950 PRINT AT 16,2; PAPER 8;c$
LINE950:
  DEFB $03,$B6,$1F,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$36,$0E,$00,$00,$10
  DEFB $00,$00,$2C,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$DA,$38,$0E,$00,$00
  DEFB $08,$00,$00,$3B,$63,$24,$0D

; BASIC line 960
;
; 960 GO SUB 100: GO SUB 200: PRINT AT 21,8; PAPER 0; INK 7;" PRESS ANY KEY ":
; RANDOMIZE USR 32919: BEEP .01,40: RETURN
LINE960:
  DEFB $03,$C0,$71,$00    ; Line number (big-endian) and length
  DEFB $ED,$31,$30,$30,$0E,$00,$00,$64
  DEFB $00,$00,$3A,$ED,$32,$30,$30,$0E
  DEFB $00,$00,$C8,$00,$00,$3A,$F5,$AC
  DEFB $32,$31,$0E,$00,$00,$15,$00,$00
  DEFB $2C,$38,$0E,$00,$00,$08,$00,$00
  DEFB $3B,$DA,$30,$0E,$00,$00,$00,$00
  DEFB $00,$3B,$D9,$37,$0E,$00,$00,$07
  DEFB $00,$00,$3B,$22,$20,$50,$52,$45
  DEFB $53,$53,$20,$41,$4E,$59,$20,$4B
  DEFB $45,$59,$20,$22,$3A,$F9,$C0,$33
  DEFB $32,$39,$31,$39,$0E,$00,$00,$97
  DEFB $80,$00,$3A,$D7,$2E,$30,$31,$0E
  DEFB $7A,$23,$D7,$0A,$3D,$2C,$34,$30
  DEFB $0E,$00,$00,$28,$00,$00,$3A,$FE
  DEFB $0D

; BASIC line 1000
;
; 1000 LET c$="After a long journey you see    your destination. The high
; walled city of Antescher.       As you stand at the gate you    hear a call
; of distress ,       irresistable to a HERO like     you. You must answer it
; ..      Good luck !": RETURN
LINE1000:
  DEFB $03,$E8,$F4,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$41,$66,$74
  DEFB $65,$72,$20,$61,$20,$6C,$6F,$6E
  DEFB $67,$20,$6A,$6F,$75,$72,$6E,$65
  DEFB $79,$20,$79,$6F,$75,$20,$73,$65
  DEFB $65,$20,$20,$20,$20,$79,$6F,$75
  DEFB $72,$20,$64,$65,$73,$74,$69,$6E
  DEFB $61,$74,$69,$6F,$6E,$2E,$20,$54
  DEFB $68,$65,$20,$68,$69,$67,$68,$20
  DEFB $20,$20,$20,$20,$20,$77,$61,$6C
  DEFB $6C,$65,$64,$20,$63,$69,$74,$79
  DEFB $20,$6F,$66,$20,$41,$6E,$74,$65
  DEFB $73,$63,$68,$65,$72,$2E,$20,$20
  DEFB $20,$20,$20,$20,$20,$41,$73,$20
  DEFB $79,$6F,$75,$20,$73,$74,$61,$6E
  DEFB $64,$20,$61,$74,$20,$74,$68,$65
  DEFB $20,$67,$61,$74,$65,$20,$79,$6F
  DEFB $75,$20,$20,$20,$20,$68,$65,$61
  DEFB $72,$20,$61,$20,$63,$61,$6C,$6C
  DEFB $20,$6F,$66,$20,$64,$69,$73,$74
  DEFB $72,$65,$73,$73,$20,$2C,$20,$20
  DEFB $20,$20,$20,$20,$20,$69,$72,$72
  DEFB $65,$73,$69,$73,$74,$61,$62,$6C
  DEFB $65,$20,$74,$6F,$20,$61,$20,$48
  DEFB $45,$52,$4F,$20,$6C,$69,$6B,$65
  DEFB $20,$20,$20,$20,$20,$79,$6F,$75
  DEFB $2E,$20,$59,$6F,$75,$20,$6D,$75
  DEFB $73,$74,$20,$61,$6E,$73,$77,$65
  DEFB $72,$20,$69,$74,$20,$2E,$2E,$20
  DEFB $20,$20,$20,$20,$20,$47,$6F,$6F
  DEFB $64,$20,$6C,$75,$63,$6B,$20,$21
  DEFB $22,$3A,$FE,$0D

; BASIC line 1001
;
; 1001 DATA 182,243,1
LINE1001:
  DEFB $03,$E9,$1D,$00    ; Line number (big-endian) and length
  DEFB $E4,$31,$38,$32,$0E,$00,$00,$B6
  DEFB $00,$00,$2C,$32,$34,$33,$0E,$00
  DEFB $00,$F3,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$0D

; BASIC line 1010
;
; 1010 LET c$="Well done,but that was easy.    Now there's someone else to save
; !": RETURN
LINE1010:
  DEFB $03,$F2,$4F,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$57,$65,$6C
  DEFB $6C,$20,$64,$6F,$6E,$65,$2C,$62
  DEFB $75,$74,$20,$74,$68,$61,$74,$20
  DEFB $77,$61,$73,$20,$65,$61,$73,$79
  DEFB $2E,$20,$20,$20,$20,$4E,$6F,$77
  DEFB $20,$74,$68,$65,$72,$65,$27,$73
  DEFB $20,$73,$6F,$6D,$65,$6F,$6E,$65
  DEFB $20,$65,$6C,$73,$65,$20,$74,$6F
  DEFB $20,$20,$20,$20,$20,$73,$61,$76
  DEFB $65,$20,$21,$22,$3A,$FE,$0D

; BASIC line 1011
;
; 1011 DATA 200,213,3,198,234,1,212,195,1,141,227,1
LINE1011:
  DEFB $03,$F3,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$32,$30,$30,$0E,$00,$00,$C8
  DEFB $00,$00,$2C,$32,$31,$33,$0E,$00
  DEFB $00,$D5,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$31,$39,$38
  DEFB $0E,$00,$00,$C6,$00,$00,$2C,$32
  DEFB $33,$34,$0E,$00,$00,$EA,$00,$00
  DEFB $2C,$31,$0E,$00,$00,$01,$00,$00
  DEFB $2C,$32,$31,$32,$0E,$00,$00,$D4
  DEFB $00,$00,$2C,$31,$39,$35,$0E,$00
  DEFB $00,$C3,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$34,$31
  DEFB $0E,$00,$00,$8D,$00,$00,$2C,$32
  DEFB $32,$37,$0E,$00,$00,$E3,$00,$00
  DEFB $2C,$31,$0E,$00,$00,$01,$00,$00
  DEFB $0D

; BASIC line 1020
;
; 1020 LET c$="So far so good. On your feet    once more...   no time for a
; coffee break !": RETURN
LINE1020:
  DEFB $03,$FC,$57,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$53,$6F,$20
  DEFB $66,$61,$72,$20,$73,$6F,$20,$67
  DEFB $6F,$6F,$64,$2E,$20,$4F,$6E,$20
  DEFB $79,$6F,$75,$72,$20,$66,$65,$65
  DEFB $74,$20,$20,$20,$20,$6F,$6E,$63
  DEFB $65,$20,$6D,$6F,$72,$65,$2E,$2E
  DEFB $2E,$20,$20,$20,$6E,$6F,$20,$74
  DEFB $69,$6D,$65,$20,$66,$6F,$72,$20
  DEFB $61,$20,$20,$20,$20,$63,$6F,$66
  DEFB $66,$65,$65,$20,$62,$72,$65,$61
  DEFB $6B,$20,$21,$22,$3A,$FE,$0D

; BASIC line 1021
;
; 1021 DATA 240,223,5,192,188,5,184,157,2,181,174,6
LINE1021:
  DEFB $03,$FD,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$32,$34,$30,$0E,$00,$00,$F0
  DEFB $00,$00,$2C,$32,$32,$33,$0E,$00
  DEFB $00,$DF,$00,$00,$2C,$35,$0E,$00
  DEFB $00,$05,$00,$00,$2C,$31,$39,$32
  DEFB $0E,$00,$00,$C0,$00,$00,$2C,$31
  DEFB $38,$38,$0E,$00,$00,$BC,$00,$00
  DEFB $2C,$35,$0E,$00,$00,$05,$00,$00
  DEFB $2C,$31,$38,$34,$0E,$00,$00,$B8
  DEFB $00,$00,$2C,$31,$35,$37,$0E,$00
  DEFB $00,$9D,$00,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$2C,$31,$38,$31
  DEFB $0E,$00,$00,$B5,$00,$00,$2C,$31
  DEFB $37,$34,$0E,$00,$00,$AE,$00,$00
  DEFB $2C,$36,$0E,$00,$00,$06,$00,$00
  DEFB $0D

; BASIC line 1030
;
; 1030 LET c$="Are you brave enough to try     again ? DONT WASTE TOO MUCH TIME
; THINKING!": RETURN
LINE1030:
  DEFB $04,$06,$57,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$41,$72,$65
  DEFB $20,$79,$6F,$75,$20,$62,$72,$61
  DEFB $76,$65,$20,$65,$6E,$6F,$75,$67
  DEFB $68,$20,$74,$6F,$20,$74,$72,$79
  DEFB $20,$20,$20,$20,$20,$61,$67,$61
  DEFB $69,$6E,$20,$3F,$20,$44,$4F,$4E
  DEFB $54,$20,$57,$41,$53,$54,$45,$20
  DEFB $54,$4F,$4F,$20,$4D,$55,$43,$48
  DEFB $20,$20,$20,$20,$20,$54,$49,$4D
  DEFB $45,$20,$54,$48,$49,$4E,$4B,$49
  DEFB $4E,$47,$21,$22,$3A,$FE,$0D

; BASIC line 1031
;
; 1031 DATA 207,250,3,241,243,6,190,254,1,154,232,2
LINE1031:
  DEFB $04,$07,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$32,$30,$37,$0E,$00,$00,$CF
  DEFB $00,$00,$2C,$32,$35,$30,$0E,$00
  DEFB $00,$FA,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$32,$34,$31
  DEFB $0E,$00,$00,$F1,$00,$00,$2C,$32
  DEFB $34,$33,$0E,$00,$00,$F3,$00,$00
  DEFB $2C,$36,$0E,$00,$00,$06,$00,$00
  DEFB $2C,$31,$39,$30,$0E,$00,$00,$BE
  DEFB $00,$00,$2C,$32,$35,$34,$0E,$00
  DEFB $00,$FE,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$35,$34
  DEFB $0E,$00,$00,$9A,$00,$00,$2C,$32
  DEFB $33,$32,$0E,$00,$00,$E8,$00,$00
  DEFB $2C,$32,$0E,$00,$00,$02,$00,$00
  DEFB $0D

; BASIC line 1040
;
; 1040 LET c$="You have a brave heart ...      Better use your BRAIN from now
; on too !!!!": RETURN
LINE1040:
  DEFB $04,$10,$58,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$59,$6F,$75
  DEFB $20,$68,$61,$76,$65,$20,$61,$20
  DEFB $62,$72,$61,$76,$65,$20,$68,$65
  DEFB $61,$72,$74,$20,$2E,$2E,$2E,$20
  DEFB $20,$20,$20,$20,$20,$42,$65,$74
  DEFB $74,$65,$72,$20,$75,$73,$65,$20
  DEFB $79,$6F,$75,$72,$20,$42,$52,$41
  DEFB $49,$4E,$20,$66,$72,$6F,$6D,$20
  DEFB $20,$20,$20,$20,$20,$6E,$6F,$77
  DEFB $20,$6F,$6E,$20,$74,$6F,$6F,$20
  DEFB $21,$21,$21,$21,$22,$3A,$FE,$0D

; BASIC line 1041
;
; 1041 DATA 241,183,1,224,158,2,149,176,1,135,175,2
LINE1041:
  DEFB $04,$11,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$32,$34,$31,$0E,$00,$00,$F1
  DEFB $00,$00,$2C,$31,$38,$33,$0E,$00
  DEFB $00,$B7,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$32,$32,$34
  DEFB $0E,$00,$00,$E0,$00,$00,$2C,$31
  DEFB $35,$38,$0E,$00,$00,$9E,$00,$00
  DEFB $2C,$32,$0E,$00,$00,$02,$00,$00
  DEFB $2C,$31,$34,$39,$0E,$00,$00,$95
  DEFB $00,$00,$2C,$31,$37,$36,$0E,$00
  DEFB $00,$B0,$00,$00,$2C,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$31,$33,$35
  DEFB $0E,$00,$00,$87,$00,$00,$2C,$31
  DEFB $37,$35,$0E,$00,$00,$AF,$00,$00
  DEFB $2C,$32,$0E,$00,$00,$02,$00,$00
  DEFB $0D

; BASIC line 1050
;
; 1050 LET c$="Survival of the fittest !!      Are you fit enough to survive ?
; Then PROVE IT !!!": RETURN
LINE1050:
  DEFB $04,$1A,$64,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$53,$75,$72
  DEFB $76,$69,$76,$61,$6C,$20,$6F,$66
  DEFB $20,$74,$68,$65,$20,$66,$69,$74
  DEFB $74,$65,$73,$74,$20,$21,$21,$20
  DEFB $20,$20,$20,$20,$20,$41,$72,$65
  DEFB $20,$79,$6F,$75,$20,$66,$69,$74
  DEFB $20,$65,$6E,$6F,$75,$67,$68,$20
  DEFB $74,$6F,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$73,$75,$72
  DEFB $76,$69,$76,$65,$20,$3F,$20,$54
  DEFB $68,$65,$6E,$20,$50,$52,$4F,$56
  DEFB $45,$20,$49,$54,$20,$21,$21,$21
  DEFB $22,$3A,$FE,$0D

; BASIC line 1051
;
; 1051  DATA 209,135,1,185,141,1,132,140,3,200,155,2
LINE1051:
  DEFB $04,$1B,$72,$00    ; Line number (big-endian) and length
  DEFB $20,$E4,$32,$30,$39,$0E,$00,$00
  DEFB $D1,$00,$00,$2C,$31,$33,$35,$0E
  DEFB $00,$00,$87,$00,$00,$2C,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$31,$38
  DEFB $35,$0E,$00,$00,$B9,$00,$00,$2C
  DEFB $31,$34,$31,$0E,$00,$00,$8D,$00
  DEFB $00,$2C,$31,$0E,$00,$00,$01,$00
  DEFB $00,$2C,$31,$33,$32,$0E,$00,$00
  DEFB $84,$00,$00,$2C,$31,$34,$30,$0E
  DEFB $00,$00,$8C,$00,$00,$2C,$33,$0E
  DEFB $00,$00,$03,$00,$00,$2C,$32,$30
  DEFB $30,$0E,$00,$00,$C8,$00,$00,$2C
  DEFB $31,$35,$35,$0E,$00,$00,$9B,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$0D

; BASIC line 1060
;
; 1060 LET c$="You handled that well.          It must have been too easy.. Try
; again !": RETURN
LINE1060:
  DEFB $04,$24,$54,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$59,$6F,$75
  DEFB $20,$68,$61,$6E,$64,$6C,$65,$64
  DEFB $20,$74,$68,$61,$74,$20,$77,$65
  DEFB $6C,$6C,$2E,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$49,$74,$20
  DEFB $6D,$75,$73,$74,$20,$68,$61,$76
  DEFB $65,$20,$62,$65,$65,$6E,$20,$74
  DEFB $6F,$6F,$20,$65,$61,$73,$79,$2E
  DEFB $2E,$20,$20,$20,$20,$54,$72,$79
  DEFB $20,$61,$67,$61,$69,$6E,$20,$21
  DEFB $22,$3A,$FE,$0D

; BASIC line 1061
;
; 1061 DATA 245,159,6,145,176,6,199,173,3,206,140,4
LINE1061:
  DEFB $04,$25,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$32,$34,$35,$0E,$00,$00,$F5
  DEFB $00,$00,$2C,$31,$35,$39,$0E,$00
  DEFB $00,$9F,$00,$00,$2C,$36,$0E,$00
  DEFB $00,$06,$00,$00,$2C,$31,$34,$35
  DEFB $0E,$00,$00,$91,$00,$00,$2C,$31
  DEFB $37,$36,$0E,$00,$00,$B0,$00,$00
  DEFB $2C,$36,$0E,$00,$00,$06,$00,$00
  DEFB $2C,$31,$39,$39,$0E,$00,$00,$C7
  DEFB $00,$00,$2C,$31,$37,$33,$0E,$00
  DEFB $00,$AD,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$32,$30,$36
  DEFB $0E,$00,$00,$CE,$00,$00,$2C,$31
  DEFB $34,$30,$0E,$00,$00,$8C,$00,$00
  DEFB $2C,$34,$0E,$00,$00,$04,$00,$00
  DEFB $0D

; BASIC line 1070
;
; 1070 LET c$="Who would have thought you      could get so far ? Better not be
; silly now !": RETURN
LINE1070:
  DEFB $04,$2E,$5B,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$57,$68,$6F
  DEFB $20,$77,$6F,$75,$6C,$64,$20,$68
  DEFB $61,$76,$65,$20,$74,$68,$6F,$75
  DEFB $67,$68,$74,$20,$79,$6F,$75,$20
  DEFB $20,$20,$20,$20,$20,$63,$6F,$75
  DEFB $6C,$64,$20,$67,$65,$74,$20,$73
  DEFB $6F,$20,$66,$61,$72,$20,$3F,$20
  DEFB $42,$65,$74,$74,$65,$72,$20,$20
  DEFB $20,$20,$20,$20,$20,$6E,$6F,$74
  DEFB $20,$62,$65,$20,$73,$69,$6C,$6C
  DEFB $79,$20,$6E,$6F,$77,$20,$21,$22
  DEFB $3A,$FE,$0D

; BASIC line 1071
;
; 1071 DATA 140,150,3,221,137,5,184,147,3,255,159,2
LINE1071:
  DEFB $04,$2F,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$31,$34,$30,$0E,$00,$00,$8C
  DEFB $00,$00,$2C,$31,$35,$30,$0E,$00
  DEFB $00,$96,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$32,$32,$31
  DEFB $0E,$00,$00,$DD,$00,$00,$2C,$31
  DEFB $33,$37,$0E,$00,$00,$89,$00,$00
  DEFB $2C,$35,$0E,$00,$00,$05,$00,$00
  DEFB $2C,$31,$38,$34,$0E,$00,$00,$B8
  DEFB $00,$00,$2C,$31,$34,$37,$0E,$00
  DEFB $00,$93,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$32,$35,$35
  DEFB $0E,$00,$00,$FF,$00,$00,$2C,$31
  DEFB $35,$39,$0E,$00,$00,$9F,$00,$00
  DEFB $2C,$32,$0E,$00,$00,$02,$00,$00
  DEFB $0D

; BASIC line 1080
;
; 1080 LET c$="Although you are weak , you     cannot give up while human life
; is in peril !!": RETURN
LINE1080:
  DEFB $04,$38,$5C,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$41,$6C,$74
  DEFB $68,$6F,$75,$67,$68,$20,$79,$6F
  DEFB $75,$20,$61,$72,$65,$20,$77,$65
  DEFB $61,$6B,$20,$2C,$20,$79,$6F,$75
  DEFB $20,$20,$20,$20,$20,$63,$61,$6E
  DEFB $6E,$6F,$74,$20,$67,$69,$76,$65
  DEFB $20,$75,$70,$20,$77,$68,$69,$6C
  DEFB $65,$20,$68,$75,$6D,$61,$6E,$20
  DEFB $20,$20,$20,$20,$20,$6C,$69,$66
  DEFB $65,$20,$69,$73,$20,$69,$6E,$20
  DEFB $70,$65,$72,$69,$6C,$20,$21,$21
  DEFB $22,$3A,$FE,$0D

; BASIC line 1081
;
; 1081 DATA 147,245,4,154,232,6,219,145,6,178,134,4
LINE1081:
  DEFB $04,$39,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$31,$34,$37,$0E,$00,$00,$93
  DEFB $00,$00,$2C,$32,$34,$35,$0E,$00
  DEFB $00,$F5,$00,$00,$2C,$34,$0E,$00
  DEFB $00,$04,$00,$00,$2C,$31,$35,$34
  DEFB $0E,$00,$00,$9A,$00,$00,$2C,$32
  DEFB $33,$32,$0E,$00,$00,$E8,$00,$00
  DEFB $2C,$36,$0E,$00,$00,$06,$00,$00
  DEFB $2C,$32,$31,$39,$0E,$00,$00,$DB
  DEFB $00,$00,$2C,$31,$34,$35,$0E,$00
  DEFB $00,$91,$00,$00,$2C,$36,$0E,$00
  DEFB $00,$06,$00,$00,$2C,$31,$37,$38
  DEFB $0E,$00,$00,$B2,$00,$00,$2C,$31
  DEFB $33,$34,$0E,$00,$00,$86,$00,$00
  DEFB $2C,$34,$0E,$00,$00,$04,$00,$00
  DEFB $0D

; BASIC line 1090
;
; 1090 LET c$="There is only one person        left in the city. Your mission
; will soon be       accomplished.. IF you live !": RETURN
LINE1090:
  DEFB $04,$42,$85,$00    ; Line number (big-endian) and length
  DEFB $F1,$63,$24,$3D,$22,$54,$68,$65
  DEFB $72,$65,$20,$69,$73,$20,$6F,$6E
  DEFB $6C,$79,$20,$6F,$6E,$65,$20,$70
  DEFB $65,$72,$73,$6F,$6E,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$6C,$65,$66
  DEFB $74,$20,$69,$6E,$20,$74,$68,$65
  DEFB $20,$63,$69,$74,$79,$2E,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$59,$6F,$75
  DEFB $72,$20,$6D,$69,$73,$73,$69,$6F
  DEFB $6E,$20,$77,$69,$6C,$6C,$20,$73
  DEFB $6F,$6F,$6E,$20,$62,$65,$20,$20
  DEFB $20,$20,$20,$20,$20,$61,$63,$63
  DEFB $6F,$6D,$70,$6C,$69,$73,$68,$65
  DEFB $64,$2E,$2E,$20,$49,$46,$20,$79
  DEFB $6F,$75,$20,$6C,$69,$76,$65,$20
  DEFB $21,$22,$3A,$FE,$0D

; BASIC line 1091
;
; 1091 DATA 136,219,3,240,138,5,227,225,3,163,197,6
LINE1091:
  DEFB $04,$43,$71,$00    ; Line number (big-endian) and length
  DEFB $E4,$31,$33,$36,$0E,$00,$00,$88
  DEFB $00,$00,$2C,$32,$31,$39,$0E,$00
  DEFB $00,$DB,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$32,$34,$30
  DEFB $0E,$00,$00,$F0,$00,$00,$2C,$31
  DEFB $33,$38,$0E,$00,$00,$8A,$00,$00
  DEFB $2C,$35,$0E,$00,$00,$05,$00,$00
  DEFB $2C,$32,$32,$37,$0E,$00,$00,$E3
  DEFB $00,$00,$2C,$32,$32,$35,$0E,$00
  DEFB $00,$E1,$00,$00,$2C,$33,$0E,$00
  DEFB $00,$03,$00,$00,$2C,$31,$36,$33
  DEFB $0E,$00,$00,$A3,$00,$00,$2C,$31
  DEFB $39,$37,$0E,$00,$00,$C5,$00,$00
  DEFB $2C,$36,$0E,$00,$00,$06,$00,$00
  DEFB $0D

; BASIC line 2000
;
; 2000 BORDER 5: PAPER 6: CLS : PRINT PAPER 3;" ";: FOR i=0 TO 20: PRINT ;
; PAPER 3;AT i,31;"  ";: NEXT i: PRINT PAPER 3;" ": RETURN
LINE2000:
  DEFB $07,$D0,$A3,$00    ; Line number (big-endian) and length
  DEFB $E7,$35,$0E,$00,$00,$05,$00,$00
  DEFB $3A,$DA,$36,$0E,$00,$00,$06,$00
  DEFB $00,$3A,$FB,$3A,$F5,$DA,$33,$0E
  DEFB $00,$00,$03,$00,$00,$3B,$22,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$22,$3B
  DEFB $3A,$EB,$69,$3D,$30,$0E,$00,$00
  DEFB $00,$00,$00,$CC,$32,$30,$0E,$00
  DEFB $00,$14,$00,$00,$3A,$F5,$3B,$DA
  DEFB $33,$0E,$00,$00,$03,$00,$00,$3B
  DEFB $AC,$69,$2C,$33,$31,$0E,$00,$00
  DEFB $1F,$00,$00,$3B,$22,$20,$20,$22
  DEFB $3B,$3A,$F3,$69,$3A,$F5,$DA,$33
  DEFB $0E,$00,$00,$03,$00,$00,$3B,$22
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$22
  DEFB $3A,$FE,$0D

; BASIC line 2500
;
; 2500 PRINT AT 6,7; FLASH 1; PAPER 6;" Have another go! ";AT 7,7;" ";AT 5,7;"
; ": RETURN
LINE2500:
  DEFB $09,$C4,$87,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$36,$0E,$00,$00,$06,$00
  DEFB $00,$2C,$37,$0E,$00,$00,$07,$00
  DEFB $00,$3B,$DB,$31,$0E,$00,$00,$01
  DEFB $00,$00,$3B,$DA,$36,$0E,$00,$00
  DEFB $06,$00,$00,$3B,$22,$20,$48,$61
  DEFB $76,$65,$20,$61,$6E,$6F,$74,$68
  DEFB $65,$72,$20,$67,$6F,$21,$20,$22
  DEFB $3B,$AC,$37,$0E,$00,$00,$07,$00
  DEFB $00,$2C,$37,$0E,$00,$00,$07,$00
  DEFB $00,$3B,$22,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$22,$3B,$AC
  DEFB $35,$0E,$00,$00,$05,$00,$00,$2C
  DEFB $37,$0E,$00,$00,$07,$00,$00,$3B
  DEFB $22,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$20,$20,$20,$20
  DEFB $20,$20,$20,$22,$3A,$FE,$0D

; BASIC line 2600
;
; 2600 PRINT AT 21,3; PAPER 7; FLASH 1;" PRESS A KEY FOR NEW GAME ": RETURN
LINE2600:
  DEFB $0A,$28,$44,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$32,$31,$0E,$00,$00,$15
  DEFB $00,$00,$2C,$33,$0E,$00,$00,$03
  DEFB $00,$00,$3B,$DA,$37,$0E,$00,$00
  DEFB $07,$00,$00,$3B,$DB,$31,$0E,$00
  DEFB $00,$01,$00,$00,$3B,$22,$20,$50
  DEFB $52,$45,$53,$53,$20,$41,$20,$4B
  DEFB $45,$59,$20,$46,$4F,$52,$20,$4E
  DEFB $45,$57,$20,$47,$41,$4D,$45,$20
  DEFB $22,$3A,$FE,$0D

; BASIC line 3000
;
; 3000 PRINT PAPER 8; INK ink;"
; {0x85}{0x88}{0x85}{0x88}{0x8A}{0x83}{0x87}{0x83}{0x82}
; {0x8A}{0x83}{0x87}{0x83}{0x81}{0x87}{0x83}{0x82}{0x8D}{0x88}{0x84}{0x83}{0x86}{0x85}
; {0x85}     {0x8A}{0x8A}{0x85}{0x8A}{0x87} {0x85}   {0x85}{0x87} {0x85} {0x85}
; {0x85}{0x82}{0x8A}{0x8A}  {0x85}{0x8D}{0x82}
; {0x8D}{0x83}{0x8E}{0x85}{0x87}{0x85} {0x8B}   {0x8B}{0x83}{0x8A}{0x85} {0x8B}
; {0x8B}{0x83}{0x8E}{0x86}  {0x85}{0x87}{0x88}   {0x84}{0x8A}
; {0x85}{0x85}{0x81}{0x8F} {0x8A}  {0x85}{0x82} {0x87}{0x85}  {0x8A}{0x85}
; {0x85}{0x81}{0x8C}{0x89}{0x85} {0x87}{0x88}"
LINE3000:
  DEFB $0B,$B8,$8F,$00    ; Line number (big-endian) and length
  DEFB $F5,$DA,$38,$0E,$00,$00,$08,$00
  DEFB $00,$3B,$D9,$69,$6E,$6B,$3B,$22
  DEFB $20,$85,$88,$85,$88,$8A,$83,$87
  DEFB $83,$82,$20,$20,$8A,$83,$87,$83
  DEFB $81,$87,$83,$82,$8D,$88,$84,$83
  DEFB $86,$85,$20,$85,$20,$20,$20,$20
  DEFB $20,$8A,$8A,$85,$8A,$87,$20,$85
  DEFB $20,$20,$20,$85,$87,$20,$85,$20
  DEFB $20,$85,$20,$85,$82,$8A,$8A,$20
  DEFB $20,$85,$8D,$82,$20,$20,$20,$20
  DEFB $8D,$83,$8E,$85,$87,$85,$20,$8B
  DEFB $20,$20,$20,$8B,$83,$8A,$85,$20
  DEFB $20,$8B,$20,$8B,$83,$8E,$86,$20
  DEFB $20,$85,$87,$88,$20,$20,$20,$84
  DEFB $8A,$20,$85,$85,$81,$8F,$20,$8A
  DEFB $20,$20,$85,$82,$20,$87,$85,$20
  DEFB $20,$8A,$85,$20,$20,$85,$81,$8C
  DEFB $89,$85,$20,$87,$88,$22,$0D

; BASIC line 3010
;
; 3010 RETURN
LINE3010:
  DEFB $0B,$C2,$02,$00    ; Line number (big-endian) and length
  DEFB $FE,$0D

; BASIC line 3100
;
; 3100 GO SUB 2000: PRINT AT 2,3; INK 1;"QUICKSILVA";AT 4,10;"present ..."
LINE3100:
  DEFB $0C,$1C,$54,$00    ; Line number (big-endian) and length
  DEFB $ED,$32,$30,$30,$30,$0E,$00,$00
  DEFB $D0,$07,$00,$3A,$F5,$AC,$32,$0E
  DEFB $00,$00,$02,$00,$00,$2C,$33,$0E
  DEFB $00,$00,$03,$00,$00,$3B,$D9,$31
  DEFB $0E,$00,$00,$01,$00,$00,$3B,$22
  DEFB $51,$55,$49,$43,$4B,$53,$49,$4C
  DEFB $56,$41,$22,$3B,$AC,$34,$0E,$00
  DEFB $00,$04,$00,$00,$2C,$31,$30,$0E
  DEFB $00,$00,$0A,$00,$00,$3B,$22,$70
  DEFB $72,$65,$73,$65,$6E,$74,$20,$2E
  DEFB $2E,$2E,$22,$0D

; BASIC line 3110
;
; 3110 PRINT AT 12,6;"© SANDY WHITE 1983";AT 16,3; INK 2;"SOFT SOLID 3-D
; Pat.Pending": FOR j=1 TO 5: FOR i=7 TO 0 STEP -1: BEEP .05,INT (i/4): PRINT
; AT 7,2;: LET ink=i: GO SUB 3000: NEXT i: NEXT j
LINE3110:
  DEFB $0C,$26,$D3,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$32,$0E,$00,$00,$0C
  DEFB $00,$00,$2C,$36,$0E,$00,$00,$06
  DEFB $00,$00,$3B,$22,$7F,$20,$53,$41
  DEFB $4E,$44,$59,$20,$57,$48,$49,$54
  DEFB $45,$20,$31,$39,$38,$33,$22,$3B
  DEFB $AC,$31,$36,$0E,$00,$00,$10,$00
  DEFB $00,$2C,$33,$0E,$00,$00,$03,$00
  DEFB $00,$3B,$D9,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$22,$53,$4F,$46,$54
  DEFB $20,$53,$4F,$4C,$49,$44,$20,$33
  DEFB $2D,$44,$20,$50,$61,$74,$2E,$50
  DEFB $65,$6E,$64,$69,$6E,$67,$22,$3A
  DEFB $EB,$6A,$3D,$31,$0E,$00,$00,$01
  DEFB $00,$00,$CC,$35,$0E,$00,$00,$05
  DEFB $00,$00,$3A,$EB,$69,$3D,$37,$0E
  DEFB $00,$00,$07,$00,$00,$CC,$30,$0E
  DEFB $00,$00,$00,$00,$00,$CD,$2D,$31
  DEFB $0E,$00,$00,$01,$00,$00,$3A,$D7
  DEFB $2E,$30,$35,$0E,$7C,$4C,$CC,$CC
  DEFB $CC,$2C,$BA,$28,$69,$2F,$34,$0E
  DEFB $00,$00,$04,$00,$00,$29,$3A,$F5
  DEFB $AC,$37,$0E,$00,$00,$07,$00,$00
  DEFB $2C,$32,$0E,$00,$00,$02,$00,$00
  DEFB $3B,$3A,$F1,$69,$6E,$6B,$3D,$69
  DEFB $3A,$ED,$33,$30,$30,$30,$0E,$00
  DEFB $00,$B8,$0B,$00,$3A,$F3,$69,$3A
  DEFB $F3,$6A,$0D

; BASIC line 3120
;
; 3120 FOR i=0 TO 60 STEP 3: BEEP .02,i: NEXT i: PRINT AT 21,6; FLASH 1; BRIGHT
; 1;" Girl or Boy (g/b)? ": RETURN
LINE3120:
  DEFB $0C,$30,$6A,$00    ; Line number (big-endian) and length
  DEFB $EB,$69,$3D,$30,$0E,$00,$00,$00
  DEFB $00,$00,$CC,$36,$30,$0E,$00,$00
  DEFB $3C,$00,$00,$CD,$33,$0E,$00,$00
  DEFB $03,$00,$00,$3A,$D7,$2E,$30,$32
  DEFB $0E,$7B,$23,$D7,$0A,$3D,$2C,$69
  DEFB $3A,$F3,$69,$3A,$F5,$AC,$32,$31
  DEFB $0E,$00,$00,$15,$00,$00,$2C,$36
  DEFB $0E,$00,$00,$06,$00,$00,$3B,$DB
  DEFB $31,$0E,$00,$00,$01,$00,$00,$3B
  DEFB $DC,$31,$0E,$00,$00,$01,$00,$00
  DEFB $3B,$22,$20,$47,$69,$72,$6C,$20
  DEFB $6F,$72,$20,$42,$6F,$79,$20,$28
  DEFB $67,$2F,$62,$29,$3F,$20,$22,$3A
  DEFB $FE,$0D

; BASIC line 3200
;
; 3200 GO SUB 2000: PRINT PAPER 8;AT
; 2,3;"{0x8F}{0x8F}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x8E}{0x80}{0x8D}{0x8F}{0x80}{0x8F}{0x8F}{0x8F}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x8F}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x8F}{0x8C}{0x8F}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x81}{0x8F}{0x82}{0x8F}{0x80}{0x8F}{0x8F}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x8F}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}
; {0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x8F}{0x80}{0x8F}{0x8F}{0x8F}{0x80}{0x80}{0x8F}{0x8F}{0x8F}{0x80}{0x8F}{0x80}{0x80}{0x80}{0x8F}"
LINE3200:
  DEFB $0C,$80,$C4,$00    ; Line number (big-endian) and length
  DEFB $ED,$32,$30,$30,$30,$0E,$00,$00
  DEFB $D0,$07,$00,$3A,$F5,$DA,$38,$0E
  DEFB $00,$00,$08,$00,$00,$3B,$AC,$32
  DEFB $0E,$00,$00,$02,$00,$00,$2C,$33
  DEFB $0E,$00,$00,$03,$00,$00,$3B,$22
  DEFB $8F,$8F,$8F,$80,$8F,$80,$8F,$8E
  DEFB $80,$8D,$8F,$80,$8F,$8F,$8F,$80
  DEFB $80,$8F,$80,$8F,$80,$8F,$8F,$8F
  DEFB $80,$8F,$80,$80,$80,$80,$80,$80
  DEFB $80,$8F,$80,$80,$8F,$80,$8F,$8F
  DEFB $8C,$8F,$8F,$80,$8F,$80,$80,$80
  DEFB $80,$8F,$80,$8F,$80,$8F,$80,$8F
  DEFB $80,$8F,$80,$80,$80,$80,$80,$80
  DEFB $80,$8F,$80,$80,$8F,$80,$8F,$81
  DEFB $8F,$82,$8F,$80,$8F,$8F,$80,$80
  DEFB $80,$8F,$80,$8F,$80,$8F,$8F,$8F
  DEFB $80,$8F,$80,$80,$80,$80,$80,$80
  DEFB $80,$8F,$80,$80,$8F,$80,$8F,$80
  DEFB $80,$80,$8F,$80,$8F,$80,$80,$80
  DEFB $80,$8F,$80,$8F,$80,$8F,$80,$80
  DEFB $80,$20,$80,$80,$80,$80,$80,$80
  DEFB $80,$8F,$80,$80,$8F,$80,$8F,$80
  DEFB $80,$80,$8F,$80,$8F,$8F,$8F,$80
  DEFB $80,$8F,$8F,$8F,$80,$8F,$80,$80
  DEFB $80,$8F,$22,$0D

; BASIC line 3210
;
; 3210 PRINT AT 9,2; PAPER 8;"TOO BAD SLOWCOACH ! YOU RAN     OUT OF TIME !":
; GO SUB 3500: PRINT AT 18,2; PAPER 8;"SURELY YOU CAN DO BETTER        THAN
; THAT !"
LINE3210:
  DEFB $0C,$8A,$A1,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$39,$0E,$00,$00,$09,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$3B,$DA,$38,$0E,$00,$00,$08
  DEFB $00,$00,$3B,$22,$54,$4F,$4F,$20
  DEFB $42,$41,$44,$20,$53,$4C,$4F,$57
  DEFB $43,$4F,$41,$43,$48,$20,$21,$20
  DEFB $59,$4F,$55,$20,$52,$41,$4E,$20
  DEFB $20,$20,$20,$20,$4F,$55,$54,$20
  DEFB $4F,$46,$20,$54,$49,$4D,$45,$20
  DEFB $21,$22,$3A,$ED,$33,$35,$30,$30
  DEFB $0E,$00,$00,$AC,$0D,$00,$3A,$F5
  DEFB $AC,$31,$38,$0E,$00,$00,$12,$00
  DEFB $00,$2C,$32,$0E,$00,$00,$02,$00
  DEFB $00,$3B,$DA,$38,$0E,$00,$00,$08
  DEFB $00,$00,$3B,$22,$53,$55,$52,$45
  DEFB $4C,$59,$20,$59,$4F,$55,$20,$43
  DEFB $41,$4E,$20,$44,$4F,$20,$42,$45
  DEFB $54,$54,$45,$52,$20,$20,$20,$20
  DEFB $20,$20,$20,$20,$54,$48,$41,$4E
  DEFB $20,$54,$48,$41,$54,$20,$21,$22
  DEFB $0D

; BASIC line 3220
;
; 3220 FOR i=40 TO 0 STEP -3: BEEP .2,i: NEXT i: RETURN
LINE3220:
  DEFB $0C,$94,$2E,$00    ; Line number (big-endian) and length
  DEFB $EB,$69,$3D,$34,$30,$0E,$00,$00
  DEFB $28,$00,$00,$CC,$30,$0E,$00,$00
  DEFB $00,$00,$00,$CD,$2D,$33,$0E,$00
  DEFB $00,$03,$00,$00,$3A,$D7,$2E,$32
  DEFB $0E,$7E,$4C,$CC,$CC,$CC,$2C,$69
  DEFB $3A,$F3,$69,$3A,$FE,$0D

; BASIC line 3500
;
; 3500 PRINT AT 12,2;"LIVES SAVED    ....";TAB 24;sg
LINE3500:
  DEFB $0D,$AC,$36,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$32,$0E,$00,$00,$0C
  DEFB $00,$00,$2C,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$22,$4C,$49,$56,$45
  DEFB $53,$20,$53,$41,$56,$45,$44,$20
  DEFB $20,$20,$20,$2E,$2E,$2E,$2E,$22
  DEFB $3B,$AD,$32,$34,$0E,$00,$00,$18
  DEFB $00,$00,$3B,$73,$67,$0D

; BASIC line 3510
;
; 3510 PRINT AT 15,2;"YOUR SCORE iS  ....": LET x=14: LET y=23: GO SUB 3700:
; RETURN
LINE3510:
  DEFB $0D,$B6,$4F,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$35,$0E,$00,$00,$0F
  DEFB $00,$00,$2C,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$22,$59,$4F,$55,$52
  DEFB $20,$53,$43,$4F,$52,$45,$20,$69
  DEFB $53,$20,$20,$2E,$2E,$2E,$2E,$22
  DEFB $3A,$F1,$78,$3D,$31,$34,$0E,$00
  DEFB $00,$0E,$00,$00,$3A,$F1,$79,$3D
  DEFB $32,$33,$0E,$00,$00,$17,$00,$00
  DEFB $3A,$ED,$33,$37,$30,$30,$0E,$00
  DEFB $00,$74,$0E,$00,$3A,$FE,$0D

; BASIC line 3600
;
; 3600 GO SUB 2000: POKE 46124,5: RANDOMIZE USR 36594
LINE3600:
  DEFB $0E,$10,$2F,$00    ; Line number (big-endian) and length
  DEFB $ED,$32,$30,$30,$30,$0E,$00,$00
  DEFB $D0,$07,$00,$3A,$F4,$34,$36,$31
  DEFB $32,$34,$0E,$00,$00,$2C,$B4,$00
  DEFB $2C,$35,$0E,$00,$00,$05,$00,$00
  DEFB $3A,$F9,$C0,$33,$36,$35,$39,$34
  DEFB $0E,$00,$00,$F2,$8E,$00,$0D

; BASIC line 3610
;
; 3610 INK 2: FOR i=22 TO 28: CIRCLE 100,40,i: NEXT i: FOR i=70 TO 155 STEP 5:
; CIRCLE 170-i,i,3: CIRCLE 30+i,i,3: NEXT i
LINE3610:
  DEFB $0E,$1A,$85,$00    ; Line number (big-endian) and length
  DEFB $D9,$32,$0E,$00,$00,$02,$00,$00
  DEFB $3A,$EB,$69,$3D,$32,$32,$0E,$00
  DEFB $00,$16,$00,$00,$CC,$32,$38,$0E
  DEFB $00,$00,$1C,$00,$00,$3A,$D8,$31
  DEFB $30,$30,$0E,$00,$00,$64,$00,$00
  DEFB $2C,$34,$30,$0E,$00,$00,$28,$00
  DEFB $00,$2C,$69,$3A,$F3,$69,$3A,$EB
  DEFB $69,$3D,$37,$30,$0E,$00,$00,$46
  DEFB $00,$00,$CC,$31,$35,$35,$0E,$00
  DEFB $00,$9B,$00,$00,$CD,$35,$0E,$00
  DEFB $00,$05,$00,$00,$3A,$D8,$31,$37
  DEFB $30,$0E,$00,$00,$AA,$00,$00,$2D
  DEFB $69,$2C,$69,$2C,$33,$0E,$00,$00
  DEFB $03,$00,$00,$3A,$D8,$33,$30,$0E
  DEFB $00,$00,$1E,$00,$00,$2B,$69,$2C
  DEFB $69,$2C,$33,$0E,$00,$00,$03,$00
  DEFB $00,$3A,$F3,$69,$0D

; BASIC line 3620
;
; 3620 PRINT AT 15,11;"TEN";AT 16,10;"LIVES";AT 17,10;"SAVED";AT 18,12;"!": INK
; 0
LINE3620:
  DEFB $0E,$24,$70,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$35,$0E,$00,$00,$0F
  DEFB $00,$00,$2C,$31,$31,$0E,$00,$00
  DEFB $0B,$00,$00,$3B,$22,$54,$45,$4E
  DEFB $22,$3B,$AC,$31,$36,$0E,$00,$00
  DEFB $10,$00,$00,$2C,$31,$30,$0E,$00
  DEFB $00,$0A,$00,$00,$3B,$22,$4C,$49
  DEFB $56,$45,$53,$22,$3B,$AC,$31,$37
  DEFB $0E,$00,$00,$11,$00,$00,$2C,$31
  DEFB $30,$0E,$00,$00,$0A,$00,$00,$3B
  DEFB $22,$53,$41,$56,$45,$44,$22,$3B
  DEFB $AC,$31,$38,$0E,$00,$00,$12,$00
  DEFB $00,$2C,$31,$32,$0E,$00,$00,$0C
  DEFB $00,$00,$3B,$22,$21,$22,$3A,$D9
  DEFB $30,$0E,$00,$00,$00,$00,$00,$0D

; BASIC line 3630
;
; 3630 PRINT AT 15,2;"TOTAL";AT 16,2;"SCORE:";AT 15,17;"Please accept";AT
; 16,17;"this";AT 17,17;"{0x1401}SOLID GOLD{0x1400}";AT 18,17;"medal !": LET
; x=17: LET y=2: GO SUB 3700: RETURN
LINE3630:
  DEFB $0E,$2E,$D9,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$31,$35,$0E,$00,$00,$0F
  DEFB $00,$00,$2C,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3B,$22,$54,$4F,$54,$41
  DEFB $4C,$22,$3B,$AC,$31,$36,$0E,$00
  DEFB $00,$10,$00,$00,$2C,$32,$0E,$00
  DEFB $00,$02,$00,$00,$3B,$22,$53,$43
  DEFB $4F,$52,$45,$3A,$22,$3B,$AC,$31
  DEFB $35,$0E,$00,$00,$0F,$00,$00,$2C
  DEFB $31,$37,$0E,$00,$00,$11,$00,$00
  DEFB $3B,$22,$50,$6C,$65,$61,$73,$65
  DEFB $20,$61,$63,$63,$65,$70,$74,$22
  DEFB $3B,$AC,$31,$36,$0E,$00,$00,$10
  DEFB $00,$00,$2C,$31,$37,$0E,$00,$00
  DEFB $11,$00,$00,$3B,$22,$74,$68,$69
  DEFB $73,$22,$3B,$AC,$31,$37,$0E,$00
  DEFB $00,$11,$00,$00,$2C,$31,$37,$0E
  DEFB $00,$00,$11,$00,$00,$3B,$22,$14
  DEFB $01,$53,$4F,$4C,$49,$44,$20,$47
  DEFB $4F,$4C,$44,$14,$00,$22,$3B,$AC
  DEFB $31,$38,$0E,$00,$00,$12,$00,$00
  DEFB $2C,$31,$37,$0E,$00,$00,$11,$00
  DEFB $00,$3B,$22,$6D,$65,$64,$61,$6C
  DEFB $20,$21,$22,$3A,$F1,$78,$3D,$31
  DEFB $37,$0E,$00,$00,$11,$00,$00,$3A
  DEFB $F1,$79,$3D,$32,$0E,$00,$00,$02
  DEFB $00,$00,$3A,$ED,$33,$37,$30,$30
  DEFB $0E,$00,$00,$74,$0E,$00,$3A,$FE
  DEFB $0D

; BASIC line 3700
;
; 3700 PRINT AT x,y; INK 5; FLASH 1;"       ";AT x+1,y;" ";AT x+1,y+6;" ";AT
; x+2,y;"       ": PRINT AT x+1,y+1;se: RETURN
LINE3700:
  DEFB $0E,$74,$7E,$00    ; Line number (big-endian) and length
  DEFB $F5,$AC,$78,$2C,$79,$3B,$D9,$35
  DEFB $0E,$00,$00,$05,$00,$00,$3B,$DB
  DEFB $31,$0E,$00,$00,$01,$00,$00,$3B
  DEFB $22,$20,$20,$20,$20,$20,$20,$20
  DEFB $22,$3B,$AC,$78,$2B,$31,$0E,$00
  DEFB $00,$01,$00,$00,$2C,$79,$3B,$22
  DEFB $20,$22,$3B,$AC,$78,$2B,$31,$0E
  DEFB $00,$00,$01,$00,$00,$2C,$79,$2B
  DEFB $36,$0E,$00,$00,$06,$00,$00,$3B
  DEFB $22,$20,$22,$3B,$AC,$78,$2B,$32
  DEFB $0E,$00,$00,$02,$00,$00,$2C,$79
  DEFB $3B,$22,$20,$20,$20,$20,$20,$20
  DEFB $20,$22,$3A,$F5,$AC,$78,$2B,$31
  DEFB $0E,$00,$00,$01,$00,$00,$2C,$79
  DEFB $2B,$31,$0E,$00,$00,$01,$00,$00
  DEFB $3B,$73,$65,$3A,$FE,$0D

; BASIC variables and workspace
;
; Up to RAMTOP: the variables area (empty on the tape), the edit line, the
; calculator stack and the machine stack.
BASIC_VARIABLES:
  DEFB $80,$F9,$C0,$32,$33,$32,$39,$36
  DEFB $0E,$00,$00,$00,$5B,$00,$0D,$80
  DEFB $00,$00,$00,$5B,$00,$00,$0A,$00
  DEFB $00,$00,$12,$8D,$00,$00,$00,$1E
  DEFB $00,$00,$00,$3A,$ED,$32,$36,$30
  DEFB $30,$0E,$00,$00,$28,$0A,$00,$3A
  DEFB $F9,$C0,$33,$32,$39,$31,$39,$0E
  DEFB $00,$00,$97,$80,$00,$3A,$F7,$0D
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$97,$80,$00,$00,$0A
  DEFB $00,$00,$30,$30,$0E,$00,$00,$28
  DEFB $0A,$00,$3A,$F9,$C0,$33,$32,$39
  DEFB $31,$39,$0E,$00,$00,$97,$80,$00
  DEFB $3A,$F7,$0D,$80,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$97,$80
  DEFB $00,$00,$0A,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$DB,$02,$4D,$00
  DEFB $56,$57,$8A,$00,$76,$57,$0D,$07
  DEFB $E0,$57,$DB,$02,$DB,$02,$4D,$00
  DEFB $E4,$51,$00,$00,$A9,$3E,$F3,$0D
  DEFB $CE,$0B,$EC,$50,$CE,$0B,$ED,$50
  DEFB $14,$17,$DC,$0A,$CE,$0B,$F3,$50
  DEFB $0E,$17,$DC,$0A,$B1,$33,$EE,$7D
  DEFB $DB,$02,$4D,$00,$FF,$FF,$0E,$01
  DEFB $00,$00,$3F,$05,$2D,$5B,$2B,$2D
  DEFB $65,$33,$FF,$FF,$ED,$10,$0D,$00
  DEFB $09,$00,$85,$1C,$10,$1C,$52,$1B
  DEFB $76,$1B,$03,$13,$00,$3E

; Play the game (USR 32768)
;
; The machine code's main loop, called from BASIC line 700 (to draw the city
; before "READY WHEN YOU ARE") and line 720 (to play). It runs GAME_FRAME,
; CHECK_RESCUED and CHECK_GAME_OVER over and over, returning to BASIC when 1 is
; pressed (back to the city gate, and "Have another go!") or when FRAMES_LEFT
; counts out.
;
; FRAMES_LEFT is both the stop signal and a frame budget. BASIC pokes 2 into it
; before the first call, so that call draws two frames and returns; it is then
; 0, and the next call decrements that to $FF, which means "run until the game
; says stop" -- CHECK_GAME_OVER and CHECK_RESCUED stop it by storing a small
; count again.
PLAY:
  DI
  LD HL,SPRITE_LIST_END   ; Mark the end of SPRITE_LIST, one byte past its
  LD (HL),$FF             ; eighth entry.
  CALL PRINT_COUNTERS     ; Print the grenade count and both energies on the
                          ; panel.
PLAY_0:
  LD BC,$F7FE             ; Key 1 (bit 0 of the 1-5 half-row, low when
  IN A,(C)                ; pressed)...
  BIT 0,A                 ;
  JR NZ,PLAY_1            ;
  EI                      ; ...goes straight back to BASIC.
  RET                     ;
PLAY_1:
  CALL GAME_FRAME         ; One frame of the game: move everything, draw the
                          ; view.
  CALL CHECK_RESCUED      ; Have both left the city?
  CALL CHECK_GAME_OVER    ; Out of time, or out of energy?
  LD A,(FRAMES_LEFT)      ; $FF: keep playing.
  CP $FF                  ;
  JP Z,PLAY_0             ;
  DEC A                   ; Otherwise count a frame off, and stop at zero.
  LD (FRAMES_LEFT),A      ;
  JP NZ,PLAY_0            ;
  LD A,(RANDOM_BITS)      ; Leave the random number in SEED -- to no end: the
  LD (SEED),A             ; RANDOMIZE in the BASIC's RANDOMIZE USR that calls
                          ; this overwrites SEED with what the USR returns, and
                          ; the BASIC has no RND (watched: the ROM's write at
                          ; $1E5A replaces this one).
  EI
  RET

; Signature
;
; "SandyWhite1983" twice, with a leading fragment and $7F between the copies,
; padded out to the next routine. Nothing reads it. There is another copy at
; READ_VIEW_KEYS_PAD.
PLAY_PAD:
  DEFM "dyWhite1983"      ; The tail of a third copy
  DEFB $7F
  DEFM "SandyWhite1983"
  DEFB $7F
  DEFM "SandyWhite1983"
  DEFB $FF,$FF,$FF

; Read the movement keys into the player's record
;
; Used by the routine at MOVE_PLAYER.
;
; V (move) and C (jump) become bits 2 and 1 of the flags at +7, in one go.
; SYMBOL SHIFT and M turn the player, but only when not stunned.
;
; IX The player's record
READ_CONTROLS:
  LD BC,$FEFE             ; CAPS SHIFT to V, made active high: C is bit 3, V
  IN A,(C)                ; bit 4.
  CPL                     ;
  AND $18                 ; Down to bits 1 and 2: jump and move.
  RRCA                    ;
  RRCA                    ;
  LD E,A                  ; Replace the player's jump and move bits with them.
  LD A,(IX+$07)           ;
  AND $F9                 ;
  OR E                    ;
  LD (IX+$07),A           ;
  LD A,(IX+$06)           ; Stunned: no turning.
  AND A                   ;
  RET NZ                  ;
  LD B,$7F                ; SPACE to B: SYMBOL SHIFT is bit 1, M bit 2.
  IN A,(C)                ;
  CPL                     ;
  AND $06                 ;
  CP $02                  ; SYMBOL SHIFT alone: turn one way...
  JR NZ,READ_CONTROLS_0   ;
  DEC (IX+$04)            ;
  RET                     ;
READ_CONTROLS_0:
  CP $04                  ; ...M alone: the other.
  JR NZ,READ_CONTROLS_1   ;
  INC (IX+$04)            ;
READ_CONTROLS_1:
  RET

; Return the key being pressed (USR 32912)
;
; BASIC's "Girl or Boy (g/b)?" (line 610) reads its answer through this, taking
; 0 as boy and 6 as girl and asking again for anything else.
;
; O:BC The key code the ROM's KEY-SCAN leaves in E
GET_KEY:
  CALL $028E              ; KEY-SCAN.
  LD B,$00                ; USR returns BC.
  LD C,E                  ;
  RET

; Wait for a key (USR 32919)
;
; Loops on the ROM's KEY-SCAN until it reports a key. BASIC calls it for every
; "press any key" pause.
WAIT_KEY:
  CALL $028E              ; KEY-SCAN.
  LD A,$FF                ; E is $FF while no key is down.
  CP E                    ;
  JR Z,WAIT_KEY           ;
  RET

; Draw one sprite into the render buffer
;
; Used by the routine at DRAW_HERE.
;
; A sprite frame is 64 bytes: 16 rows of mask, graphic, mask, graphic. Frame f
; lives 64f bytes above PLAY, so the frame number is the address, less PLAY,
; divided by 64 -- the sprites are at SPRITES (frames $68-$7F) and MORE_SPRITES
; (frames $DC-$FF).
;
; IX The frame byte of the sprite's entry in SPRITE_LIST; moved on one
; HL The sprite's place in PLANES
; DE The render buffer's row length less one ($1F)
DRAW_SPRITE:
  PUSH BC                 ; BC = the row step.
  LD C,E                  ;
  LD B,D                  ;
  LD A,(IX+$00)           ; The frame number.
  INC IX                  ;
  LD E,$00                ; DE = 64 x the frame number: the frame's first byte.
  RRA                     ;
  RR E                    ;
  RRA                     ;
  RR E                    ;
  AND $3F                 ;
  ADD A,$80               ;
  LD D,A                  ;
  CALL PLANE_TO_BUFFER    ; HL = where the sprite goes in the render buffer.
  LD A,$10                ; Sixteen rows.
DRAW_SPRITE_0:
  PUSH AF                 ;
  EX DE,HL                ; The left byte: mask out, then OR in the graphic...
  LD A,(DE)               ;
  AND (HL)                ;
  INC HL                  ;
  OR (HL)                 ;
  INC HL                  ;
  LD (DE),A               ;
  INC E                   ; ...and the right byte.
  LD A,(DE)               ;
  AND (HL)                ;
  INC HL                  ;
  OR (HL)                 ;
  INC HL                  ;
  LD (DE),A               ;
  EX DE,HL                ; Down a row.
  ADD HL,BC               ;
  POP AF
  DEC A
  JR NZ,DRAW_SPRITE_0
  LD E,C                  ; Give DE back.
  LD D,B                  ;
  POP BC                  ;
  RET

; Move the five ants
;
; Used by the routine at GAME_FRAME.
;
; Each ant takes its turn (ANT_TURN) chasing the player, whom IY points at.
MOVE_ANTS:
  LD IX,ANT1
  LD IY,PLAYER
  CALL ANT_TURN
  LD IX,ANT2
  LD IY,PLAYER
  CALL ANT_TURN
  LD IX,ANT3
  CALL ANT_TURN
  LD IX,ANT4
  CALL ANT_TURN
  LD IX,ANT5
  CALL ANT_TURN
  RET

; Unused
;
; $FF filler, like almost every gap between the routines, which start on
; 16-byte boundaries where they can.
MOVE_ANTS_PAD:
  DEFB $FF

; Copy the render buffer to the screen
;
; Used by the routine at DRAW_VIEW.
;
; Rows 12-127 of the render buffer go to screen lines 12-127, bytes 1-30 of
; each: the rows above and below and the columns either side are margins for
; blocks and sprites to overhang into. Checked by filling the buffer's rows
; with their own numbers and running this.
COPY_TO_SCREEN:
  LD HL,RENDER_BUFFER+$0180 ; From row 12 of the buffer to line 12 of the
  LD DE,$4421               ; screen, column 1, in two passes (the top two
  LD B,$00                  ; thirds of the screen).
  LD A,$02                  ;
COPY_TO_SCREEN_0:
  PUSH AF                 ; Save the pass count; start the first row.
  JR COPY_TO_SCREEN_2     ;
COPY_TO_SCREEN_1:
  LD C,$E2                ; The next screen line: 256 bytes on from the start
  EX DE,HL                ; of the last, less the 30 just copied.
  ADD HL,BC               ;
  EX DE,HL                ;
COPY_TO_SCREEN_2:
  LD C,$1E                ; Skip the buffer's margin column, copy 30 bytes...
  INC HL                  ;
  LDIR                    ;
  INC HL                  ; ...and skip the other margin column.
  LD A,L                  ; Until the buffer crosses into its next 256 bytes:
  AND $E0                 ; eight rows, the first time four.
  JR NZ,COPY_TO_SCREEN_1  ;
  INC DE                  ; The next character row of the screen; every 64 rows
  INC DE                  ; of the buffer, the end of a pass.
  LD A,H                  ;
  AND $07                 ;
  JR Z,COPY_TO_SCREEN_3   ;
  LD A,D                  ;
  ADD A,$F9               ;
  LD D,A                  ;
  JR COPY_TO_SCREEN_2     ;
COPY_TO_SCREEN_3:
  POP AF                  ; Next pass.
  DEC A                   ;
  JR NZ,COPY_TO_SCREEN_0  ;
  RET

; Unused
COPY_TO_SCREEN_PAD:
  DEFB $FF

; Convert a place in PLANES to an address in the render buffer
;
; Used by the routines at DRAW_SPRITE, DRAW_BLOCK and DRAW_BLOCK_TURNED.
;
; The 512 places in PLANES are 32 to a row, and each row is two half-rows of
; 16. The first half-row's places are every other byte across one row of the
; buffer; the second's are one byte across and four rows down. Each row of
; places is eight rows of the buffer. So the places tile the view like bricks,
; 16 pixels wide. Measured by running this for a range of places.
;
; HL On entry, an address in PLANES; on exit, the render buffer address of the
;    top left of what is drawn there
PLANE_TO_BUFFER:
  LD A,L
  RLA
  RL H
  RLA
  RL H
  RLA
  RL H
  RLCA
  RL L
  RL L
  RRA
  LD A,L
  RRA
  AND $9F
  LD L,A
  LD A,H
  SUB $08
  LD H,A
  RET

; Unused
PLANE_TO_BUFFER_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; Fill PLANES with $FF (nothing)
;
; Used by the routine at BUILD_PLANES.
CLEAR_PLANES:
  LD BC,$40FF             ; 64 times 8 bytes of $FF.
  LD HL,PLANES            ;
CLEAR_PLANES_0:
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC L
  LD (HL),C
  INC HL
  DJNZ CLEAR_PLANES_0
  RET

; Unused
CLEAR_PLANES_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Mark one height's blocks in PLANES
;
; Used by the routine at BUILD_PLANES.
;
; For each of the 512 places in PLANES, write the height's bit there if the
; gathered cell at the same offset from DE has a block at that height. Called
; for the heights in order, lowest first, so a higher block overwrites a lower
; one.
;
; C The height's bit ($01 for the ground layer up to $20)
; DE Where in VIEW_CELLS that height's cells start
MARK_PLANE:
  LD B,$80                ; 128 times four places.
  LD HL,PLANES            ;
MARK_PLANE_0:
  LD A,(DE)               ; A block at this height in the cell: mark the place.
  AND C                   ;
  JR Z,MARK_PLANE_1       ;
  LD (HL),C               ;
MARK_PLANE_1:
  INC L
  INC E
  LD A,(DE)
  AND C
  JR Z,MARK_PLANE_2
  LD (HL),C
MARK_PLANE_2:
  INC L
  INC E
  LD A,(DE)
  AND C
  JR Z,MARK_PLANE_3
  LD (HL),C
MARK_PLANE_3:
  INC L
  INC E
  LD A,(DE)
  AND C
  JR Z,MARK_PLANE_4
  LD (HL),C
MARK_PLANE_4:
  INC HL
  INC DE
  DJNZ MARK_PLANE_0
  RET

; Unused
MARK_PLANE_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF

; Sort the gathered cells into PLANES, height by height
;
; Used by the routine at DRAW_VIEW.
;
; Each height reads VIEW_CELLS one row of 32 cells further on: a block one
; higher is drawn one row further up the screen, so it covers the place a row
; back. That is the whole of the 3D -- after this, PLANES says, for each place
; in the view, which height of block (if any) is the one to be seen there.
BUILD_PLANES:
  CALL CLEAR_PLANES       ; Start from nothing.
  LD C,$01                ; The ground layer...
  LD DE,VIEW_CELLS        ;
  CALL MARK_PLANE         ;
  LD C,$02
  LD DE,VIEW_CELLS+$20
  CALL MARK_PLANE
  LD C,$04
  LD DE,VIEW_CELLS+$40
  CALL MARK_PLANE
  LD C,$08
  LD DE,VIEW_CELLS+$60
  CALL MARK_PLANE
  LD C,$10
  LD DE,VIEW_CELLS+$80
  CALL MARK_PLANE
  LD C,$20                ; ...up to height 5, 32 cells further on each time.
  LD DE,VIEW_CELLS+$A0    ;
  CALL MARK_PLANE         ;
  RET

; Print the grenade count and both energies
;
; Used by the routine at PLAY.
;
; Scripts 4, 8 and 11 print AMMO, the player's energy and the other's.
PRINT_COUNTERS:
  LD A,$04
  CALL PLAY_SCRIPT
  LD A,$08
  CALL PLAY_SCRIPT
  LD A,$0B
  CALL PLAY_SCRIPT
  RET

; Unused
;
; $FF filler, and in its last three bytes LD DE,31: the first instruction of
; DRAW_BLOCK, which is entered three bytes in because DRAW_SCENE has already
; set DE.
PRINT_COUNTERS_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$11,$1F,$00

; Draw a block (views 0 and 2)
;
; One block's picture, drawn straight into the render buffer as immediate data,
; 16 pixels wide. Each of the eight steps paints one row of the block's outline
; -- the two bytes' edge pixels merged with what is behind them -- and the row
; eight below it outright, in the dithered shades of the faces. There is one of
; these for each pair of views, since turning the view round a quarter mirrors
; the shading: DRAW_BLOCK_TURNED is the other. SELECT_BLOCK_DRAWER points IY at
; the right one and DRAW_SCENE jumps to it.
;
; Ends by jumping back into DRAW_SCENE rather than returning.
;
; HL The block's place in PLANES
; DE The row length less one ($1F)
DRAW_BLOCK:
  CALL PLANE_TO_BUFFER    ; HL = the top left of the block in the render
                          ; buffer.
  LD A,(HL)               ; The first step: the outline row, and the solid row
  OR $01                  ; eight below...
  LD (HL),A               ;
  INC H                   ;
  LD (HL),$AA             ;
  INC L                   ;
  LD (HL),$BB             ;
  DEC H                   ;
  LD A,(HL)               ;
  AND $7F                 ;
  LD (HL),A               ;
  ADD HL,DE               ;
  LD A,(HL)               ; ...and so on down.
  AND $F8                 ;
  OR $04                  ;
  LD (HL),A               ;
  INC H                   ;
  LD (HL),$55             ;
  INC L                   ;
  LD (HL),$EE             ;
  DEC H                   ;
  LD A,(HL)               ;
  AND $1F                 ;
  OR $40                  ;
  LD (HL),A               ;
  ADD HL,DE               ;
  LD A,(HL)
  AND $E0
  OR $11
  LD (HL),A
  INC H
  LD (HL),$AA
  INC L
  LD (HL),$BB
  DEC H
  LD A,(HL)
  AND $07
  OR $10
  LD (HL),A
  ADD HL,DE
  LD A,(HL)
  AND $80
  OR $44
  LD (HL),A
  INC H
  LD (HL),$55
  INC L
  LD (HL),$EE
  DEC H
  LD A,(HL)
  AND $01
  OR $44
  LD (HL),A
  ADD HL,DE
  LD (HL),$91
  INC H
  LD A,(HL)
  AND $80
  OR $2A
  LD (HL),A
  INC L
  LD A,(HL)
  AND $01
  OR $BA
  LD (HL),A
  DEC H
  LD (HL),$11
  ADD HL,DE
  LD (HL),$44
  INC H
  LD A,(HL)
  AND $E0
  OR $15
  LD (HL),A
  INC L
  LD A,(HL)
  AND $07
  OR $E8
  LD (HL),A
  DEC H
  LD (HL),$46
  ADD HL,DE
  LD (HL),$A9
  INC H
  LD A,(HL)
  AND $F8
  OR $02
  LD (HL),A
  INC L
  LD A,(HL)
  AND $1F
  OR $A0
  LD (HL),A
  DEC H
  LD (HL),$1B
  ADD HL,DE
  LD (HL),$54
  INC H
  LD A,(HL)
  OR $01
  LD (HL),A
  INC L
  LD A,(HL)
  OR $80
  LD (HL),A
  DEC H
  LD (HL),$6E
  JP BLOCK_DRAWN          ; Back to DRAW_SCENE.

; Put IX where IY is, facing the same way
;
; Used by the routine at THROW_GRENADE.
;
; THROW_GRENADE uses this to start the grenade at the player.
COPY_POSITION:
  LD A,(IY+$04)
  LD (IX+$04),A
  LD A,(IY+$00)
  LD (IX+$00),A
  LD A,(IY+$01)
  LD (IX+$01),A
  LD A,(IY+$02)
  LD (IX+$02),A
  RET

; Unused
COPY_POSITION_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Move the player
;
; Used by the routine at GAME_FRAME.
;
; IY is the person to be rescued, whom the player may stand on (bit 0 of the
; flags).
MOVE_PLAYER:
  LD IX,PLAYER
  LD IY,RESCUEE
  CALL READ_CONTROLS      ; Keys into the flags.
  CALL MOVE_OR_RESPAWN    ; Move.
  CALL CHOOSE_FRAME       ; Pick the animation frame.
  RET                     ;

; Unused
MOVE_PLAYER_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; Show the explosion while the explosion countdown runs
;
; Used by the routines at MOVE_GRENADE and ANT_TURN.
;
; Frames $F4-$F7, chosen by the low two bits of the count. The grenade's count
; has already gone from 5 to 4 when this runs (MOVE_OBJECT), so its blast shows
; $F4 -- its flight frame -- then $F7, $F6, $F5. An ant's is written over by
; MOVE_ANT on every frame the ant moves, so the blast shows only on frames it
; skips: a slow ant flickers between ant and blast, and the fast one never
; shows it (measured in a simulator).
BLAST_FRAME:
  LD A,(IX+$09)
  AND A
  RET Z
  AND $03
  ADD A,$F4
  LD (IX+$08),A
  RET

; Unused
BLAST_FRAME_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF

; Clear every fourth row of the render buffer
;
; Used by the routine at DRAW_VIEW.
;
; Unrolled: 29 rows of 32 bytes, four rows apart, from row 12 of the render
; buffer. CLEAR_PHASE moves the starting row on each call, so DRAW_VIEW's four
; calls clear rows 12-127 -- the rows COPY_TO_SCREEN copies to the screen.
CLEAR_BUFFER_ROWS:
  LD DE,$0061             ; The step to four rows on, the render buffer, 29
  LD H,$A1                ; rows of zeros.
  LD BC,$1D00             ;
  LD A,(CLEAR_PHASE)      ; Next quarter: rows 12, 13, 14 or 15 to start from.
  ADD A,$20               ;
  AND $60                 ;
  LD (CLEAR_PHASE),A      ;
  ADD A,$80               ;
  LD L,A                  ;
CLEAR_BUFFER_ROWS_0:
  LD (HL),C               ; 32 bytes.
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  INC L                   ;
  LD (HL),C               ;
  ADD HL,DE                ; Four rows on.
  DJNZ CLEAR_BUFFER_ROWS_0 ;
  RET

; Unused
CLEAR_BUFFER_ROWS_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF

; Step the random number generator
;
; Used by the routines at MOVE_ANT and NOISE.
;
; A 32-bit shift register at RANDOM_BITS, big-endian, fed back from two bits of
; its first byte. The carry out is the random bit, and MOVE_ANT uses it to pick
; which way an ant turns. NOISE takes bit 4 of A instead, which after the
; rotations is bit 2 of the first byte, before the shift, XOR the carry the
; routine was entered with -- always clear there. (Checked in a simulator for
; every first byte and both carries.)
;
; O:A Bit 4 another random bit
; O:F Carry the random bit
RANDOM:
  LD HL,RANDOM_BITS       ; The feedback bit into the carry.
  LD A,(HL)               ;
  RLA                     ;
  RLA                     ;
  RLA                     ;
  XOR (HL)                ;
  RLA                     ;
  RLA                     ;
  LD HL,RANDOM_LOW        ; Shift all 32 bits left, feeding it in at the
  RL (HL)                 ; bottom.
  DEC HL                  ;
  RL (HL)                 ;
  DEC HL                  ;
  RL (HL)                 ;
  DEC HL                  ;
  RL (HL)                 ;
  RET

; Unused
RANDOM_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Read one cell of the city map
;
; Used by the routines at GATHER_VIEW0, GATHER_VIEW1, GATHER_VIEW2 and
; GATHER_VIEW3.
;
; The map is 128 x 128 bytes at CITY_MAP, a bit for each of six heights.
; Coordinates run $80-$FF; below that is outside the walls and reads as empty.
; Cell (x, y) is at CITY_MAP + 128(y - $80) + (x - $80).
;
; E x
; D y
; IX Where to write the byte; moved on one
READ_MAP_CELL:
  LD H,D                  ; Outside the walls if either coordinate is below
  BIT 7,H                 ; $80.
  JR Z,READ_MAP_CELL_0    ;
  LD A,E                  ;
  RLA                     ;
  JR NC,READ_MAP_CELL_0   ;
  RR H                    ; HL = CITY_MAP + 128 x (y AND $7F) + (x AND $7F).
  RRA                     ;
  LD L,A                  ;
  LD A,(HL)               ; Store the cell.
  LD (IX+$00),A           ;
  INC IX                  ;
  RET                     ;
READ_MAP_CELL_0:
  XOR A                   ; Outside: store 0.
  LD (IX+$00),A           ;
  INC IX                  ;
  RET                     ;

; Unused
READ_MAP_CELL_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF

; Gather the cells in view into VIEW_CELLS
;
; Used by the routine at DRAW_VIEW.
;
; Jumps to one of four routines, 32 bytes apart from GATHER_VIEW0, which read
; the map along diagonals in the order that view needs: 21 rows of two 16-cell
; half-rows, from VIEW_ORIGIN.
GATHER_VIEW:
  LD A,(VIEW)             ; HL = GATHER_VIEW0 + 32 x the view.
  AND $03                 ;
  RRCA                    ;
  RRCA                    ;
  RRCA                    ;
  OR $81                  ;
  LD L,A                  ;
  LD H,$86                ;
  LD DE,(VIEW_ORIGIN)
  LD IX,VIEW_CELLS
  LD A,$15                ; 21 rows.
  JP (HL)                 ;

; Unused
GATHER_VIEW_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF

; Throw and move the grenade, and see whether it hit anything
;
; Used by the routine at GAME_FRAME.
MOVE_GRENADE:
  LD IX,GRENADE
  LD IY,PLAYER
  CALL THROW_GRENADE      ; Throw, or fly.
  CALL MOVE_OR_RESPAWN    ; Move.
  CALL BLAST_FRAME        ; The blast's frames.
  CALL GRENADE_BLAST      ; Anything in the blast?
  RET                     ;

; Unused
MOVE_GRENADE_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF

; Turn the view with 0, P, ENTER or SPACE
;
; Used by the routine at GAME_FRAME.
;
; Each key picks one of the four views and re-centres VIEW_ORIGIN on the player
; for it, the view origin being the player's position less an offset that
; depends on the view. No key: nothing changes.
READ_VIEW_KEYS:
  LD BC,$EFFE             ; L = $FF: no key yet.
  LD L,$FF                ;
  IN A,(C)                ; 0: view 3.
  RRA                     ;
  JR C,READ_VIEW_KEYS_0   ;
  LD L,$03                ;
  LD DE,$0312             ;
READ_VIEW_KEYS_0:
  LD B,$DF                ; P: view 2.
  IN A,(C)                ;
  RRA                     ;
  JR C,READ_VIEW_KEYS_1   ;
  LD L,$02                ;
  LD DE,$EE03             ;
READ_VIEW_KEYS_1:
  LD B,$BF                ; ENTER: view 1.
  IN A,(C)                ;
  RRA                     ;
  JR C,READ_VIEW_KEYS_2   ;
  LD L,$01                ;
  LD DE,$FDEE             ;
READ_VIEW_KEYS_2:
  LD B,$7F                ; SPACE: view 0.
  IN A,(C)                ;
  RRA                     ;
  JR C,READ_VIEW_KEYS_3   ;
  LD L,$00                ;
  LD DE,$12FD             ;
READ_VIEW_KEYS_3:
  LD A,L                  ; None of them.
  CP $FF                  ;
  JR Z,READ_VIEW_KEYS_4   ;
  LD (VIEW),A             ; Set the view...
  LD HL,(PLAYER)          ; ...and its origin, the player less the offset.
  LD A,H                  ;
  SUB D                   ;
  LD H,A                  ;
  LD A,L                  ;
  SUB E                   ;
  LD L,A                  ;
  LD (VIEW_ORIGIN),HL     ;
READ_VIEW_KEYS_4:
  RET

; Unused
;
; $FF filler, with another "SandyWhite1983" in the middle of it.
READ_VIEW_KEYS_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $7F
  DEFM "SandyWhite1983"
  DEFB $FF

; Scroll the view when the player nears its edge
;
; Used by the routine at DRAW_VIEW.
;
; Reads where the player was placed this frame (the last entry of SPRITE_LIST)
; and, if that is outside a central window of the view, steps VIEW_ORIGIN a
; cell in the direction the player is facing -- unless the player is jumping or
; falling. It takes effect next frame, since the view has already been
; gathered.
SCROLL_VIEW:
  LD DE,(PLAYER_SPRITE)   ; Off the view altogether: leave it.
  LD A,D                  ;
  INC A                   ;
  RET Z                   ;
  DEC DE                  ; Undo the +1 PROJECT_SPRITES adds.
  LD A,E                  ; Across: inside if the column is 4-11 of 16...
  SUB $04                 ;
  AND $0F                 ;
  CP $08                  ;
  JR NC,SCROLL_VIEW_0     ;
  LD A,E                  ; ...and down: inside if the row is 8-23 of 32.
  RR D                    ;
  RRA                     ;
  RRA                     ;
  RRA                     ;
  RRA                     ;
  SUB $08                 ;
  AND $1F                 ;
  CP $10                  ;
  RET C                   ;
SCROLL_VIEW_0:
  LD HL,(VIEW_ORIGIN)     ; Outside: move the view.
  LD A,(PLAYER_FLAGS)     ; Not while jumping or falling.
  BIT 1,A                 ;
  RET NZ                  ;
  LD A,(PLAYER_FALL)      ;
  AND A                   ;
  RET NZ                  ;
  LD A,(PLAYER_FACING)    ; A cell the way the player faces.
  CALL STEP               ;
  LD (VIEW_ORIGIN),HL     ;
  RET

; Unused
SCROLL_VIEW_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF

; Draw the view
;
; Used by the routine at GAME_FRAME.
;
; A painter's algorithm in eleven steps: gather the map, sort it into PLANES by
; height, clear the render buffer, work out where each object falls in PLANES,
; scroll if the player is near the edge, sort the objects by that, turn their
; places into distances, pick the block picture for this view, paint the lot
; back to front, and copy it to the screen.
DRAW_VIEW:
  CALL GATHER_VIEW        ; The map, into VIEW_CELLS.
  CALL BUILD_PLANES       ; Into PLANES, by height.
  CALL CLEAR_BUFFER_ROWS  ; Clear the visible rows of the render buffer, a
  CALL CLEAR_BUFFER_ROWS  ; quarter at a time.
  CALL CLEAR_BUFFER_ROWS  ;
  CALL CLEAR_BUFFER_ROWS  ;
  CALL PROJECT_SPRITES    ; Where each object falls.
  CALL SCROLL_VIEW        ; Scroll next frame, if need be.
  CALL SORT_SPRITES       ; Sort the objects...
  CALL SPRITE_DISTANCES   ; ...and space them out.
  CALL SELECT_BLOCK_DRAWER ; The block picture for this view.
  CALL DRAW_SCENE         ; Paint.
  CALL COPY_TO_SCREEN     ; Show.
  RET                     ;

; Unused
DRAW_VIEW_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF

; The rescued person and the player in one cell: nobody falls
;
; Used by the routine at MOVE_RESCUEE.
;
; When the two are in the same cell and at most one block apart in height --
; one on the other's head -- the rescued person's stun and the player's stun
; and fall count are cleared. So dropping onto each other is never a landing:
; seen in play, when a scene dropped the player three blocks onto the rescued
; person's head and it made no bad fall and no search for an ant beneath.
;
; IX The person being rescued
; IY The player
SHARE_CELL:
  LD A,(IX+$02)           ; More than a block apart in height: nothing.
  SUB (IY+$02)            ;
  JP P,SHARE_CELL_0       ;
  CPL                     ;
  INC A                   ;
SHARE_CELL_0:
  CP $02                  ;
  RET NC                  ;
  LD A,(IX+$00)           ; Not the same cell: nothing.
  CP (IY+$00)             ;
  RET NZ                  ;
  LD A,(IX+$01)           ;
  CP (IY+$01)             ;
  RET NZ                  ;
  XOR A                   ; Clear both stuns and the player's fall.
  LD (IX+$06),A           ;
  LD (IY+$06),A           ;
  LD (IY+$05),A           ;
  NOP                     ; Three NOPs, left where something was taken out.
  NOP                     ;
  NOP                     ;
  RET

; Unused
SHARE_CELL_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; Paint PLANES and the sprites into the render buffer, back to front
;
; Used by the routine at DRAW_VIEW.
;
; PLANES holds, per place, one of $01, $02 ... $20 (a block at that height) or
; $FF (nothing). This paints every $01 place, then every $02, and so on up to
; $40 -- a pass with no blocks in it, for anything standing on top of a
; six-high block -- using CPIR to find each next one. The sprites are threaded
; in by distance: BC counts down the places to the next sprite across all the
; passes, so when CPIR runs BC out before finding a block, it is time to draw a
; sprite (DRAW_HERE).
DRAW_SCENE:
  LD IX,SPRITE_LIST       ; BC = the count to the first sprite.
  CALL NEXT_SPRITE        ;
  LD DE,$001F             ; Row step for the drawers; start with height bit
  LD A,$01                ; $01.
  LD HL,PLANES+$01FF      ;
  JR DRAW_SCENE_1
; This entry point is used by the routine at DRAW_HERE.
DRAW_SCENE_0:
  EX AF,AF'               ; The next height's bit; past $40, done.
  RLCA                    ;
  CP $80                  ;
  RET Z                   ;
  DEC HL                  ; HL was one past the end; back to the last place.
DRAW_SCENE_1:
  LD (HL),A               ; A sentinel, so the CPIR stops at the end.
  LD HL,PLANES            ; From the first place.
; This entry point is used by the routines at BLOCK_DRAWN and DRAW_HERE.
DRAW_SCENE_2:
  CPIR                    ; Find the next place at this height -- or run out of
  JP PO,DRAW_HERE         ; count first.
  EX AF,AF'               ; Found the sentinel: the next height.
  LD A,H                  ;
  CP $B7                  ;
  JR Z,DRAW_SCENE_0       ;
  PUSH HL                 ; Draw the block through the pointer
  DEC HL                  ; SELECT_BLOCK_DRAWER set.
  JP (IY)                 ;
  NOP                     ; Never reached: the JP (IY) before it does not fall
                          ; through, and the block drawers come back at
                          ; BLOCK_DRAWN. A spare byte.

; Where DRAW_BLOCK and DRAW_BLOCK_TURNED come back to
;
; Used by the routines at DRAW_BLOCK and DRAW_BLOCK_TURNED.
BLOCK_DRAWN:
  POP HL                  ; Carry on scanning.
  EX AF,AF'               ;
  JR DRAW_SCENE_2         ;

; Draw the sprite that is due, then carry on the scan
;
; Used by the routine at DRAW_SCENE.
DRAW_HERE:
  EX AF,AF'               ; The place is the one before where CPIR stopped.
  PUSH HL                 ;
  DEC HL                  ;
  CALL DRAW_SPRITE        ;
  POP HL
  CALL NEXT_SPRITE        ; The next sprite's count.
  LD A,H                  ; The scan ran to the end: next height.
  CP $B7                  ;
  JR Z,DRAW_SCENE_0       ;
  EX AF,AF'
  JR DRAW_SCENE_2

; Unused
DRAW_HERE_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Load the count to the next sprite in SPRITE_LIST
;
; Used by the routines at DRAW_SCENE and DRAW_HERE.
;
; Skips entries whose count is zero.
;
;   IX An entry in SPRITE_LIST; on exit, its frame byte
; O:BC The count
NEXT_SPRITE:
  LD C,(IX+$00)
  INC IX
  LD B,(IX+$00)
  INC IX
  LD A,C
  OR B
  RET NZ
  INC IX                  ; Skip the frame byte of an empty entry.
  JR NEXT_SPRITE          ;

; Unused
NEXT_SPRITE_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Point IY at the block picture for this view
;
; Used by the routine at DRAW_VIEW.
SELECT_BLOCK_DRAWER:
  LD A,(VIEW)                ; Views 1 and 3...
  RRA                        ;
  JR C,SELECT_BLOCK_DRAWER_0 ;
  LD IY,DRAW_BLOCK        ; ...or 0 and 2.
  RET                     ;
SELECT_BLOCK_DRAWER_0:
  LD IY,DRAW_BLOCK_TURNED ;
  RET                     ;

; Sort SPRITE_LIST by place in PLANES
;
; Used by the routine at DRAW_VIEW.
;
; A bubble sort into ascending order, repeated until a pass swaps nothing.
SORT_SPRITES:
  LD C,$00                ; C = 0: nothing swapped.
SORT_SPRITES_0:
  LD B,$07                ; Seven comparisons a pass.
  LD IX,SPRITE_LIST       ;
SORT_SPRITES_1:
  LD L,(IX+$00)           ; This entry's place against the next's.
  LD H,(IX+$01)           ;
  LD E,(IX+$03)           ;
  LD D,(IX+$04)           ;
  LD A,D                  ;
  CP H                    ;
  JR NZ,SORT_SPRITES_2    ;
  LD A,E                  ;
  CP L                    ;
SORT_SPRITES_2:
  JR NC,SORT_SPRITES_3
  LD (IX+$00),E           ; Out of order: swap places and frames, and note it.
  LD (IX+$01),D           ;
  LD (IX+$03),L           ;
  LD (IX+$04),H           ;
  LD C,(IX+$02)           ;
  LD A,(IX+$05)           ;
  LD (IX+$02),A           ;
  LD (IX+$05),C           ;
  LD C,$01                ;
SORT_SPRITES_3:
  INC IX
  INC IX
  INC IX
  DJNZ SORT_SPRITES_1
  DEC C                   ; Swapped something: another pass.
  JR Z,SORT_SPRITES_0     ;
  RET

; Unused
SORT_SPRITES_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; Turn the sorted places into distances from one to the next
;
; Used by the routine at DRAW_VIEW.
;
; So DRAW_SCENE can use each as a CPIR count. The first entry keeps its place.
SPRITE_DISTANCES:
  LD B,$07                ; From the last entry back.
  LD IX,RESCUEE_SPRITE    ;
  LD L,(IX+$03)           ;
  LD H,(IX+$04)           ;
  JR SPRITE_DISTANCES_1
SPRITE_DISTANCES_0:
  DEC IX
  DEC IX
  DEC IX
  EX DE,HL
SPRITE_DISTANCES_1:
  LD E,(IX+$00)           ; This place less the one before.
  LD D,(IX+$01)           ;
  AND A                   ;
  SBC HL,DE               ;
  LD (IX+$03),L           ;
  LD (IX+$04),H           ;
  DJNZ SPRITE_DISTANCES_0
  RET

; Unused
SPRITE_DISTANCES_PAD:
  DEFB $FF,$FF,$FF

; An object out of view: a place past the end, so it is never drawn
;
; Used by the routine at PROJECT_SPRITES.
OFF_VIEW:
  LD B,$FF
  JR PROJECT_SPRITES_5

; Unused
OFF_VIEW_PAD:
  DEFB $FF,$FF

; Work out where each object falls in PLANES
;
; Used by the routine at DRAW_VIEW.
;
; For each object, last to first, its position relative to VIEW_ORIGIN is
; turned for the view and projected: the half-row is v - u - 2h and the column
; (u + v) / 2, where u and v are the turned coordinates and h the height. The
; place is height x 512 + half-row x 16 + column -- the height counting a whole
; pass of DRAW_SCENE -- and it goes into SPRITE_LIST with the sprite frame: the
; object's first frame, plus four times its animation frame, plus its facing
; relative to the view.
PROJECT_SPRITES:
  LD IX,ANT5              ; From the fifth ant back to the player; eight
  LD DE,(VIEW_ORIGIN)     ; objects.
  LD A,$08                ;
  LD HL,SPRITE_LIST       ;
PROJECT_SPRITES_0:
  EX AF,AF'
  PUSH HL
  LD B,(IX+$02)           ; Its height.
  LD A,(IX+$00)           ; Its position relative to the view's origin.
  SUB E                   ;
  LD L,A                  ;
  LD A,(IX+$01)           ;
  SUB D                   ;
  LD H,A                  ;
  LD A,(VIEW)             ; Turn it for the view: swap x and y for views 1 and
  RRA                     ; 3, and negate as the view needs.
  JR NC,PROJECT_SPRITES_1 ;
  LD C,H                  ;
  LD H,L                  ;
  LD L,C                  ;
  RRA                     ;
  JR NC,PROJECT_SPRITES_2 ;
  XOR A                   ;
  SUB L                   ;
  LD L,A                  ;
  JR PROJECT_SPRITES_4    ;
PROJECT_SPRITES_1:
  RRA                     ;
  JR NC,PROJECT_SPRITES_3 ;
  XOR A                   ;
  SUB L                   ;
  LD L,A                  ;
PROJECT_SPRITES_2:
  XOR A                   ;
  SUB H                   ;
  LD H,A                  ;
PROJECT_SPRITES_3:
  LD A,L                  ; Raise it by its height.
PROJECT_SPRITES_4:
  ADD A,B                 ;
  LD L,A                  ;
  LD A,H                  ;
  SUB B                   ;
  LD H,A                  ;
  SUB L                   ; The half-row, 0-31, or out of view.
  JP PE,OFF_VIEW          ;
  CP $20                  ;
  JR NC,OFF_VIEW          ;
  RLCA                    ; Times 16, with the height above it.
  RLCA                    ;
  RLCA                    ;
  SLA A                   ;
  RL B                    ;
  LD C,A                  ;
  LD A,L                  ; The column, 0-31 before halving, or out of view.
  ADD A,H                 ;
  JP PE,OFF_VIEW          ;
  CP $20                  ;
  JR NC,OFF_VIEW          ;
  AND A                   ; Into the place, plus one.
  RRA                     ;
  OR C                    ;
  LD C,A                  ;
  INC BC                  ;
; This entry point is used by the routine at OFF_VIEW.
PROJECT_SPRITES_5:
  POP HL                  ; Store the place.
  LD (HL),C               ;
  INC HL                  ;
  LD (HL),B               ;
  INC HL                  ;
  LD A,(VIEW)             ; The facing relative to the view.
  ADD A,(IX+$04)          ;
  AND $03                 ;
  LD C,A                  ;
  LD A,(IX+$08)           ; Bit 7 set: the frame outright...
  AND A                   ;
  JP M,PROJECT_SPRITES_6  ;
  RLCA                    ; ...otherwise the first frame, plus four times the
  RLCA                    ; animation frame, plus the facing.
  ADD A,(IX+$03)          ;
  ADD A,C                 ;
PROJECT_SPRITES_6:
  LD (HL),A
  INC HL
  LD BC,$FFF0             ; The object before: BC is -16, not an address.
  ADD IX,BC               ;
  EX AF,AF'
  DEC A
  JR NZ,PROJECT_SPRITES_0
  RET

; Gather the cells in view, view 0
;
; Each row is 16 cells along a diagonal from the start, then 16 more from the
; cell beside it; the next row starts a cell further back. The other three
; views' routines are the same with the signs turned.
GATHER_VIEW0:
  EX AF,AF'               ; First half-row...
  PUSH DE                 ;
  LD B,$10                ;
GATHER_VIEW0_0:
  CALL READ_MAP_CELL
  INC E
  INC D
  DJNZ GATHER_VIEW0_0
  POP DE                  ; ...then the second, from the next cell over.
  INC D                   ;
  PUSH DE                 ;
  LD B,$10                ;
GATHER_VIEW0_1:
  CALL READ_MAP_CELL
  INC E
  INC D
  DJNZ GATHER_VIEW0_1
  POP DE                  ; The next row starts a cell back.
  DEC E                   ;
  EX AF,AF'
  DEC A
  JR NZ,GATHER_VIEW0
  RET

; Unused
GATHER_VIEW0_PAD:
  DEFB $FF,$FF

; Gather the cells in view, view 1
GATHER_VIEW1:
  EX AF,AF'
  PUSH DE
  LD B,$10
GATHER_VIEW1_0:
  CALL READ_MAP_CELL
  DEC E
  INC D
  DJNZ GATHER_VIEW1_0
  POP DE
  DEC E
  PUSH DE
  LD B,$10
GATHER_VIEW1_1:
  CALL READ_MAP_CELL
  DEC E
  INC D
  DJNZ GATHER_VIEW1_1
  POP DE
  DEC D
  EX AF,AF'
  DEC A
  JR NZ,GATHER_VIEW1
  RET

; Unused
GATHER_VIEW1_PAD:
  DEFB $FF,$FF

; Gather the cells in view, view 2
GATHER_VIEW2:
  EX AF,AF'
  PUSH DE
  LD B,$10
GATHER_VIEW2_0:
  CALL READ_MAP_CELL
  DEC E
  DEC D
  DJNZ GATHER_VIEW2_0
  POP DE
  DEC D
  PUSH DE
  LD B,$10
GATHER_VIEW2_1:
  CALL READ_MAP_CELL
  DEC E
  DEC D
  DJNZ GATHER_VIEW2_1
  POP DE
  INC E
  EX AF,AF'
  DEC A
  JR NZ,GATHER_VIEW2
  RET

; Unused
GATHER_VIEW2_PAD:
  DEFB $FF,$FF

; Gather the cells in view, view 3
GATHER_VIEW3:
  EX AF,AF'
  PUSH DE
  LD B,$10
GATHER_VIEW3_0:
  CALL READ_MAP_CELL
  INC E
  DEC D
  DJNZ GATHER_VIEW3_0
  POP DE
  INC E
  PUSH DE
  LD B,$10
GATHER_VIEW3_1:
  CALL READ_MAP_CELL
  INC E
  DEC D
  DJNZ GATHER_VIEW3_1
  POP DE
  INC D
  EX AF,AF'
  DEC A
  JR NZ,GATHER_VIEW3
  RET

; Unused
;
; $FF, then LD DE,31: the unused first instruction of DRAW_BLOCK_TURNED, as
; before DRAW_BLOCK.
GATHER_VIEW3_PAD:
  DEFB $FF,$11,$1F,$00

; Draw a block (views 1 and 3)
;
; DRAW_BLOCK's picture shaded for the other two views.
DRAW_BLOCK_TURNED:
  CALL PLANE_TO_BUFFER
  LD A,(HL)
  AND $FE
  LD (HL),A
  INC H
  LD (HL),$DD
  INC L
  LD (HL),$55
  DEC H
  LD A,(HL)
  OR $80
  LD (HL),A
  ADD HL,DE
  LD A,(HL)
  AND $FA
  OR $02
  LD (HL),A
  INC H
  LD (HL),$77
  INC L
  LD (HL),$AA
  DEC H
  LD A,(HL)
  AND $3F
  OR $20
  LD (HL),A
  ADD HL,DE
  LD A,(HL)
  AND $E8
  OR $08
  LD (HL),A
  INC H
  LD (HL),$DD
  INC L
  LD (HL),$55
  DEC H
  LD A,(HL)
  AND $8F
  OR $88
  LD (HL),A
  ADD HL,DE
  LD A,(HL)
  AND $A2
  OR $22
  LD (HL),A
  INC H
  LD (HL),$77
  INC L
  LD (HL),$AA
  DEC H
  LD A,(HL)
  AND $23
  OR $22
  LD (HL),A
  ADD HL,DE
  LD (HL),$88
  INC H
  LD A,(HL)
  AND $DD
  OR $5D
  LD (HL),A
  INC L
  LD A,(HL)
  AND $55
  OR $54
  LD (HL),A
  DEC H
  LD (HL),$89
  ADD HL,DE
  LD (HL),$62
  INC H
  LD A,(HL)
  AND $F7
  OR $17
  LD (HL),A
  INC L
  LD A,(HL)
  AND $AF
  OR $A8
  LD (HL),A
  DEC H
  LD (HL),$22
  ADD HL,DE
  LD (HL),$D8
  INC H
  LD A,(HL)
  AND $FD
  OR $05
  LD (HL),A
  INC L
  LD A,(HL)
  AND $5F
  OR $40
  LD (HL),A
  DEC H
  LD (HL),$95
  ADD HL,DE
  LD (HL),$76
  INC H
  LD A,(HL)
  OR $01
  LD (HL),A
  INC L
  LD A,(HL)
  OR $80
  LD (HL),A
  DEC H
  LD (HL),$2A
  JP BLOCK_DRAWN          ; Back to DRAW_SCENE.

; See whether an exploding grenade got an ant
;
; Used by the routine at GRENADE_BLAST.
;
; Only ants at the grenade's height and not already exploding. Within four
; cells (counted along the grid, not diagonally) the ant is blown up -- "GOOD
; SHOT!" -- and within seven it is stunned for 24 of its turns -- about 48
; frames for a half-speed ant, since the stun counts down only on turns it
; takes. Both seen in play, in staged scenes.
;
; HL The grenade's x and y
; C Its height
; IY The ant
BLAST_ANT:
  LD A,(IY+$02)           ; Another height, or already exploding: no.
  CP C                    ;
  RET NZ                  ;
  LD A,(IY+$09)           ;
  AND A                   ;
  RET NZ                  ;
  LD E,(IY+$00)
  LD D,(IY+$01)
  CALL DISTANCE
  CP $08                  ; Eight or more away: missed.
  RET NC                  ;
  CP $05                  ; Five to seven: stunned.
  JR C,BLAST_ANT_0        ;
  LD (IY+$06),$18         ;
  RET                     ;
BLAST_ANT_0:
  LD (IY+$09),$05         ; Four or less: blown up...
  LD (IY+$06),$00         ;
  LD A,(GRENADE_EVENTS)   ; ...and "GOOD SHOT!".
  OR $04                  ;
  LD (GRENADE_EVENTS),A   ;
  RET

; Colour the scanner
;
; Used by the routine at MOVE_RESCUEE.
;
; Green if carry is set -- closer than last frame -- and red otherwise.
SCANNER:
  JR C,SCANNER_0
  LD A,$02
  JR SCANNER_1
SCANNER_0:
  LD A,$04
SCANNER_1:
  LD HL,$5A5A
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  LD L,$7A
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  LD L,$9A
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  RET

; Unused
SCANNER_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF

; Move an object one frame: fall, climb, jump, walk
;
; Used by the routine at MOVE_OR_RESPAWN.
;
; The physics for everything. Nothing is solid but the map, and ants put
; themselves in the map (TOGGLE_MAP_BIT), so walking into an ant is walking
; into a wall -- and an ant arriving in someone's cell is a bite.
;
; IX The object
MOVE_OBJECT:
  LD L,(IX+$00)           ; Where it is.
  LD H,(IX+$01)           ;
  LD C,(IX+$02)           ;
  LD D,H                  ; Anything to stand on? If not, fall.
  LD E,L                  ;
  LD A,C                  ;
  DEC A                   ;
  CALL TEST_BELOW         ;
  JP NC,FALL              ;
; This entry point is used by the routine at FALL.
MOVE_OBJECT_0:
  LD D,H                  ; Something in this very cell: bitten, and pushed up.
  LD E,L                  ;
  LD A,C                  ;
  CALL TEST_MAP_BIT       ;
  JP C,BITTEN             ;
  LD A,(IX+$06)           ; Stunned: count it down.
  AND A                   ;
  JP NZ,STUNNED           ;
  LD A,(IX+$05)           ; Just landed from a fall.
  CP $02                  ;
  JP NC,LANDED            ;
  XOR A                   ; Standing.
  LD (IX+$05),A           ;
  BIT 1,(IX+$07)          ; Jump.
  JP NZ,RISE              ;
; This entry point is used by the routines at FALL and RISE.
MOVE_OBJECT_1:
  BIT 2,(IX+$07)          ; Walk forward, if moving...
  JP Z,MOVE_OBJECT_2      ;
  LD A,(IX+$04)           ; ...a cell the way it faces...
  CALL STEP               ;
  LD D,H                  ;
  LD E,L                  ;
  LD A,C                  ;
  CALL TEST_MAP_BIT       ;
  JP C,STEP_UP            ; ...unless the way is blocked.
  LD (IX+$00),L           ; A step.
  LD (IX+$01),H           ;
  LD (IX+$0F),$01         ;
MOVE_OBJECT_2:
  RET

; Unused
MOVE_OBJECT_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF

; Land from a fall
;
; Used by the routine at MOVE_OBJECT.
;
; A fall of five frames or more stuns for eight frames each, and is a bad fall;
; shorter ones stun for as many frames as they lasted and are a step. Landing
; at height 1 means landing on something on the ground, which may be an ant
; (PARALYSE_ANT). Seen in play: a drop of five blocks stunned the player for 48
; frames with a bad fall.
;
; A Frames spent falling, at least 2
LANDED:
  LD C,$01                ; A step...
  CP $05                  ;
  JR C,LANDED_0           ;
  RLCA                    ; ...or, from five frames up, a bad fall, stunned for
  RLCA                    ; eight times as long.
  RLCA                    ;
  LD C,$02                ;
  LD (IX+$05),$00         ;
LANDED_0:
  LD (IX+$06),A           ; The stun and the event.
  LD (IX+$0F),C           ;
  LD A,(IX+$02)           ; On something at ground level: an ant?
  CP $01                  ;
  RET NZ                  ;
  CALL PARALYSE_ANT       ;
  RET

; Unused
LANDED_PAD:
  DEFB $FF

; Fall, after a frame's grace
;
; Used by the routine at MOVE_OBJECT.
;
; On the first frame with nothing underneath, an object can still walk -- off a
; ledge, say -- and only after that does it drop a block a frame.
;
; Nothing sets bit 3 of the flags -- not the BASIC's DATA, not the code -- so
; the three instructions of its "never falls" branch never run. These are the
; only instructions in the game not seen to run.
FALL:
  BIT 3,(IX+$07)          ; Bit 3: never falls.
  JR Z,FALL_0             ;
  XOR A                   ;
  LD (IX+$05),A           ;
  JP MOVE_OBJECT_0        ;
FALL_0:
  LD A,(IX+$05)           ; Count the frame; the first one, walk.
  INC A                   ;
  LD (IX+$05),A           ;
  DEC A                   ;
  JP Z,MOVE_OBJECT_1      ;
  DEC C                   ; Then drop a block.
  LD (IX+$02),C           ;
  RET

; Unused
FALL_PAD:
  DEFB $FF,$FF,$FF

; Something is in this cell: a bite
;
; Used by the routine at MOVE_OBJECT.
;
; And the object is pushed up a block, out of the way.
BITTEN:
  LD (IX+$0F),$04
  JP RISE

; Unused
BITTEN_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF

; Count down being stunned
;
; Used by the routine at MOVE_OBJECT.
;
; Also clears the fall count, so a fall that ends while an object is still
; stunned is never landed: no stun, no bad fall. The rescued person starts each
; level stunned for four frames (line 120's DATA), which is enough to swallow a
; short drop.
STUNNED:
  DEC A
  LD (IX+$06),A
  XOR A
  LD (IX+$05),A
  RET

; Unused
STUNNED_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; The rescued person shares the player's cell
;
; Used by the routine at FOLLOW_PLAYER.
;
; Only FOLLOW_PLAYER comes here, when the distance between the two is 0: one is
; standing on the other. If the rescued person is the higher of the two they
; take the player's facing and walk on; if lower, they stop. Both seen in play,
; in staged scenes.
;
;   IX The rescued person
;   IY The player
; O:C The player's facing
ON_TOP:
  LD C,(IY+$04)
  LD A,(IX+$02)
  NOP                     ; A NOP, left where something was taken out.
  CP (IY+$02)             ;
  RET NC                  ;
  RES 2,(IX+$07)          ;
  RET                     ;

; Go up a block, if there is room
;
; Used by the routines at MOVE_OBJECT and BITTEN.
RISE:
  LD D,H                  ; Blocked above: walk instead.
  LD E,L                  ;
  LD A,C                  ;
  INC A                   ;
  CALL TEST_MAP_BIT       ;
  JP C,MOVE_OBJECT_1      ;
  INC C
  LD (IX+$02),C
  RET

; Unused
RISE_PAD:
  DEFB $FF

; Blocked: step up onto it, for things that can
;
; Used by the routine at MOVE_OBJECT.
;
; Only with bit 4 of the flags -- the rescued person and the grenade -- and
; only if the cell above the object is free. It rises there, and next frame
; walks on at the new height.
STEP_UP:
  BIT 4,(IX+$07)
  RET Z
  LD E,(IX+$00)
  LD D,(IX+$01)
  INC C
  LD A,C
  CALL TEST_MAP_BIT
  RET C
  LD (IX+$02),C
  RET

; Unused
STEP_UP_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF

; Move a position one cell in a direction
;
; Used by the routines at SCROLL_VIEW, MOVE_OBJECT and FOLLOW_PLAYER.
;
; A The direction (only bits 0-1 count)
; HL The position: L is x, H is y
STEP:
  AND $03
  JR Z,STEP_2
  CP $01
  JR Z,STEP_1
  CP $02
  JR Z,STEP_0
  DEC L                   ; 3: x down.
  RET                     ;
STEP_0:
  DEC H                   ; 2: y down.
  RET                     ;
STEP_1:
  INC L                   ; 1: x up.
  RET                     ;
STEP_2:
  INC H                   ; 0: y up.
  RET                     ;

; Unused
STEP_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF

; Is there a block at a height in a cell?
;
; Used by the routines at MOVE_OBJECT, RISE, STEP_UP and TEST_BELOW.
;
; Height 6 is the open sky, always empty; above it, always solid, and so is
; height -1 ($FF), which is how the ground holds things up. Anywhere outside
; the walls is empty.
;
;   A The height
;   DE The cell: E is x, D is y
; O:F Carry set if there is a block
TEST_MAP_BIT:
  CP $06
  JR NC,TEST_MAP_BIT_2
  INC A
  LD B,A
  BIT 7,D                 ; Outside the walls: empty.
  JR Z,TEST_MAP_BIT_1     ;
  LD A,E                  ;
  RLA                     ;
  RET NC                  ;
  RR D                    ; The cell's address.
  RRA                     ;
  LD E,A                  ;
  LD A,(DE)               ;
TEST_MAP_BIT_0:
  RRCA                    ; Rotate the height's bit into the carry.
  DJNZ TEST_MAP_BIT_0     ;
  RET
TEST_MAP_BIT_1:
  AND A
  RET
TEST_MAP_BIT_2:
  RET Z                   ; Heights 6 and up.
  CCF                     ;
  RET

; Unused
TEST_MAP_BIT_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF

; Flip a height's bit in a map cell
;
; Used by the routine at MOVE_ANT.
;
; How the ants become solid: MOVE_ANT takes an ant out of the map before moving
; it and puts it back after, so everything else collides with it. This is why
; the city map changes during play. Nothing outside the walls is written.
;
; It is an XOR, so the map and the ant's record have to agree: an ant moved
; without its bit leaves a phantom block behind and puts one in its own cell,
; where it is promptly "bitten" and pushed up a block. Seen in a scene that did
; exactly that.
;
; A The height
; DE The cell: E is x, D is y
TOGGLE_MAP_BIT:
  CP $06
  RET NC
  INC A
  LD B,A
  BIT 7,D
  RET Z
  LD A,E
  RLA
  RET NC
  RR D
  RRA
  LD E,A
  LD A,$80
TOGGLE_MAP_BIT_0:
  RLCA
  DJNZ TOGGLE_MAP_BIT_0
  LD B,A
  LD A,(DE)
  XOR B
  LD (DE),A
  RET

; Unused
TOGGLE_MAP_BIT_PAD:
  DEFB $FF,$FF,$FF,$FF

; Is there anything to stand on?
;
; Used by the routine at MOVE_OBJECT.
;
; As TEST_MAP_BIT, but an object with bit 0 of its flags set can also stand on
; the object IY points at: the player on the rescued person, and the other way
; about.
;
;   A The height to test
;   DE The cell
; O:F Carry set if something is there
TEST_BELOW:
  BIT 0,(IX+$07)
  JR Z,TEST_BELOW_1
  LD B,A
  CP (IY+$02)
  JR NZ,TEST_BELOW_1
  LD A,D
  CP (IY+$01)
  JR NZ,TEST_BELOW_0
  LD A,E
  CP (IY+$00)
  JR Z,TEST_BELOW_2
TEST_BELOW_0:
  LD A,B
TEST_BELOW_1:
  CALL TEST_MAP_BIT
  RET
TEST_BELOW_2:
  CCF
  RET

; Unused
TEST_BELOW_PAD:
  DEFB $FF,$FF,$FF,$FF

; Choose the animation frame
;
; Used by the routines at MOVE_PLAYER and MOVE_RESCUEE.
;
; The explosion while it lasts; then, stunned for five frames or more, frame 3
; (or 2 while still falling); stunned for less, 2; falling, 4; walking, 0 and 1
; in turn; standing, 0.
CHOOSE_FRAME:
  LD A,(IX+$09)
  AND A
  JR Z,CHOOSE_FRAME_0
  AND $03
  ADD A,$F4
  LD (IX+$08),A
  RET
CHOOSE_FRAME_0:
  LD A,(IX+$06)
  CP $05
  JR C,CHOOSE_FRAME_1
  LD A,(IX+$05)
  AND A
  JR NZ,CHOOSE_FRAME_2
  LD (IX+$08),$03
  RET
CHOOSE_FRAME_1:
  AND A
  JR Z,CHOOSE_FRAME_3
CHOOSE_FRAME_2:
  LD (IX+$08),$02
  RET
CHOOSE_FRAME_3:
  LD A,(IX+$05)
  CP $02
  JR C,CHOOSE_FRAME_4
  LD (IX+$08),$04
  RET
CHOOSE_FRAME_4:
  BIT 2,(IX+$07)
  JR NZ,CHOOSE_FRAME_5
  LD (IX+$08),$00
  RET
CHOOSE_FRAME_5:
  LD A,(IX+$08)
  INC A
  AND $01
  LD (IX+$08),A
  RET

; Unused
CHOOSE_FRAME_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF

; Move an object, or count down its explosion and send it home
;
; Used by the routines at MOVE_PLAYER, MOVE_GRENADE, MOVE_ANT and MOVE_RESCUEE.
;
; While the explosion countdown runs the object does not move, and when it runs
; out the object goes back to its home position. The player starts every level
; this way: BASIC sets its countdown to 1, so the first frame puts it at the
; city gate.
MOVE_OR_RESPAWN:
  LD A,(IX+$09)
  AND A
  JR NZ,MOVE_OR_RESPAWN_0
  CALL MOVE_OBJECT
  RET
MOVE_OR_RESPAWN_0:
  DEC A
  LD (IX+$09),A
  RET NZ
  LD A,(IX+$0A)           ; Home.
  LD (IX+$00),A           ;
  LD A,(IX+$0B)           ;
  LD (IX+$01),A           ;
  LD A,(IX+$0C)           ;
  LD (IX+$02),A           ;
  XOR A                   ; Not falling, not stunned, standing.
  LD (IX+$05),A           ;
  LD (IX+$06),A           ;
  LD (IX+$08),A           ;
  RET

; Unused
MOVE_OR_RESPAWN_PAD:
  DEFB $FF,$FF,$FF,$FF

; Move an ant towards the player
;
; Used by the routine at ANT_TURN.
;
; The ant is taken out of the map, moved, and put back. If the move brought it
; closer to the player it walks on (and, within three cells, turns to face the
; player); otherwise it stops and turns a random way.
MOVE_ANT:
  LD D,(IX+$01)           ; Out of the map...
  LD E,(IX+$00)           ;
  PUSH DE                 ;
  LD A,(IX+$02)           ;
  CALL TOGGLE_MAP_BIT     ;
  CALL MOVE_OR_RESPAWN    ; Move it.
  LD H,(IX+$01)           ; ...and back in where it is now.
  LD L,(IX+$00)           ;
  LD D,H                  ;
  LD E,L                  ;
  LD A,(IX+$02)           ;
  CALL TOGGLE_MAP_BIT     ;
  LD D,(IY+$01)           ; Its distance from the player, now and before.
  LD E,(IY+$00)           ;
  CALL DISTANCE           ;
  LD C,A                  ;
  POP HL                  ;
  CALL DISTANCE           ;
  LD B,A                  ;
  LD A,C
  CP B
  JR NC,MOVE_ANT_0
  LD A,(IX+$08)           ; Closer: walk.
  INC A                   ;
  AND $01                 ;
  LD (IX+$08),A           ;
  LD A,C                  ; Within three cells (under four): face the player.
  CP $04                  ;
  RET NC                  ;
  LD H,(IX+$01)           ;
  LD L,(IX+$00)           ;
  CALL DIRECTION_TO       ;
  LD (IX+$04),A           ;
  RET
MOVE_ANT_0:
  LD (IX+$08),$00         ; No closer: stop, and turn left or right at random.
  CALL RANDOM             ;
  JR C,MOVE_ANT_1         ;
  INC (IX+$04)            ;
  RET                     ;
MOVE_ANT_1:
  DEC (IX+$04)            ;
  RET                     ;

; Unused
MOVE_ANT_PAD:
  DEFB $FF

; An ant's turn
;
; Used by the routine at MOVE_ANTS.
;
; A paralysed ant does nothing. Otherwise an ant moves every frame except one
; in every +D: 2 is half speed, 20 very nearly full. Its explosion count goes
; down only on the frames it moves, so a slow ant's blast lasts twice as long.
; A stunned ant cannot move, so MOVE_ANT finds it no closer every frame and
; turns it at random: it spins where it stands (measured in a simulator). The
; first ant is the fast one (line 140's DATA); BASIC sets the others' speed
; from sp, which goes up as the levels do.
ANT_TURN:
  LD A,(IX+$06)           ; Paralysed.
  CP $FF                  ;
  RET Z                   ;
  CALL BLAST_FRAME
  DEC (IX+$0E)            ; Not the frame to skip: move.
  JR Z,ANT_TURN_0         ;
  CALL MOVE_ANT           ;
  RET
ANT_TURN_0:
  LD A,(IX+$0D)           ; Skip it, and start counting again.
  LD (IX+$0E),A           ;
  RET

; Unused
ANT_TURN_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF

; Distance between two cells, along the grid
;
; Used by the routines at BLAST_ANT, MOVE_ANT, FOLLOW_PLAYER and MOVE_RESCUEE.
;
;   HL One cell
;   DE The other
; O:A |x difference| + |y difference|
DISTANCE:
  LD A,E
  SUB L
  JP P,DISTANCE_0
  CPL
  INC A
DISTANCE_0:
  LD B,A
  LD A,D
  SUB H
  JP P,DISTANCE_1
  CPL
  INC A
DISTANCE_1:
  ADD A,B
  RET

; The direction from one cell towards another
;
; Used by the routines at MOVE_ANT and FOLLOW_PLAYER.
;
; Straight along the axis if they share a row or column; otherwise one of the
; two directions that close the gap, chosen by the signs.
;
;   HL From
;   DE Towards
; O:A A direction for STEP (only the low two bits count)
DIRECTION_TO:
  LD A,H
  SUB D
  JR Z,DIRECTION_TO_1
  RLCA
  AND $01
  LD B,A
  LD A,L
  SUB E
  JR Z,DIRECTION_TO_0
  RLCA
  AND $01
  XOR B
  RLC B
  OR B
  CPL
  RET
DIRECTION_TO_0:
  LD A,B
  RLCA
  XOR $02
  RET
DIRECTION_TO_1:
  LD A,L
  SUB E
  JP P,DIRECTION_TO_2
  LD A,$01
  RET
DIRECTION_TO_2:
  LD A,$03
  RET

; Walk the rescued person after the player
;
; Used by the routine at MOVE_RESCUEE.
;
; Walks towards the player while two to five cells away, and stops beside them
; or more than five away. The facing is kept if one more step along it would
; still end beside the player; otherwise they turn towards the player.
FOLLOW_PLAYER:
  LD A,(IX+$06)           ; Not while stunned.
  AND A                   ;
  RET NZ                  ;
  LD E,(IY+$00)
  LD D,(IY+$01)
  LD L,(IX+$00)
  LD H,(IX+$01)
  LD C,(IX+$04)
  CALL DISTANCE
  SET 2,(IX+$07)          ; Walking, unless...
  CP $06                  ; ...six or more away, or beside the player.
  JR NC,FOLLOW_PLAYER_2   ;
  CP $01                  ;
  JR Z,FOLLOW_PLAYER_2    ;
  AND A                   ; In the player's own cell.
  JR NZ,FOLLOW_PLAYER_0   ;
  CALL ON_TOP             ;
FOLLOW_PLAYER_0:
  LD A,C                  ; Would a step this way end beside the player?
  CALL STEP               ;
  CALL DISTANCE           ;
  DEC A                   ;
  JR Z,FOLLOW_PLAYER_1    ;
  LD L,(IX+$00)           ; No: face the player.
  LD H,(IX+$01)           ;
  CALL DIRECTION_TO       ;
  LD C,A                  ;
FOLLOW_PLAYER_1:
  LD (IX+$04),C
  RET
FOLLOW_PLAYER_2:
  RES 2,(IX+$07)
  RET

; Unused
FOLLOW_PLAYER_PAD:
  DEFB $FF,$FF,$FF,$FF

; Fill the play area's attributes
;
; Used by the routine at RUN_SCRIPT.
;
; The flash behind "CONGRATULATIONS !", "BITTEN!" and the rest: rows 1-15,
; columns 1-30.
;
; A The attribute
FILL_PLAY_ATTRIBUTES:
  LD HL,$5821
  LD B,$0F
FILL_PLAY_ATTRIBUTES_0:
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  LD (HL),A
  INC HL
  INC HL
  INC HL
  DJNZ FILL_PLAY_ATTRIBUTES_0
  RET

; Unused
FILL_PLAY_ATTRIBUTES_PAD:
  DEFB $FF,$FF,$FF,$FF

; A burst of noise on the speaker
;
; Used by the routines at RUN_SCRIPT and HANDLE_EVENTS.
;
; B Length
NOISE:
  LD A,(BORDER)           ; The border colour, with the MIC and speaker bits
  AND $07                 ; set.
  OR $18                  ;
  LD C,A                  ;
NOISE_0:
  CALL RANDOM             ; A random speaker bit, each time round: bit 4 of
  AND $10                 ; what RANDOM leaves in A.
  XOR C                   ;
  OUT ($FE),A             ;
  DJNZ NOISE_0
  LD A,C                  ; The border colour again, with the speaker bit set:
  OUT ($FE),A             ; unlike TONE, a burst leaves the speaker on.
  RET                     ;

; An unused script
;
; Nearly in the RUN_SCRIPT format -- AT 15,12, then letters between notes --
; and its letters spell "OWCH!". But it has no stream byte before the AT, and
; an end marker stands between the C and the H, so run through RUN_SCRIPT (in a
; simulator) it prints only "OWC". It is not among the ones SCRIPTS counts
; from, so nothing ever runs it: a leftover.
UNUSED_SCRIPT:
  DEFB $16,$0F,$0C,$4F,$9F,$8F,$83,$8C
  DEFB $57,$81,$85,$9F,$83,$84,$43,$8A
  DEFB $8D,$8E,$FF,$83,$48,$81,$85,$8B
  DEFB $88,$21,$86,$84,$81,$00,$FF,$FF

; A note on the speaker
;
; Used by the routine at RUN_SCRIPT.
;
; A The note, an index into TONES
TONE:
  AND $1F                 ; HL = the note's entry.
  RLA                     ;
  ADD A,$B1               ;
  LD L,A                  ;
  LD H,$8B                ;
  LD A,(BORDER)           ; The border colour, with the MIC and speaker bits
  AND $07                 ; set.
  OR $18                  ;
  LD C,A                  ;
  LD E,(HL)               ; E = the pitch, B = the half-cycles.
  INC HL                  ;
  LD B,(HL)               ;
TONE_0:
  LD A,E                  ; The pitch delay...
TONE_1:
  DEC A                   ;
  JP NZ,TONE_1            ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  NOP                     ;
  LD A,C                  ; ...then flip the speaker.
  XOR $10                 ;
  LD C,A                  ;
  OUT ($FE),A             ;
  DEC B
  JP NZ,TONE_0
  AND $EF                 ; Speaker off.
  OUT ($FE),A             ;
  RET

; Note table
;
; A delay (the pitch) and a count of half-cycles per note: 16 notes rising in
; pitch, the count rising with them so that each lasts about as long. Note $0F
; is taken as noise by RUN_SCRIPT, so the last entry is never played.
TONES:
  DEFB $00,$25
  DEFB $F1,$27
  DEFB $E3,$29
  DEFB $D6,$2C
  DEFB $C9,$2F
  DEFB $BE,$31
  DEFB $B3,$34
  DEFB $A8,$38
  DEFB $9F,$3B
  DEFB $95,$3F
  DEFB $8D,$43
  DEFB $84,$47
  DEFB $7C,$4C
  DEFB $75,$50
  DEFB $6E,$56
  DEFB $68,$5B

; Paralyse the ant the player has landed on
;
; Used by the routine at LANDED.
;
; An ant that is not exploding and not already paralysed is paralysed for good,
; with "PARALYSED AN ANT !". Seen in play, by dropping the player on a stunned
; ant; and landing on a plain one-block wall finds no ant here and returns.
;
; HL The cell
PARALYSE_ANT:
  LD DE,$0010             ; Five ants.
  LD IY,ANT1              ;
  LD B,$05                ;
PARALYSE_ANT_0:
  LD A,(IY+$00)           ; Is this one in the cell?
  CP L                    ;
  JR NZ,PARALYSE_ANT_1    ;
  LD A,(IY+$01)           ;
  CP H                    ;
  JR Z,PARALYSE_ANT_2     ;
PARALYSE_ANT_1:
  ADD IY,DE
  DJNZ PARALYSE_ANT_0
  RET
PARALYSE_ANT_2:
  LD A,(IY+$09)           ; Not while exploding, and not twice.
  AND A                   ;
  RET NZ                  ;
  LD A,$FF                ;
  CP (IY+$06)             ;
  RET Z                   ;
  LD (IY+$06),A           ; Paralysed, for good.
  LD A,$10                ;
  CALL PLAY_SCRIPT        ;
  RET

; Unused
;
; A repeating 5-byte pattern -- 0E 00 3A 25 B4, which reads as LD C,0 and a LD
; A,(nn) -- filling the page. Nothing reads it.
PARALYSE_ANT_PAD:
  DEFB $FF,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$0E,$00,$3A,$25,$B4
  DEFB $0E,$00,$3A,$25,$B4,$0E,$00,$3A
  DEFB $25,$B4,$0E,$00,$3A,$25,$B4,$0E
  DEFB $00,$3A,$25,$B4,$0E,$00,$3A,$25
  DEFB $B4,$0E,$00,$3A,$25,$B4,$0E,$00
  DEFB $3A,$25,$B4,$C9,$FF,$FF,$FF,$FF
  DEFB $FF

; Throw a grenade, or keep one flying
;
; Used by the routine at MOVE_GRENADE.
;
; S, D, F and G throw, further along the keyboard throwing further: each key's
; bit is its flight time (2, 4, 8 or 16 frames). The grenade starts at the
; player and moves like anything else, a cell a frame; when the time runs out
; it explodes where it is.
;
; Every frame of the flight, not only the last, the grenade is checked against
; the player's cell and the rescued person's: if it is in either, they are
; blown up.
;
; IX The grenade
; IY The player
THROW_GRENADE:
  LD A,(THROW_TIME)       ; In flight.
  AND A                   ;
  JR NZ,THROW_GRENADE_0   ;
  LD A,(IX+$09)           ; Still exploding.
  AND A                   ;
  RET NZ                  ;
  LD BC,$FDFE             ; A to G: S, D, F or G.
  IN A,(C)                ;
  CPL                     ;
  AND $1E                 ;
  RET Z                   ;
  LD C,A                  ; C = the flight time.
  LD A,(AMMO_LOW)         ; None left, or one fewer.
  AND A                   ;
  RET Z                   ;
  DEC A                   ;
  LD (AMMO_LOW),A         ;
  LD A,C                  ; Launch.
  LD (THROW_TIME),A       ;
  LD (IY+$08),$02         ; The player's throwing pose.
  SET 2,(IX+$07)          ; The grenade moves...
  CALL COPY_POSITION      ; ...from where the player is...
  LD A,$01                ; ...and the count is reprinted.
  LD (GRENADE_EVENTS),A   ;
  LD (IX+$08),$F4         ; In flight it is drawn as frame $F4.
  RET                     ;
THROW_GRENADE_0:
  DEC A                   ; One frame less in the air...
  LD (THROW_TIME),A       ;
  JR NZ,THROW_GRENADE_1   ;
  LD A,$02                ; ...and at the end, bang: explode and stop.
  LD (GRENADE_EVENTS),A   ;
  LD (IX+$09),$05         ;
  RES 2,(IX+$07)          ;
  NOP
THROW_GRENADE_1:
  LD A,(IX+$00)           ; In the player's cell...
  CP (IY+$00)             ;
  JR NZ,THROW_GRENADE_3   ;
  LD A,(IX+$01)           ;
  CP (IY+$01)             ;
  JR NZ,THROW_GRENADE_2   ;
  LD A,(IX+$02)           ;
  CP (IY+$02)             ;
  JR NZ,THROW_GRENADE_2   ;
  LD A,(IY+$09)           ; ...blows the player up.
  AND A                   ;
  RET NZ                  ;
  LD (IY+$09),$05         ;
  LD (IY+$0F),$08         ;
  RET
THROW_GRENADE_2:
  LD A,(IX+$00)           ; In the rescued person's cell...
THROW_GRENADE_3:
  CP (IY+$10)             ;
  RET NZ                  ;
  LD A,(IX+$01)           ;
  CP (IY+$11)             ;
  RET NZ                  ;
  LD A,(IX+$02)           ;
  CP (IY+$12)             ;
  RET NZ                  ;
  LD A,(IY+$19)           ; ...blows them up.
  AND A                   ;
  RET NZ                  ;
  LD (IY+$19),$05         ;
  LD (IY+$1F),$08         ;
  RET

; Unused
THROW_GRENADE_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; Check each ant against an exploding grenade
;
; Used by the routine at MOVE_GRENADE.
GRENADE_BLAST:
  LD A,(IX+$09)
  AND A
  RET Z
  LD L,(IX+$00)
  LD H,(IX+$01)
  LD C,(IX+$02)
  LD IY,ANT1
  CALL BLAST_ANT
  LD IY,ANT2
  CALL BLAST_ANT
  LD IY,ANT3
  CALL BLAST_ANT
  LD IY,ANT4
  CALL BLAST_ANT
  LD IY,ANT5
  CALL BLAST_ANT
  RET

; Unused
GRENADE_BLAST_PAD:
  DEFB $FF,$FF,$FF,$FF

; Count the time down and print it
;
; Used by the routine at GAME_FRAME.
;
; One tick every three frames. The time is big-endian, as the ROM's OUT-NUM-2
; prints it.
COUNT_DOWN_TIME:
  LD HL,TIME_TICKS        ; Every third frame.
  DEC (HL)                ;
  RET NZ                  ;
  LD (HL),$03             ;
  INC HL                  ;
  LD B,(HL)
  INC HL
  LD C,(HL)
  LD A,B                  ; Already zero.
  OR C                    ;
  JR Z,COUNT_DOWN_TIME_0  ;
  DEC (HL)                ; A redundant decrement of the low byte: the next
                          ; three instructions overwrite it.
  DEC BC                  ; One less.
  LD (HL),C               ;
  DEC HL                  ;
  LD (HL),B               ;
COUNT_DOWN_TIME_0:
  LD IY,ERR_NR            ; PRINT AT 19,20;
  LD A,$02                ;
  CALL $1601              ;
  LD A,$16                ;
  RST $10                 ;
  LD A,$13                ;
  RST $10                 ;
  LD A,$14                ;
  RST $10                 ;
  LD HL,TIME              ; The time.
  CALL $1A28              ;
  RET

; Unused
COUNT_DOWN_TIME_PAD:
  DEFB $FF,$FF,$FF

; Run script 1, "NASTY FALL !"
;
; Used by the routine at HANDLE_EVENTS.
PLAY_SCRIPT_ONE:
  LD A,$01

; Run a script, keeping IX
;
; Used by the routines at PRINT_COUNTERS, PARALYSE_ANT, CHECK_RESCUED,
; FINAL_SCRIPT, HANDLE_EVENTS, MOVE_RESCUEE and GRENADE_SOUNDS.
;
; A The script's number
PLAY_SCRIPT:
  LD D,A
  PUSH IX
  CALL RUN_SCRIPT
  POP IX
  RET

; Unused
PLAY_SCRIPT_PAD:
  DEFB $FF,$FF

; Run a script: text, sound and colour
;
; Used by the routine at PLAY_SCRIPT.
;
; Every message the machine code shows and every sound it makes is a script in
; SCRIPTS: the Dth record there, counting the $FF that ends each. The first
; byte is a stream to print to (2, the upper screen); then, until $FF:
;
; $80-$FF: a sound -- bits 0-3 a note from TONES, $0F meaning noise, and bits
; 4-6 one less than how many times. $7D: the next byte is an attribute to fill
; the play area with. $7E: the next byte is the low byte of the address of a
; two-byte number, in the variables, to print. Anything else is printed,
; control codes and all.
;
; D The script's number
RUN_SCRIPT:
  LD IY,ERR_NR            ; Find the Dth $FF from SCRIPTS...
  LD HL,SCRIPTS           ;
  LD BC,$0800             ;
  LD A,$FF                ;
RUN_SCRIPT_0:
  CPIR                    ; ...or give up after 2K.
  RET PO                  ;
  DEC D                   ;
  JR NZ,RUN_SCRIPT_0      ;
  PUSH HL                 ; IX = the script.
  POP IX                  ;
  LD A,(IX+$00)           ; Stream 1 or 2, or nothing.
  INC IX                  ;
  DEC A                   ;
  CP $02                  ;
  RET NC                  ;
  INC A                   ;
  CALL $1601              ;
RUN_SCRIPT_1:
  LD A,(IX+$00)           ; The next byte; $FF ends.
  INC IX                  ;
  CP $FF                  ;
  RET Z                   ;
  AND A                   ; A sound?
  JP P,RUN_SCRIPT_4       ;
  LD B,A                  ; D = how many times.
  AND $70                 ;
  RLCA                    ;
  RLCA                    ;
  RLCA                    ;
  RLCA                    ;
  INC A                   ;
  LD D,A                  ;
  LD A,B                  ; E = the note; $0F is noise.
  AND $0F                 ;
  CP $0F                  ;
  JR Z,RUN_SCRIPT_3       ;
RUN_SCRIPT_2:
  PUSH AF                 ; Play the note D times.
  CALL TONE               ;
  POP AF                  ;
  DEC D                   ;
  JR NZ,RUN_SCRIPT_2      ;
  JR RUN_SCRIPT_1         ;
RUN_SCRIPT_3:
  LD B,$00                ; Or the noise.
  CALL NOISE              ;
  DEC D                   ;
  JR NZ,RUN_SCRIPT_3      ;
  JR RUN_SCRIPT_1         ;
RUN_SCRIPT_4:
  CP $7E                  ; $7E: a number.
  JR Z,RUN_SCRIPT_6       ;
  CP $7D                  ; $7D: a colour.
  JR Z,RUN_SCRIPT_5       ;
  RST $10                 ; Print anything else.
  JR RUN_SCRIPT_1         ;
RUN_SCRIPT_5:
  LD A,(IX+$00)             ; Fill the play area with the colour.
  INC IX                    ;
  CALL FILL_PLAY_ATTRIBUTES ;
  JR RUN_SCRIPT_1
RUN_SCRIPT_6:
  LD L,(IX+$00)           ; Print the number whose address has the next byte as
  INC IX                  ; its low byte and $B4 as its high.
  LD H,$B4                ;
  CALL $1A28              ;
  JR RUN_SCRIPT_1

; One frame of play
;
; Used by the routine at PLAY.
GAME_FRAME:
  CALL MOVE_PLAYER        ; The player.
  CALL MOVE_RESCUEE       ; The person to be rescued.
  CALL MOVE_GRENADE       ; The grenade.
  CALL MOVE_ANTS          ; The ants.
  CALL READ_VIEW_KEYS     ; The view keys.
  CALL DRAW_VIEW          ; Draw.
  CALL HANDLE_EVENTS      ; Messages for what happened to the two people...
  CALL GRENADE_SOUNDS     ; ...and to the grenade.
  CALL COUNT_DOWN_TIME    ; The clock.
  RET                     ;

; Unused
GAME_FRAME_PAD:
  DEFB $FF,$FF,$FF,$FF

; Have the player and the rescued person both left the city?
;
; Used by the routine at PLAY.
;
; Seen in play. Once both are outside the walls, the rescued person's +D is set
; to 2 -- BASIC's w, which line 70 reads as success -- "CONGRATULATIONS !" is
; shown, and the game stops at the end of this same frame: PLAY counts the 1
; down to 0 before it looks again.
CHECK_RESCUED:
  LD HL,PLAYER            ; The player is inside if both x and y have bit 7
  LD A,(HL)               ; set...
  INC HL                  ;
  AND (HL)                ;
  RET M                   ;
  LD L,$90                ; ...and the same for the rescued person.
  LD A,(HL)               ;
  INC HL                  ;
  AND (HL)                ;
  RET M                   ;
  LD A,(RESCUEE_STATE)    ; Already done.
  CP $02                  ;
  RET Z                   ;
  LD A,$02                ; Rescued.
  LD (RESCUEE_STATE),A    ;
  LD A,$0D                ;
  CALL PLAY_SCRIPT        ;
  LD A,$01                ; Stop after this frame.
  LD (FRAMES_LEFT),A      ;
  LD (TIME_TICKS),A       ;
  RET

; Unused
CHECK_RESCUED_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF

; Stop the game when time or either energy runs out
;
; Used by the routine at PLAY.
;
; At the end of the fourth frame after this one -- PLAY counts the 5 down once
; in this frame -- so the last message is seen. Seen in play for the time.
CHECK_GAME_OVER:
  LD HL,PLAYER_ENERGY_LOW ; Either energy at zero...
  LD A,(HL)               ;
  AND A                   ;
  JR Z,CHECK_GAME_OVER_0  ;
  LD L,$34                ;
  LD A,(HL)               ;
  AND A                   ;
  JR Z,CHECK_GAME_OVER_0  ;
  LD L,$36                ; ...or the time.
  LD A,(HL)               ;
  INC HL                  ;
  OR (HL)                 ;
  RET NZ                  ;
CHECK_GAME_OVER_0:
  LD A,(FRAMES_LEFT)      ; Only once.
  CP $FF                  ;
  RET NZ                  ;
  LD A,$05                ; Five, counted down from the end of this frame.
  LD (FRAMES_LEFT),A      ;
  LD (TIME_TICKS),A       ;
  RET

; The ending (USR 36594)
;
; Script 17, "YOU ARE A REAL HERO", called from BASIC line 3600 after the tenth
; rescue. The script is seen in the build's session with BASIC's fin set to 1
; on the first level -- but there the ending's BASIC stops at line 3610 with
; out of memory, since c$ still holds the first level's long story card, and
; BREAK's handler starts the game again. A real tenth rescue runs the whole
; ending (the animations page stages one).
FINAL_SCRIPT:
  DI
  LD A,$11
  CALL PLAY_SCRIPT
  EI
  RET

; Unused
FINAL_SCRIPT_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; React to what happened to the player and the rescued person
;
; Used by the routine at GAME_FRAME.
;
; Reads and clears the two event bytes (+F). A step is a click; a bad fall,
; "NASTY FALL !" or "HELP! I FELL!"; blown up, energy to 0 with "SILLY! YOU
; BLEW YOURSELF UP !" or "HOW COULD YOU ?"; bitten, an energy point off with
; "BITTEN!" or "THEY GOT ME", or when it reaches 0, "EATEN ALIVE" or "IVE BEEN
; EATEN ALIVE". All seen in play. A bad fall returns early from here, and
; PLAY_SCRIPT loads its script number into D, which held the other person's
; event, so whatever else happened to either of them that frame -- a bite, a
; blast -- is lost (tested in a simulator and in the emulator by writing both
; event bytes).
HANDLE_EVENTS:
  XOR A                   ; E = the player's event, D = the other's, both
  LD HL,PLAYER_EVENT      ; cleared.
  LD E,(HL)               ;
  LD (HL),A               ;
  LD L,$9F                ;
  LD D,(HL)               ;
  LD (HL),A               ;
  LD A,D                  ; Nothing happened.
  OR E                    ;
  RET Z                   ;
  DEC A                   ; Only a step: a click.
  JR NZ,HANDLE_EVENTS_0   ;
  LD B,$05                ;
  CALL NOISE              ;
  RET
HANDLE_EVENTS_0:
  LD A,$02                ; The player's bad fall...
  CP E                    ;
  JR NZ,HANDLE_EVENTS_1   ;
  CALL PLAY_SCRIPT_ONE    ;
  LD A,$02                ;
HANDLE_EVENTS_1:
  CP D                    ; ...or theirs.
  JR NZ,HANDLE_EVENTS_2   ;
  CALL PLAY_SCRIPT        ;
  RET
HANDLE_EVENTS_2:
  PUSH DE                 ; The player blown up: energy 0.
  LD HL,PLAYER_ENERGY_LOW ;
  LD A,E                  ;
  CP $08                  ;
  JR NZ,HANDLE_EVENTS_3   ;
  LD (HL),$00             ;
  LD A,$06                ;
  CALL PLAY_SCRIPT        ;
  JR HANDLE_EVENTS_5      ;
HANDLE_EVENTS_3:
  CP $04                  ; Bitten: a point off, and which message.
  JR NZ,HANDLE_EVENTS_6   ;
  LD A,(HL)               ;
  AND A                   ;
  JR Z,HANDLE_EVENTS_5    ;
  DEC (HL)                ;
  LD A,$0E                ;
  JR Z,HANDLE_EVENTS_4    ;
  LD A,$07                ;
HANDLE_EVENTS_4:
  CALL PLAY_SCRIPT        ;
HANDLE_EVENTS_5:
  LD A,$08                ; Reprint the player's energy.
  CALL PLAY_SCRIPT        ;
HANDLE_EVENTS_6:
  POP DE                   ; The same for the rescued person.
  LD HL,RESCUEE_ENERGY_LOW ;
  LD A,D                   ;
  CP $08                   ;
  JR NZ,HANDLE_EVENTS_7    ;
  LD (HL),$00              ;
  LD A,$09                 ;
  CALL PLAY_SCRIPT         ;
  JR HANDLE_EVENTS_9       ;
HANDLE_EVENTS_7:
  CP $04                   ;
  JR NZ,HANDLE_EVENTS_10   ;
  LD A,(HL)                ;
  AND A                    ;
  JR Z,HANDLE_EVENTS_9     ;
  DEC (HL)                 ;
  LD A,$0F                 ;
  JR Z,HANDLE_EVENTS_8     ;
  LD A,$0A                 ;
HANDLE_EVENTS_8:
  CALL PLAY_SCRIPT         ;
HANDLE_EVENTS_9:
  LD A,$0B                 ;
  CALL PLAY_SCRIPT         ;
HANDLE_EVENTS_10:
  RET

; Unused
HANDLE_EVENTS_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF

; The person to be rescued: wait, or follow
;
; Used by the routine at GAME_FRAME.
;
; Waiting, they drive the scanner, and are found when the player comes within
; three cells at the same height: "MY HERO!". After that they follow the
; player.
MOVE_RESCUEE:
  LD IX,RESCUEE
  LD IY,PLAYER
  LD A,(IX+$0D)           ; Found yet?
  AND A                   ;
  JR Z,MOVE_RESCUEE_0     ;
  CALL SHARE_CELL         ; Following: stand clear, follow, move, animate.
  CALL FOLLOW_PLAYER      ;
  CALL MOVE_OR_RESPAWN    ;
  CALL CHOOSE_FRAME       ;
  RET                     ;
MOVE_RESCUEE_0:
  LD L,(IX+$00)           ; Waiting: how far is the player?
  LD H,(IX+$01)           ;
  LD E,(IY+$00)           ;
  LD D,(IY+$01)           ;
  CALL DISTANCE           ;
  LD C,A                  ;
  CP (IX+$0E)             ; Green if closer than last frame.
  LD (IX+$0E),A           ;
  CALL SCANNER            ;
  LD A,C                  ; Within three cells at the same height...
  CP $04                  ;
  RET NC                  ;
  LD A,(IX+$02)           ;
  CP (IY+$02)             ;
  RET NZ                  ;
  LD (IX+$0D),$01         ; ...found: "MY HERO!". The scanner goes red, the
  CALL SCANNER            ; flags left from the height comparison.
  LD A,$0C                ;
  CALL PLAY_SCRIPT        ;
  RET

; Unused
MOVE_RESCUEE_PAD:
  DEFB $FF,$FF,$FF,$FF

; Show and sound what the grenade did
;
; Used by the routine at GAME_FRAME.
;
; GRENADE_EVENTS: bit 0 thrown (reprint the count), bit 1 exploded (a bang),
; bit 2 hit an ant ("GOOD SHOT!").
GRENADE_SOUNDS:
  LD HL,GRENADE_EVENTS
  LD A,(HL)
  AND A
  RET Z
  PUSH AF
  LD (HL),$00
  BIT 0,A
  JR Z,GRENADE_SOUNDS_0
  LD A,$04
  JR GRENADE_SOUNDS_1
GRENADE_SOUNDS_0:
  BIT 1,A
  JR Z,GRENADE_SOUNDS_2
  LD A,$05
GRENADE_SOUNDS_1:
  CALL PLAY_SCRIPT
GRENADE_SOUNDS_2:
  POP AF
  BIT 2,A
  RET Z
  LD A,$03
  CALL PLAY_SCRIPT
  RET

; Unused
GRENADE_SOUNDS_PAD:
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF

; Scripts
;
; The $FF that ends a script zero. RUN_SCRIPT finds script n by counting $FF
; bytes from here, so the seventeen that follow are numbered from 1; see
; RUN_SCRIPT for their format, and the scripts page for what each says and
; when. The build generates their blocks, since their titles are their words.
SCRIPTS:
  DEFB $FF

; Script 1: NASTY FALL !
SCRIPT1:
  DEFB $02
  DEFB $16
  DEFB $0F
  DEFB $0A
  DEFM "NASTY FALL !"
  DEFB $8E
  DEFB $8D
  DEFB $8B
  DEFB $89
  DEFB $87
  DEFB $84
  DEFB $82
  DEFB $FF

; Script 2: "HELP! I FELL!"
SCRIPT2:
  DEFB $02
  DEFB $16
  DEFB $0F
  DEFB $0A
  DEFM "\"HELP! I FELL!\""
  DEFB $85
  DEFB $84
  DEFB $83
  DEFB $82
  DEFB $8E
  DEFB $8D
  DEFB $8C
  DEFB $8B
  DEFB $FF

; Script 3: GOOD SHOT!
SCRIPT3:
  DEFB $02
  DEFB $16
  DEFB $0F
  DEFB $0A
  DEFB $11
  DEFB $02
  DEFB $90
  DEFB $AF
  DEFM "GO"
  DEFB $7D
  DEFB $47
  DEFM "OD SHOT!"
  DEFB $80
  DEFB $7D
  DEFB $68
  DEFB $84
  DEFB $7D
  DEFB $78
  DEFB $87
  DEFB $8C
  DEFB $81
  DEFB $85
  DEFB $88
  DEFB $7D
  DEFB $68
  DEFB $8D
  DEFB $EF
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 4: a sound
SCRIPT4:
  DEFB $02
  DEFB $16
  DEFB $13
  DEFB $02
  DEFB $7E
  DEFB $2F
  DEFB $8C
  DEFB $FF

; Script 5: a sound
SCRIPT5:
  DEFB $02
  DEFB $BF
  DEFB $FF

; Script 6: SILLY! YOU BLEW / YOURSELF UP !
SCRIPT6:
  DEFB $02
  DEFB $16
  DEFB $0D
  DEFB $08
  DEFB $10
  DEFB $02
  DEFM "SILLY! YOU BLEW"
  DEFB $16
  DEFB $0E
  DEFB $0A
  DEFM "YOURSELF UP !"
  DEFB $F2
  DEFB $F5
  DEFB $F4
  DEFB $F2
  DEFB $E1
  DEFB $F2
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 7: BITTEN!
SCRIPT7:
  DEFB $02
  DEFB $16
  DEFB $0E
  DEFB $0C
  DEFB $11
  DEFB $06
  DEFM " BITTEN!"
  DEFB $80
  DEFB $8F
  DEFB $8C
  DEFB $EF
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 8: a sound
SCRIPT8:
  DEFB $02
  DEFB $16
  DEFB $13
  DEFB $08
  DEFB $7E
  DEFB $31
  DEFB $FF

; Script 9: " HOW COULD YOU ? / AFTER ALL WE'VE / BEEN THROUGH ?"
SCRIPT9:
  DEFB $02
  DEFB $11
  DEFB $05
  DEFB $16
  DEFB $03
  DEFB $09
  DEFM "\" HOW COULD YOU ?"
  DEFB $16
  DEFB $05
  DEFB $09
  DEFM "AFTER ALL WE'VE"
  DEFB $16
  DEFB $07
  DEFB $09
  DEFM "BEEN THROUGH ?\""
  DEFB $EF
  DEFB $8D
  DEFB $8C
  DEFB $8B
  DEFB $F2
  DEFB $F5
  DEFB $F4
  DEFB $F2
  DEFB $E1
  DEFB $F2
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 10: "THEY GOT ME"
SCRIPT10:
  DEFB $02
  DEFB $16
  DEFB $03
  DEFB $0A
  DEFB $11
  DEFB $06
  DEFM "\"THEY GOT ME\""
  DEFB $8E
  DEFB $8F
  DEFB $8D
  DEFB $EF
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 11: a sound
SCRIPT11:
  DEFB $02
  DEFB $16
  DEFB $13
  DEFB $0E
  DEFB $7E
  DEFB $33
  DEFB $FF

; Script 12: "MY HERO!" / "TAKE ME AWAY / FROM ALL THIS !"
SCRIPT12:
  DEFB $02
  DEFB $16
  DEFB $0E
  DEFB $0A
  DEFB $10
  DEFB $02
  DEFM "\"MY "
  DEFB $F1
  DEFB $48
  DEFB $FD
  DEFB $45
  DEFB $B5
  DEFB $52
  DEFB $B6
  DEFB $4F
  DEFB $B8
  DEFM "!\""
  DEFB $B3
  DEFB $B1
  DEFB $F6
  DEFB $16
  DEFB $04
  DEFB $0A
  DEFM "\"TAKE ME AWAY"
  DEFB $16
  DEFB $06
  DEFB $0A
  DEFB $10
  DEFB $02
  DEFM "FROM ALL THIS !\""
  DEFB $B3
  DEFB $B5
  DEFB $F2
  DEFB $FA
  DEFB $FA
  DEFB $F1
  DEFB $F0
  DEFB $F0
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 13: CONGRATULATIONS !
SCRIPT13:
  DEFB $02
  DEFB $16
  DEFB $0E
  DEFB $08
  DEFB $12
  DEFB $01
  DEFB $A2
  DEFB $43
  DEFB $83
  DEFB $4F
  DEFB $87
  DEFB $10
  DEFB $02
  DEFB $BD
  DEFB $4E
  DEFB $84
  DEFB $47
  DEFB $10
  DEFB $04
  DEFB $89
  DEFB $52
  DEFB $83
  DEFB $41
  DEFB $84
  DEFB $10
  DEFB $06
  DEFB $54
  DEFB $85
  DEFB $55
  DEFB $8C
  DEFB $10
  DEFB $05
  DEFB $4C
  DEFB $AC
  DEFB $41
  DEFB $10
  DEFB $04
  DEFB $8E
  DEFB $54
  DEFB $85
  DEFB $49
  DEFB $8E
  DEFM "ONS !"
  DEFB $A0
  DEFB $A1
  DEFB $A2
  DEFB $A3
  DEFB $A4
  DEFB $A5
  DEFB $80
  DEFB $81
  DEFB $82
  DEFB $7D
  DEFB $08
  DEFB $F0
  DEFB $7D
  DEFB $10
  DEFB $F1
  DEFB $7D
  DEFB $18
  DEFB $F2
  DEFB $7D
  DEFB $20
  DEFB $F3
  DEFB $7D
  DEFB $28
  DEFB $F4
  DEFB $7D
  DEFB $30
  DEFB $F5
  DEFB $86
  DEFB $88
  DEFB $8A
  DEFB $8C
  DEFB $8E
  DEFB $7D
  DEFB $94
  DEFB $FF

; Script 14: EATEN ALIVE
SCRIPT14:
  DEFB $02
  DEFB $16
  DEFB $0E
  DEFB $0A
  DEFB $11
  DEFB $05
  DEFM "EATEN ALIVE"
  DEFB $EF
  DEFB $E4
  DEFB $E2
  DEFB $F0
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 15: IVE BEEN EATEN ALIVE
SCRIPT15:
  DEFB $02
  DEFB $16
  DEFB $03
  DEFB $08
  DEFB $11
  DEFB $05
  DEFM "IVE BEEN EATEN ALIVE"
  DEFB $EF
  DEFB $E4
  DEFB $E2
  DEFB $F0
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 16: PARALYSED AN ANT !
SCRIPT16:
  DEFB $02
  DEFB $16
  DEFB $0E
  DEFB $08
  DEFB $11
  DEFB $06
  DEFM "PARALYSED AN ANT !"
  DEFB $8F
  DEFB $E4
  DEFB $8F
  DEFB $E7
  DEFB $8F
  DEFB $EA
  DEFB $8F
  DEFB $ED
  DEFB $8F
  DEFB $7D
  DEFB $38
  DEFB $FF

; Script 17: YOU ARE A REAL / AT LAST YOUR MISSION IS OVER! / YOUR NEW FRIENDS
; WISH TO / THANK YOU FOR SAVING THEIR / LIVES.
SCRIPT17:
  DEFB $02
  DEFB $16
  DEFB $02
  DEFB $02
  DEFB $10
  DEFB $00
  DEFB $59
  DEFB $B5
  DEFB $4F
  DEFB $B5
  DEFB $55
  DEFB $90
  DEFB $20
  DEFB $90
  DEFB $41
  DEFB $95
  DEFB $52
  DEFB $95
  DEFB $45
  DEFB $B9
  DEFB $20
  DEFB $B9
  DEFB $41
  DEFB $B5
  DEFB $20
  DEFB $B5
  DEFB $52
  DEFB $B9
  DEFB $45
  DEFB $B9
  DEFB $41
  DEFB $95
  DEFB $4C
  DEFB $95
  DEFB $16
  DEFB $04
  DEFB $08
  DEFB $11
  DEFB $02
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $04
  DEFB $0A
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $04
  DEFB $0C
  DEFB $20
  DEFB $BC
  DEFB $16
  DEFB $04
  DEFB $0D
  DEFB $20
  DEFB $BB
  DEFB $16
  DEFB $04
  DEFB $0E
  DEFB $20
  DEFB $B9
  DEFB $16
  DEFB $05
  DEFB $08
  DEFB $20
  DEFB $B9
  DEFB $16
  DEFB $06
  DEFB $08
  DEFB $20
  DEFB $BC
  DEFB $16
  DEFB $06
  DEFB $10
  DEFB $20
  DEFB $BC
  DEFB $16
  DEFB $05
  DEFB $14
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $06
  DEFB $14
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $04
  DEFB $15
  DEFB $20
  DEFB $9C
  DEFB $16
  DEFB $04
  DEFB $12
  DEFB $20
  DEFB $9C
  DEFB $16
  DEFB $05
  DEFB $12
  DEFB $20
  DEFB $F4
  DEFB $16
  DEFB $08
  DEFB $0C
  DEFB $20
  DEFB $F4
  DEFB $16
  DEFB $06
  DEFB $0A
  DEFB $20
  DEFB $B9
  DEFB $16
  DEFB $06
  DEFB $0D
  DEFB $20
  DEFB $B9
  DEFB $16
  DEFB $08
  DEFB $16
  DEFB $20
  DEFB $94
  DEFB $16
  DEFB $08
  DEFB $10
  DEFB $20
  DEFB $94
  DEFB $16
  DEFB $04
  DEFB $10
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $07
  DEFB $16
  DEFB $20
  DEFB $99
  DEFB $16
  DEFB $08
  DEFB $14
  DEFB $20
  DEFB $FD
  DEFB $16
  DEFB $05
  DEFB $0A
  DEFB $20
  DEFB $FD
  DEFB $16
  DEFB $08
  DEFB $08
  DEFB $20
  DEFB $8C
  DEFB $16
  DEFB $07
  DEFB $10
  DEFB $20
  DEFB $8B
  DEFB $16
  DEFB $04
  DEFB $16
  DEFB $20
  DEFB $8A
  DEFB $16
  DEFB $05
  DEFB $0C
  DEFB $20
  DEFB $89
  DEFB $16
  DEFB $06
  DEFB $09
  DEFB $20
  DEFB $88
  DEFB $16
  DEFB $05
  DEFB $16
  DEFB $20
  DEFB $86
  DEFB $16
  DEFB $08
  DEFB $0E
  DEFB $20
  DEFB $84
  DEFB $16
  DEFB $07
  DEFB $0A
  DEFB $20
  DEFB $82
  DEFB $16
  DEFB $06
  DEFB $16
  DEFB $20
  DEFB $80
  DEFB $16
  DEFB $07
  DEFB $0C
  DEFB $20
  DEFB $81
  DEFB $16
  DEFB $05
  DEFB $10
  DEFB $20
  DEFB $82
  DEFB $16
  DEFB $04
  DEFB $0C
  DEFB $20
  DEFB $83
  DEFB $16
  DEFB $08
  DEFB $14
  DEFB $20
  DEFB $84
  DEFB $16
  DEFB $07
  DEFB $08
  DEFB $20
  DEFB $85
  DEFB $16
  DEFB $08
  DEFB $0D
  DEFB $20
  DEFB $86
  DEFB $16
  DEFB $08
  DEFB $15
  DEFB $20
  DEFB $87
  DEFB $16
  DEFB $04
  DEFB $14
  DEFB $20
  DEFB $88
  DEFB $16
  DEFB $06
  DEFB $0C
  DEFB $20
  DEFB $89
  DEFB $16
  DEFB $08
  DEFB $0A
  DEFB $20
  DEFB $8A
  DEFB $16
  DEFB $04
  DEFB $11
  DEFB $20
  DEFB $8B
  DEFB $16
  DEFB $07
  DEFB $14
  DEFB $20
  DEFB $80
  DEFB $82
  DEFB $84
  DEFB $11
  DEFB $06
  DEFB $16
  DEFB $0A
  DEFB $02
  DEFB $41
  DEFB $86
  DEFB $54
  DEFB $88
  DEFB $20
  DEFB $8A
  DEFB $4C
  DEFB $81
  DEFB $41
  DEFB $84
  DEFB $53
  DEFB $87
  DEFB $54
  DEFB $8A
  DEFB $20
  DEFB $8D
  DEFB $59
  DEFB $81
  DEFB $4F
  DEFB $83
  DEFB $55
  DEFB $85
  DEFB $52
  DEFB $87
  DEFB $20
  DEFB $89
  DEFB $4D
  DEFB $8B
  DEFB $49
  DEFB $82
  DEFB $53
  DEFB $85
  DEFB $53
  DEFB $88
  DEFB $49
  DEFB $8B
  DEFB $4F
  DEFB $8E
  DEFB $4E
  DEFB $82
  DEFB $20
  DEFB $84
  DEFB $49
  DEFB $86
  DEFB $53
  DEFB $88
  DEFB $20
  DEFB $8A
  DEFB $4F
  DEFB $8C
  DEFB $56
  DEFB $83
  DEFB $45
  DEFB $86
  DEFB $52
  DEFB $89
  DEFB $21
  DEFB $8C
  DEFB $8E
  DEFB $16
  DEFB $0B
  DEFB $02
  DEFB $83
  DEFB $59
  DEFB $85
  DEFB $4F
  DEFB $87
  DEFB $55
  DEFB $89
  DEFB $52
  DEFB $8B
  DEFB $20
  DEFB $8D
  DEFB $4E
  DEFB $84
  DEFB $45
  DEFB $87
  DEFB $57
  DEFB $8A
  DEFB $20
  DEFB $8D
  DEFB $46
  DEFB $80
  DEFB $52
  DEFB $80
  DEFB $49
  DEFB $80
  DEFB $45
  DEFB $83
  DEFB $4E
  DEFB $85
  DEFB $44
  DEFB $87
  DEFB $53
  DEFB $89
  DEFB $20
  DEFB $8B
  DEFB $57
  DEFB $8D
  DEFB $49
  DEFB $84
  DEFB $53
  DEFB $87
  DEFB $48
  DEFB $8A
  DEFB $20
  DEFB $8D
  DEFB $54
  DEFB $84
  DEFB $4F
  DEFB $85
  DEFB $20
  DEFB $86
  DEFB $16
  DEFB $0C
  DEFB $02
  DEFB $16
  DEFB $0C
  DEFB $02
  DEFM "THANK YOU FO"
  DEFB $8D
  DEFM "R SAVI"
  DEFB $88
  DEFM "NG TH"
  DEFB $80
  DEFM "EIR"
  DEFB $16
  DEFB $0D
  DEFB $02
  DEFM "LIVES."
  DEFB $85
  DEFB $88
  DEFB $8B
  DEFB $8E
  DEFB $EE
  DEFB $EE
  DEFB $EE
  DEFB $AD
  DEFB $9C
  DEFB $8B
  DEFB $FF

; Unused
;
; Filled with $02.
SCRIPT17_PAD:
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02

; Where the load finishes
;
; The loader in the BASIC line leaves LD-BYTES's return address pointing here.
; A failed load (carry clear) or a short one (DE not zero) resets the machine.
LOADED:
  JP NC,$0000             ; Carry clear: a tape error.
  LD A,D                  ; Bytes left over: a short load.
  OR E                    ;
  JP NZ,$0000             ;
  LD A,$98                ; The interrupt vectors at INTERRUPT_VECTORS: every
  LD I,A                  ; one points to INTERRUPT.
  IM 2                    ;
  DI                      ; Run the BASIC.
  JP RESTART_BASIC        ;

; Unused
;
; Zeros, $02 filler, and just before INTERRUPT a stray copy of the interrupt
; set-up.
LOADED_PAD:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$3E,$98
  DEFB $ED,$47,$ED,$5E,$00

; The interrupt routine: no BREAK
;
; Passes the interrupt to the ROM unless an error is pending -- BREAK, most
; likely -- and if one is, restarts the BASIC program instead of letting it
; stop.
INTERRUPT:
  DI
  PUSH AF
  LD A,(ERR_NR)           ; No error: the ROM's interrupt routine.
  CP $FF                  ;
  JR Z,RESTART_BASIC_0    ;

; Type RUN and run it
;
; Used by the routine at LOADED.
;
; Clears the error, resets the stack from ERR_SP, puts RUN and ENTER in the
; edit line and jumps into the ROM's line executor. This is also how the game
; starts after loading, since the header's own auto-run line, 1, starts the
; loader; nothing would start the game's BASIC that the block brings in, so the
; game starts it itself.
RESTART_BASIC:
  LD A,$FF                ; No error.
  LD (ERR_NR),A           ;
  LD SP,(ERR_SP)          ; The stack BASIC keeps.
  LD HL,(E_LINE)          ; RUN, ENTER into the edit line.
  LD A,$F7                ;
  LD (HL),A               ;
  INC HL                  ;
  LD A,$0D                ;
  LD (HL),A               ;
  EI
  JP $12B4                ; The ROM's statement loop, as if ENTER had been
                          ; pressed.
; This entry point is used by the routine at INTERRUPT.
RESTART_BASIC_0:
  POP AF                  ; The ROM's own interrupt routine.
  JP $0038                ;

; Unused
RESTART_BASIC_PAD:
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02

; Interrupt vector table
;
; 257 bytes of $97 (and one more), so wherever the data bus leaves the vector,
; the interrupt goes to INTERRUPT.
INTERRUPT_VECTORS:
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97,$97,$97,$97,$97,$97,$97
  DEFB $97,$97

; Unused
;
; Filled with $02.
INTERRUPT_VECTORS_PAD:
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02,$02,$02
  DEFB $02,$02,$02,$02,$02,$02

; Sprites: the grenade and the girl
;
; This entry is frame $68: grenade's own frames.
;
; Frames $68-$6B are the grenade's by its record. In flight it is drawn as $F4
; onwards, and its home, x=0, y=$40, is open ground far outside the walls --
; but it is drawn there, as these frames, whenever the player goes near it
; (watched in the emulator). $6C-$7F are the girl. 64 bytes a frame, mask and
; graphic interleaved (see DRAW_SPRITE).
SPRITES:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$1F,$FF,$F8    ;
  DEFB $FD,$3D,$FF,$FC    ;
  DEFB $C7,$47,$E3,$E2    ;
  DEFB $FB,$FB,$C1,$C1    ;
  DEFB $CD,$CD,$85,$85    ;
  DEFB $D7,$D7,$05,$05    ;
  DEFB $DB,$DB,$2D,$2D    ;
  DEFB $CB,$CB,$35,$35    ;
  DEFB $D3,$D3,$25,$25    ;
  DEFB $FB,$7B,$23,$22    ;
  DEFB $FB,$3B,$27,$24    ;
  DEFB $FF,$1F,$9F,$98    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $69: grenade's own frames
FRAME69:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$1F,$FF,$F8    ;
  DEFB $FF,$3F,$BF,$BC    ;
  DEFB $C7,$47,$E3,$E2    ;
  DEFB $83,$83,$DF,$DF    ;
  DEFB $B1,$B1,$B3,$B3    ;
  DEFB $A8,$A8,$6B,$6B    ;
  DEFB $A4,$A4,$DB,$DB    ;
  DEFB $A4,$A4,$D3,$D3    ;
  DEFB $B4,$B4,$CB,$CB    ;
  DEFB $CC,$4C,$DF,$DE    ;
  DEFB $E0,$20,$DF,$DC    ;
  DEFB $F9,$19,$FF,$F8    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6A: grenade's own frames
FRAME6A:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$1F,$BF,$B8    ;
  DEFB $FF,$3F,$FF,$FC    ;
  DEFB $C7,$47,$E3,$E2    ;
  DEFB $FB,$FB,$C1,$C1    ;
  DEFB $DD,$DD,$89,$89    ;
  DEFB $DE,$DE,$15,$15    ;
  DEFB $CB,$CB,$25,$25    ;
  DEFB $D3,$D3,$25,$25    ;
  DEFB $DB,$DB,$2D,$2D    ;
  DEFB $FB,$7B,$33,$32    ;
  DEFB $FB,$3B,$07,$04    ;
  DEFB $FF,$1F,$9F,$98    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6B: grenade's own frames
FRAME6B:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FD,$1D,$FF,$F8    ;
  DEFB $FF,$3F,$FF,$FC    ;
  DEFB $C7,$47,$E3,$E2    ;
  DEFB $83,$83,$DF,$DF    ;
  DEFB $A1,$A1,$BB,$BB    ;
  DEFB $A0,$A0,$7B,$7B    ;
  DEFB $B4,$B4,$D3,$D3    ;
  DEFB $AC,$AC,$CB,$CB    ;
  DEFB $A4,$A4,$DB,$DB    ;
  DEFB $C4,$44,$DF,$DE    ;
  DEFB $E4,$24,$DF,$DC    ;
  DEFB $F9,$19,$FF,$F8    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6C: girl, standing, facing 0
FRAME6C:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$06,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FE,$06,$BF,$80    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$05,$FF,$C0    ;
  DEFB $FF,$0F,$FF,$C0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $F5,$05,$5F,$50    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6D: girl, standing, facing 1
FRAME6D:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$05,$FF,$C0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $F5,$05,$5F,$50    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6E: girl, standing, facing 2
FRAME6E:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$A0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FA,$0A,$AF,$A0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $6F: girl, standing, facing 3
FRAME6F:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$60    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FD,$01,$7F,$60    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$A0    ;
  DEFB $FF,$03,$FF,$F0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FA,$0A,$AF,$A0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $70: girl, walking, facing 0
FRAME70:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$06,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$06,$BF,$A0    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$1B,$FF,$D8    ;
  DEFB $FF,$11,$FF,$88    ;
  DEFB $FF,$33,$FF,$C8    ;
  DEFB $FF,$07,$DF,$C0    ;
  DEFB $F5,$05,$7F,$70    ;
  DEFB $FF,$1E,$FF,$C0    ;
  DEFB $FF,$10,$FF,$40    ;
  DEFB $FF,$18,$FF,$70    ;
  DEFB $FF,$00,$FF,$60    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $71: girl, walking, facing 1
FRAME71:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$1B,$FF,$D0    ;
  DEFB $FF,$11,$FF,$98    ;
  DEFB $FF,$13,$FF,$CC    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $F7,$07,$BF,$A0    ;
  DEFB $FD,$0D,$7F,$70    ;
  DEFB $FF,$18,$FF,$1C    ;
  DEFB $FF,$18,$FF,$18    ;
  DEFB $FF,$0C,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $72: girl, walking, facing 2
FRAME72:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F8    ;
  DEFB $FF,$0B,$FF,$CC    ;
  DEFB $FF,$19,$FF,$84    ;
  DEFB $FF,$33,$FF,$C0    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FB,$13,$EF,$E0    ;
  DEFB $FE,$1E,$BF,$A0    ;
  DEFB $FF,$19,$FF,$F0    ;
  DEFB $FF,$00,$FF,$18    ;
  DEFB $FF,$00,$FF,$38    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $73: girl, walking, facing 3
FRAME73:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$60    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FD,$05,$7F,$60    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$0B,$FF,$D8    ;
  DEFB $FF,$19,$FF,$88    ;
  DEFB $FF,$03,$FF,$C8    ;
  DEFB $FB,$03,$FF,$E0    ;
  DEFB $FE,$0E,$AF,$A0    ;
  DEFB $FF,$03,$FF,$7C    ;
  DEFB $FF,$02,$FF,$0C    ;
  DEFB $FF,$0E,$FF,$08    ;
  DEFB $FF,$06,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $74: girl, arms out: stunned, or throwing, facing 0
FRAME74:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$06,$7F,$40    ;
  DEFB $FF,$01,$FF,$8C    ;
  DEFB $FF,$37,$BF,$BC    ;
  DEFB $FE,$3E,$FF,$F0    ;
  DEFB $FF,$03,$AF,$A0    ;
  DEFB $FE,$00,$FF,$F8    ;
  DEFB $F7,$17,$FF,$F8    ;
  DEFB $FF,$03,$FF,$F0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$04,$FF,$80    ;
  DEFB $FF,$06,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $75: girl, arms out: stunned, or throwing, facing 1
FRAME75:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$31,$FF,$86    ;
  DEFB $FF,$3F,$FF,$FE    ;
  DEFB $FF,$07,$DF,$D0    ;
  DEFB $FF,$01,$EF,$E0    ;
  DEFB $FE,$02,$BF,$B8    ;
  DEFB $F7,$17,$FF,$F8    ;
  DEFB $FF,$03,$FF,$F0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$04,$FF,$80    ;
  DEFB $FF,$06,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $76: girl, arms out: stunned, or throwing, facing 2
FRAME76:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$31,$FF,$8C    ;
  DEFB $FF,$3F,$FF,$FC    ;
  DEFB $FD,$0D,$FF,$F0    ;
  DEFB $F7,$07,$FF,$80    ;
  DEFB $FE,$1E,$DF,$C0    ;
  DEFB $FF,$1F,$F7,$F4    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$02,$FF,$60    ;
  DEFB $FF,$06,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $77: girl, arms out: stunned, or throwing, facing 3
FRAME77:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$60    ;
  DEFB $FF,$19,$FF,$8C    ;
  DEFB $FD,$1D,$FF,$FC    ;
  DEFB $FF,$07,$7F,$70    ;
  DEFB $F5,$05,$FF,$C0    ;
  DEFB $FF,$0F,$7F,$00    ;
  DEFB $FF,$1F,$EF,$E8    ;
  DEFB $FF,$0F,$FF,$C0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$01,$FF,$20    ;
  DEFB $FF,$03,$FF,$60    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $78: girl, lying down: stunned for longer, facing 0
FRAME78:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$78,$FF,$00    ;
  DEFB $CF,$4F,$FF,$C0    ;
  DEFB $DD,$5D,$FF,$E0    ;
  DEFB $F7,$F7,$1F,$14    ;
  DEFB $FF,$1F,$1F,$14    ;
  DEFB $FE,$1A,$7F,$7C    ;
  DEFB $FE,$0E,$FF,$F8    ;
  DEFB $FF,$05,$FF,$80    ;

; Sprite frame $79: girl, lying down: stunned for longer, facing 1
FRAME79:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$08    ;
  DEFB $FF,$01,$BF,$BC    ;
  DEFB $FF,$33,$DF,$DC    ;
  DEFB $FB,$3B,$EF,$E8    ;
  DEFB $FE,$1E,$FF,$F8    ;
  DEFB $E7,$27,$F7,$F0    ;
  DEFB $E7,$67,$FF,$F0    ;
  DEFB $FF,$3E,$FF,$F0    ;
  DEFB $FF,$0C,$FF,$00    ;

; Sprite frame $7A: girl, lying down: stunned for longer, facing 2
FRAME7A:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$10,$FF,$00    ;
  DEFB $FD,$3D,$FF,$80    ;
  DEFB $FB,$3B,$FF,$CC    ;
  DEFB $F7,$17,$DF,$DC    ;
  DEFB $FF,$1F,$7F,$78    ;
  DEFB $EF,$0F,$E7,$E4    ;
  DEFB $FF,$0F,$E7,$E6    ;
  DEFB $FF,$0F,$FF,$7C    ;
  DEFB $FF,$00,$FF,$30    ;

; Sprite frame $7B: girl, lying down: stunned for longer, facing 3
FRAME7B:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$1E    ;
  DEFB $FF,$03,$F3,$F2    ;
  DEFB $FF,$07,$BB,$BA    ;
  DEFB $F8,$28,$EF,$EF    ;
  DEFB $F8,$28,$FF,$F8    ;
  DEFB $FE,$3E,$7F,$58    ;
  DEFB $FF,$1F,$7F,$70    ;
  DEFB $FF,$01,$FF,$A0    ;

; Sprite frame $7C: girl, arms up: falling, facing 0
FRAME7C:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$06,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$27,$FF,$C8    ;
  DEFB $DE,$1E,$BF,$B8    ;
  DEFB $FB,$1B,$F7,$F0    ;
  DEFB $FF,$0F,$7F,$70    ;
  DEFB $FA,$02,$DF,$C0    ;
  DEFB $FC,$00,$3F,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $7D: girl, arms up: falling, facing 1
FRAME7D:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$27,$FF,$C8    ;
  DEFB $DF,$1F,$FF,$F8    ;
  DEFB $FB,$1B,$F7,$F0    ;
  DEFB $FF,$0F,$7F,$70    ;
  DEFB $FA,$0A,$DF,$C0    ;
  DEFB $FC,$00,$3F,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $7E: girl, arms up: falling, facing 2
FRAME7E:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$27,$FF,$C8    ;
  DEFB $DF,$1F,$FF,$FC    ;
  DEFB $FB,$1B,$EB,$E8    ;
  DEFB $FF,$0F,$7F,$70    ;
  DEFB $FA,$02,$DF,$D0    ;
  DEFB $FC,$00,$3F,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FF,$01,$FF,$E0    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $7F: girl, arms up: falling, facing 3
FRAME7F:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$60    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$2B,$FF,$E8    ;
  DEFB $DD,$1D,$7F,$78    ;
  DEFB $F7,$17,$F7,$F0    ;
  DEFB $FF,$0F,$BF,$B0    ;
  DEFB $FC,$04,$DF,$C0    ;
  DEFB $FE,$00,$1F,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FE,$00,$BF,$00    ;
  DEFB $FF,$01,$FF,$E0    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$01,$FF,$40    ;
  DEFB $FF,$00,$FF,$00    ;

; Render buffer
;
; 140 rows of 32 bytes. The view is painted here and rows 12-127 copied to the
; screen (COPY_TO_SCREEN); the rest is margin. What the tape holds here is
; whatever was in it when the game was saved.
RENDER_BUFFER:
  DEFB $45,$02,$03,$02,$03,$06,$03,$06
  DEFB $13,$1E,$03,$02,$03,$06,$03,$02
  DEFB $03,$02,$03,$5E,$03,$2E,$03,$06
  DEFB $03,$02,$03,$06,$03,$02,$1B,$91
  DEFB $11,$42,$04,$42,$14,$4B,$14,$4B
  DEFB $34,$5B,$04,$42,$14,$4B,$04,$42
  DEFB $04,$42,$0C,$5F,$F4,$5B,$34,$4B
  DEFB $04,$42,$14,$4B,$04,$42,$1C,$44
  DEFB $46,$16,$11,$16,$71,$17,$71,$17
  DEFB $F1,$17,$11,$16,$31,$11,$71,$12
  DEFB $71,$12,$71,$14,$71,$11,$71,$11
  DEFB $71,$12,$71,$11,$71,$12,$71,$A9
  DEFB $1B,$44,$44,$44,$44,$45,$44,$45
  DEFB $44,$45,$44,$44,$44,$44,$44,$44
  DEFB $44,$44,$44,$45,$44,$45,$44,$45
  DEFB $44,$44,$44,$45,$44,$44,$44,$54
  DEFB $6E,$11,$11,$11,$11,$11,$91,$11
  DEFB $11,$11,$11,$11,$11,$11,$11,$11
  DEFB $11,$11,$11,$11,$11,$11,$91,$11
  DEFB $91,$11,$91,$11,$91,$11,$91,$11
  DEFB $44,$46,$44,$44,$44,$46,$44,$44
  DEFB $44,$44,$44,$44,$44,$44,$44,$44
  DEFB $44,$44,$44,$44,$44,$44,$44,$44
  DEFB $44,$44,$44,$46,$44,$46,$44,$44
  DEFB $49,$1B,$11,$11,$11,$1B,$A9,$11
  DEFB $11,$11,$11,$11,$11,$11,$11,$11
  DEFB $11,$11,$11,$11,$11,$11,$A9,$11
  DEFB $A9,$11,$A9,$1B,$A9,$1B,$A9,$11
  DEFB $14,$6E,$44,$44,$44,$6E,$54,$44
  DEFB $44,$44,$44,$44,$44,$44,$44,$44
  DEFB $44,$44,$44,$44,$44,$44,$54,$44
  DEFB $54,$44,$54,$6E,$54,$6E,$54,$44
  DEFB $EE,$BB,$11,$11,$11,$BB,$AB,$11
  DEFB $11,$11,$11,$11,$11,$11,$11,$91
  DEFB $11,$11,$11,$11,$11,$91,$AA,$91
  DEFB $AB,$91,$AA,$BB,$AA,$BB,$AA,$AA
  DEFB $BB,$EE,$44,$44,$46,$EE,$54,$44
  DEFB $44,$44,$44,$44,$44,$44,$44,$44
  DEFB $44,$44,$44,$44,$44,$44,$55,$44
  DEFB $54,$44,$55,$EE,$55,$EE,$55,$F5
  DEFB $EA,$BB,$11,$11,$1B,$BB,$B1,$11
  DEFB $11,$11,$11,$11,$11,$11,$11,$A9
  DEFB $11,$11,$11,$11,$11,$A9,$AA,$A9
  DEFB $B1,$A9,$AA,$BB,$AA,$BB,$AA,$BA
  DEFB $B5,$EE,$44,$44,$6E,$EE,$44,$44
  DEFB $44,$44,$44,$44,$44,$44,$44,$54
  DEFB $44,$44,$44,$44,$44,$54,$55,$54
  DEFB $44,$54,$55,$EE,$55,$EE,$55,$EF
  DEFB $AA,$BA,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$01,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$AA,$AA,$BB,$2A,$BB,$AA,$AA
  DEFB $BB,$E8,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$04,$40,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$55,$55,$EC,$55,$EE,$F5,$55
  DEFB $EE,$A0,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$11,$10,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$AA,$AA,$B1,$12,$BB,$BA,$AA
  DEFB $BB,$80,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$44,$44,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$55,$55,$C4,$45,$EE,$EF,$55
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$91,$11,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$2A,$AA,$91,$11,$BB,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$44,$46,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$15,$55,$44,$46,$EE,$EE,$40
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$A9,$1B,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$02,$AA,$A9,$1B,$BB,$BB,$10
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$54,$6E,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$55,$54,$6E,$EE,$EE,$44
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$01,$00,$AA,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$AA,$AA,$BB,$BB,$BB,$11
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$04,$40,$55,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$04,$55,$55,$EE,$EE,$EE,$46
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$11,$10,$AA,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$11,$AA,$AA,$BB,$BB,$BB,$1B
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$44,$44,$55,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$44,$55,$55,$EE,$EE,$EE,$6E
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$01,$11,$11,$2A,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $01,$11,$AA,$AA,$BA,$BB,$BB,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$04,$44,$46,$55,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $04,$44,$55,$F5,$ED,$EE,$EE,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$11,$11,$1B,$12,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $11,$11,$AA,$BA,$AA,$BB,$BB,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$44,$44,$6E,$45,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$44,$55,$EF,$D5,$EE,$EE,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$11,$11,$BB,$11,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $91,$11,$AA,$BB,$2A,$BB,$BB,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$04,$44,$46,$EE,$46,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$46,$55,$EC,$55,$EE,$EE,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$11,$11,$1B,$BB,$1B,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $A9,$1B,$AA,$B1,$12,$BB,$BB,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$44,$44,$6E,$EE,$6E,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $54,$6E,$55,$C4,$45,$EE,$EE,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $01,$11,$11,$BB,$BB,$BB,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$BB,$AA,$91,$11,$BB,$BA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $04,$44,$46,$EE,$EE,$EE,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$EE,$55,$44,$46,$EE,$ED,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $11,$11,$1B,$BB,$BB,$BB,$BB,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$BB,$AA,$A9,$1B,$BB,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$44,$6E,$EE,$EE,$EE,$EE,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$EE,$55,$54,$6E,$EE,$D5,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $11,$11,$BB,$BB,$BB,$BB,$3B,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$BB,$2A,$AA,$BB,$BA,$2A,$BA
  DEFB $00,$00,$00,$00,$00,$00,$00,$04
  DEFB $44,$46,$EE,$EE,$EE,$EC,$4E,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$EC,$55,$55,$EE,$E8,$15,$E8
  DEFB $00,$00,$00,$00,$00,$00,$00,$11
  DEFB $11,$1B,$BB,$BB,$BB,$B1,$13,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$B1,$12,$AA,$BB,$A0,$02,$A0
  DEFB $00,$00,$00,$00,$00,$00,$00,$44
  DEFB $44,$6E,$EE,$EE,$EE,$C4,$44,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$C4,$45,$55,$EE,$80,$01,$80
  DEFB $00,$00,$00,$00,$00,$00,$01,$11
  DEFB $11,$BB,$BB,$BB,$BB,$91,$11,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$91,$11,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$04,$44
  DEFB $46,$EE,$EE,$EE,$EE,$44,$44,$40
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$44,$46,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$11,$11
  DEFB $1B,$BB,$BB,$BB,$BB,$A9,$11,$10
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $AA,$A9,$1B,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$44,$44
  DEFB $6E,$EE,$EE,$EE,$EE,$54,$44,$44
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $55,$54,$6E,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$01,$11,$11
  DEFB $BB,$BB,$BB,$BB,$BB,$AA,$91,$11
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $2A,$AA,$BB,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$04,$44,$46
  DEFB $EE,$EE,$EE,$EE,$EE,$55,$44,$46
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $15,$55,$EE,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$11,$11,$1B
  DEFB $BB,$BB,$BB,$BB,$BB,$AA,$A9,$1B
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $02,$AA,$BB,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$44,$44,$6E
  DEFB $EE,$EE,$EE,$EE,$EE,$55,$54,$6E
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $01,$55,$EE,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$01,$11,$11,$BB
  DEFB $BB,$BB,$BB,$BB,$BB,$AA,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$2A,$BA,$2A,$BA,$00,$00,$00
  DEFB $00,$00,$00,$00,$04,$44,$46,$EE
  DEFB $EE,$EE,$EE,$EE,$EE,$55,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$15,$E8,$15,$E8,$00,$00,$00
  DEFB $00,$00,$00,$00,$11,$11,$1B,$BB
  DEFB $BB,$BB,$BB,$BB,$BB,$AA,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$02,$A0,$02,$A0,$00,$00,$00
  DEFB $00,$00,$00,$00,$44,$44,$6E,$EE
  DEFB $EE,$EE,$EE,$EE,$EE,$55,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$80,$01,$80,$00,$00,$00
  DEFB $00,$00,$00,$00,$91,$11,$BB,$BB
  DEFB $BB,$BB,$BB,$BA,$BB,$AA,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$44,$46,$EE,$EE
  DEFB $EE,$EE,$EE,$ED,$EE,$55,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$A9,$1B,$BB,$BB
  DEFB $BB,$BB,$BB,$AA,$BB,$AA,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$54,$6E,$EE,$EE
  DEFB $EE,$EE,$EE,$D5,$EE,$55,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$01,$00,$AA,$BB,$BB,$BB
  DEFB $BA,$BB,$BB,$2A,$BA,$2A,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$04,$40,$55,$EE,$EE,$EE
  DEFB $ED,$EE,$EE,$15,$E8,$15,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$11,$10,$AA,$BB,$BB,$BB
  DEFB $AA,$BB,$BB,$02,$A0,$02,$AA,$BB
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$44,$44,$55,$EE,$EE,$EE
  DEFB $D5,$EE,$EE,$01,$80,$01,$55,$EE
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$91,$11,$AA,$BB,$BB,$BB
  DEFB $2A,$BB,$BB,$00,$00,$00,$2A,$BA
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$44,$46,$55,$EE,$EE,$EE
  DEFB $D5,$EE,$EE,$00,$00,$00,$15,$E8
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$A9,$1B,$AA,$BB,$BB,$BB
  DEFB $F2,$BB,$BB,$00,$00,$00,$02,$A0
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$54,$6E,$55,$EE,$EE,$EE
  DEFB $15,$EE,$EE,$00,$00,$00,$01,$80
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$AA,$BB,$AA,$BB,$BB,$BB
  DEFB $15,$BB,$BA,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$55,$EE,$55,$EE,$EE,$EE
  DEFB $7E,$EE,$E8,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$AA,$BB,$AA,$BB,$BB,$BB
  DEFB $FB,$BB,$A0,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$55,$EE,$55,$EE,$EE,$EE
  DEFB $EE,$EE,$80,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$2A,$BB,$AA,$BB,$BB,$BB
  DEFB $BB,$BA,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$04,$55,$EE,$55,$EE,$EE,$EE
  DEFB $EE,$E8,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$11,$12,$BB,$AA,$BB,$BB,$BB
  DEFB $BB,$A0,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$44,$45,$EE,$55,$EE,$EE,$EE
  DEFB $EE,$80,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $01,$11,$11,$BB,$AA,$BB,$BB,$BB
  DEFB $BA,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $04,$44,$46,$EE,$55,$EE,$EE,$EE
  DEFB $E8,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $11,$11,$1B,$BB,$AA,$BB,$BB,$BB
  DEFB $A0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$44,$6E,$EE,$55,$EE,$EE,$EE
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $91,$11,$BB,$BB,$AA,$BB,$BB,$BA
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$46,$EE,$EE,$55,$EE,$EE,$E8
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $A9,$1B,$BB,$BB,$AA,$BB,$BB,$A0
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $54,$6E,$EE,$EE,$55,$EE,$EE,$80
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $45,$3B,$BB,$BB,$AA,$BB,$BA,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$91
  DEFB $11,$4E,$EE,$EE,$55,$EE,$E8,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$44
  DEFB $46,$13,$BB,$BB,$AA,$BB,$A0,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$A9
  DEFB $1B,$44,$EE,$EE,$55,$EE,$80,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$54
  DEFB $6E,$11,$3B,$BB,$2A,$BA,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $44,$44,$4E,$EE,$15,$E8,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$02
  DEFB $40,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$04
  DEFB $49,$11,$13,$BB,$02,$A0,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$02
  DEFB $40,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$11
  DEFB $14,$44,$44,$EE,$01,$80,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$44
  DEFB $EE,$91,$11,$3B,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $E0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$01,$2A
  DEFB $BB,$44,$44,$4E,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $E0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$04,$55
  DEFB $EE,$A9,$11,$13,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $E0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$11,$12
  DEFB $BB,$54,$44,$44,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $20,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$44,$45
  DEFB $EE,$AA,$91,$11,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $E0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$01,$11,$11
  DEFB $BB,$55,$44,$44,$40,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $E0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$04,$44,$46
  DEFB $EE,$AA,$A9,$11,$10,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$11,$11,$1B
  DEFB $BB,$55,$54,$44,$44,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$44,$44,$6E
  DEFB $EE,$AA,$AA,$91,$11,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $C0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$01,$11,$11,$BB
  DEFB $BB,$55,$55,$44,$46,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $C0,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$04,$44,$46,$EE
  DEFB $EE,$AA,$AA,$A9,$1B,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$03
  DEFB $80,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$11,$11,$1B,$BB
  DEFB $BB,$55,$55,$54,$6E,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$44,$44,$6E,$EE
  DEFB $EE,$AA,$AA,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$01,$11,$11,$BB,$BB
  DEFB $BB,$55,$55,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$04,$44,$46,$EE,$EE
  DEFB $EE,$AA,$AA,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$11,$11,$1B,$BB,$BB
  DEFB $BB,$55,$55,$55,$EE,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$44,$44,$6E,$EE,$EE
  DEFB $EE,$AA,$AA,$AA,$BB,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$01,$11,$11,$BB,$BB,$BB
  DEFB $BB,$55,$55,$55,$EC,$40,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$04,$44,$46,$EE,$EE,$EE
  DEFB $EE,$AA,$AA,$AA,$B1,$10,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$11,$11,$1B,$BB,$BB,$BB
  DEFB $BB,$55,$55,$55,$C4,$44,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$44,$44,$6E,$EE,$EE,$EE
  DEFB $EE,$AA,$AA,$AA,$91,$11,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$01,$11,$11,$BB,$BB,$BB,$BB
  DEFB $BB,$55,$55,$55,$44,$44,$40,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$04,$44,$46,$EE,$EE,$EE,$EE
  DEFB $EE,$AA,$AA,$AA,$A9,$11,$10,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$11,$11,$1B,$BB,$BB,$BB,$BB
  DEFB $BB,$55,$55,$55,$54,$44,$44,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$44,$44,$6E,$EE,$EE,$EE,$EE
  DEFB $EE,$2A,$AA,$AA,$AA,$91,$11,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $01,$11,$11,$BB,$BB,$BB,$BB,$BB
  DEFB $BA,$15,$55,$55,$55,$44,$44,$40
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $04,$44,$46,$EE,$EE,$EE,$EE,$EE
  DEFB $E8,$02,$AA,$AA,$AA,$A9,$11,$10
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $11,$11,$1B,$BB,$BB,$BB,$BB,$BB
  DEFB $A0,$01,$55,$55,$55,$54,$44,$44
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $44,$44,$6E,$EE,$EE,$EE,$EE,$EE
  DEFB $80,$00,$2A,$AA,$AA,$AA,$91,$11
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$01
  DEFB $11,$11,$BB,$BB,$BB,$BB,$BB,$BB
  DEFB $BB,$00,$15,$55,$55,$55,$44,$44
  DEFB $40,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$04
  DEFB $44,$46,$EE,$EE,$EE,$EE,$EE,$EE
  DEFB $EE,$00,$02,$AA,$AA,$AA,$A9,$11
  DEFB $10,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$11
  DEFB $11,$1B,$BB,$BB,$BB,$BB,$BB,$BB
  DEFB $BB,$00,$01,$55,$55,$55,$54,$44
  DEFB $44,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$44
  DEFB $44,$6E,$EE,$EE,$EE,$EE,$EE,$EE
  DEFB $01,$00,$00,$2A,$AA,$AA,$AA,$91
  DEFB $11,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$01,$11
  DEFB $11,$BB,$BB,$BB,$BB,$BB,$BA,$BB
  DEFB $04,$40,$00,$15,$55,$55,$55,$44
  DEFB $44,$40,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$04,$44
  DEFB $46,$EE,$EE,$EE,$EE,$EE,$ED,$EE
  DEFB $11,$10,$00,$02,$AA,$AA,$AA,$A9
  DEFB $11,$10,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$11,$11
  DEFB $1B,$BB,$BB,$BB,$BB,$BB,$AA,$BB
  DEFB $44,$44,$00,$01,$55,$55,$55,$54
  DEFB $44,$44,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$44,$44
  DEFB $6E,$EE,$EE,$EE,$EE,$EE,$D5,$EE
  DEFB $91,$11,$00,$00,$2A,$AA,$AA,$AA
  DEFB $91,$11,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$01,$11,$11
  DEFB $BB,$BB,$BB,$BB,$BB,$BB,$2A,$BA
  DEFB $44,$44,$40,$00,$15,$55,$55,$55
  DEFB $44,$44,$40,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$04,$44,$46
  DEFB $EE,$EE,$EE,$EE,$EE,$EE,$15,$E8
  DEFB $A9,$11,$10,$00,$02,$AA,$AA,$AA
  DEFB $A9,$11,$10,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$11,$11,$1B
  DEFB $BB,$BB,$BB,$BB,$BB,$BB,$02,$A0
  DEFB $54,$44,$44,$00,$01,$55,$55,$55
  DEFB $54,$44,$44,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$44,$44,$6E
  DEFB $EE,$EE,$EE,$EE,$EE,$EE,$01,$80
  DEFB $AA,$91,$11,$AA,$AA,$AA,$AA,$AA
  DEFB $AA,$91,$11,$AA,$AA,$AA,$AA,$91
  DEFB $11,$91,$11,$91,$11,$91,$11,$BB
  DEFB $BB,$BB,$BB,$BB,$BB,$BB,$BA,$BB
  DEFB $55,$44,$46,$55,$55,$55,$55,$55
  DEFB $55,$44,$46,$55,$55,$55,$55,$44
  DEFB $46,$44,$46,$44,$46,$44,$46,$EE
  DEFB $EE,$EE,$EE,$EE,$EE,$EE,$ED,$EE
  DEFB $AA,$A9,$1B,$AA,$AA,$AA,$AA,$AA
  DEFB $AA,$A9,$1B,$AA,$AA,$AA,$AA,$A9
  DEFB $1B,$A9,$1B,$A9,$1B,$A9,$1B,$BB
  DEFB $BB,$BB,$BB,$BB,$BB,$BB,$AA,$BB
  DEFB $55,$54,$6E,$55,$55,$55,$55,$55
  DEFB $55,$54,$6E,$55,$55,$55,$55,$54
  DEFB $6E,$54,$6E,$54,$6E,$54,$6E,$EE
  DEFB $EE,$EE,$EE,$EE,$EE,$EE,$D5,$EE
  DEFB $AA,$AA,$BB,$AA,$AA,$AA,$AA,$AA
  DEFB $AA,$AA,$BB,$AA,$AA,$AA,$AA,$AA
  DEFB $BB,$AA,$BB,$AA,$BB,$AA,$BB,$BA
  DEFB $BB,$BA,$BB,$BA,$BB,$BA,$AA,$BB
  DEFB $75,$55,$EE,$55,$F5,$55,$F5,$55
  DEFB $F5,$55,$EE,$55,$F5,$55,$F5,$55
  DEFB $EE,$55,$EE,$55,$EE,$55,$EE,$ED
  DEFB $EE,$ED,$EE,$ED,$EE,$ED,$F5,$EE
  DEFB $3A,$AA,$BB,$AA,$BA,$AA,$BA,$AA
  DEFB $BA,$AA,$BB,$AA,$BA,$AA,$BA,$AA
  DEFB $BB,$AA,$BB,$AA,$BB,$AA,$BB,$AA
  DEFB $BB,$AA,$BB,$AA,$BB,$AA,$BA,$BE
  DEFB $1F,$55,$EE,$55,$EF,$55,$EF,$55
  DEFB $EF,$55,$EE,$55,$EF,$55,$EF,$55
  DEFB $EE,$55,$EE,$55,$EE,$55,$EE,$D5
  DEFB $EE,$D5,$EE,$D5,$EE,$D5,$EF,$F2
  DEFB $02,$2A,$BB,$2A,$BB,$2A,$BB,$AA
  DEFB $BB,$2A,$BB,$2A,$BB,$AA,$BB,$AA
  DEFB $BB,$2A,$BB,$2A,$BB,$AA,$BB,$AA
  DEFB $BA,$AA,$BA,$2A,$BA,$AA,$BA,$02
  DEFB $02,$75,$EE,$75,$EE,$75,$EE,$75
  DEFB $EE,$75,$EE,$75,$EE,$75,$EE,$75
  DEFB $EE,$75,$EE,$75,$EC,$75,$EE,$75
  DEFB $EE,$75,$EE,$75,$EE,$75,$EE,$02
  DEFB $02,$3A,$BE,$3A,$BE,$BA,$BE,$3A
  DEFB $BE,$BA,$BE,$BA,$BE,$3A,$BE,$BA
  DEFB $BE,$BA,$BE,$BA,$B6,$BA,$BE,$3A
  DEFB $BE,$BA,$BE,$BA,$BE,$3A,$BE,$02
  DEFB $02,$0F,$F2,$0F,$F2,$6F,$FE,$1F
  DEFB $F2,$6F,$FE,$6F,$FE,$1F,$F2,$7F
  DEFB $FE,$7F,$FE,$7F,$FE,$7F,$FE,$1F
  DEFB $F2,$7F,$FE,$7F,$FE,$1F,$F2,$02

; The cells in view
;
; GATHER_VIEW's output: 21 rows of 32 map cells.
VIEW_CELLS:
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$2B,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$3E,$3E,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$3E,$20,$2B
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$2B,$32,$3E,$00
  DEFB $00,$00,$00,$00,$00,$03,$00,$00
  DEFB $00,$00,$00,$00,$03,$3E,$3E,$00
  DEFB $00,$00,$00,$00,$00,$03,$0F,$00
  DEFB $00,$00,$00,$00,$01,$2B,$20,$00
  DEFB $00,$00,$00,$00,$00,$00,$07,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$20
  DEFB $00,$00,$00,$00,$00,$0F,$03,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$20
  DEFB $00,$00,$00,$00,$00,$0E,$00,$03
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$0F,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$0F,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$0D,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$0F,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$0F,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$0F,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$0F,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $07,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $06,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $06,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $07,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$07,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$07,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F
  DEFB $00,$00,$03,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F
  DEFB $00,$00,$03,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$0E,$00
  DEFB $00,$00,$00,$03,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$0F,$00
  DEFB $00,$00,$00,$03,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$0F,$00,$00
  DEFB $00,$00,$00,$00,$03,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$0F,$00,$00
  DEFB $00,$00,$00,$00,$03,$00,$00,$00
  DEFB $00,$00,$00,$00,$0F,$00,$00,$00
  DEFB $07,$00,$00,$00,$00,$03,$00,$00
  DEFB $00,$00,$00,$00,$0E,$03,$00,$00
  DEFB $07,$00,$00,$00,$00,$03,$00,$00
  DEFB $00,$00,$00,$0F,$02,$03,$00,$00
  DEFB $00,$07,$00,$00,$00,$00,$03,$00
  DEFB $00,$00,$00,$0F,$03,$02,$00,$00
  DEFB $00,$03,$00,$00,$00,$00,$07,$00
  DEFB $00,$00,$0F,$00,$03,$00,$00,$00
  DEFB $00,$00,$03,$00,$00,$00,$00,$07
  DEFB $00,$00,$0F,$00,$00,$00,$00,$00
  DEFB $00,$00,$07,$00,$00,$00,$00,$07
  DEFB $00,$07,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$03,$00,$00,$00,$00
  DEFB $07,$07,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$03,$00,$00,$00,$00
  DEFB $07,$00,$00,$00,$00,$00,$00,$00

; Game variables
;
; BASIC sets most of these at the start of each level (lines 200-220, and 750
; for the time). The two-byte counts are big-endian, for the ROM's OUT-NUM-2,
; and the code only ever touches their low bytes.
VIEW_ORIGIN:
  DEFB $00,$00            ; The x and y the view is drawn from
VIEW:
  DEFB $00                ; Which of the four views, 0-3
  DEFB $00,$00,$00,$00,$00 ; Set to 1 by BASIC; not used by the machine code
RANDOM_BITS:
  DEFB $00,$00,$00        ; The random number generator, 32 bits big-endian:
                          ; the first byte is left in SEED for BASIC...
RANDOM_LOW:
  DEFB $00                ; ...and this is where RANDOM shifts in the new bit
BORDER:
  DEFB $00                ; The border colour, for the sound routines
GRENADE_EVENTS:
  DEFB $00                ; What the grenade did, for GRENADE_SOUNDS
THROW_TIME:
  DEFB $00                ; Frames of flight left
AMMO:
  DEFB $00                ; Grenades left: the high byte, always 0...
AMMO_LOW:
  DEFB $00                ; ...and the low
PLAYER_ENERGY:
  DEFB $00                ; The player's energy: the high byte, always 0...
PLAYER_ENERGY_LOW:
  DEFB $00                ; ...and the low
RESCUEE_ENERGY:
  DEFB $00                ; The rescued person's energy: the high byte, always
                          ; 0...
RESCUEE_ENERGY_LOW:
  DEFB $00                ; ...and the low
TIME_TICKS:
  DEFB $00                ; Frames to the next tick of the clock
TIME:
  DEFB $00,$00            ; The time
FRAMES_LEFT:
  DEFB $00                ; Frames to run; $FF, until the game says stop (see
                          ; PLAY)
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; Unused
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00         ;
CLEAR_PHASE:
  DEFB $00                ; Which rows CLEAR_BUFFER_ROWS clears next

; Sprite list
;
; Three bytes an object, in the order PROJECT_SPRITES meets them, the last
; object first: the place in PLANES -- turned into a distance once sorted --
; and the frame.
SPRITE_LIST:
  DEFB $00,$00,$00        ; The ants, the fifth first
  DEFB $00,$00,$00        ;
  DEFB $00,$00,$00        ;
  DEFB $00,$00,$00        ;
  DEFB $00,$00,$00        ;
  DEFB $00,$00,$00        ; The grenade
RESCUEE_SPRITE:
  DEFB $00,$00,$00        ; The rescued person
PLAYER_SPRITE:
  DEFB $00,$00,$00        ; The player
  DEFB $00                ; End marker: a count to a ninth sprite too big ever
                          ; to be reached...
SPRITE_LIST_END:
  DEFB $00                ; ...its high byte set by PLAY
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; Unused
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00         ;

; Objects
;
; The player, the person to be rescued, the grenade and five ants, 16 bytes
; each; the fields are described at the top of the annotations. The fields the
; code names directly have labels of their own.
PLAYER:
  DEFB $00,$00,$00,$00    ; The player: x, y, height, first frame
PLAYER_FACING:
  DEFB $00
PLAYER_FALL:
  DEFB $00
  DEFB $00
PLAYER_FLAGS:
  DEFB $00
  DEFB $00,$00,$00,$00,$00,$00,$00
PLAYER_EVENT:
  DEFB $00
RESCUEE:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; The person to be rescued
  DEFB $00,$00,$00,$00,$00             ;
RESCUEE_STATE:
  DEFB $00                ; 0 waiting, 1 following, 2 out of the city: BASIC's
                          ; w
  DEFB $00
RESCUEE_EVENT:
  DEFB $00
GRENADE:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; The grenade
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
ANT1:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; The first ant, the fast one
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
ANT2:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
ANT3:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
ANT4:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
ANT5:
  DEFB $00,$00,$00,$00,$00,$00,$00,$00
  DEFB $00,$00,$00,$00,$00,$00,$00,$00

; Planes
;
; BUILD_PLANES's output, 512 places: each holds the bit of the height of block
; seen there, or $FF. The last place is where DRAW_SCENE plants its sentinel.
PLANES:
  DEFB $00,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$10,$10,$20
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$08,$04,$08,$20
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$08,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$08,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$04,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$04,$04,$02
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$04,$FF
  DEFB $FF,$FF,$FF,$FF,$02,$02,$02,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$04,$FF
  DEFB $FF,$FF,$FF,$FF,$02,$02,$02,$01
  DEFB $FF,$FF,$FF,$FF,$08,$04,$02,$FF
  DEFB $FF,$FF,$FF,$FF,$01,$02,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$08,$04,$02,$FF
  DEFB $FF,$FF,$FF,$FF,$01,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$08,$04,$02,$02,$FF
  DEFB $FF,$FF,$FF,$FF,$01,$01,$FF,$FF
  DEFB $FF,$FF,$FF,$08,$04,$02,$01,$02
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$08,$04,$02,$01,$01,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$08,$04,$02,$FF,$FF,$01
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$04,$FF,$01,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$08,$04,$02,$01,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$02,$01,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$04,$02,$01,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $04,$FF,$01,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $04,$02,$01,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $02,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $04,$01,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $04,$FF,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$08
  DEFB $02,$04,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$FF,$08
  DEFB $02,$04,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$08,$04
  DEFB $FF,$02,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$FF,$08,$04
  DEFB $01,$02,$FF,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$04,$02
  DEFB $FF,$01,$02,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$FF,$08,$04,$02
  DEFB $FF,$01,$02,$FF,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$08,$04,$02,$01
  DEFB $FF,$FF,$01,$02,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$FF,$08,$04,$02,$01
  DEFB $FF,$FF,$01,$02,$FF,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$08,$04,$02,$FF,$FF
  DEFB $04,$FF,$FF,$01,$02,$FF,$FF,$FF
  DEFB $FF,$FF,$FF,$08,$04,$02,$01,$FF
  DEFB $04,$FF,$FF,$01,$02,$FF,$FF,$FF
  DEFB $FF,$FF,$08,$04,$02,$01,$FF,$40

; Sprites: the boy, the grenade in flight, and the ants
;
; This entry is frame $DC: boy, standing, facing 0.
;
; Frames $DC-$EF the boy, $F4-$F7 the grenade in flight and exploding, $F8-$FF
; the ants. $F0-$F3 are never drawn: no write to an object's frame (+$08) and
; nothing in PROJECT_SPRITES can produce them. What they show is not known;
; they look like a sprawled figure.
MORE_SPRITES:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FE,$04,$3F,$00    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $DD: boy, standing, facing 1
FRAMEDD:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FE,$04,$3F,$00    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $DE: boy, standing, facing 2
FRAMEDE:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FC,$00,$7F,$20    ;
  DEFB $FF,$03,$FF,$A0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $DF: boy, standing, facing 3
FRAMEDF:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FC,$00,$7F,$20    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$01,$FF,$C0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E0: boy, walking, facing 0
FRAMEE0:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$1B,$FF,$D8    ;
  DEFB $FC,$10,$3F,$08    ;
  DEFB $FF,$33,$FF,$C8    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$1E,$FF,$C0    ;
  DEFB $FF,$10,$FF,$40    ;
  DEFB $FF,$18,$FF,$70    ;
  DEFB $FF,$00,$FF,$60    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E1: boy, walking, facing 1
FRAMEE1:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$1B,$FF,$D0    ;
  DEFB $FC,$10,$3F,$18    ;
  DEFB $FF,$13,$FF,$CC    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$07,$FF,$60    ;
  DEFB $FF,$0C,$FF,$30    ;
  DEFB $FF,$18,$FF,$1C    ;
  DEFB $FF,$18,$FF,$18    ;
  DEFB $FF,$0C,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E2: boy, walking, facing 2
FRAMEE2:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F8    ;
  DEFB $FF,$0B,$FF,$CC    ;
  DEFB $FC,$18,$3F,$04    ;
  DEFB $FF,$31,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$17,$FF,$E0    ;
  DEFB $FF,$1E,$FF,$E0    ;
  DEFB $FF,$18,$FF,$70    ;
  DEFB $FF,$00,$FF,$18    ;
  DEFB $FF,$00,$FF,$38    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E3: boy, walking, facing 3
FRAMEE3:
  DEFB $FF,$01,$FF,$80    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$0B,$FF,$D8    ;
  DEFB $FC,$18,$3F,$08    ;
  DEFB $FF,$03,$FF,$C8    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$03,$FF,$7C    ;
  DEFB $FF,$02,$FF,$0C    ;
  DEFB $FF,$0E,$FF,$08    ;
  DEFB $FF,$06,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E4: boy, arms out: stunned, or throwing, facing 0
FRAMEE4:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$11,$FF,$8C    ;
  DEFB $FF,$1F,$FF,$FC    ;
  DEFB $FF,$1F,$FF,$E0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FC,$00,$3F,$00    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$06,$FF,$F0    ;
  DEFB $FF,$06,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E5: boy, arms out: stunned, or throwing, facing 1
FRAMEE5:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$31,$FF,$86    ;
  DEFB $FF,$3F,$FF,$FE    ;
  DEFB $FF,$0F,$FF,$F8    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FC,$00,$3F,$30    ;
  DEFB $FF,$03,$FF,$F0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$07,$FF,$60    ;
  DEFB $FF,$06,$FF,$E0    ;
  DEFB $FF,$00,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E6: boy, arms out: stunned, or throwing, facing 2
FRAMEE6:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$31,$FF,$8C    ;
  DEFB $FF,$3F,$FF,$FC    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$03,$FF,$80    ;
  DEFB $FC,$0C,$7F,$00    ;
  DEFB $FF,$0F,$FF,$80    ;
  DEFB $FF,$0F,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$06,$FF,$C0    ;
  DEFB $FF,$06,$FF,$C0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E7: boy, arms out: stunned, or throwing, facing 3
FRAMEE7:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$31,$FF,$80    ;
  DEFB $FF,$3F,$FF,$F8    ;
  DEFB $FF,$0F,$FF,$FC    ;
  DEFB $FF,$03,$FF,$CC    ;
  DEFB $FC,$00,$3F,$00    ;
  DEFB $FF,$0F,$FF,$C0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$0F,$FF,$E0    ;
  DEFB $FF,$03,$FF,$60    ;
  DEFB $FF,$00,$FF,$60    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $E8: boy, lying down: stunned for longer, facing 0
FRAMEE8:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$70,$FF,$00    ;
  DEFB $CF,$4F,$FF,$E0    ;
  DEFB $DF,$5F,$FF,$C0    ;
  DEFB $FF,$1F,$FF,$E4    ;
  DEFB $FF,$1F,$FF,$F4    ;
  DEFB $FF,$1B,$FF,$FC    ;
  DEFB $FF,$0C,$FF,$78    ;
  DEFB $FF,$04,$FF,$00    ;

; Sprite frame $E9: boy, lying down: stunned for longer, facing 1
FRAMEE9:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$08    ;
  DEFB $FF,$00,$FF,$7C    ;
  DEFB $FF,$33,$FF,$FC    ;
  DEFB $FF,$3F,$FF,$F8    ;
  DEFB $FF,$1F,$FF,$E0    ;
  DEFB $E7,$27,$FF,$C0    ;
  DEFB $E7,$27,$FF,$F0    ;
  DEFB $FF,$3C,$FF,$F0    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $EA: boy, lying down: stunned for longer, facing 2
FRAMEEA:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$10,$FF,$00    ;
  DEFB $FF,$3E,$FF,$00    ;
  DEFB $FF,$3F,$FF,$CC    ;
  DEFB $FF,$1F,$FF,$FC    ;
  DEFB $FF,$07,$FF,$F8    ;
  DEFB $FF,$03,$E7,$E4    ;
  DEFB $FF,$0F,$E7,$E4    ;
  DEFB $FF,$0F,$FF,$3C    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $EB: boy, lying down: stunned for longer, facing 3
FRAMEEB:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$0E    ;
  DEFB $FF,$07,$F3,$F2    ;
  DEFB $FF,$03,$FB,$FA    ;
  DEFB $FF,$27,$FF,$F8    ;
  DEFB $FF,$2F,$FF,$F8    ;
  DEFB $FF,$3F,$FF,$D8    ;
  DEFB $FF,$1E,$FF,$30    ;
  DEFB $FF,$00,$FF,$20    ;

; Sprite frame $EC: boy, arms up: falling, facing 0
FRAMEEC:
  DEFB $FF,$03,$FF,$D8    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$1A,$7F,$58    ;
  DEFB $FE,$18,$7F,$10    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FD,$01,$BF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$C0    ;
  DEFB $FF,$0E,$FF,$F0    ;
  DEFB $FF,$18,$FF,$70    ;
  DEFB $FF,$18,$FF,$60    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $ED: boy, arms up: falling, facing 1
FRAMEED:
  DEFB $FF,$03,$FF,$C0    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$0B,$FF,$D0    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$0F,$FF,$D0    ;
  DEFB $FF,$07,$FF,$F0    ;
  DEFB $FF,$03,$FF,$E0    ;
  DEFB $FD,$01,$BF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$0E,$FF,$60    ;
  DEFB $FF,$0C,$FF,$30    ;
  DEFB $FF,$08,$FF,$30    ;
  DEFB $FF,$00,$FF,$20    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $EE: boy, arms up: falling, facing 2
FRAMEEE:
  DEFB $FF,$03,$FF,$D0    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$0B,$FF,$D0    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FD,$01,$BF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$06,$FF,$60    ;
  DEFB $FF,$0C,$FF,$30    ;
  DEFB $FF,$0C,$FF,$30    ;
  DEFB $FF,$04,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $EF: boy, arms up: falling, facing 3
FRAMEEF:
  DEFB $FF,$1B,$FF,$C0    ; Rows of mask, graphic, mask, graphic
  DEFB $FE,$1A,$7F,$58    ;
  DEFB $FE,$08,$7F,$18    ;
  DEFB $FF,$09,$FF,$90    ;
  DEFB $FF,$0F,$FF,$F0    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FD,$01,$BF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FF,$03,$FF,$C0    ;
  DEFB $FF,$07,$FF,$E0    ;
  DEFB $FF,$06,$FF,$60    ;
  DEFB $FF,$04,$FF,$60    ;
  DEFB $FF,$1C,$FF,$40    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F0: four frames nothing draws
FRAMEF0:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$38,$FF,$00    ;
  DEFB $F7,$36,$FF,$00    ;
  DEFB $F5,$35,$FF,$0E    ;
  DEFB $F7,$36,$F1,$11    ;
  DEFB $C1,$41,$E1,$A1    ;
  DEFB $D8,$D8,$73,$72    ;
  DEFB $FC,$64,$7F,$7C    ;
  DEFB $FF,$03,$7F,$7C    ;
  DEFB $FE,$0E,$1B,$1A    ;
  DEFB $F0,$30,$23,$22    ;
  DEFB $C0,$40,$E3,$E2    ;
  DEFB $E3,$23,$FF,$1E    ;
  DEFB $FF,$1C,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F1: four frames nothing draws
FRAMEF1:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$08,$FF,$00    ;
  DEFB $F7,$16,$FF,$00    ;
  DEFB $E1,$21,$FF,$9E    ;
  DEFB $F0,$30,$73,$72    ;
  DEFB $FC,$0C,$FB,$FA    ;
  DEFB $FF,$73,$FB,$FA    ;
  DEFB $CE,$CE,$67,$64    ;
  DEFB $C8,$C8,$03,$02    ;
  DEFB $C0,$C0,$E1,$E1    ;
  DEFB $CF,$CF,$F1,$11    ;
  DEFB $E7,$24,$F9,$09    ;
  DEFB $F3,$12,$FF,$06    ;
  DEFB $FF,$0C,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F2: four frames nothing draws
FRAMEF2:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$10    ;
  DEFB $FF,$00,$EF,$68    ;
  DEFB $FF,$79,$87,$84    ;
  DEFB $CE,$4E,$0F,$0C    ;
  DEFB $DF,$5F,$3F,$30    ;
  DEFB $DF,$5F,$FF,$CE    ;
  DEFB $E6,$26,$73,$73    ;
  DEFB $C0,$40,$13,$13    ;
  DEFB $87,$87,$03,$03    ;
  DEFB $8F,$88,$F3,$F3    ;
  DEFB $9F,$90,$E7,$24    ;
  DEFB $FF,$60,$CF,$48    ;
  DEFB $FF,$00,$FF,$30    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F3: four frames nothing draws
FRAMEF3:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$1C    ;
  DEFB $FF,$00,$EF,$6C    ;
  DEFB $FF,$70,$AF,$AC    ;
  DEFB $8F,$88,$EF,$6C    ;
  DEFB $87,$85,$83,$82    ;
  DEFB $CE,$4E,$1B,$1B    ;
  DEFB $FE,$3E,$3F,$26    ;
  DEFB $FE,$3E,$FF,$C0    ;
  DEFB $D8,$58,$7F,$70    ;
  DEFB $C4,$44,$0F,$0C    ;
  DEFB $C7,$47,$03,$02    ;
  DEFB $FF,$78,$C7,$C4    ;
  DEFB $FF,$00,$FF,$38    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F4: grenade
FRAMEF4:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FE,$02,$7F,$40    ;
  DEFB $FC,$04,$7F,$60    ;
  DEFB $FE,$02,$FF,$C0    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F5: grenade
FRAMEF5:
  DEFB $FF,$00,$FF,$86    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$10,$FB,$0B    ;
  DEFB $E7,$24,$F9,$09    ;
  DEFB $CE,$40,$FF,$4E    ;
  DEFB $CF,$48,$CF,$00    ;
  DEFB $F6,$30,$FB,$80    ;
  DEFB $FF,$00,$7F,$10    ;
  DEFB $FE,$04,$FF,$00    ;
  DEFB $ED,$00,$EF,$00    ;
  DEFB $FF,$00,$FF,$47    ;
  DEFB $FA,$48,$BF,$25    ;
  DEFB $FF,$00,$1F,$15    ;
  DEFB $FF,$30,$DF,$52    ;
  DEFB $DF,$55,$CF,$48    ;
  DEFB $9D,$90,$E7,$24    ;
  DEFB $FF,$60,$FF,$3C    ;

; Sprite frame $F6: grenade
FRAMEF6:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $EF,$04,$FF,$0C    ;
  DEFB $FF,$56,$F6,$34    ;
  DEFB $FD,$65,$CF,$49    ;
  DEFB $DC,$54,$AF,$88    ;
  DEFB $EA,$2A,$3D,$10    ;
  DEFB $E1,$21,$5F,$5E    ;
  DEFB $F2,$12,$C1,$C1    ;
  DEFB $E7,$27,$63,$62    ;
  DEFB $C9,$49,$9F,$9C    ;
  DEFB $F2,$F2,$3F,$21    ;
  DEFB $FF,$09,$9F,$90    ;
  DEFB $75,$11,$DF,$52    ;
  DEFB $ED,$2D,$FD,$38    ;
  DEFB $FF,$71,$BE,$18    ;
  DEFB $FF,$03,$FF,$00    ;

; Sprite frame $F7: grenade
FRAMEF7:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$09,$FF,$00    ;
  DEFB $F7,$17,$FF,$40    ;
  DEFB $FA,$0A,$FF,$F0    ;
  DEFB $F8,$08,$7F,$78    ;
  DEFB $FC,$04,$3F,$20    ;
  DEFB $F8,$08,$3F,$20    ;
  DEFB $F4,$14,$DF,$D0    ;
  DEFB $EE,$2A,$EF,$A8    ;
  DEFB $DF,$11,$FF,$90    ;
  DEFB $FF,$01,$FF,$80    ;
  DEFB $FF,$00,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F8: ants, walking, one foot, facing 0
FRAMEF8:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$1E,$FF,$00    ;
  DEFB $FF,$3F,$FF,$20    ;
  DEFB $E7,$67,$FF,$A0    ;
  DEFB $DF,$DF,$FF,$F8    ;
  DEFB $FF,$FF,$FF,$C4    ;
  DEFB $FF,$FF,$FF,$E0    ;
  DEFB $FF,$7F,$FF,$FC    ;
  DEFB $FF,$39,$F7,$B4    ;
  DEFB $FF,$22,$EF,$AE    ;
  DEFB $FF,$24,$FF,$BA    ;
  DEFB $FF,$08,$FF,$92    ;
  DEFB $FF,$08,$FF,$98    ;
  DEFB $FF,$00,$FF,$80    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $F9: ants, walking, one foot, facing 1
FRAMEF9:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$30    ;
  DEFB $FF,$01,$FF,$64    ;
  DEFB $FF,$07,$FF,$7C    ;
  DEFB $FF,$3D,$FF,$F8    ;
  DEFB $FF,$7F,$FF,$F8    ;
  DEFB $E7,$E7,$FF,$C0    ;
  DEFB $DF,$DF,$FF,$F8    ;
  DEFB $FF,$FF,$FF,$E8    ;
  DEFB $FF,$FF,$FF,$A4    ;
  DEFB $FF,$7F,$FF,$A4    ;
  DEFB $FF,$1E,$FF,$A0    ;
  DEFB $FF,$00,$FF,$A0    ;
  DEFB $FF,$01,$FF,$00    ;

; Sprite frame $FA: ants, walking, one foot, facing 2
FRAMEFA:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$0C,$FF,$00    ;
  DEFB $FF,$26,$FF,$80    ;
  DEFB $FF,$3E,$FF,$E0    ;
  DEFB $FF,$1F,$FF,$BC    ;
  DEFB $FF,$1F,$EF,$EE    ;
  DEFB $FF,$03,$DF,$DF    ;
  DEFB $FF,$1F,$FF,$FF    ;
  DEFB $FF,$17,$FF,$FF    ;
  DEFB $FF,$25,$FF,$FF    ;
  DEFB $FF,$25,$FF,$FE    ;
  DEFB $FF,$05,$FF,$78    ;
  DEFB $FF,$05,$FF,$00    ;
  DEFB $FF,$00,$FF,$80    ;

; Sprite frame $FB: ants, walking, one foot, facing 3
FRAMEFB:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$78    ;
  DEFB $FF,$00,$CF,$CC    ;
  DEFB $FF,$05,$BF,$BE    ;
  DEFB $FF,$33,$FF,$FF    ;
  DEFB $FF,$4F,$FF,$FF    ;
  DEFB $FF,$07,$FF,$FF    ;
  DEFB $FF,$3F,$FF,$FE    ;
  DEFB $EF,$2D,$FF,$98    ;
  DEFB $F7,$75,$FF,$44    ;
  DEFB $FF,$5D,$FF,$24    ;
  DEFB $FF,$49,$FF,$10    ;
  DEFB $FF,$19,$FF,$10    ;
  DEFB $FF,$01,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;

; Sprite frame $FC: ants, walking, the other, facing 0
FRAMEFC:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$3C,$FF,$00    ;
  DEFB $FF,$7E,$FF,$00    ;
  DEFB $FF,$FF,$FF,$80    ;
  DEFB $DF,$DF,$FF,$F0    ;
  DEFB $EF,$EF,$FF,$FE    ;
  DEFB $FF,$FF,$FB,$FA    ;
  DEFB $FF,$7E,$F7,$F7    ;
  DEFB $FF,$3F,$FF,$FD    ;
  DEFB $FF,$1D,$FF,$A7    ;
  DEFB $FF,$01,$FF,$B8    ;
  DEFB $FF,$02,$FF,$F0    ;
  DEFB $FF,$00,$FF,$40    ;

; Sprite frame $FD: ants, walking, the other, facing 1
FRAMEFD:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$0E    ;
  DEFB $FF,$00,$FF,$7A    ;
  DEFB $FF,$01,$FF,$BE    ;
  DEFB $FF,$03,$FF,$BC    ;
  DEFB $FF,$03,$FF,$FC    ;
  DEFB $FF,$0F,$FF,$E5    ;
  DEFB $FF,$1F,$FF,$DE    ;
  DEFB $FF,$3F,$FF,$FD    ;
  DEFB $E7,$67,$FF,$FE    ;
  DEFB $EF,$6F,$FF,$88    ;
  DEFB $FF,$7F,$FF,$88    ;
  DEFB $FF,$7F,$FF,$80    ;
  DEFB $FF,$3F,$FF,$00    ;
  DEFB $FF,$0E,$FF,$00    ;

; Sprite frame $FE: ants, walking, the other, facing 2
FRAMEFE:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$70,$FF,$00    ;
  DEFB $FF,$5C,$FF,$00    ;
  DEFB $FF,$7C,$FF,$00    ;
  DEFB $FF,$3F,$FF,$C0    ;
  DEFB $FF,$3F,$FF,$C0    ;
  DEFB $FF,$A7,$FF,$F0    ;
  DEFB $FF,$7B,$FF,$F8    ;
  DEFB $FF,$BF,$9F,$9C    ;
  DEFB $FF,$7F,$FF,$FE    ;
  DEFB $FF,$11,$FF,$FE    ;
  DEFB $FF,$11,$FF,$FE    ;
  DEFB $FF,$01,$FF,$FE    ;
  DEFB $FF,$00,$FF,$FC    ;
  DEFB $FF,$00,$FF,$70    ;

; Sprite frame $FF: ants, walking, the other, facing 3
FRAMEFF:
  DEFB $FF,$00,$FF,$00    ; Rows of mask, graphic, mask, graphic
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$00    ;
  DEFB $FF,$00,$FF,$1E    ;
  DEFB $FF,$00,$F7,$37    ;
  DEFB $FF,$00,$EF,$6F    ;
  DEFB $FF,$01,$FF,$FF    ;
  DEFB $FF,$07,$FF,$FF    ;
  DEFB $FF,$7F,$FF,$FF    ;
  DEFB $DF,$DF,$FF,$FE    ;
  DEFB $EF,$EB,$FF,$7C    ;
  DEFB $FF,$7B,$FF,$00    ;
  DEFB $FF,$C7,$FF,$80    ;
  DEFB $FF,$3D,$FF,$40    ;
  DEFB $FF,$0B,$FF,$40    ;
  DEFB $FF,$16,$FF,$40    ;

; The city of Antescher
;
; The row at y=$80: 340 blocks, up to 6 high.
;
; 128 x 128 cells, a byte each, one bit per height: bit 0 a block on the
; ground, up to bit 5. See READ_MAP_CELL.
CITY_MAP:
  DEFB $3F,$0F,$0F,$07,$03,$03,$07,$03 ; x=$80 to $9F
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ;
  DEFB $07,$03,$03,$03,$07,$03,$03,$03 ;
  DEFB $07,$03,$03,$07,$03,$03,$07,$03 ;
  DEFB $03,$07,$03,$03,$07,$03,$03,$07 ; x=$A0 to $BF
  DEFB $0F,$0F,$0F,$0F,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ;
  DEFB $07,$03,$03,$07,$03,$03,$07,$03 ;
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ; x=$C0 to $DF
  DEFB $07,$03,$03,$07,$03,$03,$07,$1B ;
  DEFB $1B,$07,$03,$03,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ;
  DEFB $0F,$1B,$1B,$0F,$03,$03,$07,$03 ; x=$E0 to $FF
  DEFB $03,$07,$03,$03,$1F,$1B,$3B,$1B ;
  DEFB $1B,$1F,$03,$03,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$03,$03,$07,$0F,$3F ;

; The city: the row at y=$81
;
; 12 blocks, up to 4 high.
CITY_Y81:
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$82
;
; 11 blocks, up to 4 high.
CITY_Y82:
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$83
;
; 9 blocks, up to 3 high.
CITY_Y83:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$84
;
; 19 blocks, up to 2 high.
CITY_Y84:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$00 ;
  DEFB $00,$01,$01,$01,$00,$00,$01,$00 ;
  DEFB $00,$00,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$85
;
; 29 blocks, up to 3 high.
CITY_Y85:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$01,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$01,$00 ;
  DEFB $00,$00,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$01,$01,$01 ;
  DEFB $01,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$03,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$86
;
; 61 blocks, up to 4 high.
CITY_Y86:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $03,$03,$03,$03,$03,$00,$00,$00 ;
  DEFB $00,$01,$00,$01,$01,$00,$01,$00 ;
  DEFB $00,$01,$01,$01,$00,$00,$01,$00 ;
  DEFB $00,$00,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$0F ;
  DEFB $08,$08,$0F,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$0F,$0F,$0F ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$0D,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$87
;
; 55 blocks, up to 5 high.
CITY_Y87:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$02,$00,$00,$00 ;
  DEFB $00,$01,$00,$01,$00,$00,$01,$00 ;
  DEFB $00,$00,$00,$01,$00,$00,$01,$00 ;
  DEFB $00,$00,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $1F,$00,$03,$01,$00,$00,$00,$00 ;
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$01,$03,$07 ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$1F,$10,$10,$10 ;
  DEFB $10,$10,$10,$10,$10,$1F,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$88
;
; 45 blocks, up to 6 high.
CITY_Y88:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$02,$00,$00,$00 ;
  DEFB $00,$01,$00,$01,$01,$00,$01,$00 ;
  DEFB $00,$00,$00,$01,$00,$00,$01,$00 ;
  DEFB $01,$00,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $0C,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$0F,$0F,$0F ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$30,$10,$00,$10 ;
  DEFB $10,$00,$10,$10,$00,$10,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$89
;
; 54 blocks, up to 6 high.
CITY_Y89:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$01,$00 ;
  DEFB $00,$01,$01,$01,$00,$00,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$01,$09,$09 ;
  DEFB $01,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$30,$10,$10,$10 ;
  DEFB $00,$10,$00,$10,$10,$10,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$07,$07,$07,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$8A
;
; 84 blocks, up to 6 high.
CITY_Y8A:
  DEFB $03,$00,$00,$00,$01,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$00 ;
  DEFB $00,$01,$01,$01,$00,$00,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $38,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$30,$10,$00,$10 ;
  DEFB $10,$10,$10,$10,$00,$10,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$1F,$17,$1D ;
  DEFB $17,$1D,$1F,$18,$1A,$3F,$07,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$8B
;
; 73 blocks, up to 6 high.
CITY_Y8B:
  DEFB $03,$00,$00,$00,$03,$1F,$1F,$1F ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $08,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$1F,$10,$10,$10 ;
  DEFB $10,$10,$10,$10,$10,$1F,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$0F,$07,$37,$07,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$8C
;
; 38 blocks, up to 6 high.
CITY_Y8C:
  DEFB $07,$00,$00,$00,$06,$1C,$10,$1F ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$06,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$1F,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$3F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$8D
;
; 51 blocks, up to 6 high.
CITY_Y8D:
  DEFB $03,$00,$00,$00,$03,$1F,$1F,$1F ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $3F,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $20,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$0F,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$36,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$8E
;
; 38 blocks, up to 6 high.
CITY_Y8E:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $08,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$3F,$01,$00,$00,$00,$00,$00 ;
  DEFB $20,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$03,$03,$07,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$3F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$8F
;
; 28 blocks, up to 6 high.
CITY_Y8F:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $03,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$37,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$90
;
; 30 blocks, up to 6 high.
CITY_Y90:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $20,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$08,$08 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$3F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$91
;
; 38 blocks, up to 6 high.
CITY_Y91:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$08 ;
  DEFB $08,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$01,$09,$09 ;
  DEFB $01,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$3B,$02,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$36,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$92
;
; 59 blocks, up to 6 high.
CITY_Y92:
  DEFB $07,$07,$03,$03,$03,$03,$0F,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $20,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$0F,$0F,$0F ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$3F,$04,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$3F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$93
;
; 65 blocks, up to 6 high.
CITY_Y93:
  DEFB $03,$00,$00,$00,$01,$01,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $3F,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$00,$07,$00,$07,$00,$0F,$00 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$01,$01,$03,$07 ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$3F,$08,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$04,$37,$03,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$94
;
; 78 blocks, up to 6 high.
CITY_Y94:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$03,$03,$06,$0C ;
  DEFB $08,$08,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$01,$0F,$0F,$0F ;
  DEFB $0F,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$18,$08,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$1F,$17,$1E ;
  DEFB $17,$1F,$17,$1E,$17,$3F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$95
;
; 26 blocks, up to 5 high.
CITY_Y95:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$01,$01,$01,$01 ;
  DEFB $01,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$0F,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$96
;
; 17 blocks, up to 5 high.
CITY_Y96:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$1F,$1F ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$97
;
; 8 blocks, up to 3 high.
CITY_Y97:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$98
;
; 5 blocks, up to 3 high.
CITY_Y98:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$99
;
; 7 blocks, up to 5 high.
CITY_Y99:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$9A
;
; 8 blocks, up to 6 high.
CITY_Y9A:
  DEFB $3B,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$9B
;
; 11 blocks, up to 6 high.
CITY_Y9B:
  DEFB $3B,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$9C
;
; 78 blocks, up to 5 high.
CITY_Y9C:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $03,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $01,$01,$03,$03,$03,$00,$03,$03 ;
  DEFB $03,$03,$01,$03,$03,$02,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$01,$01,$01,$01 ;
  DEFB $01,$01,$01,$01,$01,$00,$01,$01 ;
  DEFB $01,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$01,$00,$00,$00,$00,$00,$1F ; x=$C0 to $DF
  DEFB $1F,$1F,$1F,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$9D
;
; 119 blocks, up to 4 high.
CITY_Y9D:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$03,$03,$03,$03 ;
  DEFB $03,$03,$03,$03,$03,$02,$03,$03 ;
  DEFB $03,$03,$03,$03,$03,$03,$03,$03 ;
  DEFB $03,$03,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$0F ; x=$E0 to $FF
  DEFB $0F,$0B,$0F,$0B,$0F,$0B,$0F,$0B ;
  DEFB $0F,$0B,$0F,$0B,$0F,$0B,$0F,$0B ;
  DEFB $0F,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$9E
;
; 100 blocks, up to 5 high.
CITY_Y9E:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$07,$07,$07,$07 ;
  DEFB $07,$07,$07,$07,$07,$06,$07,$07 ;
  DEFB $07,$07,$07,$07,$07,$07,$07,$07 ;
  DEFB $07,$07,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$1E ; x=$E0 to $FF
  DEFB $10,$10,$10,$10,$10,$10,$10,$10 ;
  DEFB $10,$10,$10,$10,$10,$10,$10,$10 ;
  DEFB $1A,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$9F
;
; 37 blocks, up to 6 high.
CITY_Y9F:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$37 ; x=$E0 to $FF
  DEFB $20,$20,$20,$20,$00,$20,$20,$20 ;
  DEFB $20,$00,$20,$20,$20,$20,$20,$10 ;
  DEFB $1E,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$A0
;
; 43 blocks, up to 6 high.
CITY_YA0:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$0F,$00,$00 ;
  DEFB $00,$00,$04,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$3E ; x=$E0 to $FF
  DEFB $21,$20,$20,$20,$20,$20,$20,$20 ;
  DEFB $20,$20,$20,$20,$20,$20,$20,$00 ;
  DEFB $1A,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$A1
;
; 128 blocks, up to 6 high.
CITY_YA1:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$0F,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$03,$03,$07,$04,$0F,$0D,$0F ;
  DEFB $0F,$0D,$0F,$04,$04,$07,$07,$07 ;
  DEFB $07,$07,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$37 ; x=$E0 to $FF
  DEFB $28,$3C,$24,$2C,$38,$34,$38,$3C ;
  DEFB $3C,$3C,$3C,$3C,$3C,$3C,$30,$38 ;
  DEFB $1E,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$A2
;
; 80 blocks, up to 6 high.
CITY_YA2:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$30,$30 ;
  DEFB $30,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$33 ; x=$E0 to $FF
  DEFB $3F,$38,$18,$0F,$07,$0C,$1C,$0F ;
  DEFB $07,$0C,$0C,$0F,$0F,$0C,$0C,$0F ;
  DEFB $07,$03,$01,$00,$00,$00,$00,$07 ;

; The city: the row at y=$A3
;
; 19 blocks, up to 6 high.
CITY_YA3:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$20,$20 ;
  DEFB $20,$20,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$A4
;
; 29 blocks, up to 6 high.
CITY_YA4:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$07,$07,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$30,$20 ;
  DEFB $20,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$01,$03 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$A5
;
; 33 blocks, up to 6 high.
CITY_YA5:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$04,$07,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$01,$03,$07,$0F,$08,$20,$20 ;
  DEFB $20,$20,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$A6
;
; 28 blocks, up to 6 high.
CITY_YA6:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$05,$07,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$30,$20 ;
  DEFB $20,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$A7
;
; 32 blocks, up to 6 high.
CITY_YA7:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$03,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$01,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$20,$20 ;
  DEFB $20,$20,$08,$0F,$07,$03,$01,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$A8
;
; 65 blocks, up to 6 high.
CITY_YA8:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$07,$00,$00,$00,$1F ;
  DEFB $1F,$1F,$1C,$1F,$1F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $03,$02,$02,$02,$02,$02,$02,$02 ;
  DEFB $02,$02,$03,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$30,$20 ;
  DEFB $20,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$A9
;
; 102 blocks, up to 6 high.
CITY_YA9:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$0F,$1F,$3F,$3F,$31 ;
  DEFB $20,$20,$20,$20,$11,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $03,$02,$02,$02,$02,$02,$02,$02 ;
  DEFB $03,$02,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$20,$20 ;
  DEFB $20,$20,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $03,$02,$02,$02,$02,$03,$03,$03 ; x=$E0 to $FF
  DEFB $01,$01,$03,$03,$03,$03,$03,$03 ;
  DEFB $03,$00,$03,$03,$03,$03,$03,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$AA
;
; 46 blocks, up to 6 high.
CITY_YAA:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;
  DEFB $20,$20,$20,$20,$1F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$05,$04,$04,$04,$04,$04 ;
  DEFB $04,$02,$03,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$30,$20 ;
  DEFB $20,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$02 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$02 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$AB
;
; 40 blocks, up to 6 high.
CITY_YAB:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$11 ;
  DEFB $20,$00,$00,$20,$11,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$04,$08,$09,$08,$09,$08 ;
  DEFB $05,$03,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$08,$20,$20 ;
  DEFB $20,$20,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$02 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$AC
;
; 48 blocks, up to 6 high.
CITY_YAC:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;
  DEFB $20,$20,$20,$20,$1F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$04,$08,$10,$10,$10,$08 ;
  DEFB $04,$02,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$18,$30,$30 ;
  DEFB $30,$30,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$AD
;
; 87 blocks, up to 6 high.
CITY_YAD:
  DEFB $0B,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$11 ;
  DEFB $20,$20,$20,$20,$11,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$04,$08,$10,$20,$10,$08 ;
  DEFB $04,$02,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$07,$07 ; x=$C0 to $DF
  DEFB $07,$07,$07,$04,$04,$0F,$0D,$0F ;
  DEFB $0F,$0D,$0F,$04,$04,$07,$07,$07 ;
  DEFB $07,$07,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$AE
;
; 39 blocks, up to 6 high.
CITY_YAE:
  DEFB $3B,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;
  DEFB $20,$20,$20,$20,$1F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$04,$08,$10,$20,$10,$08 ;
  DEFB $04,$02,$02,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$AF
;
; 29 blocks, up to 6 high.
CITY_YAF:
  DEFB $0B,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$11 ;
  DEFB $20,$20,$20,$20,$11,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$02,$04,$08,$10,$10,$10,$08 ;
  DEFB $04,$02,$02,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$B0
;
; 51 blocks, up to 6 high.
CITY_YB0:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;
  DEFB $20,$20,$21,$20,$1F,$01,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$03,$05,$09,$08,$09,$09,$08 ;
  DEFB $05,$03,$03,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;
  DEFB $00,$00,$03,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$B1
;
; 93 blocks, up to 6 high.
CITY_YB1:
  DEFB $03,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $00,$00,$00,$3F,$21,$3F,$21,$3F ;
  DEFB $3E,$21,$21,$3F,$3F,$21,$3F,$21 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$03,$05,$05,$04,$05,$05,$04 ;
  DEFB $07,$03,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $28,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$B2
;
; 87 blocks, up to 6 high.
CITY_YB2:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$3F,$21,$3F,$21,$3F ;
  DEFB $21,$21,$21,$21,$3F,$21,$3F,$21 ;
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $02,$03,$03,$03,$02,$03,$03,$02 ;
  DEFB $03,$03,$02,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $3F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$B3
;
; 38 blocks, up to 5 high.
CITY_YB3:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $01,$01,$01,$01,$01,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $02,$03,$02,$02,$03,$03,$03,$02 ;
  DEFB $02,$02,$03,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $10,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$B4
;
; 23 blocks, up to 3 high.
CITY_YB4:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $01,$01,$00,$00,$01,$01,$01,$00 ;
  DEFB $00,$00,$01,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$B5
;
; 16 blocks, up to 2 high.
CITY_YB5:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$B6
;
; 26 blocks, up to 4 high.
CITY_YB6:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $04,$0F,$04,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $01,$00,$01,$01,$01,$01,$00,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$B7
;
; 24 blocks, up to 3 high.
CITY_YB7:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ; x=$E0 to $FF
  DEFB $01,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$B8
;
; 21 blocks, up to 2 high.
CITY_YB8:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ; x=$E0 to $FF
  DEFB $01,$00,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$B9
;
; 24 blocks, up to 3 high.
CITY_YB9:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ; x=$E0 to $FF
  DEFB $01,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$BA
;
; 25 blocks, up to 4 high.
CITY_YBA:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$04,$0F,$04,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$01,$01,$01,$01,$01,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$BB
;
; 17 blocks, up to 5 high.
CITY_YBB:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$03,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$01,$01,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$BC
;
; 46 blocks, up to 5 high.
CITY_YBC:
  DEFB $07,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$07,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$01,$03,$07,$0F,$1F ;
  DEFB $10,$1F,$0F,$07,$03,$01,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$BD
;
; 57 blocks, up to 5 high.
CITY_YBD:
  DEFB $03,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$04 ;
  DEFB $0F,$04,$00,$00,$00,$04,$0F,$04 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$06,$06,$06,$07 ; x=$A0 to $BF
  DEFB $00,$07,$00,$00,$00,$07,$00,$07 ;
  DEFB $00,$07,$00,$07,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$02 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$BE
;
; 14 blocks, up to 4 high.
CITY_YBE:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$02 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$BF
;
; 27 blocks, up to 4 high.
CITY_YBF:
  DEFB $07,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$07,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$08,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$C0
;
; 23 blocks, up to 5 high.
CITY_YC0:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$03 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$06,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$0F,$08,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$C1
;
; 66 blocks, up to 6 high.
CITY_YC1:
  DEFB $3B,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $03,$03,$02,$03,$03,$03,$03,$03 ;
  DEFB $03,$00,$00,$00,$00,$00,$03,$03 ;
  DEFB $03,$03,$03,$03,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$0C,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$07,$00,$07,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$01,$01,$01,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $38,$30,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$C2
;
; 24 blocks, up to 6 high.
CITY_YC2:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$18,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$01,$01,$01,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $08,$3F,$20,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$C3
;
; 35 blocks, up to 6 high.
CITY_YC3:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$3F,$3F,$3F,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$01,$01,$01,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$10,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$C4
;
; 34 blocks, up to 6 high.
CITY_YC4:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$3F,$00,$3F,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$01,$01,$01,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$10,$3F,$10,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$C5
;
; 32 blocks, up to 6 high.
CITY_YC5:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$3F,$3E,$3F,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$10,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$C6
;
; 11 blocks, up to 6 high.
CITY_YC6:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$C7
;
; 14 blocks, up to 5 high.
CITY_YC7:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$C8
;
; 52 blocks, up to 3 high.
CITY_YC8:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $03,$03,$03,$03,$00,$03,$03,$03 ; x=$E0 to $FF
  DEFB $03,$03,$03,$03,$03,$03,$03,$00 ;
  DEFB $03,$03,$03,$03,$03,$03,$03,$07 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$C9
;
; 65 blocks, up to 5 high.
CITY_YC9:
  DEFB $07,$03,$03,$07,$03,$03,$07,$03 ; x=$80 to $9F
  DEFB $03,$07,$03,$03,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$1F,$0F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$04,$04,$04,$07 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$CA
;
; 38 blocks, up to 3 high.
CITY_YCA:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$04,$04,$04,$00,$04 ;
  DEFB $04,$04,$07,$07,$07,$00,$07,$07 ;
  DEFB $04,$04,$00,$04,$04,$07,$03,$03 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$CB
;
; 9 blocks, up to 3 high.
CITY_YCB:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$04,$00,$04,$04,$04 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$CC
;
; 9 blocks, up to 3 high.
CITY_YCC:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$04,$04,$04,$00,$04 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$CD
;
; 13 blocks, up to 3 high.
CITY_YCD:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$04,$04,$04,$07 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$CE
;
; 5 blocks, up to 3 high.
CITY_YCE:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$CF
;
; 5 blocks, up to 3 high.
CITY_YCF:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D0
;
; 9 blocks, up to 3 high.
CITY_YD0:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$04,$04,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$02,$02 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D1
;
; 49 blocks, up to 6 high.
CITY_YD1:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$3F,$04,$04,$04,$06 ;
  DEFB $02,$03,$00,$02,$1F,$1F,$1B,$1B ; x=$E0 to $FF
  DEFB $1F,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$D2
;
; 49 blocks, up to 6 high.
CITY_YD2:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$07,$07,$07,$07,$07 ;
  DEFB $0F,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$02,$1F,$20,$20,$20 ; x=$E0 to $FF
  DEFB $20,$1C,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D3
;
; 29 blocks, up to 6 high.
CITY_YD3:
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$04,$00,$00,$00,$00 ;
  DEFB $00,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$08,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$02,$13,$20,$20,$00 ; x=$E0 to $FF
  DEFB $20,$1C,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D4
;
; 59 blocks, up to 6 high.
CITY_YD4:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$04,$00,$00,$00,$00 ;
  DEFB $00,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$1F,$1C,$1C,$1C,$1C,$1C,$1F ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$1F,$20,$20,$20 ; x=$E0 to $FF
  DEFB $20,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$D5
;
; 103 blocks, up to 6 high.
CITY_YD5:
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$04,$00,$00,$00,$00 ;
  DEFB $00,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$04,$04 ;
  DEFB $04,$04,$04,$07,$00,$07,$04,$04 ; x=$A0 to $BF
  DEFB $04,$14,$14,$14,$14,$14,$14,$14 ;
  DEFB $04,$04,$04,$07,$03,$03,$03,$03 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $07,$07,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$1F,$1F,$13,$13 ; x=$E0 to $FF
  DEFB $1F,$1F,$0C,$06,$03,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D6
;
; 53 blocks, up to 6 high.
CITY_YD6:
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$04,$00,$00,$00,$00 ;
  DEFB $00,$1F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$1F,$1C,$1C,$1C,$1C,$1C,$1F ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $07,$07,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$04,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$02,$02 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$D7
;
; 28 blocks, up to 6 high.
CITY_YD7:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $04,$04,$04,$07,$00,$00,$00,$00 ;
  DEFB $00,$3F,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$08,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$D8
;
; 62 blocks, up to 6 high.
CITY_YD8:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $04,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$3F,$3F,$00,$3F,$00,$3F,$1F ;
  DEFB $0F,$04,$04,$04,$04,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$01,$03,$03 ; x=$C0 to $DF
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$10,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$D9
;
; 19 blocks, up to 5 high.
CITY_YD9:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $04,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$1F,$10,$1F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$DA
;
; 18 blocks, up to 6 high.
CITY_YDA:
  DEFB $07,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$DB
;
; 11 blocks, up to 3 high.
CITY_YDB:
  DEFB $03,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $04,$07,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$DC
;
; 25 blocks, up to 6 high.
CITY_YDC:
  DEFB $03,$00,$00,$00,$00,$00,$00,$07 ; x=$80 to $9F
  DEFB $07,$07,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$3F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$01 ;
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$DD
;
; 10 blocks, up to 3 high.
CITY_YDD:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$00 ;
  DEFB $00,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$DE
;
; 13 blocks, up to 5 high.
CITY_YDE:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$1F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$00 ;
  DEFB $00,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$DF
;
; 15 blocks, up to 5 high.
CITY_YDF:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$01,$01,$11 ;
  DEFB $11,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E0
;
; 22 blocks, up to 5 high.
CITY_YE0:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$00,$0F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$04,$07,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$11 ;
  DEFB $11,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$E1
;
; 20 blocks, up to 5 high.
CITY_YE1:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$04,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$04,$04,$04,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;
  DEFB $1F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E2
;
; 27 blocks, up to 4 high.
CITY_YE2:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$07,$00,$07,$04,$00 ;
  DEFB $00,$00,$00,$04,$04,$04,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E3
;
; 68 blocks, up to 4 high.
CITY_YE3:
  DEFB $07,$00,$00,$00,$00,$06,$06,$07 ; x=$80 to $9F
  DEFB $0F,$00,$0F,$0F,$0F,$0D,$0F,$0F ;
  DEFB $0E,$0F,$07,$0F,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$04,$00 ;
  DEFB $00,$00,$00,$07,$04,$07,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$E4
;
; 14 blocks, up to 3 high.
CITY_YE4:
  DEFB $03,$00,$00,$00,$00,$06,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$04,$00 ;
  DEFB $00,$00,$00,$04,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E5
;
; 27 blocks, up to 3 high.
CITY_YE5:
  DEFB $03,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$03,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$04,$04 ;
  DEFB $07,$04,$04,$04,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E6
;
; 11 blocks, up to 3 high.
CITY_YE6:
  DEFB $07,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$E7
;
; 11 blocks, up to 4 high.
CITY_YE7:
  DEFB $0F,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E8
;
; 30 blocks, up to 6 high.
CITY_YE8:
  DEFB $0F,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$03,$2B,$3E,$3E,$2B,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$E9
;
; 38 blocks, up to 6 high.
CITY_YE9:
  DEFB $07,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$3E,$32,$20,$3E,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$01,$01,$01,$01 ; x=$C0 to $DF
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$EA
;
; 35 blocks, up to 6 high.
CITY_YEA:
  DEFB $07,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$2B,$3E,$3E,$2B,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$01,$01,$01,$01 ; x=$C0 to $DF
  DEFB $01,$01,$01,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$EB
;
; 45 blocks, up to 6 high.
CITY_YEB:
  DEFB $07,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$20,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$01,$01,$01,$01 ; x=$C0 to $DF
  DEFB $01,$01,$01,$00,$00,$00,$01,$03 ;
  DEFB $07,$0F,$1F,$3F,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$EC
;
; 22 blocks, up to 6 high.
CITY_YEC:
  DEFB $03,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$20,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$3B ;

; The city: the row at y=$ED
;
; 22 blocks, up to 6 high.
CITY_YED:
  DEFB $03,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$20,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$1F ;

; The city: the row at y=$EE
;
; 32 blocks, up to 6 high.
CITY_YEE:
  DEFB $07,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$20,$20,$20,$20,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$EF
;
; 21 blocks, up to 6 high.
CITY_YEF:
  DEFB $03,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$20,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F0
;
; 66 blocks, up to 6 high.
CITY_YF0:
  DEFB $03,$00,$00,$00,$00,$03,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$20,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$03 ; x=$E0 to $FF
  DEFB $07,$07,$07,$07,$07,$07,$07,$07 ;
  DEFB $07,$07,$07,$07,$07,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F1
;
; 74 blocks, up to 6 high.
CITY_YF1:
  DEFB $07,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$07,$1F,$3E,$3F,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ; x=$E0 to $FF
  DEFB $04,$38,$18,$18,$18,$18,$18,$18 ;
  DEFB $18,$18,$18,$18,$38,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$F2
;
; 59 blocks, up to 6 high.
CITY_YF2:
  DEFB $03,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$03,$3E,$3F,$1F,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$00,$00,$00,$00,$00,$00 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ; x=$E0 to $FF
  DEFB $04,$18,$20,$20,$20,$20,$20,$20 ;
  DEFB $20,$20,$20,$20,$18,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F3
;
; 65 blocks, up to 6 high.
CITY_YF3:
  DEFB $03,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$03,$03,$07,$0F,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$01,$01,$01,$01,$01,$01,$01 ;
  DEFB $01,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $01,$01,$01,$01,$01,$01,$01,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ; x=$E0 to $FF
  DEFB $04,$18,$20,$20,$20,$20,$20,$20 ;
  DEFB $20,$20,$20,$30,$09,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F4
;
; 60 blocks, up to 6 high.
CITY_YF4:
  DEFB $07,$00,$00,$00,$00,$07,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $03,$02,$02,$02,$02,$02,$02,$02 ;
  DEFB $04,$08,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$02 ; x=$E0 to $FF
  DEFB $04,$38,$18,$18,$18,$18,$18,$18 ;
  DEFB $18,$18,$18,$18,$38,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$F5
;
; 127 blocks, up to 6 high.
CITY_YF5:
  DEFB $03,$00,$00,$00,$00,$07,$07,$07 ; x=$80 to $9F
  DEFB $0F,$0F,$0F,$0F,$0E,$0F,$0F,$0F ;
  DEFB $0F,$0E,$0F,$0F,$0F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $07,$04,$04,$04,$04,$04,$04,$04 ;
  DEFB $04,$08,$10,$20,$37,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$01,$03 ; x=$E0 to $FF
  DEFB $07,$07,$07,$07,$07,$07,$07,$07 ;
  DEFB $07,$07,$07,$07,$07,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F6
;
; 35 blocks, up to 6 high.
CITY_YF6:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$03,$02,$03,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $0F,$08,$08,$08,$08,$04,$0C,$0F ;
  DEFB $08,$08,$18,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F7
;
; 40 blocks, up to 6 high.
CITY_YF7:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$03,$02,$03,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $1F,$10,$10,$10,$18,$14,$1C,$1C ;
  DEFB $18,$10,$10,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$F8
;
; 42 blocks, up to 6 high.
CITY_YF8:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $3F,$20,$2D,$20,$38,$24,$3C,$3C ;
  DEFB $39,$20,$20,$20,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$F9
;
; 81 blocks, up to 6 high.
CITY_YF9:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $3F,$3F,$3F,$3F,$3F,$37,$3F,$3F ;
  DEFB $3F,$3F,$3F,$3F,$3F,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$FA
;
; 57 blocks, up to 5 high.
CITY_YFA:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$0F,$07,$07,$07 ;
  DEFB $1F,$07,$01,$01,$01,$01,$01,$01 ;
  DEFB $07,$1F,$07,$07,$07,$0F,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$04,$04,$04 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$FB
;
; 10 blocks, up to 3 high.
CITY_YFB:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$FC
;
; 10 blocks, up to 3 high.
CITY_YFC:
  DEFB $03,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$03 ;

; The city: the row at y=$FD
;
; 12 blocks, up to 3 high.
CITY_YFD:
  DEFB $07,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$07 ;

; The city: the row at y=$FE
;
; 15 blocks, up to 4 high.
CITY_YFE:
  DEFB $0F,$00,$00,$00,$00,$00,$00,$00 ; x=$80 to $9F
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$A0 to $BF
  DEFB $00,$00,$00,$00,$07,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$07,$01,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$C0 to $DF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ; x=$E0 to $FF
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$0F ;

; The city: the row at y=$FF
;
; 305 blocks, up to 6 high.
CITY_YFF:
  DEFB $3F,$0F,$07,$03,$03,$07,$03,$03 ; x=$80 to $9F
  DEFB $07,$03,$03,$07,$03,$03,$07,$03 ;
  DEFB $03,$07,$03,$03,$07,$0F,$3B,$3B ;
  DEFB $0F,$07,$03,$03,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ; x=$A0 to $BF
  DEFB $07,$03,$03,$07,$0F,$07,$00,$00 ;
  DEFB $00,$00,$00,$00,$00,$00,$00,$00 ;
  DEFB $00,$00,$00,$00,$07,$0F,$07,$03 ;
  DEFB $03,$07,$03,$03,$07,$03,$03,$07 ; x=$C0 to $DF
  DEFB $03,$03,$07,$03,$03,$07,$03,$03 ;
  DEFB $07,$03,$03,$0F,$0F,$0B,$0F,$0F ;
  DEFB $03,$03,$03,$07,$03,$03,$07,$03 ;
  DEFB $03,$07,$03,$03,$07,$03,$03,$07 ; x=$E0 to $FF
  DEFB $03,$03,$07,$0F,$3B,$0F,$07,$03 ;
  DEFB $03,$07,$03,$03,$07,$03,$03,$07 ;
  DEFB $03,$03,$07,$03,$03,$07,$0F,$3F ;

