2017-07-29 21:47:17 +00:00
|
|
|
TEXTCOLOR = $e0c022
|
|
|
|
NEWVIDEO = $e0c029
|
|
|
|
BORDERCOLOR = $e0c034
|
|
|
|
CLOCKCTL = $e0c034
|
|
|
|
SHADOW = $e0c035
|
|
|
|
STACKCTL = $e0c068
|
|
|
|
KBD = $e0c000
|
|
|
|
KBDSTROBE = $e0c010
|
2017-07-28 22:11:25 +00:00
|
|
|
COUT = $fded
|
2017-08-13 22:36:12 +00:00
|
|
|
VRAM = $e12000
|
2017-10-19 19:59:24 +00:00
|
|
|
SHADOWVRAM = $012000
|
2017-09-30 00:53:05 +00:00
|
|
|
VRAMBANK = $e10000
|
2017-10-19 19:59:24 +00:00
|
|
|
SHADOWVRAMBANK = $010000
|
2017-10-02 00:36:09 +00:00
|
|
|
PRODOS = $bf00 ; MLI entry point
|
|
|
|
PRODOSRETURN = $300 ; Indirect jump to get back to ProDOS from any bank
|
2017-07-28 22:11:25 +00:00
|
|
|
|
|
|
|
; Zero page locations we use (unused by Monitor, Applesoft, or ProDOS)
|
|
|
|
PARAM0 = $06
|
|
|
|
PARAM1 = $07
|
|
|
|
PARAM2 = $08
|
|
|
|
PARAM3 = $09
|
|
|
|
PARAML0 = $06 ; 16-bit versions of params
|
|
|
|
PARAML1 = $08
|
|
|
|
SCRATCH0 = $19
|
|
|
|
SCRATCH1 = $1a
|
|
|
|
SCRATCHL = $19 ; 16-bit version of scratch
|
2017-09-13 13:53:40 +00:00
|
|
|
SCRATCHL2 = $67 ; Second 16-bit scratch
|
2017-07-30 18:54:37 +00:00
|
|
|
PARAM24 = $67 ; 24-bit param (This is almost certainly messing up AppleSoft, but meh)
|
2017-12-26 05:41:09 +00:00
|
|
|
CACHEPTR = $6A ; General purpose cache pointer (This is almost certainly messing up AppleSoft, but meh)
|
2018-01-06 23:30:06 +00:00
|
|
|
CACHEDATA = $6C ; General purpose cache data (This is almost certainly messing up AppleSoft, but meh)
|
2018-01-16 20:56:53 +00:00
|
|
|
leftScreenEdge = $6E ; Reserved for leftScreenEdge (This is almost certainly messing up AppleSoft, but meh)
|
2017-09-30 00:53:05 +00:00
|
|
|
STACKPTR = $70 ; Cache for stack pointer in fast graphics
|
2017-10-01 22:40:29 +00:00
|
|
|
SHADOWREGISTER = $72 ; Cache for shadow register in fast graphics
|
|
|
|
STACKREGISTER = $73 ; Cache for stack register in fast graphics
|
2018-01-19 02:15:42 +00:00
|
|
|
lastCompiledTerrainY = $75 ; The highest Y value that the compiled renderer must handle
|
|
|
|
|
2018-01-16 20:56:53 +00:00
|
|
|
|
|
|
|
|
|
|
|
; Terrain constants
|
|
|
|
TERRAINWIDTH = 640 ; In pixels
|
|
|
|
MAXTERRAINHEIGHT = 100 ; In pixels
|
2018-03-05 20:32:05 +00:00
|
|
|
COMPILEDTERRAINROW = TERRAINWIDTH/4+4 ; In words, +4 to make room for clipping jump at end of row
|
2018-01-16 20:56:53 +00:00
|
|
|
VISIBLETERRAINWIDTH = TERRAINWIDTH/4 ; In words- width minus jump return padding
|
|
|
|
VISIBLETERRAINWINDOW = 80 ; In words
|
|
|
|
MAXSPANSPERROW = 15
|
|
|
|
SPANROWBYTES = MAXSPANSPERROW*2 + 2 ; In bytes
|
2018-03-05 20:32:05 +00:00
|
|
|
CLIPPEDTERRAINSTACK = $3fff ; Location of stack where clipped terrain data lives
|
2018-01-16 20:56:53 +00:00
|
|
|
|
|
|
|
; Terrain data, stored as height values 2 pixels wide (bytes)
|
|
|
|
terrainDataFar = $02f500
|
|
|
|
terrainData = $f500
|
|
|
|
; .repeat TERRAINWIDTH/2
|
|
|
|
; .word 0
|
|
|
|
; .endrepeat
|
|
|
|
terrainDataEnd = terrainData + (TERRAINWIDTH/2 * 2)
|
2018-12-22 18:41:12 +00:00
|
|
|
|
|
|
|
|
|
|
|
; projectileData struct offsets
|
|
|
|
JD_PRECISEX = 132
|
|
|
|
JD_PRECISEY = 134
|
|
|
|
JD_VX = 136
|
|
|
|
JD_VY = 138
|
|
|
|
JD_TYPE = 140
|
|
|
|
JD_NEW = 142
|
2018-12-27 00:10:25 +00:00
|
|
|
JD_STATIC = 144
|
2018-12-29 18:33:08 +00:00
|
|
|
JD_OWNER = 146
|
|
|
|
JD_FACING = 148
|
2018-12-30 00:13:03 +00:00
|
|
|
JD_SCRATCH = 150
|
2018-12-30 00:45:40 +00:00
|
|
|
JD_AGE = 152
|
2018-12-22 18:41:12 +00:00
|
|
|
|
2018-12-24 00:39:22 +00:00
|
|
|
MAXPROJECTILES = 3
|
|
|
|
|