2019-08-31 03:45:50 +00:00
|
|
|
;; Zero Page
|
|
|
|
|
|
|
|
;; LZ4 addresses
|
|
|
|
|
|
|
|
LZ4_SRC = $00
|
|
|
|
LZ4_DST = $02
|
|
|
|
LZ4_END = $04
|
|
|
|
WHICH_LOAD = $05
|
|
|
|
COUNT = $06
|
|
|
|
DELTA = $08
|
|
|
|
|
|
|
|
;; Zero page monitor routines addresses
|
|
|
|
|
|
|
|
WNDLFT = $20
|
|
|
|
WNDWDTH = $21
|
|
|
|
WNDTOP = $22
|
|
|
|
WNDBTM = $23
|
|
|
|
CH = $24
|
|
|
|
CV = $25
|
|
|
|
GBASL = $26
|
|
|
|
GBASH = $27
|
|
|
|
BASL = $28
|
|
|
|
BASH = $29
|
|
|
|
H2 = $2C
|
|
|
|
V2 = $2D
|
|
|
|
MASK = $2E
|
|
|
|
COLOR_MASK = $2F
|
|
|
|
COLOR = $30
|
|
|
|
|
|
|
|
|
|
|
|
SEEDL = $4e
|
|
|
|
SEEDH = $4f
|
|
|
|
XMAX = $50
|
2019-10-09 03:04:26 +00:00
|
|
|
|
|
|
|
; escape
|
|
|
|
FRAME = $51
|
|
|
|
ASTEROID_SPEED = $52
|
|
|
|
ASTEROID_X = $53
|
|
|
|
ASTEROID_Y = $54
|
|
|
|
RANDOM_PTR = $55
|
|
|
|
GREEN0 = $56
|
|
|
|
GREEN1 = $57
|
|
|
|
GREEN2 = $58
|
|
|
|
GREEN3 = $59
|
|
|
|
GREEN4 = $5A
|
|
|
|
FIRE_Y = $5B
|
|
|
|
SPRITE_XPOS = $5C
|
|
|
|
SPRITE_YPOS = $5D
|
|
|
|
BLAST1 = $5E
|
|
|
|
BLAST2 = $5F
|
|
|
|
|
|
|
|
FIRE = $6A
|
|
|
|
ASTEROID_EXPLODE = $6B
|
|
|
|
ASTEROID_SUBX = $6C
|
|
|
|
FIRE_X = $6D
|
|
|
|
LEVEL_DONE = $6E
|
|
|
|
YADD = $6F
|
|
|
|
ZERO = $B0
|
2019-10-12 22:11:32 +00:00
|
|
|
WASTE_CYCLES = $B1
|
2019-10-13 00:57:36 +00:00
|
|
|
FOREVER_OFFSET = $B2
|
2019-10-14 19:13:44 +00:00
|
|
|
FRAME_OFFSET = $B3
|
2019-10-15 00:43:40 +00:00
|
|
|
FRAME_PAGE = $B4
|
2019-08-31 03:45:50 +00:00
|
|
|
|
|
|
|
FRAMEL = $60
|
|
|
|
FRAMEH = $61
|
|
|
|
WAITING = $62
|
|
|
|
LETTERL = $63
|
|
|
|
LETTERH = $64
|
|
|
|
LETTERX = $65
|
|
|
|
LETTERY = $66
|
|
|
|
LETTERD = $67
|
|
|
|
LETTER = $68
|
|
|
|
BLARGH = $69
|
|
|
|
|
|
|
|
AY_REGISTERS = $70
|
|
|
|
A_FINE_TONE = $70
|
|
|
|
A_COARSE_TONE = $71
|
|
|
|
B_FINE_TONE = $72
|
|
|
|
B_COARSE_TONE = $73
|
|
|
|
C_FINE_TONE = $74
|
|
|
|
C_COARSE_TONE = $75
|
|
|
|
NOISE = $76
|
|
|
|
ENABLE = $77
|
2019-10-02 04:25:04 +00:00
|
|
|
PT3_MIXER_VAL = $77
|
2019-08-31 03:45:50 +00:00
|
|
|
A_VOLUME = $78
|
|
|
|
B_VOLUME = $79
|
|
|
|
C_VOLUME = $7A
|
|
|
|
ENVELOPE_FINE = $7B
|
|
|
|
ENVELOPE_COARSE = $7C
|
|
|
|
ENVELOPE_SHAPE = $7D
|
|
|
|
|
|
|
|
PATTERN_L = $7E
|
|
|
|
PATTERN_H = $7F
|
|
|
|
ORNAMENT_L = $80
|
|
|
|
ORNAMENT_H = $81
|
|
|
|
SAMPLE_L = $82
|
|
|
|
SAMPLE_H = $83
|
|
|
|
|
|
|
|
LOOP = $84
|
|
|
|
MB_VALUE = $85
|
|
|
|
MB_ADDRL = $86
|
|
|
|
MB_ADDRH = $87
|
|
|
|
DONE_PLAYING = $88
|
|
|
|
DONE_SONG = $89
|
|
|
|
PT3_TEMP = $8A
|
|
|
|
|
|
|
|
|
|
|
|
; More zero-page addresses
|
|
|
|
; we try not to conflict with anything DOS, MONITOR or BASIC related
|
|
|
|
|
|
|
|
HAVE_GUN = $BC ; C2 jail+
|
|
|
|
|
|
|
|
FIRST_SHIELD = $BD
|
|
|
|
COLLISION_X = $BE
|
|
|
|
COLLISION_Y = $BF
|
|
|
|
|
|
|
|
DOOR_STATUS = $C0
|
|
|
|
DOOR_STATUS_H = $C1
|
|
|
|
DOOR_X = $C2
|
|
|
|
DOOR_X_H = $C3
|
|
|
|
DOOR_Y = $C4
|
|
|
|
DOOR_Y_H = $C5
|
|
|
|
DOOR_XMIN = $C6
|
|
|
|
DOOR_XMIN_H = $C7
|
|
|
|
DOOR_XMAX = $C8
|
|
|
|
DOOR_XMAX_H = $C9
|
|
|
|
|
|
|
|
BEAST_ZAPPING = $CA ; 1
|
|
|
|
BEAST_DEAD = $CB ; 1
|
|
|
|
VENT_OPEN = $CC ; 2
|
|
|
|
INTRO_REPEAT = $CD ; INTRO
|
|
|
|
|
|
|
|
|
|
|
|
LASER_TEMP = $CE ; 2+
|
|
|
|
LEFT_SHOOT_TARGET = $CF ; ALL
|
|
|
|
RIGHT_SHOOT_TARGET = $D0 ; ALL
|
|
|
|
|
|
|
|
|
|
|
|
LEFT_WALK_LIMIT = $D1 ; ALL
|
|
|
|
RIGHT_WALK_LIMIT= $D2 ; ALL
|
|
|
|
LEFT_SHOOT_LIMIT= $D3 ; ALL
|
|
|
|
RIGHT_SHOOT_LIMIT=$D4 ; ALL
|
|
|
|
|
|
|
|
NUM_DOORS = $D5 ; 2+
|
|
|
|
|
|
|
|
GUN_FIRE = $D6 ; 2+
|
|
|
|
|
|
|
|
GUN_STATE = $D7 ; 2+
|
|
|
|
|
|
|
|
BLAST_OUT = $D8 ; 2+
|
|
|
|
|
|
|
|
SHIELD_OUT = $D9 ; 2+
|
|
|
|
|
|
|
|
ALIEN_OUT = $DA ; 2+
|
|
|
|
|
|
|
|
LASER_OUT = $DB ; 2+
|
|
|
|
|
|
|
|
GUN_CHARGE = $DC ; 2+
|
|
|
|
|
|
|
|
MONSTER_AI = $DD ; C1 underwater
|
|
|
|
ACTION_COUNT = $DD ; C4
|
|
|
|
|
|
|
|
BG_BEAST = $DE ; C1
|
|
|
|
ACTION_TRIGGERED= $DE ; C4
|
|
|
|
|
|
|
|
ON_ELEVATOR = $DF ; ALL
|
|
|
|
|
|
|
|
LEFT_LIMIT = $E0 ; ALL
|
|
|
|
RIGHT_LIMIT = $E1 ; ALL
|
|
|
|
|
|
|
|
CONSOLE_Y = $E2 ; C1 underwater
|
|
|
|
EXIT_COUNT = $E2 ; C1 pool
|
|
|
|
WHICH_SLUG = $E2 ; C1
|
|
|
|
TELEPORTING = $E2 ; C2 jail
|
|
|
|
|
|
|
|
WHICH_CAVE = $E3 ; C1,C5
|
|
|
|
WHICH_JAIL = $E3 ; C2
|
|
|
|
WHICH_ROOM = $E3 ; C4
|
|
|
|
|
|
|
|
MONSTER_GRAB = $E4 ; C1 underwater
|
|
|
|
BEAST_OUT = $E4 ; C1
|
|
|
|
|
|
|
|
GAME_OVER = $E5 ; ALL
|
|
|
|
DNA_OUT = $E5 ; INTRO
|
|
|
|
MESSAGE_CURRENT = $E5 ; INTRO
|
|
|
|
|
|
|
|
|
|
|
|
DNA_PROGRESS = $E6 ; INTRO
|
|
|
|
TIME_COUNT = $E6 ; INTRO
|
|
|
|
EQUAKE_PROGRESS = $E6 ; C1
|
|
|
|
DUDE_OUT = $E6 ; C2
|
|
|
|
FALLING = $E6 ; C3
|
|
|
|
CHARGER_COUNT = $E6 ; C4
|
|
|
|
|
|
|
|
EARTH_OFFSET = $E7 ; ALL??
|
|
|
|
DNA_COUNT = $E7 ; INTRO
|
|
|
|
CURSOR_COUNT = $E7 ; INTRO
|
|
|
|
PARTICLE_COUNT = $E7 ; INTRO
|
|
|
|
MESSAGE_COUNT = $E7 ; INTRO
|
|
|
|
|
|
|
|
MONSTER_WHICH = $E8 ; C1 underwater
|
|
|
|
BOULDER_X = $E8 ; C1
|
|
|
|
LITTLEGUY_OUT = $E8 ; C2 cage
|
|
|
|
CART_X = $E8 ; C2 jail
|
|
|
|
FALLING_Y = $E8 ; C3
|
|
|
|
|
|
|
|
BOULDER_Y = $E9 ; C1
|
|
|
|
SHOOTING_TOP = $E9 ; C1 cage
|
|
|
|
DUDE_X = $E9 ; C2 jail
|
|
|
|
|
|
|
|
STATE_NO_KEYPRESS = $80
|
|
|
|
STATE_CROUCHING = $40
|
|
|
|
STATE_RUNNING = $20
|
|
|
|
|
2019-10-02 04:38:01 +00:00
|
|
|
ASTRONAUT_STATE = $EA
|
2019-08-31 03:45:50 +00:00
|
|
|
P_STANDING = $00
|
|
|
|
P_WALKING = $01
|
|
|
|
P_RUNNING = $02 | STATE_RUNNING
|
|
|
|
P_CROUCHING = $03 | STATE_CROUCHING
|
|
|
|
P_KICKING = $04
|
|
|
|
P_JUMPING = $05 | STATE_NO_KEYPRESS
|
|
|
|
P_COLLAPSING = $06 | STATE_NO_KEYPRESS
|
|
|
|
P_FALLING_SIDEWAYS = $07 | STATE_NO_KEYPRESS
|
|
|
|
P_SWINGING = $08 | STATE_NO_KEYPRESS
|
|
|
|
P_ELEVATING_UP = $09
|
|
|
|
P_ELEVATING_DOWN = $0A
|
|
|
|
P_SHOOTING = $0B
|
|
|
|
P_FALLING_DOWN = $0C | STATE_NO_KEYPRESS
|
|
|
|
P_IMPALED = $0D | STATE_NO_KEYPRESS
|
|
|
|
P_CROUCH_SHOOTING = $0E | STATE_CROUCHING
|
|
|
|
P_CROUCH_KICKING = $0F | STATE_CROUCHING
|
|
|
|
P_DISINTEGRATING = $10 | STATE_NO_KEYPRESS
|
|
|
|
|
|
|
|
BUBBLES_Y = $EB ; C1 underwater
|
|
|
|
BEFORE_SWING = $EB ; C1
|
|
|
|
SHOOTING_BOTTOM = $EB ; C2 cage
|
|
|
|
CART_OUT = $EB ; C2 jail
|
|
|
|
|
|
|
|
CUTFRAME = $EC
|
|
|
|
DISP_PAGE = $ED ; ALL
|
|
|
|
DRAW_PAGE = $EE ; ALL
|
|
|
|
OFFSET = $EF
|
|
|
|
|
|
|
|
INTRO_LOOPL = $F0 ; INTRO
|
2019-10-02 04:38:01 +00:00
|
|
|
ASTRONAUT_X = $F0 ; ALL
|
2019-08-31 03:45:50 +00:00
|
|
|
|
|
|
|
INTRO_LOOPH = $F1 ; INTRO
|
2019-10-02 04:38:01 +00:00
|
|
|
ASTRONAUT_Y = $F1 ; ALL
|
2019-08-31 03:45:50 +00:00
|
|
|
|
|
|
|
SPRITETEMP = $F2 ; ALL
|
|
|
|
XPOS = $F3 ; ALL
|
|
|
|
YPOS = $F4 ; ALL
|
|
|
|
DIRECTION = $F5 ; ALL
|
|
|
|
GAIT = $F6 ; ALL
|
|
|
|
|
|
|
|
INTRO_LOOPER = $F7 ; INTRO
|
|
|
|
TENTACLE_X = $F7 ; C1
|
|
|
|
CAGE_GUARD = $F7 ; C2 cage
|
|
|
|
CITY_MOVIE_SEEN = $F7 ; C2 jail
|
|
|
|
|
|
|
|
ELEVATOR_CYCLE = $F8 ; INTRO
|
|
|
|
STATIC_LOOPER = $F8 ; INTRO
|
|
|
|
LEVELEND_PROGRESS = $F8 ; C1
|
|
|
|
SWING_PROGRESS = $F8 ; C1
|
|
|
|
TENTACLE_PROGRESS = $F8 ; C1
|
|
|
|
CAGE_OFFSET = $F8 ; C2 cage
|
|
|
|
JAIL_POWER_ON = $F8 ; C2 jail
|
|
|
|
VENT_END_COUNT = $F8 ; C3
|
|
|
|
|
|
|
|
ELEVATOR_COUNT = $F9 ; INTRO
|
|
|
|
TENTACLE_GRAB = $F9 ; C1
|
|
|
|
CAGE_AMPLITUDE = $F9 ; C2 cage
|
|
|
|
ELEVATOR_OFFSET = $F9 ; C2 jail
|
|
|
|
VENT_DEATH = $F9 ; C3
|
|
|
|
BG_SCROLL = $F9 ; C4
|
|
|
|
|
|
|
|
|
|
|
|
TEMP = $FA
|
|
|
|
TEMPY = $FB
|
|
|
|
INL = $FC
|
|
|
|
INH = $FD
|
|
|
|
OUTL = $FE
|
|
|
|
OUTH = $FF
|