revolution-x/GXRAM.ASM

322 lines
10 KiB
NASM
Raw Permalink Blame History

This file contains invisible Unicode characters!

This file contains invisible Unicode characters that may be processed differently from what appears below. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to reveal hidden characters.

.FILE "GXRAM.ASM"
.TITLE "<<< GENERATION X -- RAM DEFINITIONS >>>"
.WIDTH 132
.OPTION B,D,L,T
.MNOLIST
**************************************************************************
* *
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
* ALL RIGHTS RESERVED. *
* *
**************************************************************************
.INCLUDE "GX.INC"
.INCLUDE "GXSCRL.H"
*IN THIS MODULE
.DEF DISPATCH_TABLE
.DEF WAVE_MUSIC, COLRTEMP, WDIFF_RAM_ST, WDIFF_RAM_END
.DEF GDIFF_RAM_ST, GDIFF_RAM_END, BTIME, SEC_FLAG
.DEF COUNTER_COPY, A2D_COPY
.DEF FOREGROUND,BUS_ATTEMPTS
.DEF WAVE_SUB, WAVE_PORTAL_TBL
.DEF SPLAYER_NUM, SPLAYER_COL, WAVE_INTRO, WAVE_EXIT
.DEF BONUS_WAVE, BONUS_TIME, P1POTVALS, P2POTVALS, P3POTVALS
.DEF RAM_CAL_START, RAM_CAL_END
.DEF P1_CAL_UL, P1_CAL_LR, P1_QUADS, P1_MULTS
.DEF P2_CAL_UL, P2_CAL_LR, P2_QUADS, P2_MULTS
.DEF P3_CAL_UL, P3_CAL_LR, P3_QUADS, P3_MULTS
.DEF ENEMY_COUNTS, ENEMIES_LEFT, ENEMY_QUOTA, POWERUP_DURATION
.DEF LAST_PRAISE, ARNOLD_SPEAK
.DEF ENEMIES_TOTAL, ENEMIES_P1, ENEMIES_P2, ENEMIES_P3
.DEF ENEMY_BONUS_ST, ENEMY_BONUS_END, HOLD_ENEMY_DISPATCH
.DEF DMACFIGCOPY, BUYIN_SECS, GUNS_OFF, IN_MAKE_DECISION
.DEF BUYIN_NOFADE, WINGS_STEVEN, WINGS_JOE, WINGS_TOM, WINGS_BRAD
.DEF WINGS_JOEY, KISSING_KERRI
.DEF ENEMY_HITALL, BONUS_DIRECTION, BONUS_ONCE, BUYIN_RESETS
.DEF ENERGY_SHIFT, BASE_HIT, BOSS_DIFF, SOCRATES, NUM_SPEARS
.DEF NUM_NSTARS, SHIELD_AWARDS, ENERGY_AWARDS, SUPERGUN_AWARDS
.DEF LAZER_AWARDS, VIOLENCE_LEVEL, DO_CREDITS, LAB_RAT
.DEF VALIDATOR, T2_KIT
.EVEN
.BSS DMACFIGCOPY,32 ;RAM COPY OF DMACONFIG REGISTER
.BSS RAMTEMP1,32 ;TEMP STORAGE FOR ANYONE
.BSS RAMTEMP2,32 ;MORE TEMP STORAGE FOR ANYONE
.BSS RAMTEMP3,32 ;YES, EVEN MORE TEMP STORAGE FOR ANYONE
.BSS RAMTEMP4,32 ;WAIT, WE'LL HAVE EVEN MORE TEMP STORAGE
.BSS RAND,32
.BSS SWSTACK,32 ;SWITCH STACK
.BSS SWTEMP1,32 ;SWITCH TIMING STORAGE FOR SWITCH
.BSS SWTEMP2,32
.BSS SW2TEMP1,32 ;SWITCH TIMING STORAGE FOR SWITCH2
.BSS SW2TEMP2,32
.BSS SWSTMN,256 ;BOTTOM OF STACK
.BSS SWSTST,0 ;START SWITCH STACK
.BSS SYSCOPY,16 ;RAM COPY OF SYSCTRL LATCH
.BSS NOAUTOE,16 ;TURN AUTO ERASE OFF FOR DEBUG
.BSS PAGE,16 ;CURRENT GRAPHICS PAGE # (0-1)
.BSS PAGEADDR,32 ;CURRENT GRAPHICS PAGE ADDRESS
.BSS CPULOW,16 ;LOWEST CPU TIME LEFT
.BSS CPUHI,16 ;HIGHEST CPU TIME LEFT
.BSS CPULEFT,16 ;CPU TIME LEFT
.BSS CPUAVG,16 ;AVERAGE CPU TIME LEFT
.BSS TIKCT,16 ;
.BSS SKIPDISP,16 ;USED TO SKIP THE DISPLAY PROCESSING
.BSS NOPGFLIP,16 ;IF <> 0, THEN NO PAGE FLIPPING, FORCE TO 0
.BSS COUNTER_COPY,16 ;CURRENT COPY OF THE COIN COUNTER LATCH
.BSS SOUND_COPY,16 ;CURRENT COPY OF SOUND LATCH
.BSS A2D_COPY,16 ;CURRENT COPY OF THE A/D LATCH
.BSS INTSYNC0,16 ;HALF SCREEN INTERRUPT SYNCHRO.\ __ KEEP THESE
.BSS INTSYNC1,16 ;FULL SCREEN INTERRUPT SYNCHRO./ TOGETHER.
.BSS PALRAM,0 ;PALETTE ALLOCATOR RAM
.BSS FPALRAM,PALRSIZ*NMFPAL
.BSS BPALRAM,PALRSIZ*NMBPAL
**** .BSS PTRRAM,PTRSIZ*NUMPTR
.BSS COLRTEMP,16*16 ;RAM COPY OF CYCLING COLORS
.BSS COLRTEND,0 ;MARKER
.BSS NewAECol,32 ;DESIRED AUTO-ERASE COLOR
.BSS OldAECol,32 ;CURRENT AUTO-ERASE COLOR
.BSS NewGNDCol,32 ;DESIRED AUTO-ERASE COLOR for Ground
.BSS OldGNDCol,32 ;CURRENT AUTO-ERASE COLOR for Ground
.BSS SKYCOLOR,16 ;CURRENT FULL BRIGHTNESS SKY COLOR VALUE
.BSS GROUNDCOLOR,16 ;CURRENT FULL BRIGHT GROUND COLOR VALUE
.BSS IRQSKYE,16 ;ACTUAL SKY COLOR (AUTOERASE)
.BSS IRQGNDE,16 ;ACTUAL GROUND COLOR (AUTOERASE)
.BSS P1DATA,PDSIZE ;PLAYER ONE DATA
.BSS P2DATA,PDSIZE ;PLAYER TWO DATA
.BSS P3DATA,PDSIZE ;PLAYER THREE DATA
.BSS P1POTVALS,32 ;PLAYER 1 POTENTIOMETER VALUES
.BSS P2POTVALS,32 ;PLAYER 2 POTENTIOMETER VALUES
.BSS P3POTVALS,32 ;PLAYER 3 POTENTIOMETER VALUES
.BSS RAM_CAL_START,0 ;RAM COPY OF CMOS CALIBRATION VALUES
.BSS P1_CAL_UL,32 ;USED AS A BUFFER DURING CALIBRATION
**** .BSS P1_CAL_CENT,32
.BSS P1_CAL_LR,32
.BSS P2_CAL_UL,32
**** .BSS P2_CAL_CENT,32
.BSS P2_CAL_LR,32
.BSS P3_CAL_UL,32
**** .BSS P3_CAL_CENT,32
.BSS P3_CAL_LR,32
.BSS RAM_CAL_END,0
***** KEEP THE FOLLOWING IN THE SAME, CHECK INITIALIZE_CALIBRATION
***** IF YOU CHANGE THE ORDER.
.BSS P1_QUADS,2*32 ;UL AND LOWER RIGHT COORDS OF P1 QUADRANTS
.BSS P2_QUADS,2*32 ;UL AND LOWER RIGHT COORDS OF P2 QUADRANTS
.BSS P3_QUADS,2*32 ;UL AND LOWER RIGHT COORDS OF P3 QUADRANTS
.BSS P1_MULTS,1*32 ;P1 WHOLE SCREEN MULTIPLIER
.BSS P2_MULTS,1*32 ;P2 WHOLE SCREEN MULTIPLIERS
.BSS P3_MULTS,1*32 ;P3 WHOLE SCREEN MULTIPLIERS
*****
*****
.BSS NPLAYERS,16 ;MAX # OF PLAYERS ALLOWED (BASE 0)
.BSS NO_MIRROR,16 ;IF = 1 GAME IS NOT VIEWED THROUGH A MIRROR
.BSS VALIDATOR,16 ;If 1, then bill validator is installed
.BSS T2_KIT,16 ;If 1, then this is a T2 retrofit
.BSS GAME_STATE,16 ;GAME STATE VARIABLE : 10 = INGAME
; 18 = ININTRO
; 1C = INBONUS
; 20 = INPLAY
; 30 = INAMODE
; 40 = INDIAG
.BSS VOLUME_SET,16 ;If = 1, then sound volume has been set
.BSS SUPRESS_PAGE_FLIP,16 ;If=1, then do not touch DPYST
.BSS OVERLOADED,16 ;If 1 then system is overloaded
*
*Game RAM -
* Anything from here thru GRAMEND is cleared at the start of each game.
*
.BSS GRAMSTRT,0 ;START OF GAME RAM
.BSS CURPLYRS,16 ;CURRENT NUMBER OF PLAYERS
.BSS WAVE,16 ;CURRENT WAVE NUMBER
.BSS SOUNDSUP,16 ;IF<>1 THEN NO SOUNDS SHALL BE MADE
.BSS GAMERASE,16 ;0 = NO AUTO-ERASE SCHEME
;1 = AUTO-ERASE, JUST PLAYFIELD
;2 = AUTO-ERASE, FIRST HALF OF SCREEN
;3 = AUTO-ERASE, WHOLE SCREEN
.BSS DIAG_DFLAG,16 ;IF<>0 DO DIAG DIRQ
.BSS BTIME,16 ;BUY IN TIMER
.BSS BUYNOW,16 ;BUY IN WINDOW IS UP
.BSS GDIFF_RAM_ST,0 ;START GAME DIFFICULTY RAM
.BSS ENERGY_SHIFT,16 ;Shift for grace energy
.BSS BASE_HIT,16 ;Base hit points per enemy hit
.BSS BOSS_DIFF,16 ;Boss monster difficulty flag
.BSS GDIFF_RAM_END,0 ;END GAME DIFFICULTY RAM
.BSS SPLAYER_NUM,16 ;PLAYER NUMBER THAT STARTED THIS GAME
.BSS SPLAYER_COL,16 ;PLAYER COLOR THAT STARTED THIS GAME
.bss BUS_ATTEMPTS,16 ; Times you have tried to destroy the bus
.BSS ENEMY_BONUS_ST,0 ;START OF ENEMY BONUSES
.BSS ENEMIES_TOTAL,16*N_ENEMIES ;TOTAL ENEMIES DISPATCHED
.BSS ENEMIES_P1,16*N_ENEMIES ;ENEMIES KILLED BY PLAYER 1
.BSS ENEMIES_P2,16*N_ENEMIES ;ENEMIES KILLED BY PLAYER 2
.BSS ENEMIES_P3,16*N_ENEMIES ;ENEMIES KILLED BY PLAYER 3
.BSS ENEMY_BONUS_END,0 ;END OF ENEMY BONUSES
.BSS WINGS_STEVEN,16 ;Flag for secret Steven pickup
.BSS WINGS_JOE,16 ;Flag for secret Joe pickup
.BSS WINGS_TOM,16 ;Flag for secret Tom pickup
.BSS WINGS_BRAD,16 ;Flag for secret Brad pickup
.BSS WINGS_JOEY,16 ;Flag for secret Joey pickup
.BSS BONUS_ONCE,16 ;Means Bonus screen has been seen once
.BSS BUYIN_RESETS,16 ;Number of remaining Buyin time resets allowed
.BSS VIOLENCE_LEVEL,16 ;Level of violence in game
.BSS DO_CREDITS,16 ;Says do the credits at the end
.BSS GRAMEND,0
*
*Wave RAM -
* Anything from here thru WRAMEND is cleared at the start of each wave.
*
.BSS WRAMSTRT,0 ;START OF WAVE RAM (CLEARED AT THE START)
.BSS WAVEDMABOG,32 ;ELAPSED WAVE DMA BOGS
.BSS WAVECPUBOG,32 ;ELAPSED WAVE CPU BOGS
.BSS WAVETIME,32 ;ELAPSED WAVE TIME
.BSS WAVEIRQS,32 ;ELAPSED WAVE DISPLAY INTERRUPTS
.BSS WAVEDISPS,16 ;ELAPSED WAVE DISPLAY PROCESSOR CALLS
.BSS WAVEVEL,16 ;ELAPSED WAVE VELADD CALLS
.BSS WAVE_MUSIC,32 ;MUSIC FOR THIS WAVE
.BSS WAVE_UNIV,32 ;WAVE PRIMARY BACKGROUND
.BSS WAVE_IPLANE,32 ;WAVE INFINITY BACKGROUND PLANE
.BSS WAVE_SCROLL,32 ;SCROLL ROUTINE FOR THIS WAVE
.BSS WAVE_SUB,32 ;NEXT SUB WAVE
.BSS WAVE_INTRO,32 ;INTRO FOR THIS WAVE
.BSS WAVE_EXIT,32 ;POST WAVE SHOW
.BSS WAVE_PAUSE,16 ;PAUSE AT END OF SUB WAVE
.BSS WAVE_WAIT,16 ;WAIT FOR SCROLLER AT END OF SUB WAVE
.bss WAVE_PORTAL_TBL,32 ;Table of scroll tables for each portal
.BSS FOREGROUND,32 ;PTR TO FOREGROUND TABLE FOR THIS WAVE
.BSS DISPATCH_TABLE,32 ;WAVE DISPATCH TABLE
.BSS OBJENEMIES,16 ;OBJECT ENEMY DISPATCH FLAGS
.BSS WDIFF_RAM_ST,0 ;START WAVE DIFFICULTY RAM
.BSS POWERUP_DURATION,16 ;TICKS THAT A POWERUP WILL STAY
.BSS WDIFF_RAM_END,0 ;END WAVE DIFFICULTY RAM
.BSS ENEMY_COUNTS,16*N_ENEMIES ;ACTIVE ENEMY COUNTER ARRAY
.BSS ENEMIES_LEFT,16*N_ENEMIES ;ENEMIES LEFT TO KILL ARRAY
.BSS ENEMY_QUOTA,16,1 ;IF <> 0, ENEMY QUOTA THIS WAVE COMPLETE
; 1 = NORMAL WAVE END
; 2 = QUICK WAVE END
.BSS PAUSE_GAME,16 ;IF <> 0, THEN PAUSE GAME PLAY
.BSS WAVE_OVER,16 ;IF <> 0, THEN THE WAVE HAS ENDED
.BSS BONUS_WAVE,16 ;IF <> 0, THIS IS SOME TYPE OF BONUS
.BSS BONUS_TIME,16 ;TIME FOR THIS BONUS WAVE
.BSS SUBWAVE,16 ;CURRENT SUB-WAVE LEVEL, 0 = TOP
.BSS PRAISE_FLAG,16 ;FLAG TO PRAISE THE PLAYER
.BSS ARNOLD_SPEAK,16 ;0 = ARNOLD MAY SPEAK NOW
.BSS HUP_OFF,16 ;HEADS UP DISPLAY OFF FLAG
.BSS DISPATCH_DELAY,16 ;TICKS BEFORE WE DISPATCH AGAIN
.BSS BOSS_PUNISH,16 ;IF <> 0 BOSS MONSTER IS OUT
.BSS GUN_ONE_SHOT,16 ;PUT PLAYER GUNS IN ONE-SHOT MODE
.BSS GUNS_OFF,16 ;Turn player guns off
.BSS BUYIN_SECS,16 ;Buyin seconds elapsed, last buyin
.BSS LAST_PRAISE,32 ;WAVE TIME OF LAST PLAYER PRAISE
.BSS MDec_RAM,MDec_Size*MDec_Num ;Decision point storage
.BSS IN_MAKE_DECISION,16 ;The decision buttons are up
.BSS HOLD_ENEMY_DISPATCH,16 ;Suspend any enemy dispatching
.BSS BUYIN_NOFADE,32 ;No fade table for buy-in effect
.BSS ENEMY_HITALL,16 ;ENEMIES HIT ALL PLAYERS
.BSS KISSING_KERRI,16 ;There is an active pop-up Kerri
.BSS BONUS_DIRECTION,16 ;Direction for bonus scroll in
;0=from top, 1=from bot, 2=from left
.BSS BLACKOUT,16 ;SET BACKPAL FLAG
.BSS SOCRATES,16 ;Tells us when we are in the crates
.BSS LAB_RAT,16 ;Tells us when we are in the R&D area
.bss NUM_SPEARS,16 ;how many spears out there?
.BSS NUM_NSTARS,16 ;How many stars out there
.BSS SHIELD_AWARDS,16 ;# of times Shields awarded this wave
.BSS ENERGY_AWARDS,16 ;# of times Energy awarded this wave
.BSS SUPERGUN_AWARDS,16 ;# of times Supergun awarded this wave
.BSS LAZER_AWARDS,16 ;# of times Lazer awarded this wave
; .BSS UNUSED_WORD,16 ;For alignment purposes
.BSS WRAMEND,0
.BSS SEC_FLAG,16 ;SECURITY FLAG
.IF NOTFINAL
.BSS INTADDR,32 ;FOR DEBUGGING, PTR TO INTERRUPTED PC (or 0)
.BSS LASTINT,32 ;LAST INTADDR
.ENDIF
.END