Sparse_Invaders_Source_ _Constants.txt - simondotm/stardot-wiki GitHub Wiki
;-------------------------------------------------------------------------------
; Constants
; Written by Neil Beresford.
;
; Copyright 2008,2009 Neil Beresford
;
; This file is part of Sparse Invaders.
; Sparse Invaders is free software: you can redistribute it and/or modify
; it under the terms of the GNU General Public License as published by
; the Free Software Foundation, either version 3 of the License, or
; (at your option) any later version.
;
; Sparse Invaders is distributed in the hope that it will be useful,
; but WITHOUT ANY WARRANTY; without even the implied warranty of
; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
; GNU General Public License for more details.
;
; You should have received a copy of the GNU General Public License
; along with Sparse Invaders. If not, see <
http://www.gnu.org/licenses/
>.
;
; Notes:
;
;-------------------------------------------------------------------------------
.alias oswrch $ffee
.alias osbyte $fff4
.alias osword $fff1
;-------------------------------------------------------------------------------
; General System related constances
;-------------------------------------------------------------------------------
.alias SCREENHIGH $30 ; screen start - high byte
.alias SCREENLOW $00 ; screen start - low byte
.alias KEYCODE_LEFT $61 ; z key -$19 ; keys used - left
.alias KEYCODE_RIGHT $42 ; x key -$79 ; right key
.alias KEYCODE_SPACE $49 ; Return key -$62 ; space fire key
;-------------------------------------------------------------------------------
;
; Zero page usage ...
; Please note, never assume that these are setup
; as you left them.
;
;-------------------------------------------------------------------------------
.alias STOREA $0C ; general store for A
.alias STOREX $0D ; general store for X
.alias STOREY $0E ; general store for Y
.alias ACTIVEINDEX $0F ; active index, used when drawing the sprite via the active sprite control system
.alias SCREENADD $10 ; ( and $71 ) - Screen address
.alias SPRITE $12 ; current sprite
.alias WIDTH $13 ; width, generally the sprite
.alias HEIGHT $14 ; height, generally the sprite
.alias XPOS $15 ; xpos store
.alias YPOS $16 ; ypos store
.alias TEMP $17 ; temp
.alias CURRENTSPRITEDATA $18 ; ( and $79 ) used for storing the address of the data for the current sprite
.alias XOFFSET $1A ; x offset within the charactor, used for sprite draw
.alias SCRATCH1 $1B ; scratch
.alias SCRATCH2 $1C ; scratch
.alias SCRATCH3 $1D ; scratch
.alias SCRATCH4 $1E ; scratch
.alias TEMPPTR $1F ; ( and $80 ) general purpose ptr
.alias USERPTR $21 ; ( and $82 ) userptr, used when calling functions
.alias CURRENT_SPR_W $23 ; current sprite width
.alias CURRENT_SPR_H $24 ; current sprite height
.alias SCREENADD_BACK $25 ; ( and $86 ) - Screen address
.alias TIMERCOUNT $27 ; TImer count - do not use!
.alias TIMER_FLAG $28 ; TImer flagged - do not write to!
.alias PLAYER_X $29 ; Player X position
.alias PLAYER_Y $30 ; Player X position
.alias PLAYER_FRAME $31 ; Player Frame
.alias PLAYER_BULLET_X $32 ; Player - Bullet x
.alias PLAYER_BULLET_Y $33 ; Player - Bullet y
.alias PLAYER_BULLET_F $34 ; Player - Bullet frame
.alias INPUTCHECK $35 ; keyboard input flags
.alias SCREEN_UPDATE $36 ; Screen update counter
.alias SCORE_ADDITION $37 ; Score addition
.alias INV_DELAYCOUNT $38 ; Invader frame count
.alias INV_DELAYUPDATE $39 ; Invader frame refresh value
.alias INV_FRAME $3a ; Invader frame reference
.alias INV_MOVDIR $3b ; horizontal movement for the invader...
.alias INV_YMOVDIR $3c ; vertical movement for the invader...
.alias EXPLOSION_COUNT $3d ; expolosion time on screen
.alias EXPLOSION2_COUNT $3e ; expolosion2 time on screen
.alias INVADER_RESTARTDELAY $3f ; invader restart delay...
.alias TOTAL_INVADERS $40 ; total invaders
.alias CALLPARAM1 $41 ; call param1
.alias CALLPARAM2 $42 ; call param1
.alias GAME_LEVEL $43 ; game level ...
.alias BULLET_COUNT $44 ; total invader bullet count
.alias BULLET_DELAY $45 ; invader bullet delay
.alias BULLET_REFRESHDELAY $46 ; invader bullet frefresh for delay
.alias BULLETINVLAST $47 ; current invader that has fired...
.alias GAME_STATE $48 ; Game state ...
.alias INV_PICKED1 $49 ; invader picked via invader bullet shooting
.alias INV_PICKED2 $4a ; invader picked via invader bullet shooting
.alias INV_PICKED3 $4b ; invader picked via invader bullet shooting
.alias CURRENT_SPRITE $4c ; current sprite reference number for the spritedata
.alias PLAYER_LIFES $4d ; number of player lifes left ...
.alias BASE1_1 $4e ; Base mask for line. <<^^>> - 6 bits for the three blocks per line
.alias BASE1_2 $4f ;
.alias BASE1_3 $50 ;
.alias BASE2_1 $51 ;
.alias BASE2_2 $52 ;
.alias BASE2_3 $53 ;
.alias BASE3_1 $54 ;
.alias BASE3_2 $55 ;
.alias BASE3_3 $56 ;
.alias SCREENPTR $57 ; screen data ptr lo
.alias SCREENPTR2 $58 ; screen data ptr hi
.alias DELAY_COUNT $59 ; delay for the menu ...
.alias FIREBUTTON_DELAY $5a ; stop firing ...
.alias BASELINEFLAG $5b ; flag for blanked lines etc ...
.alias SCORE_LO $5c ; score - lo byte
.alias SCORE_HI $5d ; score - hi byte
.alias BONUSSCORE_LO $5e ; bonushiscore - lo byte - to aim for for bonus life
.alias BONUSSCORE_HI $5f ; bonushiscore - hi byte
.alias HISCORE1_LO $60 ; Hi score store
.alias HISCORE1_HI $61 ; ...
.alias HISCORE2_LO $62 ; ...
.alias HISCORE2_HI $63 ; ...
.alias HISCORE3_LO $64 ; ...
.alias HISCORE3_HI $65 ; ...
.alias HISCORE4_LO $66 ; ...
.alias HISCORE4_HI $67 ; ...
.alias HISCORE5_LO $68 ; ...
.alias HISCORE5_HI $69 ; ...
.alias HISCORE6_LO $6a ; ...
.alias HISCORE6_HI $6b ; ...
.alias HISCORE7_LO $6c ; ...
.alias HISCORE7_HI $6d ; ...
.alias HISCORE8_LO $6e ; ...
.alias HISCORE8_HI $6f ; ...
.alias HISCORE9_LO $70 ; ...
.alias HISCORE9_HI $71 ; ...
.alias HISCORE10_LO $72 ; ...
.alias HISCORE10_HI $73 ; ...
.alias MISSFIRSTSOUND $76 ; Miss the first sound...
;-------------------------------------------------------------------------------
; Constants used for monitoring the GAME STATE
;-------------------------------------------------------------------------------
.alias GAME_STATE_INTRO 0 ; game state - intro screen
.alias GAME_STATE_STARTLEVEL 1 ; starting level screen
.alias GAME_STATE_PLAYING 2 ; playing game
.alias GAME_STATE_INVADED 3 ; game ended.
;-------------------------------------------------------------------------------
; Constants used within Invader_Player
;-------------------------------------------------------------------------------
.alias INPUTFLAG_LEFT 1 ; flag for player movement left
.alias INPUTFLAG_RIGHT 2 ; flag for player movement right
.alias INPUTFLAG_FIRE 4 ; flag for when player fires
.alias PLAYER_SPRITE_SLOT 0 ; sprite slot allocation - player
.alias BULLET_SPRITE_SLOT 1 ; ... player bullet
.alias EXPLOSION_SPRITE_SLOT 2 ; ... explosion for invader
.alias EXPLOSION2_SPRITE_SLOT 3 ; ... explosion for mothership
.alias INVBULLET1_SPRITE_SLOT 4 ; ... invader bullet 1
.alias INVBULLET2_SPRITE_SLOT 5 ; ... invader bullet 2
.alias INVBULLET3_SPRITE_SLOT 6 ; ... invader bullet 3
.alias PLAYER_STARTX 38 ; player starting and movement limits
.alias PLAYER_STARTY 220 ; ...
.alias PLAYER_LEFT_LIMIT 4 ; ...
.alias PLAYER_RIGHT_LIMIT 73 ; ...
.alias INV_MODE_STARTUP 0 ; invader states - startup
.alias INV_MODE_WALKLEFT 1 ; invaders move left
.alias INV_MODE_WALKRIGHT 2 ; invaders move right
.alias INV_MODE_WALKDOWN 3 ; invaders move down
.alias INV_MODE_INVADED 4 ; invaders won!!
.alias INV_STATE_DEAD 0 ; indivual invader state - dead
.alias INV_STATE_ACTIVE 1 ; active
.alias INV_STATE_REMOVE 2 ; killed, awaiting to be removed
.alias ONE_HALF_SEC_DELAY 50 ; used for delay ... Err, change value so less!
;-------------------------------------------------------------------------------
; Constants used within SpriteController
;-------------------------------------------------------------------------------
.alias TOTAL_SPRITES 8 ; total sprite - PLEASE remember to recalc the total_sprite_space
.alias SIZEOF_SPRITE_BLOCK 16 ; see above ...
.alias TOTAL_ACTIVE_SPRITES 8 ; toal active sprites - PLEASE remember to adjust the slots in memory
.alias TOTAL_SPRITE_SPACE 128 ; TOTAL_SPRITES*SIZEOF_SPRITE_BLOCK
.alias SPRBLK_X 0 ; sprite block data - sprite x position
.alias SPRBLK_Y 1 ; y position
.alias SPRBLK_FRAME 2 ; frame (sprite)
.alias SPRBLK_CTRL 3 ; ctrl function - if non-zero, called every draw
.alias SPRBLK_CTRL1 4 ; ...
.alias SPRBLK_XOFFSET 5 ; internal sprite drawer xoffset
.alias SPRBLK_SCREENADD 6 ; internal sprite drawer screen address
.alias SPRBLK_SCREENADD2 7 ; ...
.alias SPRBLK_WIDTH 8 ; sprite width ( in 2pixel steps )
.alias SPRBLK_HEIGHT 9 ; sprite height
.alias SPRBLK_FLAG 10 ; sprite flags for drawing etc - see below
.alias SPRBLK_SPRDATA 11 ; internal sprite drawer - gfx data
.alias SPRBLK_SPRDATA2 12 ; ...
.alias SPRBLK_SCRBACK 13 ; internal sprite drawer - backup for screen address
.alias SPRBLK_SCRBACK2 14 ; ...
.alias SPRBLK_XOFFBACK 15 ; internal sprite drawer - backup for xoffset
.alias SPRDATA_WIDTH 0 ; sprite data defines
.alias SPRDATA_HEIGHT 1
; flags for the sprite system ...
.alias SPRFLAG_DISABLED $00 ; not bit flag - if whole byte zero - disabled
.alias SPRFLAG_ACTIVE $01 ; bit 01 - sprite Active...
.alias SPRFLAG_DISPLAYED $02 ; bit 02 - sprite in display list...
.alias SPRFLAG_REDRAW $04 ; bit 03 - sprite needs redrawing...
.alias SPRFLAG_KILL $08 ; bit 04 - makrs the sprite to be removed from active list
.alias SPRFLAG_NOT_REDRAW $fb ; NOT bit 03 - sprite needs redrawing...
;-------------------------------------------------------------------------------
; End of Constants
;-------------------------------------------------------------------------------