1993 lines
65 KiB
Plaintext
1993 lines
65 KiB
Plaintext
**************************************************************************
|
||
* *
|
||
* SYSTEM "ASSEMBLY TIME" CONDITIONALS *
|
||
* *
|
||
**************************************************************************
|
||
WARREN equ 0 ; Only One of these should be 1
|
||
BILL equ 0 ; If NONE are 1, then final game choices are used
|
||
GEORGE equ 0
|
||
NOBODY equ 1 ; for running the game
|
||
|
||
|
||
.if WARREN+BILL+GEORGE+NOBODY != 1
|
||
|
||
DIS AIN'T RIGHT!!!
|
||
|
||
.endif
|
||
|
||
DEBUG EQU 1 ;THIS VERSION IS CURRENTLY UNDER CONSTRUCTION
|
||
;DEBUG EQU 0 ;ADD THIS BEFORE RELEASE!!!!!
|
||
|
||
CENTER_SCREEN EQU 1 ;FLAG TO CENTER PAGES HORIZONTALLY IN BITMAP
|
||
;CENTER_SCREEN EQU 0
|
||
|
||
GERMAN EQU 0 ;ENGLISH RELEASE
|
||
;GERMAN EQU 1 ;GERMAN RELEASE
|
||
|
||
NOTFINAL EQU 1 ;IF = 1, NOT PRODUCTION QUALITY PROGRAM
|
||
;NOTFINAL EQU 0 ;ADD THIS BEFORE RELEASE!!!!!
|
||
|
||
PRINTER EQU 0 ; IF 1, THERE IS A PRINTER HOOKED TO SOUND PORT
|
||
|
||
YUNIT EQU 1 ;IF 1, THIS VERSION IS FOR THE Y-UNIT AT 6 BITS/PIXEL
|
||
|
||
TUNIT EQU 1 ;WE GOTS THE T-UNIT NOW!
|
||
|
||
IMGBGND EQU 0 ;SET TO 1 TO PUT BGNDTBLS IN IMAGE MEMORY
|
||
|
||
FORCEFREE EQU 1 ;1 = GAME HARDWIRED FREE
|
||
NO_DEATH EQU 0 ;1 = Player's will never die
|
||
FULLPRICE EQU 1 ;1 = ALL THE PRICINGS ARE INCLUDED
|
||
|
||
NTSC EQU 0 ;IF 1, THEN SET THE VIDEO TO NTSC COMPATIBLE
|
||
|
||
USING_UART EQU 1 ;Using UART for sound communication
|
||
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GENERATION X - DISPLAY EQUATE FILE *
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
BOGUS_SCL .set [800h,800h] ; bogus scale to fool SCALE_MAMA
|
||
|
||
|
||
WIDESCREEN .EQU 0 ;SET SCREEN 512 PIX INSTEAD OF 400
|
||
|
||
MAX_UNI .set 5 ; maximum number of universes which can be stacked
|
||
|
||
; LINKED LIST LAYOUT
|
||
|
||
MAP_IMG .EQU 0 ; low order bits determine whether
|
||
; this is img (0x0), seq (0x1), damage (1xx)
|
||
; or delayed seq (x1x), use MAP_SPAREL1 (1xxx)
|
||
MAP_X .EQU 20h ; Universe position
|
||
MAP_Y .EQU 40h
|
||
MAP_Z .EQU 60h
|
||
MAP_FLAGS .EQU 80h ; see below
|
||
MAP_ID .equ 90h
|
||
MAP_OBJ .EQU 0a0h ; if hi bit set, obj not created (lo 4 bits = damage count)
|
||
MAP_PREV .EQU 0c0h ; for list sorted in Z
|
||
MAP_NEXT .EQU 0e0h ; for list sorted in Z
|
||
MAP_SPAREL1 .equ 100h
|
||
|
||
BLOCK_SIZE .EQU 120h ;RAM BLOCK SIZE
|
||
|
||
|
||
B_IF_LAST .SET 3
|
||
B_IF_DAM .set 2
|
||
B_IF_DANIM .set 1
|
||
B_IF_SEQ .set 0
|
||
|
||
M_IF_LAST .SET 8
|
||
M_IF_DAM .set 4
|
||
M_IF_DANIM .set 2
|
||
M_IF_SEQ .set 1
|
||
|
||
|
||
**** MAP_FLAGS LAYOUT
|
||
*
|
||
* 15 14 13 12 11 10-6 5 4 3 2 1 0
|
||
* ENEMY/NOVEC/PORTAL/NOPXSCN/ONEUSE/OIDTYP/FLIPH/FLIPV/GRND/BLK/DBLSCL/NOSCALE
|
||
*
|
||
****
|
||
; NOTE: NOPXSCN, DBLSCL and NOSCALE are transferred directly to OFLAGS
|
||
|
||
|
||
;DON'T CHANGE "B_BF_ENEMY" OKAY! -dozer
|
||
B_BF_ENEMY EQU 15
|
||
B_BF_NOVECT EQU 14
|
||
B_BF_PORTAL EQU 13
|
||
B_BF_ONEUSE EQU 11
|
||
|
||
B_BF_ID EQU 6 ; local ID for univ piece
|
||
|
||
B_BF_GROUND EQU 3
|
||
B_BF_BLOCK EQU 2
|
||
|
||
M_BF_ENEMY EQU 08000H
|
||
M_BF_NOVECT EQU 04000H
|
||
M_BF_PORTAL EQU 02000H
|
||
M_BF_NOPXSCN EQU 01000H
|
||
M_BF_ONEUSE EQU 0800H
|
||
|
||
M_BF_ID EQU 007C0H ; local ID for univ piece
|
||
|
||
M_BF_GROUND EQU 00008H
|
||
M_BF_BLOCK EQU 00004H
|
||
|
||
PU_ZPORTAL .set 0
|
||
PU_BGHEAD .set 20h
|
||
PU_YBASE .set 40h
|
||
PU_XBASE .set 60h
|
||
PU_YWORLD .set 80h
|
||
PU_ZBASE .set 0a0h
|
||
PU_YHALF .set 0c0h
|
||
PU_ZFAR .set 0e0h
|
||
PU_SKYCOL .set 100h
|
||
PU_GNDCOL .set 110h
|
||
PU_XPORTAL .set 120h
|
||
PU_YPORTAL .set 140h
|
||
PU_XSACCEL .set 160h
|
||
PU_YSACCEL .set 180h
|
||
PU_ZSACCEL .set 1a0h
|
||
PU_XSCROLL .set 1c0h
|
||
PU_YSCROLL .set 1e0h
|
||
PU_ZSCROLL .set 200h
|
||
PU_YOFF .set 220h
|
||
PU_ZOFF .set 240h
|
||
|
||
UNIV_STK_SIZ .set 260h
|
||
|
||
|
||
*********************************************
|
||
* MultiMake Option Flags *
|
||
*********************************************
|
||
OM_GUNV .set 1 ; A Gunvector follows (OBJECT)
|
||
OM_COLL .set 2 ; A Collision vector follows (OBJECT, WHOLE)
|
||
OM_ANIM .set 4 ; An animation script follows (OBJECT)
|
||
OM_CFUNC .set 8 ; A creation function follows (OBJECT)
|
||
OM_POS .set 10h ; A position is supplied (WHOLE)
|
||
OM_WPOS .set 30h ; it's a world position (WHOLE)
|
||
OM_SPOS .set 50h ; it's a screen position (WHOLE)
|
||
OM_GRND .set 80h ; the world position is relative to ground.
|
||
OM_OID .set 100h ; An OID follows (OBJECT)
|
||
OM_DUMCOLL .set 200h ; Use DUMCOLL as default (instead of 0)
|
||
OM_PRVANIM .set 400h ; Use the previously set Animation Script
|
||
OM_INSERT .set 800h ; call INSERT_OBJ upon completion
|
||
OM_OPARTS .set 1000h ; Supply an OPARTSX and Y for this object.
|
||
OM_PRVGUNV .set 2000h ; Use the previously set Gun Vector.
|
||
|
||
*
|
||
* ROADFLG defines !!! ADDED 8/24/92
|
||
*
|
||
RD_INCURV .set 40h
|
||
RD_INHILL .set 80h
|
||
RD_INFORK .set 20h
|
||
RD_INGRSH .set 10h
|
||
RD_FRK_LFT .set 2 ; left exit ramp
|
||
RD_FRK_RT .set 1 ; right exit ramp
|
||
RD_FRK_BOTH .set 3 ; fork both left and right
|
||
RD_B_FRKLFT .set 1
|
||
RD_B_FRKRT .set 0
|
||
|
||
RD_B_INCURV .set 6
|
||
RD_B_INHILL .set 7
|
||
RD_B_INFORK .set 5
|
||
RD_B_INGRSH .set 4
|
||
|
||
|
||
SCRTOP EQU 0 ;set to line after static top area
|
||
SCRBOT EQU 253
|
||
SCRLFT EQU 0
|
||
|
||
.IF WIDESCREEN
|
||
SCRRGT EQU 511
|
||
.ELSE
|
||
SCRRGT EQU 399
|
||
.ENDIF
|
||
|
||
SCALE_1TO1 .EQU 01000100H ;1 TO 1 SCALE FOR DMA.
|
||
|
||
CIRC_MASK .set 100bff0h ; for ROADX and ROADY
|
||
ROADOFFX .set 1000000h ; 1K circular word buffer
|
||
ROADOFFY .set 1008000h ; 1K circular word buffer
|
||
|
||
DEFAULT_WXBUFFER .EQU 56*08000H ;DEFAULT WORLD X BUFFER FOR UNIVERSE CHECK
|
||
DEFAULT_WYBUFFER .EQU 56*08000H ;DEFAULT WORLD Y BUFFER FOR UNIVERSE CHECK
|
||
|
||
.IF WIDESCREEN
|
||
HALFX .EQU 255 ;3-D TRANSLATION X-OFFSET
|
||
.ELSE
|
||
HALFX .EQU 199 ;3-D TRANSLATION X-OFFSET
|
||
.ENDIF
|
||
|
||
ZMAX .EQU 005800H ;Z of bottom line of road
|
||
;ZMAX_REAL .EQU 004000H ;Closest Z allowed
|
||
ZMAX_REAL .EQU 003200H ;Closest Z allowed
|
||
ZMAX_KLUDGE .EQU ZMAX_REAL-0800H ;ACTUAL CLOSEST Z ALLOWED
|
||
|
||
Z2INDX .equ 9 ; bits to shift to turn ZPOS into table index
|
||
Z2SCALE .equ 7 ; bits to shift to turn ZPOS into scale
|
||
ZFRAC .equ 6 ; bits to shift to get from Hires Z to norm Z
|
||
|
||
LEFT_WORLDX EQU (SCRLFT-HALFX)*ZMAX_REAL ;SCREEN X=0 @ Z=ZMAX_REAL
|
||
RGHT_WORLDX EQU -LEFT_WORLDX
|
||
|
||
SLL_SHADOW .EQU 2 ;Additional Y shrink for shadows
|
||
|
||
SIZYMINTBL .set 200h ; for hills
|
||
|
||
*VARS
|
||
.GLOBL FGLIST, BGLISTS, OFREE, ENDOFREE, ANIOBJS, ANIFUNCS
|
||
.GLOBL BGPLANECT, OFREECNT, OBJSTR
|
||
.GLOBL SCRNTL, SCRNBR
|
||
.GLOBL DMAQCUR, DMAQ, QDMAFLG
|
||
.GLOBL DISPLAYON, DMAIQSTR
|
||
.GLOBAL SUPPLSTS, SUPPLSTSX
|
||
|
||
*FUNCS ******* UPDATE DISP.DOC WITH NEW FUNCTIONS !!!!!! ********************
|
||
.GLOBL DMAINT, DISPNEXT_FG, CLRDMAQ
|
||
.GLOBL ANIMP, ANI, ANINP
|
||
.GLOBL GET_SCALED_SIZE
|
||
.GLOBL SETANIOF0, SETANIOF, SETOPARTSXY, SET_OPARTSXY, MATCHOPARTSXY
|
||
.GLOBL DISPLAY, QDMA, QDMAN, QDMA2, QDMAN2, YZSORT
|
||
.GLOBL FINDOID
|
||
.GLOBL OINIT, CkOFREE, IsAnObj, GETOBJ
|
||
.GLOBL INSBOBJ, REINSBOBJ
|
||
.GLOBL INSERT_OBJ, INSOBJ, INSERT_ON_OBJ, PULL_OBJ, PULLOBJ
|
||
.GLOBL DELETE_OBJ, ZAP_OBJ
|
||
.GLOBL DELOBJ, FREEOBJ, FREEGOBJ, ZAPOBJ
|
||
.GLOBL DELSHAD, PULLSHAD, GET_SHAD
|
||
.GLOBL FPSTFOBJ0, STFOBJ0, MULTIMAKE, CREATE_OBJ
|
||
.GLOBL C_GETPRC, C_ANIM, C_STRTANIM
|
||
.GLOBL CNTRANIP, GETANIXY, GETANIXYL
|
||
.GLOBL GETANIXL, GETANIX, GETANIYL, GETANIY
|
||
.GLOBL GETANIP, GET_ANIP, SETANIP, SET_ANIP, MATCHANIP
|
||
.GLOBL GETOFFP, GET_OFFP, SETOFFP, SET_OFFP, MATCHOFFP
|
||
.GLOBL SET_ANIXP, SET_ANIYP, SetOnGrnd
|
||
.GLOBL SETOBJS, SET_OBJS, SET_FLPS, TOGGLE_FLPS, SET_FLIP, TOGGLE_FLIP
|
||
.GLOBL INITPART, CNTMPART, INSPART, CkMPART1, CkMPART
|
||
.GLOBL PULL_PART, PULLPART, PULL_PART1, FINDPART
|
||
.GLOBL GANIOF, GARBOF, SetArbP
|
||
.GLOBL STFANIM, STRTANIM, STRT_ANIM, INSANIM, CKINSANI
|
||
.GLOBL PULL_ANIM, PULLANIM, CkAnim, OnAnim, CKPULLANIM
|
||
.GLOBL GETSUPP, GET_SUPP, INSSUPP, INSERT_SUPP, PULLSUPP, PULL_SUPP
|
||
.GLOBL CNTSUPP
|
||
.GLOBL OBJ_OFF, OBJ_ON, IS_OBJ_OFF, SCREXP32, COPY_OBJ, OBJON, OBJ_CONST
|
||
.GLOBAL CLEAR_OPLINKS, STOPOBJS, OBJ_TO_PNT
|
||
.GLOBAL STORE_ZVAL, STORE_ZVALH, KILOBJ, KILOBJ_ALL, SCRTST
|
||
.GLOBAL EXISTOBJ, OBJTOPNT, STOPOBJS, CLR_VEL, STOPOBJ, CLRVEL, EXISTOBJ_ALL
|
||
.GLOBAL GET_ANIP_SCRNREL, GET_SCRNREL, MAKE_SCRNREL
|
||
.GLOBAL MAKE_WORLDREL, MAKEWORLDREL, PNT_WORLDREL, GETANIP_SCRNREL
|
||
.GLOBAL A_GOTO, GETAFARG_WORD, GETAFARG_LONG
|
||
.GLOBAL CLR_ODATA, SET_ONGRND, DIST_FROM_GROUND, CREATE_COPY
|
||
.GLOBAL PULL_ANIM_ALL, PULL_ANIM_MULTI
|
||
.GLOBAL A_AnimScr, A_AnimFrm, A_AnimGo
|
||
.GLOBAL CLRODATA, GET_HEAD_PART, ADD_OFF2ANIP
|
||
.GLOBAL A_CHANGE_OID, CHANGE_OID, CHANGE_OIDS
|
||
.GLOBAL A_CLR_GUNVECT, GET_HEAD_PART_A0, OBJOFF, CHANGEOID
|
||
.GLOBAL STOREZVAL, COUNT_HEADS, FIND_HEAD
|
||
.GLOBAL OBJ_OFF_MULTI, OBJ_ON_MULTI
|
||
.GLOBAL OBJECTS_ON, OBJECTS_OFF
|
||
.GLOBAL SET_OPLANE, STOREOPLANE, STORE_OPLANE, INSPLANE
|
||
.GLOBAL GET_BPLANE, SETPLANE_BB, OBJWNZ, OBJ_WNZ, OBJ_ON_WNZ
|
||
;GNP start 3/2/1994
|
||
.GLOBAL DELETE_SHADOW, CLEAR_ANIMS
|
||
;GNP end 3/2/1994
|
||
|
||
***CONSTANTS
|
||
MAXPLANES EQU 15
|
||
|
||
|
||
*EQUATES FOR SCORE AREA
|
||
SKYTOPOF .EQU 32
|
||
SCORDPYS .EQU 0FFFFFEDCH ;DPYSTRT VALUE FOR HIDING THE SCORE
|
||
SCORE_HEIGHT .EQU SKYTOPOF ;HEIGHT OF SCORE AREA
|
||
|
||
SCRNST .EQU [SCRTOP+SCORE_HEIGHT,SCRLFT] ;TOP LEFT W/SCORE AREA
|
||
SCRNST_FULL .EQU [SCRTOP,SCRLFT] ;TOP LEFT WITH NO SCORE AREA
|
||
SCRNEND .EQU [SCRBOT,SCRRGT] ;BOT RIGHT OF SCREEN (for SCRNBR, clipper)
|
||
SCRWIDTH .EQU SCRRGT-SCRLFT+1
|
||
SCRHGHT .EQU SCRBOT-SCRTOP+1
|
||
SCRNMID .EQU [(SCRBOT+SCRTOP+1)/2,(SCRRGT+SCRLFT+1)/2] ;MIDPOINT OF SCREEN
|
||
SCRNXMID .EQU (SCRRGT+SCRLFT+1)/2
|
||
SCRNYMID .EQU (SCRBOT+SCRTOP+1)/2
|
||
|
||
*
|
||
*NEW OBJECT BLOCK INITIALIZATION TABLE
|
||
NEWIIMG .EQU 0
|
||
NEWICVEC .EQU 20H
|
||
NEWIOID .EQU 40H
|
||
NEWIFLAG .EQU 50H
|
||
NEWIFLAG2 .EQU 60H
|
||
NEWICFUNC .EQU 70H
|
||
|
||
SHADID .EQU 00FFFH ;SHADOWS ARE HIGH PRI
|
||
|
||
;* PLANE TABLE STRUCT
|
||
*STRUCT PLANE
|
||
P_LSTHD EQU 0 ;UHL ptr to head of OBJECT LIST
|
||
P_LSTTL EQU 020H ;UHL ptr to tail of OBJECT LIST
|
||
P_XPOS EQU 040H ;UHL World Top Left X of OBJECT LIST
|
||
P_YPOS EQU 060H ;UHL World Top Left Y
|
||
P_XYOFF EQU 080H ;UHL Y:X integer temporary offset for shaking
|
||
P_XRATE EQU 0A0H ;UHL SCROLLX multiplier for plane
|
||
P_FLAGS EQU 0C0H ;UHW Flag bits for plane
|
||
*ENDSTRUCT
|
||
PLNSIZ EQU 0D0H ;size of PLANE STRUCTURE
|
||
|
||
P_M_NOSHAKE EQU 1 ;NO SHAKE THIS PLANE..
|
||
P_B_NOSHAKE EQU 0
|
||
|
||
;**** LSTHD, LSTTL offsets above must match OLINK, OBLINK offset of OBJ ****
|
||
|
||
;*OBJECT BLOCK LAYOUT
|
||
*STRUCT OBJ
|
||
OLINK EQU 00H ;UHL Link to next object block
|
||
OBLINK EQU 020H ;UHL Back Link to previous obj
|
||
OSLINK EQU 040H ;UHL Supplemental lists (OID class)
|
||
OSHAD EQU 060H ;UHL ptr to shadow
|
||
OPLINK EQU 080H ;UHL Link to controlling process
|
||
OCVECT EQU 0A0H ;UHL vector to collision table
|
||
OGUNVECT EQU 0C0H ;UHL vector to gun collision handler
|
||
OPART1 EQU 0E0H ;UHL ptr to head of multi-part obj
|
||
OPARTS EQU 0100H ;UHL linked list of multi-parts
|
||
OZVEL EQU 0120H ;SHL Z VELOCITY
|
||
OXVEL EQU 0140H ;SHL X VELOCITY
|
||
OYVEL EQU 0160H ;SHL Y VELOCITY
|
||
OXVAL EQU 0180H ;SHL BIT X POSITION
|
||
OXFRAC EQU 0180H ; Fractional portion of X position
|
||
OXPOS EQU 0190H ; Integer portion of X position
|
||
OYVAL EQU 01A0H ;SHL BIT Y POSITION
|
||
OYFRAC EQU 01A0H ; Fractional portion of Y position
|
||
OYPOS EQU 01B0H ; Integer portion of Y position
|
||
OZVAL EQU 01C0H ;SHL Z POSITION
|
||
OZFRAC EQU 01C0H ; Fractional portion of Z position
|
||
OZPOS EQU 01D0H ; INTEGER Z position of object
|
||
OPARTSXY EQU 01E0H ;UHL multi part position offset
|
||
; ----> OANIOFF IS SCALED
|
||
OANIOFF EQU 0200H ;UHL ADJUSTED ANIMATION OFFSET
|
||
OANIOFFX EQU 0200H ; X ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OANIOFFY EQU 0210H ; Y ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
; From OFSET to OSCALE, DO NOT CHANGE ORDER!
|
||
; (used for mass register input to clip loop)
|
||
OFSET EQU 0220H ;UHW PRECOMPUTED OFFSET
|
||
OCTRL EQU 0230h ;UHW DMA #2 CONTROL WORD
|
||
OSAG EQU 0240H ;UHL SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS)
|
||
ODAG EQU 0260h ;UHL Screen Pos (saved as intermediate step in DISPLAY! NEW)
|
||
ODAGX EQU 0260H
|
||
ODAGY EQU 0270H
|
||
OUSIZE EQU 0280h ;UHL DMA #2 UNSCALED SIZE
|
||
OUSIZEX EQU 0280h ; X-SIZE
|
||
OUSIZEY EQU 0290h ; Y-SIZE
|
||
; ----> OSIZE IS SCALED
|
||
OSIZE EQU 02a0H ;UHL H,W OF OBJECT (16,16) W=ADJUSTED FOR MORSEL
|
||
OSIZEX EQU 02a0H ; X SIZE
|
||
OSIZEY EQU 02b0H ; Y SIZE
|
||
OPAL EQU 02c0H ;UHW B(0-15) PALETTE; B(16-31) CONSTANT COLOR
|
||
OCONST EQU 02d0H ; CONSTANT COLOR
|
||
OSCALE EQU 02e0h ;UHL DMA #2 SCALE
|
||
OSCALEX EQU 02e0h ; X-SCALE
|
||
OSCALEY EQU 02f0h ; Y-SCALE
|
||
OIMG EQU 0300H ;UHL Pointer to image data table
|
||
ONuManScl EQU 0320H ;UHW New scale for manually scaled imgs
|
||
;OTIME EQU 0320H ;UHW TIME of creation
|
||
OYACCEL EQU 0330H ;UHW just the fraction for Grav
|
||
OGRNDOFF EQU 0340H ;SHL WORLD Y OFFSET
|
||
OZDEPTH EQU 0360H ;UHL OBJECT'S Z DEPTH [FRONT DEPTH, REAR DEPTH]
|
||
OZREAR EQU 0360H ;UHW REAR Z DEPTH
|
||
OZFRNT EQU 0370H ;UHW FRONT Z DEPTH
|
||
OVAR1 EQU 0380H ;UHL # OVARS scratch space for system routines
|
||
OVAR2 EQU 03a0H ;UHL #
|
||
OVAR3 EQU 03c0H ;UHL #used by
|
||
OVAR4 EQU 03e0H ;UHL # ANIM
|
||
OVAR5 EQU 0400H ;UHL @used by
|
||
OVAR6 EQU 0420H ;UHL @ FlashWyt
|
||
OVAR7 EQU 0440H ;UHL 2nd byte used for MULTI-PART Z alignment (OZOFF)
|
||
OVAR8 EQU 0460H ;UHL used as AnimArg
|
||
OVAR9 EQU 0480H ;UHL #USED FOR PLAYER DATA AREA PTR (OPLAYER)
|
||
OFLAGS EQU 04a0H ;UHW General purpose flags
|
||
OID EQU 04b0H ;UHW Object ID
|
||
OUANIOFF EQU 04c0h ;UHL UNSCALED ANIMATION OFFSET
|
||
OUANIOFFX EQU 04c0h ; X ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OUANIOFFY EQU 04d0h ; Y ANIMATION OFFSET FROM TOP LEFT ADJUSTED FOR FLIP
|
||
OAVAIL EQU 04f0h ;UHW available word
|
||
OIHOFF EQU 04e0h ;UHW OFFSET TO IMAGE HEADER
|
||
ODATA EQU 0500h ; SCRATCH SPACE FOR USER ROUTINES
|
||
ODATAX EQU 0700H ; = 0500H + 0200H
|
||
*ENDSTRUCT
|
||
OBSIZ EQU ODATAX ;Object Block Size
|
||
OCLRSIZ EQU ODATA ;GETOBJ WILL CLEAR UPTO AND NOT INCLUDING HERE
|
||
|
||
NOBJ EQU 400
|
||
|
||
***** MISCELLANEOUS OFFSETS
|
||
;**** OFFSETS for ANIM
|
||
*STRUCT ANIM+OBJ
|
||
AnimNxt EQU OVAR1 ;UHL link to next obj of Animy linked list
|
||
AnimFrm EQU OVAR2 ;UHL ptr to current animation frame
|
||
AnimScr EQU OVAR3 ;UHL ptr to animation script
|
||
AnimSLP EQU OVAR4 ;UDB reset value for AnimSlp
|
||
AnimSlp EQU OVAR4+8 ;UDB # tiks before next ANI
|
||
AnimLoop EQU OVAR4+16 ;UDB General purpose Loop counter
|
||
AnimOpen EQU OVAR4+24 ;UDB reserved for future definition (keep cleared)
|
||
*ENDSTRUCT
|
||
AnimRetScr EQU OVAR5 ;UHL ANIMATION RETURN SCRIPT
|
||
AnimRetFrm EQU OVAR6 ;UHL ANIMATION RETURN FRAME
|
||
OPARTID EQU OVAR7 ;UHB # of part in multi-parter, stuffed by MULTIMAKE
|
||
OZOFF EQU OVAR7+8 ;UHB Z OFFSET
|
||
AnimArg EQU OVAR8 ;stuffed by AnimP for use by GETAFARG_xxxx
|
||
OPLAYER EQU OVAR9
|
||
|
||
;*** ANIFLY SCRIPT FLAGS ***
|
||
AFlip EQU 08000H ;flip bits in aniscript flag
|
||
Axxxxxx EQU 04000H ;unused
|
||
AMulti EQU 02000H ;animate down multi-parter list?
|
||
AFunc EQU 01000H ;call function in aniscript flag
|
||
|
||
;*** BITS SET IN FLAGS:SLEEP WORD OF AN ANIM SCRIPT ***
|
||
B_AFlip EQU 15 ;WARNING don't move, tested w/ jrnn in AnimP (gxc)
|
||
B_xxxxxx EQU 14
|
||
B_AMulti EQU 13
|
||
B_AFunc EQU 12
|
||
|
||
BQCELL EQU 0B0H ;SIZE OF DMA QUEUE ELEMENT
|
||
|
||
***********************
|
||
* Values for OCTRL *
|
||
***********************
|
||
M_WRZERO EQU 00001H ;Write Zero Data
|
||
M_WRNONZ EQU 00002H ;Write Non-Zero Data
|
||
M_CONZER EQU 00004H ;Replace Zero Data with constant
|
||
M_CONNON EQU 00008H ;Replace Non-Zero Data with constant
|
||
M_CONST EQU 0000CH ;any constant data replacement
|
||
M_FLIPH EQU 00010H ;Flip Horizontally
|
||
M_FLIPV EQU 00020H ;Flip Vertically
|
||
M_LRCLIP EQU 00040H ;left right clipping using the offset register
|
||
M_COMPRESS EQU 00080H ;zero compression
|
||
M_INUSE EQU 08000H ;obj not on free list
|
||
|
||
*BIT POSITIONS FOR OCTRL
|
||
B_WRZERO EQU 0
|
||
B_WRNONZ EQU 1
|
||
B_CONZER EQU 2
|
||
B_CONNON EQU 3
|
||
B_FLIPH EQU 4
|
||
B_FLIPV EQU 5
|
||
B_LRCLIP EQU 6
|
||
B_COMPRESS EQU 7
|
||
B_INUSE EQU 15
|
||
|
||
***********************
|
||
* Values for OFLAGS *
|
||
***********************
|
||
M_NOSCALE EQU 00001H ;NO AUTO SCALING (or controls RESCALING if MANSCALE)
|
||
M_DBLSCL EQU 00002H ;DOUBLE scale for sizes defined at half size
|
||
M_BNODEL EQU 00004H ;do not pull BGND from list
|
||
M_NODISP EQU 00008H ;DO NOT DISPLAY THIS OBJECT!
|
||
M_NOSHADOW EQU 00010H ;Shadows not allowed for this object.
|
||
M_MANSCALE EQU 00020H ;MANUAL SCALING (You set scale, sizes computed when M_NOSCALE clr)
|
||
M_NOPARTANI EQU 00040H ;IF IN MULTI-SCRIPT, THEN DON'T ANIMATE
|
||
;DON'T EVEN THINK ABOUT CHANGIN' M_OFSCRN OR ELSE - dozer
|
||
M_OFSCRN EQU 00080H ;if 1, VELADD has marked as OFF SCREEN
|
||
M_SHAD EQU 00100H ;IF=1 OBJECT IS A SHADOW OBJ
|
||
M_OPARTSXY EQU 00200H
|
||
M_DEAD EQU 00400H
|
||
M_GCOLL EQU 00800H
|
||
M_NOPIXSCAN EQU 01000H
|
||
M_NOCOLL EQU 02000H ;Don't do regular collisions...
|
||
M_ANIM EQU 04000H ;set if on ANIFLY list
|
||
M_SCRNOBJ EQU 08000H ;SCREEN OBJECT
|
||
|
||
*BIT POSITIONS FOR OFLAGS
|
||
B_NOSCALE EQU 0
|
||
B_DBLSCL EQU 1 ;DOUBLE scale
|
||
B_MASTER EQU 2
|
||
B_BNODEL EQU 2
|
||
B_NODISP EQU 3
|
||
B_NOSHADOW EQU 4 ;Shadows not allowed for this object.
|
||
B_MANSCALE EQU 5 ;MANUAL SCALING (You set scale, sizes computed automatically)
|
||
B_NOPARTANI EQU 6
|
||
;DON'T EVEN THINK ABOUT CHANGIN' B_OFSCRN OR ELSE - dozer
|
||
B_OFSCRN EQU 7
|
||
B_SHAD EQU 8
|
||
B_OPARTSXY EQU 9 ;USE OPARTSXY FIELD INSTEAD OF OANIOFF FOR OFFSET
|
||
B_DEAD EQU 10 ;IF <> 0, THIS PART IS CONSIDERED DEAD
|
||
B_GCOLL EQU 11 ;IF=1 GROUND SCAN
|
||
B_NOPIXSCAN EQU 12 ;IF=1 DO NOT PIXEL SCAN THIS OBJECT
|
||
B_NOCOLL EQU 13
|
||
B_ANIM EQU 14
|
||
B_NOWORLD EQU 15
|
||
B_SCRNOBJ EQU 15 ;SCREEN OBJECT
|
||
|
||
|
||
;UNIVERSE DAMAGE FLAGS
|
||
|
||
B_ANIMSYNC EQU 0 ;OFFSET NEW ANIMATION TO SYNC WITH OLD
|
||
B_FLASHOBJ EQU 1 ;FLASH OBJECT CONSTANT COLOR #1
|
||
B_LASTFRM EQU 2 ;GO STRAIGHT TO LAST FRAME
|
||
B_NOMORE EQU 3 ;NO MORE DAMAGE FLAG
|
||
B_NEXTFRM EQU 4 ;GO TO NEXT FRAME
|
||
B_STAY EQU 5 ;STAY AT CURRENT DAMAGE FRAME
|
||
B_NOSTOPANIM EQU 6 ;DON'T STOP THE ANIMATION WHEN CHANGING TO A STATIC FRAME
|
||
B_RANDFRM equ 7 ;CHOOSE a frame at random
|
||
|
||
M_ANIMSYNC EQU 001H
|
||
M_FLASHOBJ EQU 002H
|
||
M_LASTFRM EQU 004H
|
||
M_NOMORE EQU 008H
|
||
M_NEXTFRM EQU 010H
|
||
M_STAY EQU 020H
|
||
M_NOSTOPANIM EQU 040H
|
||
M_RANDFRM equ 080h
|
||
|
||
******************************* MPROC.H ********************************
|
||
*VARS
|
||
.GLOBL TIMER, ACTIVE, PACTIVE, FREE, PFREECNT, PRIORITY
|
||
.GLOBL PRCSTR, PRCLSTND, PAUSE_GAME, FREEZE, PFREEZE
|
||
|
||
*FUNCS
|
||
.GLOBL GETPRC,GETPPRC
|
||
.GLOBL KILALL,KILL,PINIT,SUCIDE,PRCSLP,PRCDSP,PRCLSP
|
||
.GLOBL EXISTP,PEXISTP
|
||
.GLOBL GETREGS,GETA11,GETA10,GETA9,GETA8,GETWAKE
|
||
.GLOBL PUTREGS,PUTA11,PUTA10,PUTA9,PUTA8
|
||
.GLOBL PUTWAKE, XFERPROC, PROC_INT, WAKEUP
|
||
.GLOBL OBJPROC_XFER, OBJPROC_INT, OBJPROC_KILL
|
||
.GLOBL SEND_COMM, COMM_WAIT, SEND_COMM_WAIT,COMM_WAIT_REMOTE
|
||
.GLOBL KILLPROC_ALL, EXISTP_ALL
|
||
.GLOBL COUNT_PROCESSES, COUNT_ACTIVE, COUNT_PACTIVE
|
||
.GLOBL FREEZE_PROC, FREEZE_PROCS, THAW_PROC, THAW_PROCS
|
||
|
||
;Moved sound labels to GXGLO.H
|
||
|
||
*
|
||
*PROCESS DATA STRUCTURE
|
||
*NOTE: MAKE SURE THIS IS EVENLY DIVISIBLE BY 32
|
||
*STRUCT PRC
|
||
PLINK EQU 0 ;UHL LINK TO NEXT 32 BITS
|
||
PROCID EQU 020H ;UHW PROCESS ID 16 BITS
|
||
PTIME EQU 030H ;UHW SLEEP TIME X 16MSEC 16 BITS
|
||
PWAKE EQU 0E0H ;UHL
|
||
PA8 EQU 0C0H ;UHL
|
||
PA9 EQU 0A0H ;UHL
|
||
PA10 EQU 080H ;UHL
|
||
PA11 EQU 060H ;UHL
|
||
PSPTR EQU 040H ;UHL PROCESS STACK POINTER 32 BITS
|
||
PDATA EQU 0100H ;UHL PROCESS DATA STORE
|
||
****PSDATA EQU 0500H ;UHL PROCESS STACK DATA
|
||
PSDATA EQU 0900H ;UHL PROCESS STACK DATA
|
||
PTEMP1 EQU PSDATA-0A0H ;UHL ;PROCESS TEMPORARY STORE AREAS
|
||
PTEMP2 EQU PSDATA-080H ;UHL
|
||
PTEMP3 EQU PSDATA-060H ;UHL
|
||
PTEMP4 EQU PSDATA-040H ;UHL
|
||
PCTIME EQU PSDATA-020H ;UHW PROCESS CREATION TIME (DEBUGGING)
|
||
PCOMM EQU PSDATA-010H ;UHW PROCESS COMMUNICATION AREA
|
||
*ENDSTRUCT
|
||
;PRCSIZ EQU 0700H ;END OF DATA STRUCTURE
|
||
PRCSIZ EQU 1200H ;END OF DATA STRUCTURE
|
||
NPROC EQU 120 ;NUMBER OF PROCESSES
|
||
**************************************************************************
|
||
* *
|
||
* THE X-UNIT SYSTEM SPECIFIC EQUATES *
|
||
* *
|
||
**************************************************************************
|
||
|
||
*
|
||
*MACHINE TIMINGS
|
||
*
|
||
MACHINE_CYCLE .EQU 100 ;NUMBER OF nanoSECONDS PER MACHINE CYCLE on the 34020:
|
||
; 32MHz = 132 ns
|
||
; 40MHz = 100 ns
|
||
MICRO_SECOND .EQU 1000/MACHINE_CYCLE ;MACHINE CYCLES PER microSECOND
|
||
|
||
*
|
||
*GENERAL SYSTEM EQUATES
|
||
*
|
||
|
||
*
|
||
*PIXBLT STUFF
|
||
PXSIZE .set 8
|
||
SCRN_PTCH .set 512*PXSIZE
|
||
CONV_PTCH .SET 13
|
||
PLANEMSK .set 0
|
||
|
||
INI_CFG .set 1108h
|
||
INI_CTRL .set 0
|
||
|
||
.IF WIDESCREEN
|
||
SCREEN_WIDTH .EQU 512 ;SCREEN WIDTH IN PIXELS
|
||
.ELSE
|
||
SCREEN_WIDTH .EQU 400 ;SCREEN WIDTH IN PIXELS
|
||
.ENDIF
|
||
|
||
SCREEN_HEIGHT .EQU 254 ;SCREEN LENGTH IN PIXELS NEW
|
||
|
||
*
|
||
*SYSTEM Z MEMORY MAP
|
||
*
|
||
SCRATCH .SET 20000000h ;START OF SCRATCH
|
||
CMOS .EQU 0a0440000h ;START OF CMOS RAM
|
||
SCREEN .SET 00h ;START OF SCREEN MEMORY
|
||
SCRNE .SET 0200000h ;END OF SCREEN+1
|
||
PSCREEN .SET 800000h ;START OF PALETTE SCREEN MEMORY
|
||
|
||
SCRATCH_END .EQU 20800000H ;END OF SCRATCH+1
|
||
STCKST .SET 207ffff0h ;TOP OF STACK
|
||
COLRAM .SET 0a0800000H ;COLOR RAM B0-B4 BLU, B5-B9 GRN, B10-B14 RED
|
||
PALSIZE .SET 02000H ;PHYSICAL SIZE OF A PALETTE IN COLOR RAM
|
||
*
|
||
*USEFUL SYSTEM ADDRESSES
|
||
*
|
||
ROM .SET 20800000h ;PROGRAM ROM
|
||
SWITCH .SET 60c00000h ;I/O (JAMMA CONNECTOR AND WIRED INPUTS)
|
||
SWITCH2 .SET 60c00020H ;I/O (WIRED INPUTS AND DIP SWITCHES)
|
||
COINS .SET 60c00040H
|
||
DIPSWITCH .EQU 60c00060H ;DIP SWITCHES FOR X UNIT
|
||
|
||
SOUND .SET 60c00080h ;SOUND I/O (B0-B7 = SOUND#)
|
||
; B8 = RESET (0 EN)
|
||
|
||
COIN_COUNTERS .EQU 60c000a0H ;COIN COUNTER DRIVERS
|
||
WDOG_BONE .EQU 60c000c0H ;ACCESS HERE TO FEED THE DOG
|
||
A2D_PORT .EQU 80800000H ;A/D PORT
|
||
AUX_PORT .EQU 060C00080H ;AUXILLARY PORT
|
||
|
||
IROM .SET 0f8000000h ;IMAGE ROM (assuming 4Mbit parts, 16MB total)
|
||
;IROM .SET 0f0000000h ;IMAGE ROM (assuming 8Mbit parts, 32MB total)
|
||
CMAPSEL .SET 0C0800080h ;COLOR MAP SELECT (0-15)
|
||
UART .SET 80c00000h ;UART (8 long word registers)
|
||
|
||
SYSCTRL0 .SET 40800000H ;SYSTEM CONTROL LATCH 0
|
||
SYSCTRL1 .SET 40C00000H ;SYSTEM CONTROL LATCH 1
|
||
SECCHIP .set 60000000h ;security register
|
||
INT_REG .set 60400000h ;interrupt register
|
||
RST_REG .set 60800000h ;reset register (bit 0 only)
|
||
*
|
||
* SYSCTRL0 bit 3 bit 2 bit 1 bit 0
|
||
*
|
||
* if set: VECTORS FROM ENABLE CMOS WRITE PROTECT WRITE PROTECT
|
||
* DRAM WRITE BANK 1 HI BANK 1 LO
|
||
*
|
||
*
|
||
* SYSCTRL1 bit 3 bit 2 bit 1 bit 0
|
||
*
|
||
* if set: DMA BANK 1 LED IS ON I/O RESET DMA ENABLED
|
||
*
|
||
*
|
||
RAMVECTS .equ 8 ;use RAM VECTORS (not ROM)
|
||
CMOSENAB .equ 4 ;enable CMOS
|
||
WRPROTHI .equ 2 ;Write Protect Hi half of DRAM Bank 1
|
||
WRPROTLO .equ 1 ;Write Protect Lo half of DRAM Bank 1
|
||
|
||
DMABANK1 .equ 8 ;Select Hi BANK of IMAGE ROM (for DMA)
|
||
LED_ON .equ 4 ;Turn on LED
|
||
SND_RESET .equ 2 ;Reset Sound Board and PIC chip
|
||
DMAENAB .equ 1 ;Enable DMA
|
||
|
||
SYSCINIT .equ (DMAENAB<<8)+RAMVECTS ; for XUNIT
|
||
SYSC_COLD .EQU 0 ;System control register upon cold start
|
||
|
||
.IF UART
|
||
LINT2_INTS .EQU 4 ;LINT2 interrupts, with UART
|
||
.ELSE
|
||
LINT2_INTS .EQU 0 ;LINT2 interrupts, without UART
|
||
.ENDIF
|
||
*
|
||
*UART Equates
|
||
*
|
||
UART_CSR .EQU 20H ;UART Clock Select Register
|
||
UART_CR .EQU 40H ;UART Control Register
|
||
UART_THR .EQU 60H ;UART Transmit Hold Register
|
||
UART_ACR .EQU 80H ;UART Auxiliary Control Register
|
||
UART_IMR .EQU 0A0H ;UART Interrupt Mask Register
|
||
|
||
*
|
||
AUTOERAS .EQU 10H
|
||
OBJPALET .EQU 20H
|
||
|
||
*COIN COUNTER EQUATES ???HELP???
|
||
LEFT_COIN .EQU 01H ;LEFT COIN MASK
|
||
RIGHT_COIN .EQU 02H ;RIGHT COIN MASK
|
||
*EQUATES FOR READING SOUND BOARD IRQ REQUEST LINE
|
||
B_WDOG .EQU 30 ;(L) FOR WATCHDOG TRIGGERED
|
||
B_A2D .EQU 0 ;(L) FOR CONVERSION COMPLETE
|
||
B_SIRQ .EQU 2 ;BIT TO READ FOR SOUND IRQ LINE
|
||
|
||
*
|
||
*INTERRUPT CONSTANTS
|
||
.IF NTSC
|
||
ENDVBLNK .EQU 13H ;SCAN LINE TO END VERTICAL BLANKING
|
||
HSINT .EQU 108+ENDVBLNK ;HALF SCREEN
|
||
EOSINT .EQU 229+ENDVBLNK ;END OF SCREEN
|
||
DIRQ2INT .EQU 210+ENDVBLNK ;JUST BEFORE EOS
|
||
*SCOREINT .EQU 18+ENDVBLNK ;END OF SCORE AREA INTERRUPT
|
||
.ELSE
|
||
ENDVBLNK .EQU 14H ;SCAN LINE TO END VERTICAL BLANKING
|
||
HSINT .EQU 135+ENDVBLNK ;HALF SCREEN
|
||
EOSINT .EQU 254+ENDVBLNK ;END OF SCREEN
|
||
DIRQ2INT .EQU 246+ENDVBLNK ;JUST BEFORE EOS
|
||
*SCOREINT .EQU 18+ENDVBLNK ;END OF SCORE AREA INTERRUPT
|
||
.ENDIF
|
||
|
||
ERASELOC .EQU COLRAM + (03F0H*2) ;GAME AUTO ERASE COLOR LOCATION
|
||
ERASECOL .EQU 03F3F3F3FH ;GAME AUTO ERASE COLOR #
|
||
|
||
GNDERALOC .EQU COLRAM + (03E0H*2) ;GAME AUTO ERASE COLOR LOCATION
|
||
GNDERACOL .EQU 03e3e3e3EH ;GAME AUTO ERASE COLOR #
|
||
|
||
|
||
.if CENTER_SCREEN
|
||
|
||
CENTER_XSHIFT .EQU 56
|
||
|
||
.else
|
||
|
||
CENTER_XSHIFT .EQU 0
|
||
|
||
.endif
|
||
|
||
BITMAP_OFFSET .EQU CENTER_XSHIFT*8
|
||
|
||
PAGE0ADR .EQU [0,CENTER_XSHIFT] ;(1 dead, 44 score, 210 playfield)*2, 2 autoerase
|
||
PAGE1ADR .EQU [SCRHGHT,CENTER_XSHIFT] ;SCRHGHT*8*512
|
||
PAGE2ADR .EQU [512,CENTER_XSHIFT] ;Video page 2 XY address
|
||
PAGE3ADR .EQU [768,CENTER_XSHIFT] ;Video page 3 XY address
|
||
|
||
OFFSETVAL .set BITMAP_OFFSET
|
||
TOGGLE_PAGE_XY .set [SCRHGHT,0]
|
||
TOGGLE_PAGE_L .set SCRHGHT*SCRN_PTCH
|
||
DPYSTRT0 .set BITMAP_OFFSET
|
||
DPYSTRT1 .set (SCRHGHT*SCRN_PTCH)+BITMAP_OFFSET
|
||
DPYSTRT2 .EQU (512*SCRN_PTCH)+BITMAP_OFFSET
|
||
DPYSTRT3 .EQU (768*SCRN_PTCH)+BITMAP_OFFSET
|
||
|
||
|
||
PAGE0E .EQU 0FE000h ;END OF PAGE0+1
|
||
PAGE2_START .EQU 0200000H ;Start of video page 2
|
||
PAGE2_END .EQU 02FFFFFH ;End of video page 2
|
||
PAGE3_START .EQU 0300000H ;Start of video page 3
|
||
PAGE3_END .EQU 03FFFFFH ;End of video page 3
|
||
|
||
*
|
||
*DMA STUFF
|
||
*
|
||
DMAREGS: .equ 0C08000C0h ;BOTTOM OF DMA REGISTERS FOR MMTM
|
||
|
||
;BIT 15:
|
||
;1=START DMA (WRITE)
|
||
;0=STOP DMA (WRITE)
|
||
|
||
;1=DMA BUSY (READ)
|
||
;0=DMA IDLE (READ)
|
||
;DMAOFFST: .EQU 0C0800000h ;DMA OFFSET REGISTER
|
||
;DMACTRL: .equ 0C0800010h ;DMA CONTROL REGISTER
|
||
;DMASAGL: .equ 0C0800020h ;DMA DATA STARTING ADDRESS LOW 16 BITS
|
||
;DMASAGH: .equ 0C0800030h ;DMA DATA STARTING ADDRESS HIGH 16 BITS
|
||
;DMAHORIZ: .equ 0C0800040h ;DMA DESTINATION, X COORDINATE
|
||
;DMAVERT: .equ 0C0800050h ;DMA DESTINATION, Y COORDINATE
|
||
;DMAHSIZE: .equ 0C0800060h ;DMA DESTINATION, X SIZE
|
||
;DMAVSIZE: .equ 0C0800070h ;DMA DESTINATION, Y SIZE
|
||
;DMACMAP: .equ 0C0800080h ;DMA COLOR MAP SELECT
|
||
;DMACONST: .equ 0C0800090h ;DMA CONSTANT COLOR SUBSTITUTE
|
||
;DMAXSCL: .equ 0C08000A0h ;DMA X SCALE REG
|
||
;DMAYSCL: .equ 0C08000B0h ;DMA Y SCALE REG
|
||
;DMATPLFT: .equ 0C08000C0h ;DMA TOP LEFT WINDOW BORDER
|
||
;DMARTBOT: .equ 0C08000D0h ;DMA RT BOTTOM WINDOW BORDER
|
||
;DMACONFIG: .equ 0C08000E0h ;DMA CONFIG REGISTER
|
||
|
||
; ALL DMA REGS ARE 32 BITS!!!
|
||
|
||
DMAOFFCTL: .EQU 0C0800000h ;DMA OFFSET & CONTROL REGISTERS
|
||
DMASAG: .equ 0C0800020h ;DMA DATA STARTING ADDRESS
|
||
DMAHV: .equ 0C0800040h ;DMA DESTINATION, XY COORDINATE
|
||
DMAHVSIZE: .equ 0C0800060h ;DMA DESTINATION, XY SIZE
|
||
DMACMAPCON: .equ 0C0800080h ;DMA COLOR MAP SELECT, CONST
|
||
DMAXYSCL: .equ 0C08000A0h ;DMA XY SCALE REG
|
||
DMAWINDOW: .equ 0C08000C0h ;DMA BOT:TOP or RT:LEFT WINDOW BORDER
|
||
DMACONFIG: .equ 0C08000E0h ;DMA CONFIG REGISTER
|
||
|
||
DMAGOREG .equ 0C0C00000h ; for read/write of DMA GO BIT ONLY (in bit 31)
|
||
; NOTE: trashes offset & control regs on a write.
|
||
|
||
* LAYOUT OF DMA CONTROL REGISTER
|
||
DMAWZ .set 8001h ; Bit 0 write zero data
|
||
DMAWNZ .set 8002h ; Bit 1 write non-zero data
|
||
DMACZ .set 8004h ; Bit 2 subst zero data with constant
|
||
DMACNZ .set 8008h ; Bit 3 subst non-zero data with constant
|
||
DMAWAL .SET 8003h ; WRITE BOTH ZERO & NON-ZERO DATA
|
||
DMACAL .SET 800ch ; WRITE CONSTANT ON BOTH ZERO & NON-ZERO DATA
|
||
DMAHFL .set 0010h ; Bit 4 Horz flip
|
||
DMAVFL .set 0020h ; Bit 5 Vert flip
|
||
DMACLP .set 0040h ; Bit 6 Clip using UDLR method (0=offset method)
|
||
DMACMP .set 0080h ; Bit 7 Zero Compression on
|
||
DMALDX .set 0300h ; Bits 8-9 Leading Zero Multiplier (0-3 = 1x,2x,4x,8x)
|
||
DMATRX .set 0c00h ; Bits 10-11 Trailing Zero Multiplier (0-3 = 1x,2x,4x,8x)
|
||
DMABPP .set 7000h ; Bits 12-14 Bits Per Pixel (1-7, 0=8)
|
||
DMAGO .set 8000h ; Bit 15 DMA Go/Halt
|
||
; (one '0' write halts DMA,
|
||
; two '0' writes kills xfer,
|
||
; one '1' write restarts/starts)
|
||
|
||
* LAYOUT OF DMA CONFIG REGISTER
|
||
DMAWIN .set 200000h ; Bit 5 (0 = rt/lft, 1 = top/bot)
|
||
DMACF4 .SET 100000H ; BIT 4 TIMING PARAMETER
|
||
|
||
* LAYOUT OF IMAGE HEADER NEW
|
||
|
||
ICTRL .EQU 0H
|
||
ISIZE .equ 10h
|
||
ISIZEX .EQU 10h
|
||
ISIZEY .EQU 20H
|
||
ISAG .equ 30h
|
||
IANIOFF .equ 50H
|
||
IANIOFFX .EQU 50H
|
||
IANIOFFY .EQU 60H
|
||
ICMAP .equ 70H
|
||
ICBOX .equ 90H
|
||
ICBOXSIZ .equ 0A0H
|
||
|
||
IHDRSIZ equ 90h
|
||
|
||
ZM .set 1 ;Z MINUS MULTIPLIER
|
||
ZP .set 010000h ;Z PLUS MULTIPLIER
|
||
*
|
||
*SOUND PROCESSOR EQUATES
|
||
NINT .EQU 0800H ;SOUND NON-INTERRUPTABLE ???HELP???
|
||
|
||
*------- Register names for TMS34010 assembly language functions -------
|
||
|
||
*-----------------------------------------------------------------------
|
||
* Define names of I/O registers
|
||
*-----------------------------------------------------------------------
|
||
VESYNC .set 0C0000000h
|
||
HESYNC .set 0C0000010h
|
||
VEBLNK .set 0C0000020h
|
||
HEBLNK .set 0C0000030h
|
||
VSBLNK .set 0C0000040h
|
||
HSBLNK .set 0C0000050h
|
||
VTOTAL .set 0C0000060h
|
||
HTOTAL .set 0C0000070h
|
||
DPYCTL .set 0C0000080h
|
||
DPYSTRT .set 0C0000090h
|
||
DPYINT .set 0C00000A0h
|
||
CONTROL .set 0C00000B0h
|
||
HSTDATA .set 0C00000C0h
|
||
HSTADRL .set 0C00000D0h
|
||
HSTADRH .set 0C00000E0h
|
||
HSTCTLL .set 0C00000F0h
|
||
HSTCTLH .set 0C0000100h
|
||
INTENB .set 0C0000110h
|
||
INTPEND .set 0C0000120h
|
||
CONVSP .set 0C0000130h
|
||
CONVDP .set 0C0000140h
|
||
PSIZE .set 0C0000150h
|
||
PMASKL .set 0C0000160h
|
||
PMASKH .set 0C0000170h
|
||
CONVMP .set 0C0000180h
|
||
CONFIG .set 0C00001a0h
|
||
DPYTAP .set 0C00001b0h
|
||
* I/O register locations 23-27 are reserved for future expansion
|
||
VCOUNT .set 0C00001C0h
|
||
HCOUNT .set 0C00001D0h
|
||
DPYADR .set 0C00001E0h
|
||
REFADR .set 0C00001F0h
|
||
*
|
||
DPYMSK .set 0C00002E0h ; replaces DPYTAP
|
||
DPYST .set 0C0000200h ; replaces DPYSTRT
|
||
DPYNX .SET 0C0000220H ; replaces DPYADR
|
||
|
||
X .set 1
|
||
Y .set 010000h
|
||
W .SET 0
|
||
L .set 1
|
||
|
||
* Declarations for condition codes in Macros
|
||
GT .set 'GT'
|
||
GE .set 'GE'
|
||
LT .set 'LT'
|
||
LE .set 'LE'
|
||
EQ .set 'EQ'
|
||
NE .set 'NE'
|
||
Z .set 'Z'
|
||
NZ .set 'NZ'
|
||
NC .set 'NC'
|
||
UC .set 'UC'
|
||
N .set 'N'
|
||
|
||
*-----------------------------------------------------------------------
|
||
* Masks for I/O register fields:
|
||
*-----------------------------------------------------------------------
|
||
|
||
* STATUS BIT MASKS
|
||
CBIT .EQU 40000000H
|
||
|
||
* DISPLAY CONTROL REGISTER BIT DEFINITIONS
|
||
HSD .set 01h ; Horizontal Sync Direction
|
||
VSD .set 02h ; Vertical Sync Direction
|
||
CSD .set 04h ; Composite Sync Direction
|
||
CVD .set 08h ; Composite Video Disable
|
||
SSV .set 040h ; Midline reload enable
|
||
VCE .set 080h ; Video capture enable
|
||
CST .set 0800h ; CPU serial register transfer enable
|
||
SRE .set 01000h ; Screen Refresh Enable
|
||
NIL .set 04000h ; Non-InterLaced video enable
|
||
ENV .set 08000h ; ENable Video
|
||
*BIT POSITIONS IN DISPLAY CONTROL
|
||
B_CST .SET 11 ; BIT TO ENABLE CSTs
|
||
B_SSV .SET 6 ; BIT TO ENABLE SRTs
|
||
|
||
* BIT FIELDS WITHIN CONTROL REGISTER
|
||
CD .set 08000h ;Mask for Cache Dis bit in CONTROL
|
||
PPOP .set 07C00h ;Mask for Pix Proc OPer in CONTROL
|
||
PBH .set 0200h ;Mask for PBH bit in CONTROL
|
||
PBV .set 0100h ;Mask for PBV bit in CONTROL
|
||
WIN .set 0C0h ;Mask for Window field in CONTROL
|
||
T .set 020h ;Mask for Transparency field in CONTROL
|
||
TMD .set 3 ;Mask for Transparency MODE in CONTROL
|
||
;old RR .set 018h ;Mask for dram Refresh Rate bit in CONFIG
|
||
;old RM .set 04h ;Mask for dram Refresh Mode bit in CONFIG
|
||
|
||
* BITS WITHIN INTPEND AND INTENB
|
||
WVP .set 0800h ;Mask for Window Violation in INTPEND
|
||
DIE .set 0400h ;Mask for Disp Int in INTPEND
|
||
HIE .set 0200h ;Mask for Host Int in INTPEND
|
||
X2E .set 04h ;Mask for Ext Int 2 in INTPEND
|
||
X1E .set 02h ;Mask for Ext Int 1 in INTPEND
|
||
B_X1E .set 1 ;Bit Pos for Ext Int 1 in INTPEND
|
||
* BIT POSITIONS IN INTPEND
|
||
DIP .EQU 10 ;BIT TEST FOR DISPLAY INTERRUPT PENDING
|
||
|
||
* FIELDS WITHIN HSTCTLL
|
||
MSGIN .set 07h ; Message from Host to GSP
|
||
INTIN_MSK .set 08h ; GSP can write 0 to this bit (ANDNI)
|
||
INTIN_BIT .set 03h ; GSP can write 0 to this bit (ANDNI)
|
||
INTOUT_MSK .set 080h ; GSP can write 1 to this bit (ORI)
|
||
INTOUT_BIT .set 07h ; GSP can write 1 to this bit (ORI)
|
||
|
||
* OPTIONS FOR WINDOW FIELD IN CONTROL REG
|
||
*W0 (ANDNI) No writes inhibited, no interrupt
|
||
W3 .set 0C0h ;inhibit writes outside window, no interrupt
|
||
W2 .set 080h ;Int on attempt to write outside window.
|
||
W1 .set 040h ;Inhibit all writes, Int on attempt to write within window
|
||
|
||
*OPTIONS FOR PIXEL PROC OPERATIONS IN CONTROL REG
|
||
* PPOP (ANDNI) replace
|
||
P_AND .set 0400h
|
||
P_ANDNOT .set 0800h
|
||
P_ZERO .set 0C00h
|
||
P_ORNOT .set 01000h
|
||
P_XNOR .set 01400h
|
||
P_NEG .set 01800h
|
||
P_NOR .set 01C00h
|
||
P_OR .set 02000h
|
||
P_NOP .set 02400h
|
||
P_XOR .set 02800h
|
||
P_NOTAND .set 02C00h
|
||
P_ONES .set 03000h
|
||
P_NOTOR .set 03400h
|
||
P_NAND .set 03800h
|
||
P_NOT .set 03C00h
|
||
P_ADD .set 04000h
|
||
P_ADDS .set 04400h
|
||
P_SUB .set 04800h
|
||
P_SUBS .set 04C00h
|
||
P_MAX .set 05000h
|
||
P_MIN .set 05400h
|
||
|
||
*-----------------------------------------------------------------------
|
||
* Define special A- and B-file registers
|
||
*-----------------------------------------------------------------------
|
||
* Special A-file registers:
|
||
***fp .set A13 ;Frame, param. stack
|
||
***pstk .set A14 ;Parameter stack pointer
|
||
***frame_pntr .set A14 ;Used by C Compiler
|
||
* Special B-file registers:
|
||
*
|
||
* B FILE REGISTER GRAPHICS DEFINITIONS
|
||
*
|
||
***saddr .set B0
|
||
***sptch .set B1
|
||
***daddr .set B2
|
||
***dptch .set B3
|
||
***offset .set B4
|
||
***wstart .set B5
|
||
***wend .set B6
|
||
***dydx .set B7
|
||
***color0 .set B8
|
||
***color1 .set B9
|
||
***count .set B10
|
||
***inc1 .set B11
|
||
***inc2 .set B12
|
||
***pattrn .set B13
|
||
*
|
||
SADDR .set B0 ;Source address register
|
||
SPTCH .set B1 ;Source pitch register
|
||
DADDR .set B2 ;Dest. address register
|
||
DPTCH .set B3 ;Dest. pitch register
|
||
OFFSET .set B4 ;XY offset register
|
||
***WSTART .set B5 ;Window start register
|
||
***WEND .set B6 ;Window end register
|
||
DYDX .set B7 ;Delta X/delta Y register
|
||
COLOR0 .set B8 ;Color 0 register
|
||
COLOR1 .set B9 ;Color 1 register
|
||
***COUNT .set B10
|
||
***INC1 .set B11
|
||
***INC2 .set B12
|
||
***PATTRN .set B13
|
||
|
||
**************************************************************************
|
||
* *
|
||
* GENERATION X - MASTER EQUATE FILE *
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
*SYMBOLS IN FILE T2TRIG.ASM
|
||
.GLOBL GETCOS, GETSIN
|
||
*SYMBOLS IN FILE GXPALL.ASM
|
||
.GLOBAL GETFPAL, PALTRANS, CLRBPAL, CLRFPAL, FINDPAL
|
||
.GLOBAL CLRPAL, DELPAL, DELETE_PAL, FREEPAL
|
||
.GLOBAL CHANGE_PAL, GET_PALID, INC_PALCNT, CLR_0PALS
|
||
.GLOBAL CHANGE_PAL_MULTI
|
||
*SYMBOLS IN FILE T2UTIL.ASM
|
||
.GLOBAL SCRCLR, CLR_SCRN, MYOINIT, SETPPROC
|
||
.GLOBAL SHVELCPY, SHVELFLP, FLP, XZCHK, CLRPDATA
|
||
.GLOBAL RANDU, RANDOM, SRAND, RANGRAND, RANDPER
|
||
.GLOBL RAND0, RANGERND
|
||
.GLOBAL FRANIM, AUTOEOFF
|
||
.GLOBAL DMAQWAIT, DMAWAIT, DTIME, DRAWBOX, DRAWBOX_OBJ
|
||
.GLOBAL PSTOP, MIDPOINT, QBOXCK, QINSCRN, CLRPLAY
|
||
.GLOBAL WHICHSID, ABOVBELO, ALIGNOBJ, GET_CPNT, GETCPNT, GETCENT
|
||
.GLOBAL SLINEVEL, CLRBLOCK, FILBLOCK, CHKRANGE, FRAMSKIP, FILL_SCRN
|
||
.GLOBAL PNT_IN_RANGE, CENTEROBJ, CK_OBJ_CENT, CK_BOTTOM_CENT
|
||
.GLOBAL SET_ZPOS, SET_MZPOS, SET_TZPOS, GET_INIT_CPNT, ANIMATOR
|
||
.GLOBAL GET_BOTTOM_MID, ANIMATE_DEL, DMAWPAL
|
||
.GLOBAL OSINK, OSINKANI
|
||
.GLOBAL STOPPED, SKIP_ANIMATION, KILL_DESTRUCTIBLES, PNTINBOX
|
||
.GLOBAL X_ETA, ANIMATE_TIME, SLINEVEL_LOAD, DTIME2
|
||
.GLOBAL BLNKAREA, BLNKAREA2, FILLAREA, FILLAREA2, YFLP, NOYFLP
|
||
.GLOBAL MAX, MIN, ABSMAX, ABSMIN, ABSINC, ABSDEC, ABSADD, ABSSUB
|
||
.GLOBAL TOGL_YFLP
|
||
.GLOBAL PreFrag0, PreFrag_Center, PreFrag_Box, PreFrag_LR
|
||
.GLOBAL PreFrag_Up, PreFrag_Gun
|
||
.GLOBAL Fragger, FlshWyte
|
||
.GLOBAL COLLS_OFF, COLLSOFF, ALL_COLLS_OFF, GET_CPNT_SCRNREL
|
||
|
||
*SYMBOLS IN FILE T2AFUNC.ASM
|
||
.GLOBAL A_STRT_ANIM, A_TOGGLE_FLPS, A_DEL_DAMAGE, A_SET_OZVEL
|
||
.GLOBAL A_CLR_OXVEL, A_OFFSCRN_DEL, A_OFFOPP_DEL
|
||
.GLOBAL A_ONSCREEN, A_INC_AnimSLP, A_RAND_AnimSLP
|
||
.GLOBAL A_DEL_OID_DAMAGE, A_OFF_DELETE_OBJ, A_PRINT_SCORE
|
||
.GLOBAL A_PreFrag1, A_FLIP_BRANCH, A_OFFSCREEN, A_OBJ_ON_CHANGE_PAL
|
||
.GLOBAL A_SET_OYACCEL, A_RAND_FLIP, A_TOGGLE_FLIP
|
||
|
||
*SYMBOLS IN FILE T2.ASM
|
||
.GLOBAL CALLPLAY, IAUTOE, GUNPOWER_TO_MAX
|
||
*SYMBOLS IN T2ENEMY.ASM
|
||
.GLOBAL INC_ENEMY_COUNT, DEC_ENEMY_COUNT, GET_ENEMY_COUNT, COUNT_KILL
|
||
.GLOBAL COUNT_PLAYER_KILL
|
||
*SYMBOLS IN FILE T2SCOR.ASM
|
||
.GLOBAL SCORAREA, SCORE, PRINT_SCORE
|
||
*SYMBOLS IN FILE GXCOLL.ASM
|
||
**** .GLOBAL COLL_START
|
||
.GLOBAL LA_COLL, PRESENT_COLL, HIGHWAY_COLL
|
||
*SYMBOLS IN FILES T2BGND.ASM OR T2BGDATA.ASM
|
||
.GLOBAL BAKBITS, BAKLST, SINGLE_PLANE
|
||
*SYMBOLS IN T2PLAYER.ASM
|
||
.GLOBAL PLAYER_PRAISE, DELAYED_PRAISE
|
||
.GLOBAL POID_TO_PDATA
|
||
*SYMBOLS IN T2POWER.ASM
|
||
.GLOBAL GET_LOWEST_Y, CLIP_TO_Y
|
||
|
||
*
|
||
*GLOBAL DUMMY(NULL) ROUTINES
|
||
*
|
||
.GLOBAL DUMRETS, DUMCOLL, DUMCRETS, DUMBGND, DUMSCRIPT, DUMRETP
|
||
.GLOBAL DUMFGND, DUMDIE, DUMSRETS
|
||
|
||
.GLOBAL DUMPPRINT
|
||
|
||
*
|
||
* WAVE TYPE EQUATES
|
||
*
|
||
NWAVES .EQU 50 ;# OF DIFFERENT WAVES (DIFF TABLE SIZE)
|
||
.IF DEBUG
|
||
LAST_WAVE .EQU 8 ;GAME ENDS AFTER THIS WAVE
|
||
.ELSE
|
||
LAST_WAVE .EQU 7
|
||
.ENDIF
|
||
MAXPLAYERS .EQU 3 ;MAXIMUM # OF PLAYERS ALLOWED(INCLUDES DRONE)
|
||
RESET_WAVES .EQU 20 ;START OF THE RESET WAVES
|
||
|
||
*
|
||
*HIGH SCORE TABLE STUFF
|
||
*
|
||
HS_YMIN EQU 150
|
||
HS_YMAX EQU 240
|
||
HS_XMIN EQU 40
|
||
HS_XMAX EQU 360
|
||
HS_YBLANK EQU 209
|
||
HS_XBLANK EQU 296
|
||
CHAR_XBOX EQU (HS_XMAX-HS_XMIN)/10
|
||
CHAR_YBOX EQU (HS_YMAX-HS_YMIN)/3
|
||
|
||
************************************************************
|
||
* *
|
||
* PLAYER DATA STRUCTURE *
|
||
* *
|
||
************************************************************
|
||
POBJ EQU 0000H ;UHL PLAYER OBJECT BLOCK
|
||
PSCRAD EQU 0020H ;UHL PLAYER SCORE SCREEN ADDRESS
|
||
PSCORE EQU 0040H ;UHL PLAYER SCORE
|
||
PNEXTREP EQU 0060H ;UHL NEXT REPLAY LEVEL, 32 BITS BCD
|
||
PPID EQU 0080H ;UHW PLAYER BASE PROCESS I.D.
|
||
PINITAB EQU 0090H ;UHL PLAYER INITIALIZATION TABLE
|
||
PPALID EQU 00B0H ;UHL PLAYER PALETTE I.D.
|
||
PCURSORXY EQU 00D0H ;UHL CURRENT [Y,X] CURSOR POSITION
|
||
PLIVES EQU 00F0H ;UHL CURRENT PLAYER LIFE ENERGY [INT,FRACTION]
|
||
PGUNPOWER EQU 0110H ;UHW CURRENT AMOUNT OF GUN POWER
|
||
PBOMB1 EQU 0120H ;UHW COUNT OF SPECIAL WEAPON 1
|
||
PBOMB2 EQU 0130H ;UHW COUNT OF SPECIAL WEAPON 2
|
||
PBOMBTYPE EQU 0140H ;UHW TYPE OF WEAPON ATTACHED TO THE BOMB BUTTON
|
||
PFIRING EQU 0150H ;UHW IF <> 0 PLAYER IS FIRING HIS GUN. WAIT!
|
||
PENTER EQU 0160H ;UHW IF = 1, PLAYER WILL ENTER GAME @ NEXT INPLAY
|
||
PDEAD EQU 0170H ;UHW 1 IF DEAD MESSAGE UP
|
||
PBOZO EQU 0180H ;UHW BOZO LEVEL, > 0 = SOME SORT OF BOZO
|
||
PSTARTS EQU 0190H ;UHW # OF STARTS THIS GAME
|
||
PWAVEST EQU 01A0H ;UHW NUMBER OF PLAYER STARTS THIS WAVE
|
||
PWAVEDEATHS EQU 01B0H ;UHW NUMBER OF DEATHS THIS WAVE
|
||
PWAVES EQU 01C0H ;UHW NUMBER OF WAVES PLAYED THIS GAME
|
||
PEXTRAS EQU 01D0H ;UHW NUMBER OF EXTRA LEFT TO EARN THIS GAME
|
||
PWAVETIME EQU 01E0H ;UHL TIME THIS PLAYER HAS SPENT ON THIS WAVE
|
||
PLASTDTH EQU 0200H ;UHL ELAPSED TIME SINCE LAST PLAYER DEATH
|
||
PITIME EQU 0220H ;UHW TIME LEFT FOR ENTERING INITIALS
|
||
PDTHFLAG EQU 0230H ;UHW IF = 1, THE GUY IS DEAD
|
||
PTOTTIME EQU 0240H ;UHL TOTAL TIME OF THIS CREDIT
|
||
PLIFETIME EQU 0260H ;UHL TIME THIS GUY HAS BEEN ALIVE
|
||
PSTARTESC EQU 0280H ;UHW FLAG TO SHOW START BUTTON PUSHED FOR ESCAPE
|
||
PSWITCHESC EQU 0290H ;UHW FLAG TO SHOW BUTTON ACTION
|
||
PENRGSIZ EQU 02A0H ;UHL INC/DEC SIZE OF PLAYER ENERGY
|
||
PHITBOXUL EQU 02C0H ;UHL [Y,X] UL SCREEN AREA TO SCORE HITS
|
||
PHITBOXLR EQU 02E0H ;UHL [Y,X] LR SCREEN AREA TO SCORE HITS
|
||
PLASTLPLOT EQU 0300H ;UHL LAST ENERGY LEVEL PLOTTED
|
||
PLASTGPLOT EQU 0320H ;UHW LAST GUN POWER LEVEL PLOTTED
|
||
PGUNMODE EQU 0330H ;UHW CURRENT GUN MODE 0 = KILL, ~0 = STUN
|
||
PDPRIORITY EQU 0340H ;UHW CURRENT DISPLAY EFFECT PRIORITY
|
||
PDTIME EQU 0350H ;UHW CURRENT DISPLAY EFFECT TIME
|
||
PGUNMULT EQU 0360H ;UHL GUN ENERGY BAR MULTIPLIER
|
||
PINVINCIBLE EQU 0380H ;UHW IF <> 0, PLAYER IS INVINCIBLE
|
||
PPOWERTYPE EQU 0390H ;UHW TYPE OF CURRENT POWER-UP, 0 = NONE
|
||
PLAUNCHPOS EQU 03A0H ;UHL [Y,X] SCREEN POSITION TO LAUNCH TRACERS
|
||
PEBAROBJ EQU 03C0H ;UHL PLAYER ENERGY BAR OBJECT
|
||
PEWORDOBJ EQU 03E0H ;UHL PLAYER ENERGY WORD OBJECT
|
||
PGBAROBJ EQU 0400H ;UHL PLAYER GUN BAR OBJECT
|
||
PGWORDOBJ EQU 0420H ;UHL PLAYER GUN WORD OBJECT
|
||
PGMODEOBJ EQU 0440H ;UHL PLAYER GUN MODE OBJECT
|
||
PGIRLS_SAVED EQU 0460H ;UHW Number of girls saved this wave
|
||
PUNUSED1 EQU 0470H ;UHW Unused word
|
||
PSTATUSXY EQU 0480H ;UHL [Y,X] POSITION OF PLAYER STATUS STUFF
|
||
PECOLOR EQU 04A0H ;UHW CURRENT COLOR OF ENERGY BAR
|
||
PGUNCOOL EQU 04B0H ;UHW AMOUNT OF GUN COOLANT (IN TICKS)
|
||
PDOBJ EQU 04C0H ;UHL DISPLAY EFFECT OBJECT CURRENTLY EXISTING
|
||
PLASTFLASH EQU 04E0H ;UHB LAST FLASH LAMP ACTIVATED
|
||
PROCKCNT EQU 04E8H ;UHB NUMBER OF ROCKETS CURRENTLY ON SCREEN
|
||
PSECLIFE EQU 04F0H ;UHL SECONDS PER LIFE UNIT, USED FOR MINTIME
|
||
PINITLIFE EQU 0510H ;UHW INITIAL LIFE UNITS PER CREDIT, INT ONLY
|
||
PPLASMASHOTS EQU 0520H ;UHW NUMBER OF PLASMA SHOTS LEFT FOR PLAYER
|
||
PPOWERHEADS EQU 0530H ;UHW FLAGS FOR POWERUP HEADS-UP DISPLAYS
|
||
PLASTLED EQU 0540H ;UHW WAVETIME OF LAST LED SCAN
|
||
PCHAR_COUNT EQU 0550H ;UHB INITIAL CHARACTER POSITION
|
||
PCASUALTY EQU 0558H ;UHB CASUALTIES THIS WAVE
|
||
PDAMAGE EQU 0560H ;UHW BACKGROUND DAMAGE INFLICTED BY THIS GUY
|
||
PROCKSFIRED EQU 0570H ;UHW NUMBER OF ROCKETS FIRED THIS COIN
|
||
PSCOREFLASH EQU 0580H ;UHW SCORE BOX HIT FLASH FLAG
|
||
|
||
PRLAUNCHX EQU 0590H ;UHW [X >> 8] WORLD POSITION TO LAUNCH ROCKETS
|
||
;PRESERVE1 EQU 0590H ;UHW RESERVED
|
||
;PRESERVE2 EQU 05A0H ;UHW RESERVED
|
||
PTRACETIME EQU 05A0H ;UHL TIME OF LAST TRACER CREATION
|
||
|
||
;PDSIZE EQU 05B0H ;SIZE OF PLAYER DATA BLOCK
|
||
PDSIZE EQU 05C0H ;SIZE OF PLAYER DATA BLOCK
|
||
|
||
*NUMBER OF PLAYER STATUS OBJECTS
|
||
NSTATUSOBJS .EQU 5
|
||
|
||
PIZPOS .EQU -07000H ;GET A WAY WAY OUT ZPOS FOR THE PLAYER CURSOR
|
||
|
||
*PLAYER GUN CONTROL
|
||
MAX_GUNPOWER .EQU 220 ;THIS IS THE MAXIMUM GUN POWER
|
||
GUN_INCREMENT .EQU 1 ;ADD THIS MUCH POWER TO GUN EACH TICK
|
||
GUN_DECREMENT .EQU 4 ;RELIEVE GUN OF THIS POWER PER SHOT
|
||
MIN_GUN_ON .EQU 2 ;MINIMUM GUN ON TIME
|
||
MAX_GUN_ON .EQU 5 ;MAXIMUM GUN ON TIME
|
||
MIN_GUN_OFF .EQU 1 ;MINIMUM GUN OFF TIME
|
||
MAX_GUN_OFF .EQU 4 ;MAXIMUM GUN OFF TIME
|
||
GUN_COIL_ON .EQU 2 ;TICKS TO KEEP GUN COIL ON
|
||
*PLAYER GUN POWER UP TYPES
|
||
*PLAYER GUN POWER UP SHOTS
|
||
GUNCOOL_TIME .EQU 420
|
||
RAPID_SHOTS .EQU 200 ;NUMBER OF RAPID FIRE SHOTS
|
||
SUPER_SHOTS .EQU 50 ;NUMBER OF SUPER_SHOTS
|
||
*PLAYER GUN MODE EQUATES
|
||
GMODE_KILL .EQU 0
|
||
GMODE_STUN .EQU 1
|
||
GMODE_OFF .EQU 2
|
||
|
||
*
|
||
*SCORE AREA EQUATES
|
||
N1P1SCRAD EQU [0,0] ;1 PLAYER 1 SCORE ADDRESS
|
||
|
||
N2P1SCRAD EQU [0,0] ;2 PLAYER 1 SCORE ADDRESS
|
||
N2P2SCRAD EQU [0,266] ;2 PLAYER 2 SCORE ADDRESS
|
||
|
||
N3P1SCRAD EQU [0,0] ;3 PLAYER 1 SCORE ADDRESS
|
||
N3P2SCRAD EQU [0,134] ;3 PLAYER 2 SCORE ADDRESS
|
||
N3P3SCRAD EQU [0,268] ;3 PLAYER 3 SCORE ADDRESS
|
||
|
||
PSCOREOF EQU [2,36] ;DIGITAL SCORE DISPLAY OFFSET
|
||
PBOMBOF EQU [13,52] ;DIGITAL BOMB DISPLAY OFFSET
|
||
PICONOF EQU [11,0] ;BOMB ICON OFFSET
|
||
|
||
PBOXSIZ EQU [22,134] ;SIZE OF SCORE BOX
|
||
SCRSPC EQU [0,12] ;SPACING BETWEEN SCORE DIGITS
|
||
SCRCTR EQU [0,0] ; CENTERING LOC FOR PRESS START
|
||
SCRERA EQU [10,-16] ; SCORE BOX ERASE
|
||
SCRERAS EQU [12,82] ; SCORE BOX ERASE SIZE
|
||
CRDBOX EQU [22,134] ;4 PLAYER CREDIT BOX IS HERE
|
||
CRDSIZE EQU [8,134] ;AND THIS IS THE SIZE
|
||
CRDTXT EQU [2,65] ;TEXT ADD ON
|
||
CRDNUM EQU [9,11] ;CREDIT NUMBER ADD ON
|
||
|
||
PBOXPOWER EQU [44,67] ;Offset from PSCRAD as target for flying powerup
|
||
|
||
*
|
||
*ENERGY BAR OFFSETS
|
||
*
|
||
NNRGBLKS EQU 1 ;MAX # OF DISPLAYABLE ENERGY BLOCKS
|
||
NNRGUNIP EQU 99 ;# OF ENERGY UNITS/BLOCK
|
||
NENERGY EQU NNRGBLKS*NNRGUNIP ;MAX NUMBER OF DISPLAYABLE ENERGY UNITS
|
||
|
||
*
|
||
*GUN ENERGY BAR
|
||
*
|
||
GUNENERGY EQU 115 ;NUMBER OF DISPLAYABLE GUN ENERGY UNITS
|
||
|
||
*
|
||
*POSITIONS OF PLAYER STATUS BARS
|
||
*
|
||
P1STATUSXY EQU [240,0]
|
||
P2STATUSXY EQU [240,134]
|
||
P2STATUSXY2 EQU [240,268] ;Position when NPLAYERS = 2
|
||
P3STATUSXY EQU [240,268]
|
||
|
||
*
|
||
*HIT BOXES FOR ENEMIES SHOOTING DIRECTLY AT THE PLAYER
|
||
*
|
||
*1 PLAYER ONLY GAME
|
||
N1P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
|
||
N1P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
|
||
*2 PLAYER GAME
|
||
N2P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
|
||
N2P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH/2]
|
||
N2P2HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH/2]
|
||
N2P2HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
|
||
*3 PLAYER GAME
|
||
N3P1HITBOX_UL .EQU [SCORE_HEIGHT,0]
|
||
N3P1HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH/3]
|
||
N3P2HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH/3]
|
||
N3P2HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH*2/3]
|
||
N3P3HITBOX_UL .EQU [SCORE_HEIGHT,SCREEN_WIDTH*2/3]
|
||
N3P3HITBOX_LR .EQU [SCREEN_HEIGHT,SCREEN_WIDTH]
|
||
|
||
|
||
*
|
||
*FLAG EQUATES FOR "POWERUP_DISPATCH"
|
||
LIFE .EQU 1
|
||
|
||
**************************************************************************
|
||
* *
|
||
* OBJECT I.D. EQUATES *
|
||
* 15 0 *
|
||
* OID FORMAT -- SSSS STTT TIII IIPP new *
|
||
* TTTT IIII ISSS SSPP almost new *
|
||
* ZMPP TTTT SSSS IIII old *
|
||
* Z = SET, LYING ON GROUND *
|
||
* M = MISCELLANEOUS *
|
||
* P = RESERVED FOR PLAYERS *
|
||
* T = OBJECT TYPE *
|
||
* S = SUPPLEMENTAL LIST # *
|
||
* I = IDENTIFIER(SUB-TYPE) *
|
||
* *
|
||
**************************************************************************
|
||
;xxxx x000 0000 0000 (OID) xxxx=bit positions of supp field
|
||
;If # of bits changed, fix size of ram table SUPPLSTS
|
||
SR_SUPP .set 11 ;knock off bottom bits
|
||
SL_SUPP .set 27 ;32-#bits of supp field
|
||
SR_POID .EQU 30 ;SHIFTS TO ISOLATE PLAYER NUMBER FROM POID
|
||
SL_POID .EQU 30
|
||
|
||
* I WOULD LIKE TO HAVE MASKS FOR EACH FIELD OF OID ...
|
||
MASK_SUPP .EQU 0F800H ;Bits of supplemental fields
|
||
MASK_TYPE .EQU 00780H ;Bits of type field
|
||
MASK_ID .EQU 0007CH ;Bits of sub-type field
|
||
MASK_PLAYER .EQU 3H ;Bits of player field
|
||
|
||
BIT_ID .equ 2 ;Bits to shift to right align this field
|
||
|
||
*
|
||
*GENERIC OBJECT SUPPLEMENTAL I.D. EQUATES
|
||
*
|
||
SUPP_0 .EQU 0
|
||
SUPP_1 .EQU 00800H ;Player supplemental list
|
||
SUPP_2 .EQU 01000H ;Enemy supplemental list
|
||
SUPP_3 .EQU 01800H ;Powerup supplemental list
|
||
SUPP_4 .EQU 02000H ;Background object list
|
||
SUPP_5 .EQU 02800H ;Friend(Innocent) supplemental list
|
||
SUPP_6 .EQU 03000H
|
||
SUPP_7 .EQU 03800H
|
||
SUPP_8 .EQU 04000H
|
||
SUPP_9 .EQU 04800H
|
||
SUPP_10 .EQU 05000H
|
||
SUPP_11 .EQU 05800H
|
||
SUPP_12 .EQU 06000H
|
||
SUPP_13 .EQU 06800H
|
||
SUPP_14 .EQU 07000H
|
||
SUPP_15 .EQU 07800H
|
||
|
||
*
|
||
*GENERIC OBJECT SUBTYPE I.D. EQUATES
|
||
*
|
||
ID_0 .EQU 0
|
||
ID_1 .EQU 004H
|
||
ID_2 .EQU 008H
|
||
ID_3 .EQU 00CH
|
||
ID_4 .EQU 010H
|
||
ID_5 .EQU 014H
|
||
ID_6 .EQU 018H
|
||
ID_7 .EQU 01CH
|
||
ID_8 .EQU 020H
|
||
ID_9 .EQU 024H
|
||
ID_10 .EQU 028H
|
||
ID_11 .EQU 02CH
|
||
ID_12 .EQU 030H
|
||
ID_13 .EQU 034H
|
||
ID_14 .EQU 038H
|
||
ID_15 .EQU 03CH
|
||
ID_16 .EQU 040H
|
||
ID_17 .EQU 044H
|
||
ID_18 .EQU 048H
|
||
|
||
ID_29 .EQU 074H
|
||
ID_30 .EQU 078H
|
||
ID_31 .EQU 07CH
|
||
|
||
*
|
||
*PROCESS AND OBJECT TYPE AND CLASS EQUATES
|
||
*
|
||
TYPE_PLAYER .EQU SUPP_1
|
||
TYPE_POWERUP .EQU 00080H|SUPP_3
|
||
TYPE_FRIEND .EQU 00100H|SUPP_5
|
||
TYPE_JUNK .EQU 00300H
|
||
TYPE_TEXT .EQU 00480H
|
||
TYPE_UNIV .EQU 00580H|SUPP_4
|
||
TYPE_GRND .EQU 00680H|SUPP_15 ;USED FOR GROUND SCANNER
|
||
TYPE_NULL .EQU 00700H
|
||
TYPE_ENEMY .EQU 00700H|SUPP_2
|
||
TYPE_BLOWUP .EQU 00780H|SUPP_14 ;USED FOR SMART BOMB EXECUTION
|
||
|
||
*
|
||
*NULL PROCESS AND OBJECT IDENTIFIER EQUATES
|
||
*
|
||
|
||
*
|
||
*ENEMY PROCESS AND OBJECT IDENTIFIER EQUATES
|
||
*
|
||
N_ENEMIES .EQU 16 ;NUMBER OF DIFFERENT ENEMIES
|
||
ID_BGNDOBJ .EQU ID_0 ;DESTRUCTIBLE BACKGROUND OBJECT
|
||
ID_ROCKET .EQU ID_1 ;ROCKET BOMB
|
||
ID_EXPLOSION .EQU ID_2 ;EXPLOSION
|
||
ID_NONBOY .EQU ID_3 ;NEW ORDER BOY
|
||
ID_BZERK .EQU ID_4 ;Berzerker
|
||
;ID_POPBOY .EQU ID_5 ;POPUP NEW ORDER BOY
|
||
ID_BUGBOY .EQU ID_6 ;ON DA BUS NEW ORDER BOY
|
||
ID_COG .EQU ID_7 ;COG HEAD
|
||
ID_BTR .EQU ID_8 ;TROOP TRANSPORT
|
||
ID_MONDOR .EQU ID_9 ;MONDOR THE CARNIVOR
|
||
ID_CAT .EQU ID_9 ;The kitty kat
|
||
ID_BEEKPR .EQU ID_10 ;BEEKEEPER DUDE
|
||
ID_COPTER .EQU ID_11 ;HELICOPTER
|
||
ID_DESK .EQU ID_11 ;The mech desk.
|
||
ID_BOSSBUG .EQU ID_11 ;DA BIG BUG
|
||
|
||
*
|
||
*POWERUP PROCESS AND OBJECT IDENTIFIER EQUATES
|
||
*
|
||
ID_LIFE EQU ID_0
|
||
ID_SBOMB EQU ID_1
|
||
ID_PROCK EQU ID_2
|
||
ID_CD EQU ID_3
|
||
|
||
*
|
||
*FRIEND PROCESS AND OBJECT IDENTIFIER EQUATES
|
||
*
|
||
|
||
OID_P1 EQU 00001H ;PLAYER 1 OBJECT ID
|
||
OID_P2 EQU 00002H ;PLAYER 2 OBJECT ID
|
||
OID_P3 EQU 00003H ;PLAYER 3 OBJECT ID
|
||
|
||
OID_PROCKET EQU TYPE_PLAYER|ID_ROCKET
|
||
OID_PEXPLOSION EQU TYPE_PLAYER|ID_EXPLOSION
|
||
|
||
OID_P1HUP EQU TYPE_JUNK|OID_P1 ;PLAYER 1 HEADS UP OBJECTS
|
||
OID_P2HUP EQU TYPE_JUNK|OID_P2 ;PLAYER 2 HEADS UP OBJECTS
|
||
|
||
OID_JUNK EQU TYPE_JUNK ;SHIT THAT CLUTTERS THE PLAYFIELD
|
||
OID_ATTRACT EQU TYPE_JUNK|ID_1 ;ATTRACT MODE OBJECTS
|
||
OID_DAMAGE EQU TYPE_JUNK|ID_2 ;PASTE ON DAMAGE OBJECTS
|
||
OID_DIR EQU TYPE_JUNK|ID_3 ;DIRECTIONAL SYMBOLS
|
||
OID_SHAD EQU TYPE_JUNK|ID_4 ;SHADOW OBJECTS
|
||
OID_SOLO_DIR EQU TYPE_JUNK|ID_5 ;SOLO DIRECTIONAL
|
||
|
||
OID_TEXT EQU TYPE_TEXT ;"OBJECT LIST" TEXT
|
||
OID_BMES1 EQU TYPE_TEXT|ID_1 ;BUYIN MESSAGE 1 OBJECT ID
|
||
OID_BMES2 EQU TYPE_TEXT|ID_2 ;BUYIN MESSAGE 2 OBJECT ID
|
||
OID_BTIME EQU TYPE_TEXT|ID_3 ;BUYIN TIMER OBJECT ID
|
||
OID_TEXTW EQU TYPE_TEXT|ID_4 ;TEXT WINDOW OID
|
||
OID_BONUS EQU TYPE_TEXT|ID_5 ;BONUS SCORE OID
|
||
OID_INFOTEXT EQU TYPE_TEXT|ID_6 ;INFORMATIVE GAME PLAY TEXT
|
||
OID_GAMEOVER EQU TYPE_TEXT|ID_7 ;GAME OVER FLASHER
|
||
OID_CREDIT EQU TYPE_TEXT|ID_8 ;CREDIT MESSAGE TEXT
|
||
OID_PROMPT EQU TYPE_TEXT|ID_9 ;"READY FOR" MESSAGE
|
||
OID_PROMPT2 EQU TYPE_TEXT|ID_10 ;"PRESS START" MESSAGE
|
||
OID_CUSTOM EQU TYPE_TEXT|ID_11 ;CUSTOM MESSAGE, COINAGE, MAX CRED, ETC.
|
||
OID_REQUIRED EQU TYPE_TEXT|ID_12 ;CREDITS REQUIRED MESSAGE
|
||
OID_INIT EQU TYPE_TEXT|ID_13 ;ALPHABET OBJECT ID FOR HS ENTRY
|
||
|
||
OID_P1TEXT EQU TYPE_TEXT|OID_P1 ;PLAYER 1 SPECIFIC TEXT
|
||
OID_P2TEXT EQU TYPE_TEXT|OID_P2 ;PLAYER 2 SPECIFIC TEXT
|
||
OID_P1MOTEXT EQU OID_P1|OID_CUSTOM ;MORE PLAYER 1 TEXT
|
||
OID_P2MOTEXT EQU OID_P2|OID_CUSTOM ;MORE PLAYER 2 TEXT
|
||
|
||
OID_UNIV EQU TYPE_UNIV
|
||
|
||
*
|
||
*ENEMY OBJECT I.D.s
|
||
*
|
||
OID_ENEMY EQU TYPE_ENEMY
|
||
OID_ONFIRE_ENEMY EQU TYPE_ENEMY
|
||
OID_EROCKET EQU TYPE_ENEMY|ID_ROCKET
|
||
OID_NONBOY EQU TYPE_ENEMY|ID_NONBOY ;NON-BOY OBJECT
|
||
OID_BZERK EQU TYPE_ENEMY|ID_BZERK ;Berzerker object
|
||
;OID_POPBOY EQU TYPE_ENEMY|ID_POPBOY ;NON-BOY OBJECT
|
||
OID_BUGBOY EQU TYPE_ENEMY|ID_BUGBOY ;NON-BOY OBJECT
|
||
OID_COG EQU TYPE_ENEMY|ID_COG ;COGHEAD OBJECT
|
||
OID_BTR EQU TYPE_ENEMY|ID_BTR ;TROOP TRANSPORT
|
||
OID_MONDOR EQU TYPE_ENEMY|ID_MONDOR ;MONDOR THE CARNIVOR
|
||
OID_CAT EQU TYPE_ENEMY|ID_CAT ;The kitty kat object
|
||
OID_BEEKPR EQU TYPE_ENEMY|ID_BEEKPR ;BEEKEEPER DUDE
|
||
OID_COPTER EQU TYPE_ENEMY|ID_COPTER ;HELICOPTER
|
||
OID_DESK EQU TYPE_ENEMY|ID_DESK ;The mech desk
|
||
OID_BOSSBUG EQU TYPE_ENEMY|ID_BOSSBUG ;DA BOSS BUG
|
||
|
||
*
|
||
*POWERUP OBJECT I.D.s
|
||
*
|
||
OID_LIFE EQU TYPE_POWERUP|ID_LIFE ;LIFE POWERUP PROCESS
|
||
OID_SBOMB EQU TYPE_POWERUP|ID_SBOMB ;SMART BOMB
|
||
OID_PROCK EQU TYPE_POWERUP|ID_PROCK ;ROCKET
|
||
OID_CD EQU TYPE_POWERUP|ID_CD ;CD
|
||
|
||
OID_BLOWUP EQU TYPE_BLOWUP
|
||
OID_GRND EQU TYPE_GRND
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PROCESS I.D. EQUATES *
|
||
* 15 0 *
|
||
* PID FORMAT -- NEWO IIII IIII IIPP new *
|
||
* NEWI IIPP IIII IIII old *
|
||
* N = NON-DESTRUCTIBLE *
|
||
* E = WAVE END WAIT *
|
||
* W = WAVE END WILL NOT KILL THESE *
|
||
* O = RESERVED FOR PROCESSES ASSOCIATED WITH OBJECTS OF LIKE I.D.s *
|
||
* I = PROC. SPECIFIC I.D. *
|
||
* P = RESERVED FOR BASE PLAYER PROCESS I.D.'S *
|
||
* *
|
||
**************************************************************************
|
||
M_INDESTRUCT EQU 8000H ;MASK FOR NON-DESTRUCTIBLE BIT
|
||
M_WAVEWAIT EQU 4000H ;MASK FOR WAVE END WAIT BIT
|
||
M_OID EQU 1000H ;MASK FOR OBJECT ID PROCESSES
|
||
|
||
PID_IND EQU 000CH ;INDEPENDENT PROCESS
|
||
PID_INDW EQU 200CH ;WAVE END WILL NOT KILL IND. PROCESS
|
||
PID_INDE EQU 400CH ;WAVE END WAIT INDEPENDENT PROCESS
|
||
PID_ATT EQU 0008H ;ATTRACT MODE PROCESS
|
||
PID_TFADE EQU 801CH ;Sound track fader process.
|
||
|
||
*BASE PROCESS IDs FOR PLAYERS
|
||
P1PID EQU 0001H ;BASE PROCESS I.D. FOR PLAYER 1 PROCESSES
|
||
P2PID EQU 0002H ;BASE PROCESS I.D. FOR PLAYER 2 PROCESSES
|
||
P3PID EQU 0003H ;BASE PROCESS I.D. FOR PLAYER 3 PROCESSES
|
||
PNUM_SLL EQU 30 ;SLL USED TO ISOLATE PLAYER #
|
||
PNUM_SRL EQU 30 ;SRL USED TO ISOLATE PLAYER #
|
||
*THE FOLLOWING I.D'S ARE OR'D INTO THE ABOVE PLAYER BASE PROCESS I.D.S
|
||
*TO FORM THE COMPLETE PROCID.
|
||
*!!!WARNING!!! !!!WARNING!!!*
|
||
* PLAYER OR-IN IDs ARE NOT ALLOWED TO USE BITS 10,11 & 12 *
|
||
*!!!WARNING!!! !!!WARNING!!!*
|
||
PCPID EQU 0000H ;PLAYER CONTROL PROCESS
|
||
PID_PINVIN EQU 0010H ;PLAYER INVINCIBILITY PROCESS
|
||
PSTRTPID EQU 8020H ;PLAYER START PROCESS IDENTIFIER
|
||
PID_SHUTDOWN EQU 0030H ;PLAYER SHUTDOWN PROCESS
|
||
PFIREPID EQU 2010H ;PLAYER FIRE BUTTON PROCESS
|
||
PBOMBPID EQU 2020H ;PLAYER BOMB BUTTON PROCESS
|
||
PINITIALPID EQU 2040H ;PLAYER INITIAL ENTRY
|
||
*
|
||
*COMPLETE PROCESS I.D.S
|
||
*
|
||
PID_ANIMP EQU 0600H ;ANIMATOR PROCESS I.D.
|
||
PID_GUN EQU 0610H ;GUN WATCH PROCESS
|
||
PID_FRAG EQU 0620H ;FrAgger Proc
|
||
PID_SKY EQU 0630H ;SKY COLOR FADE PROCESS I.D.
|
||
PID_FADE EQU 0640H ;MUSIC FADE PROCESS
|
||
|
||
PID_JUNK EQU 0900H ;JUNK PROCESS
|
||
PID_SKYTEXT EQU 0910H ;SKYNET TEXT PRINTER
|
||
PID_BONUS EQU 09A0H ;BONUS PROCESS
|
||
|
||
PID_TCYCLE equ 0B20h ; temporary color cycle
|
||
PID_GOODIE EQU 0B40H ;TEMPORARY GOODIE ANIMATIONS
|
||
|
||
PID_COLL EQU 0C00H ;COLLISION PROCESS I.D. RES C00 - CF0
|
||
|
||
PID_DAMCC EQU 0CC0H ;DAMAGE COLOR CYCLE PROCESSES
|
||
|
||
PID_SCROLL EQU 0D60H ;THE CURRENT SCROLL PROCESS I.D.
|
||
PID_MASTERDP EQU 0D70H ;THE MASTER ENEMY DISPATCH PROCESS
|
||
PID_BAITER EQU 0D90H ;ENFORCER BAITER PROCESS
|
||
PID_POWERUPD0 EQU 0DA0H ;POWER-UP DISPATCHER 0
|
||
PID_POWERUPD1 EQU 0DB0H ;POWER-UP DISPATCHER 1
|
||
PID_POWERUPD2 EQU 0DC0H ;POWER-UP DISPATCHER 2
|
||
PID_POWERUPD3 EQU 0DD0H ;POWER-UP DISPATCHER 3
|
||
*
|
||
*PROCESSES DIRECTLY ASSOCIATED WITH OBJECTS OF LIKE I.D.s
|
||
* THESE ARE USED FOR DISPATCHED ITEMS i.e. ENEMIES, HUMANS, POWERUPS
|
||
*
|
||
PID_NONBOY EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_NONBOY ;NON-BOY PROCESS
|
||
PID_BZERK EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BZERK ;Berzerker process
|
||
PID_COG EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_COG ;COGHEAD PROCESS
|
||
PID_MONDOR EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_MONDOR ;MONDOR PROCESS
|
||
PID_COPTER EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_COPTER ;HELICOPTER PROCESS
|
||
PID_DESK EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_DESK ;MECH DESK PROCESS
|
||
PID_BOSSBUG EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BOSSBUG ;DA BOSS BUG
|
||
PID_BEEKPR EQU M_OID|(TYPE_ENEMY & MASK_TYPE)|ID_BEEKPR ;BEEKEEPER GENERATOR
|
||
|
||
PID_POWERUP EQU M_OID|(TYPE_POWERUP & MASK_TYPE) ;POWERUP PROCESS
|
||
|
||
*
|
||
*"WAVE END WILL NOT KILL" PROCESSES
|
||
*
|
||
PID_UNIV EQU 2A00H ;UNIVERSE PROCESS
|
||
PID_BGND EQU 2B00H ;BGND UPDATE PROCS RESERVE 2B0X -2BFX
|
||
PID_COLOR EQU 2CC0H ;COLOR CYCLE PROCESSES
|
||
PID_PFADE EQU 2D00H ;FADER PROCESSES ( LOW BYTE = PAL )
|
||
PID_CURSOR EQU 2C00H ;GUN CURSOR UPDATE PROCESS
|
||
*
|
||
*"WAVE END WAIT" PROCESSES
|
||
*
|
||
PID_BUYIN EQU 4DE0H ;END O' GAME BUY-IN WAIT PID
|
||
*
|
||
*INDESTRUCTIBLE PROCESSES
|
||
*
|
||
PID_LC EQU 08F00H ;LEFT COIN
|
||
PID_CC EQU 08F20H ;CENTER COIN
|
||
PID_RC EQU 08F40H ;RIGHT COIN
|
||
PID_XC EQU 08F60H ;FOURTH COIN SLOT
|
||
PID_SLAM EQU 08F80H ;SLAM TILT PROCESS
|
||
PID_COINCTR EQU 08FA0H ;COIN COUNTER PROCESS
|
||
PID_PRINT EQU 08FC0H ;BACKGROUND PRINTER PROCESS
|
||
PID_VOLRESET EQU 08FD0H ;Delayed volume set process
|
||
PID_VOLUME EQU 08FE0H ;Volume adjust process
|
||
PID_VOLUME_DISP EQU 08FF0H ;Volume display page deleter process
|
||
PID_DIAG EQU 08100H ;DIAGNOSTICS PROCESS
|
||
|
||
*
|
||
*DAMAGE ODATA VARIABLES
|
||
*
|
||
DAMAGE_HITS .EQU ODATA ;UHW NUMBER OF HITS AT POINT OF DAMAGE
|
||
DAMAGE_PARTID .EQU ODATA+10H ;UHB PART I.D. OF DAMAGED PART
|
||
|
||
*
|
||
*COIL #'S FOR GUN RECOIL
|
||
*
|
||
P1_RECOIL .EQU 0
|
||
P2_RECOIL .EQU 1
|
||
P3_RECOIL .EQU 2
|
||
*
|
||
*PLAYER TRIGGER SWITCH NUMBERS
|
||
*
|
||
P1TRIGGER .EQU 4
|
||
P2TRIGGER .EQU 12
|
||
P3TRIGGER .EQU 20
|
||
P1BOMB .EQU 5
|
||
P2BOMB .EQU 13
|
||
P3BOMB .EQU 21
|
||
|
||
*
|
||
*FRANIM FLAG MASKS
|
||
SPAWNP EQU 8000H
|
||
FLIPBITS EQU 4000H
|
||
NEWPALET EQU 2000H
|
||
DELTAXZ EQU 1000H
|
||
DELTAY EQU 800H
|
||
MAKESOUND EQU 200H
|
||
SCRIPT EQU 100H
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* PALETTE ALLOCATOR EQUATES *
|
||
* *
|
||
**************************************************************************
|
||
*PALETTE ALLOCATION RAM
|
||
*FOR EACH COLOR PALETTE:
|
||
*PALETTE ID 32 BITS, PALETTE COUNT 16 BITS, PALETTE TIME 16 BITS.
|
||
*IF PALCNT>0 PALETTE IS ALLOCATED.
|
||
*IF (PALCNT=0) & (CURTIME-PALTIME >= 1) THEN PALETTE IS FREE
|
||
*
|
||
.IF YUNIT
|
||
|
||
.IF TUNIT
|
||
NUMPAL .SET 128 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
|
||
NMFPAL .SET 100 ;NUMBER OF FOREGROUND PALETTES
|
||
NMBPAL .SET 28 ;NUMBER OF BACKGROUND PALETTES
|
||
.ELSE
|
||
NUMPAL .SET 16 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
|
||
NMFPAL .SET 12 ;NUMBER OF FOREGROUND PALETTES
|
||
NMBPAL .SET 4 ;NUMBER OF BACKGROUND PALETTES
|
||
.ENDIF
|
||
|
||
.ELSE
|
||
NUMPAL .SET 32 ;NUMBER OF DYNAMICS ALLOCATED PALETTES
|
||
NMFPAL .SET 16 ;NUMBER OF FOREGROUND PALETTES
|
||
NMBPAL .SET 16 ;NUMBER OF BACKGROUND PALETTES
|
||
.ENDIF
|
||
*
|
||
*PALETTE ENTRY DATA STRUCTURE
|
||
PALID .SET 0 ;PALETTE I.D. (32)
|
||
PALCNT .SET 020H ;PALETTE ALLOCATION COUNT (16)
|
||
PALTIME .SET 030H ;TIME WHEN PAL WAS DELETED
|
||
PALRSIZ .SET 040H ;SIZE OF PALETTE ALLOCATION RAM
|
||
*
|
||
*PALETTE TRANSFER RAM DATA STRUCTURE
|
||
PLDCNT .SET 0 ;COLOR COUNT (16)
|
||
PALSRC .SET 010H ;SOURCE ADDRESS OF PALETTE COLOR DATA (32)
|
||
PALDEST .SET 030H ;DESTINATION PALETTE|START COLOR (16)
|
||
PTRSIZ .SET 040H ;SIZE OF EACH CELL
|
||
NUMPTR .SET 32 ;NUMBER OF TRANSFERS ALLOWED
|
||
|
||
*PALETTE MODE STUFF
|
||
M_FADE_WHITE EQU 1
|
||
M_DONT_FADE_RED EQU 2
|
||
M_DONT_FADE_GREEN EQU 4
|
||
M_DONT_FADE_BLUE EQU 8
|
||
|
||
B_FADE_WHITE EQU 0
|
||
B_DONT_FADE_RED EQU 1
|
||
B_DONT_FADE_GREEN EQU 2
|
||
B_DONT_FADE_BLUE EQU 3
|
||
|
||
;******* FLAGS FOR Fragger scripts ********
|
||
FRGBOG .set 001H
|
||
FRGGCOL .set 002H
|
||
FRGNOFLY .set 004H
|
||
FRGNOFLP .set 008H
|
||
FRGRND .set 010H
|
||
FRGPAL .set 020H
|
||
B_FRGBOG .set 0
|
||
B_FRGGCO .set 1
|
||
B_FRGNOFLY .set 2
|
||
B_FRGNOFLP .set 3
|
||
B_FRGRND .set 4
|
||
B_FRGPAL .set 5
|
||
|
||
*
|
||
*FIXED COLOR CYCLE EQUATES
|
||
*
|
||
CYCOLORS .EQU COLRAM+(300H*2) ;CYCLABLE COLORS LAST LINE OF 1st PALETTE
|
||
COLROFFST .EQU 090H ;OFFSET TO START COLORS
|
||
COLRCNT .EQU 6 ;TOTAL NUMBER OF COLORS TO CYCLE
|
||
|
||
;PCYCLEPAL .EQU 0H ;PLAYER CYCLERS
|
||
;PCOLROFFST .EQU 300H+090H ;OFFSET TO 1st PLAYER CYCLER
|
||
;PCOLRCNT .EQU 2 ;NUMBER OF PLAYER CYCLERS
|
||
|
||
*
|
||
*GAME STATE CONSTANTS
|
||
INGAME .EQU 10H
|
||
ININTRO .EQU 18H
|
||
INPLAY .EQU 20H
|
||
INAMODE .EQU 30H
|
||
INDIAG .EQU 40H
|
||
INGAMEOV .EQU 50H
|
||
INEPILOG .EQU 60H
|
||
*
|
||
*DISPLAY FLAGS FOR FORE/BACKGROUND OBJECTS
|
||
M_SPAWNP EQU 80H ;SPAWN A PROCESS WITH THIS OBJECT IN A8
|
||
B_SPAWNP EQU 7
|
||
|
||
*
|
||
*BUY-IN WINDOW CONSTANTS
|
||
*
|
||
BUYTIME .EQU 10
|
||
BUYSLP .EQU 4
|
||
BUYTICK .EQU 52/BUYSLP
|
||
|
||
*
|
||
*BACKGROUND UPDATER EQUATES
|
||
BLSTSTRT .EQU 08000H
|
||
BLSTEND .EQU 08001H
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* UNIVERSE STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
CHUNKS .EQU 1 ;TRAVERSE IN 2^CHUNK PARTS
|
||
|
||
BGLINK_MEM_SIZE .set 200*1024*8 ; 300 Kbytes
|
||
MAX_UNIV_OBJS EQU (BGLINK_MEM_SIZE/BLOCK_SIZE)
|
||
|
||
OULINK EQU OVAR7 ;UHL UNIVERSE RAM LINK ADDRESS
|
||
|
||
OENEMYANIM EQU ODATA ;UHL ENEMY GENERATOR ANIM SCRIPT
|
||
OATEROCKET EQU ODATA+020H ;UHL FLAG ROCKET COLLISION (ROCKET OBJECT)
|
||
OGTIME EQU ODATA+040H ;UHL TIME AT LAST GUN HIT
|
||
***********
|
||
* NOTE! * ENEMY GENERATORS USE SOME ODATA!! See gxuniseq.asm for defines.
|
||
***********
|
||
OU_ODATA EQU ODATA+0100H ;Beginning of usable ODATA for universe objects
|
||
|
||
**************************************************************************
|
||
* *
|
||
* FRAGGER STUFF *
|
||
* *
|
||
**************************************************************************
|
||
|
||
FPDATA EQU PDATA+20H*11 ;BEGINNING OF USABLE PDATA AREA IN FragProc
|
||
**************************************************************************
|
||
* *
|
||
* GENERATION X - DIPSWITCH EQUATE FILE *
|
||
* *
|
||
* COPYRIGHT (C) 1993 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
* *
|
||
* *
|
||
**************************************************************************
|
||
;
|
||
; DIP SWITCH
|
||
;
|
||
DPMIRROR EQU 0001H ;MIRROR DISPLAY SWITCH
|
||
DPMIRROR_RAW .EQU 0001H ;RAW POSITION FROM PORT (Steve & John fixed it!)
|
||
|
||
DPUSECMOS EQU 0002H ;USE CMOS MASK
|
||
|
||
DPCOINAGE EQU 001CH ;COINAGE MASK
|
||
SR_DPCOINAGE EQU 2 ;shift count to Right justify COINAGE bits
|
||
|
||
DPCREDITS EQU 00E0H ;CREDITS TO START/CONTINUE MASK
|
||
SR_DPCREDITS EQU 5 ;shift count to Right justify CREDITS bits
|
||
|
||
DPCOUNTRY EQU 0300H ;COUNTRY MASK
|
||
SR_DPCOUNTRY EQU 8 ;shift count to Right justify COUNTRY bits
|
||
|
||
DPUNUSED1 EQU 0400H ;UNUSED BIT 1
|
||
DPCOUNTER EQU 0800H ;NUMBER OF COIN COUNTERS
|
||
|
||
DPPLAYERS EQU 3000H ;NUMBER OF HARDWARE PLAYERS
|
||
SR_DPPLAYERS EQU 12 ;shift count to Right justify PLAYERS bits
|
||
|
||
DPFREEZE EQU 4000H ;FREEZE SWITCH
|
||
DPTEST EQU 8000H ;TEST SWITCH
|
||
|
||
;
|
||
; 0 = OFF
|
||
; 1 = ON
|
||
;
|
||
; THANKS TO MARK LOFFREDO FOR REAMING ME OVER AND REVERSING THE
|
||
; DIP SWITCHES
|
||
;
|
||
; DPMIRROR ( DS1 - 1 )
|
||
;
|
||
; 0 = VIDEO SCREEN VIEWED THROUGH A MIRROR (IN CABINET)
|
||
; 1 = VIDEO SCREEN VIEWED NORMALLY (FOR TEST BENCH)
|
||
;
|
||
; DPUSECMOS ( DS1 - 2 )
|
||
;
|
||
; 0 = DIP SWITCH COINAGE USED
|
||
; 1 = CMOS COINAGE USED
|
||
;
|
||
; DPRIGHTSLOT ( DS1 - 5 4 3 )
|
||
;
|
||
; 000 = 1 COIN / 1 CREDIT
|
||
; 001 = 2 COIN / 1 CREDIT
|
||
; 010 = 3 COIN / 1 CREDIT
|
||
; 011 = 4 COIN / 1 CREDIT
|
||
; 100 = 1 COIN / 2 CREDIT
|
||
; 101 = 1 COIN / 3 CREDIT
|
||
; 110 = 1 COIN / 4 CREDIT
|
||
; 111 = FREEPLAY
|
||
;
|
||
; DPUNUSED ( DS1 - 6 )
|
||
;
|
||
; DPUNUSED ( DS1 - 7 )
|
||
;
|
||
; DPUNUSED ( DS1 - 8 )
|
||
;
|
||
; DPCOUNTRY ( DS2 - 2 1 )
|
||
;
|
||
; 00 = USA
|
||
; 01 = GERMAN
|
||
; 10 = FRENCH
|
||
; 11 = OUTERSPACE
|
||
;
|
||
; DPUNUSED ( DS2 - 3 )
|
||
;
|
||
; DPCOUNTER ( DS2 - 4 )
|
||
;
|
||
; 0 = 1 COUNTER
|
||
; 1 = 2 COUNTERS
|
||
;
|
||
; DPPLAYERS ( DS2 - 6 5 )
|
||
;
|
||
; 00 = GAME CONFIGURED FOR 3 PLAYERS
|
||
; 01 = GAME CONFIGURED FOR 2 PLAYERS
|
||
; 10 = GAME CONFIGURED FOR 1 PLAYER
|
||
; 11 = GAME CONFIGURED FOR 1 PLAYER
|
||
;
|
||
; DPFREEZE ( DS2 - 7 )
|
||
;
|
||
; 0 = DON'T FREEZE SCREEN
|
||
; 1 = FREEZE SCREEN ( NOTE : MUST HAVE A TRANSITION TO WORK )
|
||
;
|
||
; DPTEST ( DS2 - 8 )
|
||
;
|
||
; 0 = NORMAL NON-TEST
|
||
; 1 = TEST MODE
|
||
;
|
||
**************************************************************************
|
||
* *
|
||
* AUDIT AND ADJUSTMENT EQUATE FILE *
|
||
* *
|
||
* COPYRIGHT (C) 1992 MIDWAY MANUFACTURING COMPANY. *
|
||
* ALL RIGHTS RESERVED. *
|
||
* *
|
||
**************************************************************************
|
||
|
||
*OFTEN REFERENCED CMOS ROUTINES
|
||
.GLOBAL GET_ADJ, AUD, AUD1, STORE_AUDIT, CLR_AUDR, GET_AUD, BAD_AUD
|
||
|
||
*
|
||
* AUDITS
|
||
*
|
||
* AUDITS ARE HANDLED BY AUDITS NUMBER OFF OF THE BASE
|
||
* OF THE AUDIT REGION
|
||
*
|
||
*
|
||
* IF "CHUTES" VALUE IS CHANGED....EXTRA VALUES MUST
|
||
* BE PUT IN THIS TABLE. (AND ADJUSTMENT TABLE OF COURSE)
|
||
*
|
||
AUDNULL EQU 0
|
||
|
||
AUDLCOIN EQU 1 ;TOTAL COINS IN LEFT CHUTE
|
||
AUDCCOIN EQU 2 ;TOTAL COINS IN CENTER CHUTE
|
||
AUDRCOIN EQU 3 ;TOTAL COINS IN RIGHT CHUTE
|
||
AUD4COIN EQU 4 ;TOTAL COINS IN FOURTH CHUTE
|
||
AUDSCOIN EQU 5 ;TOTAL SERVICE CREDITS
|
||
AUDPAIDC EQU 6 ;TOTAL PAID CREDITS
|
||
*
|
||
FRST_C EQU AUDLCOIN ;FOR CLEARING COINS
|
||
LAST_C EQU AUDPAIDC
|
||
*
|
||
AUDSTART EQU 7 ;PLAYER STARTS
|
||
|
||
AUD1TIME EQU 15 ;TIME 1 PLAYER ONLY
|
||
AUD2TIME EQU 16 ;TIME 2 PLAYER SIMULTANEOUS
|
||
AUD3TIME EQU 17 ;TIME 3 PLAYER SIMULTANEOUS
|
||
|
||
AUDPTIME EQU 19 ;TOTAL PLAY TIME
|
||
AUDAVGTL EQU 20 ;AVERAGE TIME/LIFE
|
||
AUDAVGTC EQU 21 ;AVERAGE TIME/CREDIT
|
||
|
||
AUDMAXWAVE EQU 22 ;MAX WAVE REACHED
|
||
|
||
AUDDEARNED EQU 25 ;DINOS EARNED
|
||
AUDMAXBOZO EQU 26 ;MAXIMUM BOZO LEVEL ACHIEVED
|
||
AUDSLAMS EQU 27 ;NUMBER OF TIMES BEEN SLAMMED
|
||
AUDUPTIME EQU 28 ;GAME TOTAL UPTIME ( POWER ON TIME )
|
||
AUDCONTOFFER EQU 29 ;GAME CONTINUES OFFERED
|
||
AUDCONTTAKEN EQU 30 ;GAME CONTINUES TAKEN
|
||
AUDONTIME EQU 31 ;GAME POWER ON TIME
|
||
AUDAUTO EQU 32 ;AUTO CYCLE PASSES
|
||
AUDDOGGY EQU 33 ;WATCHDOG HITS
|
||
AUDAVGGC EQU 34 ;AVERAGE GAME COST
|
||
AUDNUMTL EQU 35 ;DIVISOR FOR TIME/LIFE
|
||
AUDNUMTC EQU 36 ;DIVISOR FOR TIME/CREDIT
|
||
AUDNUMTG EQU 37 ;GAMES COMPLETED
|
||
|
||
AUDWARNING EQU 39 ;SOFTWARE WARNING
|
||
AUDBADTRAP EQU 40 ;SOFTWARE TRAPS
|
||
AUDSECURITY EQU 41 ;SECURITY BREECH COUNT
|
||
AUDWAVECNT EQU 42 ;COUNTER FOR AVG WAVE REACHED
|
||
AUDFINISH EQU 43 ;GAMES THAT HAVE BEEN FINISHED
|
||
*
|
||
LAST_AUDIT EQU 43 ;LAST AUDIT FOR AUDIT CLEAR INFO
|
||
*
|
||
FRSTGAUD EQU AUDSTART
|
||
LASTGAUD EQU LAST_AUDIT
|
||
|
||
AUDCAL1UL EQU LAST_AUDIT+1 ;PLAYER 1 UPPER LEFT CALIBRATION
|
||
AUDCAL1LR EQU LAST_AUDIT+2 ;PLAYER 1 LOWER LEFT CALIBRATION
|
||
AUDCAL2UL EQU LAST_AUDIT+3 ;PLAYER 2 UPPER LEFT CALIBRATION
|
||
AUDCAL2LR EQU LAST_AUDIT+4 ;PLAYER 2 LOWER LEFT CALIBRATION
|
||
AUDCAL3UL EQU LAST_AUDIT+5 ;PLAYER 3 UPPER LEFT CALIBRATION
|
||
AUDCAL3LR EQU LAST_AUDIT+6 ;PLAYER 3 LOWER LEFT CALIBRATION
|
||
*
|
||
CALIBRATE_START .EQU AUDCAL1UL
|
||
CALIBRATE_END .EQU AUDCAL3LR
|
||
|
||
*
|
||
* ADJUSTMENTS ARE ALL LONG WORDS REFERENCED BY ADJUSTMENT
|
||
* NUMBER.
|
||
*
|
||
ADJNULL EQU 0
|
||
ADJPRICE EQU 1 ;MASTER PRICING
|
||
ADJLMULT EQU 2 ;LEFT SLOT MULTIPLIER
|
||
ADJC1 EQU ADJLMULT ;FIRST COIN TABLE ADJUSTMENT
|
||
ADJCMULT EQU 3 ;CENTER SLOT MULTIPLIER
|
||
ADJRMULT EQU 4 ;RIGHT SLOT MULTIPLIER
|
||
ADJ4MULT EQU 5 ;FOURTH SLOT MULTIPLIER
|
||
ADJCUNIT EQU 6
|
||
ADJBUNIT EQU 7
|
||
ADJMUNIT EQU 8
|
||
ADJCDIV EQU 9
|
||
ADJFRAC EQU 10 ;NON ZERO SAYS SHOW HALF CREDITS
|
||
ADJCSTRT EQU 11 ;CREDITS REQUIRED TO START
|
||
ADJCCONT EQU 12 ;CREDITS REQUIRED TO CONTINUE
|
||
ADJCX EQU ADJCCONT ;LAST COIN TABLE ADJUSTMENT
|
||
ADJDIFF EQU 13
|
||
ADJHSRES EQU 14
|
||
ADJENERGY EQU 15 ;ENERGY PER PLAY
|
||
ADJEXTRA EQU 16 ;EXTRA MAN EVERY
|
||
ADJNUMEXTRA EQU 17 ;MAXIMUM NUMBER EXTRA MEN/COIN
|
||
ADJMUSIC EQU 18 ;ATTRACT MODE SOUND
|
||
ADJMAXC EQU 19 ;MAXIMUM CREDITS
|
||
ADJFREPL EQU 20 ;NON-ZERO MEANS FREE PLAY
|
||
ADJVIRGIN EQU 21 ;NON-ZERO MEANS 1ST 8 OF COIN ADJUST BLOCK UNTOUCHED
|
||
ADJBOMBS EQU 22 ;NUMBER OF BOMBS PER GAME
|
||
ADJ1ST6 EQU 23 ;NON-ZERO MEANS 1ST 6 UNTOUCHED.
|
||
ADJNOCPAG EQU 24
|
||
ADJBUYIN EQU 25
|
||
ADJHSON EQU 26 ;IF = 0, DON'T ALLOW HIGH SCORE ENTRY
|
||
ADJMINTIME EQU 27 ;MINIMUM TIME GUARANTEED PER CREDIT
|
||
ADJVOLUME EQU 28 ;Current sound board volume
|
||
ADJMINVOL EQU 29 ;Minimum volume allowed
|
||
ADJSWAVE EQU 30 ;Starting Wave #
|
||
LAST_ADJUST EQU 30
|
||
|
||
|
||
|
||
|