;; 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 BEAST_X = $51 BEAST_GAIT = $52 BEAST_COUNT = $53 BEAST_STATE = $54 B_STANDING = $00 B_RUNNING = $01 B_FALLING = $02 B_DEAD = $03 BEAST_DIRECTION = $55 ;INVFLG = $32 FRAMEL = $60 FRAMEH = $61 WAITING = $62 LETTERL = $63 LETTERH = $64 LETTERX = $65 LETTERY = $66 LETTERD = $67 LETTER = $68 BLARGH = $69 INTRO_REPEAT = $7E ; INTRO ZPOS = $78 REGISTER_DUMP = $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 A_VOLUME = $78 B_VOLUME = $79 C_VOLUME = $7A ENVELOPE_FINE = $7B ENVELOPE_COARSE = $7C ENVELOPE_SHAPE = $7D COPY_OFFSET = $7E DECODER_STATE = $7F REGISTER_DUMP2 = $80 A_FINE_TONE2 = $80 A_COARSE_TONE2 = $81 B_FINE_TONE2 = $82 B_COARSE_TONE2 = $83 C_FINE_TONE2 = $84 C_COARSE_TONE2 = $85 NOISE2 = $86 ENABLE2 = $87 A_VOLUME2 = $88 B_VOLUME2 = $89 C_VOLUME2 = $8A ENVELOPE_FINE2 = $8B ENVELOPE_COARS2 = $8C ENVELOPE_SHAPE2 = $8D LYRICSL = $8E LYRICSH = $8F FRAME_COUNT = $90 MB_VALUE = $91 MB_ADDRL = $91 MB_ADDRH = $92 DONE_PLAYING = $93 MB_CHUNK_OFFSET = $94 MB_FRAME = $94 MB_PATTERN = $95 CHUNKSIZE = $95 LZ4_DONE = $96 ;DECODE_ERROR = $97 ;COPY_TIME = $98 ;DECOMPRESS_TIME = $99 ;TIME_TAKEN = $9A ;LYRICS_ACTIVE = $9B ;FORTYCOL = $9C ;CURSOR = $9D ; More zero-page addresses ; we try not to conflict with anything DOS, MONITOR or BASIC related LASER_OUT = $DB ; 2+ GUN_CHARGE = $DC ; 2+ MONSTER_AI = $DD ; C1 underwater BG_BEAST = $DE ; C1 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 HAVE_GUN = $E4 ; C2 jail+ 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 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 PHYSICIST_STATE = $EA P_STANDING = $00 P_WALKING = $01 P_RUNNING = $02 P_CROUCHING = $03 P_KICKING = $04 P_JUMPING = $05 ; no keypress P_COLLAPSING = $06 ; no keypress P_FALLING_SIDEWAYS = $07 ; no keypress P_SWINGING = $08 ; no keypress P_ELEVATING_UP = $09 P_ELEVATING_DOWN = $0A P_SHOOTING = $0B P_FALLING_DOWN = $0C P_IMPALED = $0D 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 PHYSICIST_X = $F0 ; ALL INTRO_LOOPH = $F1 ; INTRO PHYSICIST_Y = $F1 ; ALL 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