trog/TROGEQU.ASM

675 lines
24 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.

**************************************************************************
* *
* TROG GLOBAL EQUATE FILE *
* *
**************************************************************************
*
*RAM EQUATES
*
.GLOBAL TVPATCH, TVPATCHX
.GLOBAL BBACTIVE, BBFREE, BACKSLST, NOAUTOE, RAND, SWSTACK, SWTEMP1
.GLOBAL SWTEMP2, SWSTMN, SWSTST, SYSCOPY, INTSYNC0, INTSYNC1
.GLOBAL PALRAM, FPALRAM, BPALRAM, PTRRAM, CURPAL
.GLOBAL IRQSKYE, P1DATA, P2DATA, P3DATA, P4DATA
.GLOBAL GAME_STATE, NPLAYERS, CURPLYRS, SOUNDSUP, GAMERASE
.GLOBAL WRAMEND, WRAMSTRT, NRAMEND, NRAMSTRT, GRAMEND, GRAMSTRT
.GLOBAL POSTSUPP, POSTMAP, MOVEMAP, MOVEEND
.GLOBAL P1BARS, P2BARS, P3BARS, P4BARS, TROGS, EGGS
.GLOBAL MAXBARS, PAGE, DINOS, WAVE, CMOVEMAP, CMOVEEND, CMOVECNT
.GLOBAL EMOVEMAP, EMOVEEND, EMOVECNT, BOXDIM, BOUNDRIES, STICKTYP
.GLOBAL MOVECNT, ENEMIES, AMOVEMAP, AMOVEEND
.GLOBAL AMOVECNT, SW2TEMP1, SW2TEMP2, PAUSE_GAME, HOUSELST
.GLOBAL WAVE_OVER
*
*PALETTE SUBROUTINE EQUATES
*
.GLOBAL GETFPAL, PALTRANS, CLRBPAL, INITPAL, CLRFPAL, FINDPAL
.GLOBAL GETBPAL, INITBPAL, CLRPAL, DELPAL, DELETE_PAL, FREEPAL
.GLOBAL CHANGE_PAL, GET_PALID
*
*UTILITY SUBROUTINE EQUATES
*
.GLOBAL SCRCLR, CLR_SCRN, MYOINIT, SETPPROC
.GLOBAL SHVELCPY, SHVELFLP, FLP, XZCHK, CLRPDATA
.GLOBAL RANDU, RANDOM, SRAND, RANGRAND, RANDPER
.GLOBAL FRANIM, IAUTOE, AUTOEOFF, AUTOEON, SYNCFULL, SYNCHALF
.GLOBAL DMAQWAIT, BLNKAREA, DTIME, DMAN, DRAWBOX, CLRP_P0, CLRP_P1
.GLOBAL PSTOP, MIDPOINT, QBOXCK, QINSCRN, CLRPLAY, PAGE0, PAGE1
.GLOBAL TURNPAGE, WHICHSID, ABOVBELO, ALIGNOBJ, 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, FILLAREA, ANIMATE_DEL, DMAWPAL, OSINK
.GLOBAL STOPPED, SKIP_ANIMATION
*
*SCORE SUBROUTINE EQUATES
*
.GLOBAL SCORAREA, SCORE
*
*PLAYER SUBROUTINE EQUATES
*
.GLOBAL CALLPLAY
*
*BACKGROUND SYSTEM STUFF
*
.GLOBAL BAKBITS, BAKLST
*
*GLOBAL DUMMY(NULL) ROUTINES
*
.GLOBAL DUMRETS, DUMCOLL, DUMCRETS, DUMBGND, DUMSCRIPT, DUMRETP
.GLOBAL DUMFGND, DUMDIE, DUMSRETS
.GLOBAL DUMPPRINT
*
* TROG EQUATES
*
NWAVES .EQU 50 ;# OF DIFFERENT WAVES (DIFF TABLE SIZE)
LAST_WAVE .EQU 49 ;GAME ENDS AFTER THIS WAVE
MAXPLAYERS .EQU 5 ;MAXIMUM # OF PLAYERS ALLOWED(INCLUDES DRONE)
*
*SCREEN TOP OFFSET
SKYTOPOF .EQU 40
SCORDPYS .EQU 0FFFFFD7CH ;DPYSTRT VALUE FOR HIDING THE SCORE
*
*GLOBAL MOVEMENT EQUATES
*
UP .EQU 0
DOWN .EQU 1
LEFT .EQU 2
RIGHT .EQU 3
UP_LEFT .EQU 4
UP_RIGHT .EQU 5
DOWN_LEFT .EQU 6
DOWN_RIGHT .EQU 7
************************************************************
* *
* PLAYER DATA STRUCTURE *
* *
************************************************************
POBJ EQU 0000H ;PLAYER OBJECT BLOCK
PSCRAD EQU 0020H ;PLAYER SCORE SCREEN ADDRESS
PSCORE EQU 0040H ;PLAYER SCORE
PLIVES EQU 0060H ;PLAYER # OF LIVES
PPID EQU 0070H ;PLAYER BASE PROCESS I.D.
PEGGINIT EQU 0080H ;UHW IF <> 0, WE HAVE LAYED THE INTIAL EGGS
PMOVE EQU 0090H ;PTR TO CURRENT MOVE TABLE ENTRY
PBARS EQU 00B0H ;CURRENT NUMBER OF ACTIVE BARS
PINITAB EQU 00C0H ;PLAYER INITIALIZATION TABLE
PSUPP EQU 00E0H ;PTR TO PLAYER SUPPLEMENTAL LIST
PJOYSTCK EQU 0100H ;CURRENT JOYSTICK DIRECTION BEING PROCESSED
PDINO EQU 0110H ;PTR TO DINOSAUR START TABLE
PLICON EQU 0130H ;PTR TO PLAYER LIFE ICON
PNEXTREP EQU 0150H ;NEXT REPLAY LEVEL, 32 BITS BCD
PEGGS EQU 0170H ;# OF EGGS CURRENTLY HELD BY THIS PLAYER
PEGGACTIVE EQU 0180H ;UHW # OF ACTIVE EGGS
PEGGLAY EQU 0190H ;UHW IF <> 0, CURRENTLY LAYING SOME EGGS
PENTER EQU 01A0H ;IF = 1, PLAYER WILL ENTER GAME @ NEXT INPLAY
PWINS EQU 01B0H ;NUMBER OF WINS THIS GAME
PPALID EQU 01C0H ;PLAYER PALETTE I.D.
PWAVEST EQU 01E0H ;NUMBER OF PLAYER STARTS THIS WAVE
PLASTEGG EQU 01F0H ;ELAPSED TIME SINCE LAST EGG PICKUP
PLASTDTH EQU 0210H ;ELAPSED TIME SINCE LAST PLAYER DEATH
PLASTWIN EQU 0230H ;LAST WAVE WON BY PLAYER
PEXITPNT EQU 0240H ;PTR TO PLAYER FIRST EXIT POINT
PDEAD EQU 0260H ;1 IF DEAD MESSAGE UP
PDINOCNT EQU 0270H ;NUMBER OF ACTIVE DINOS FOR THIS PLAYER
PDTHPOS EQU 0280H ;[Y,X] RETURN POINT LAST DINO DEATH
PTRUEJOY EQU 02A0H ;TRUE JOYSTICK SWITCH STATUS FOR THIS PLAYER
PBOZO EQU 02B0H ;BOZO LEVEL, > 0 = SOME SORT OF BOZO
PWAVEDEATHS EQU 02C0H ;NUMBER OF DEATHS THIS WAVE
PEGGSTHISLIFE EQU 02D0H ;NUMBER OF EGGS COLLECTED THIS LIFE
PTROGKILLS EQU 02E0H ;TIMES THIS PLAYER HAS WASTED TROG
PCONSECUTIVE EQU 02F0H ;CONSECUTIVE WAVES PLAYED BY THIS PLAYER
PWAVES EQU 0300H ;NUMBER OF WAVES PLAYED THIS GAME
PEXTRAS EQU 0310H ;NUMBER OF EXTRA LEFT TO EARN THIS GAME
PTOTTIME EQU 0320H ;TOTAL TIME OF THIS CREDIT
PITIME EQU 0330H ;TIME LEFT FOR ENTERING INITIALS
PWAVETIME EQU 0340H ;TIME THIS PLAYER HAS SPENT ON THIS WAVE
PDTHFLAG EQU 0360H ; 1 IF THE GUY IS DEAD
PLIFETIME EQU 0370H ; TIME THIS GUY HAS BEEN ALIVE
PSPEEDTIME EQU 0380H ;TIME 'TIL NEXT SPEED UP
PEXTRAEARN EQU 0390H ;EXTRA MEN EARNED THIS WAVE
PDRONEFLG EQU 03A0H ;IF <> 0 THEN THIS IS A DRONE PLAYER
PSTARTESC EQU 03B0H ;FLAG TO SHOW START BUTTON PUSHED FOR ESCAPE
PEGGOUT EQU 03C0H ;# OF EGGS LAID FOR THIS PLAYER, THIS WAVE
PNOMOVE EQU 03D0H ;IF <> 0, THEN DON'T ALLOW HAND MOVEMENT
PLAYMAN EQU 03E0H ;NUMBER OF EGGS TO LAY THIS PASS THROUGH LAY_MAN
PJOYESC EQU 03F0H ;FLAG TO SHOW JOYSTICK MOVEMENT
PSWITCHESC EQU 0400H ;FLAG TO SHOW BUTTON ACTION
PDINOSTOP EQU 0410H ;IF <> 0, THEN STOP THIS GUYS DINO
PINSTRUCT EQU 0420H ;IF <> 0, THEN DINO IS IN INSTRUCTIONAL MODE
PBONEHIT EQU 0430H ;IF <> 0, DINO HIT BONE DURING INSTRUCTIONS
PSTARTS EQU 0440H ;# OF STARTS THIS GAME
PDSIZE EQU 0450H ;SIZE OF PLAYER DATA BLOCK
PIZPOS EQU 0FFFH ;PLAYER INITIAL Z POSITION
PXPLAYER .EQU 4 ;MOVEPLYR MARKER FOR INDESTRUCTIBLE BONES
**************************************************************************
* *
* POST AND MOVE MAP DEFINITIONS *
* *
* NOTE: ALWAYS KEEP THE POSITION ENTRY OF THESE FOLLOWING TABLES AT *
* THE SAME OFFSET: *
* POSTMAP *
* MOVEMAP *
* CMOVEMAP *
* AMOVEMAP *
* EMOVEMAP *
* *
**************************************************************************
*
*POST MAP ENTRY
*
POSTPOS EQU 0H
POSTREL EQU 20H
POSTSIZE EQU 40H
*
*MOVE MAP ENTRY
*
MOVEPOS EQU 0 ;POSITION OF THIS MOVE POINT (32)
MOVEREL EQU 20H ;START OF MOVE RELATIONSHIPS
MOVEUP EQU 20H ;NEXT UP (16)
MOVEDN EQU 30H ;NEXT DOWN (16)
MOVELF EQU 40H ;NEXT LEFT (16)
MOVERT EQU 50H ;NEXT RIGHT (16)
MOVEUL EQU 60H ;NEXT UP/LEFT (16)
MOVEUR EQU 70H ;NEXT UP/RIGHT (16)
MOVEDL EQU 80H ;NEXT DOWN/LEFT (16)
MOVEDR EQU 90H ;NEXT DOWN/RIGHT (16)
MOVETYPE EQU 0A0H ;TYPE(0=H,1=V,2=THRU,FF=NOT VALID) (8)
MOVEPLYR EQU 0A8H ;WALL OF PLAYER # (0-3,FF=UNOCCUPIED) (8)
MOVEDSRCH EQU 0B0H ;DINO SEARCH FLAG, 0=NOT CHECKED (8)
MOVERES1 EQU 0B8H ;RESERVED (8)
MOVECPTR EQU 0C0H ;PTR TO CORRESPONDING CENTER MOVE (32)
MOVEAPTR EQU 0E0H ;PTR TO CORRESPONDING AUXILARY MOVE (32)
MOVEEPTR EQU 100H ;PTR TO CORRESPONDING EXIT MOVE (32)
MOVESIZE EQU 120H
NMOVES EQU 512 ;THIS MANY MOVES ALLOWED
HORBAR EQU 0 ;HORIZONTAL BAR INDICATOR
VERTBAR EQU 1 ;VERTICAL BAR INDICATOR
THRU EQU 2 ;THRU MOVE INDICATOR
*
*CENTER POINT LIST ENTRY
*
CMOVEPOS EQU 0H ;POSITION OF THIS CENTER MOVE POINT (32)
CMOVEEGG EQU 20H ;PLAYER EGG # ON THIS POINT (FF = UNOCC) (8)
CMOVETROG EQU 28H ;OBSTRUCTION TROG WILL PLACE (FF = NONE) (8)
CMOVEMPTR EQU 30H ;PTR TO CORRESPONDING MOVE (32)
CMOVESIZE EQU 50H
NCMOVES EQU NMOVES/9 ;THIS MANY CENTER POINT ENTRIES ALLOWED
*
*AUXILARY POINT LIST ENTRY (SAME AS CENTER POINT LIST ENTRY)
*
AMOVESIZE EQU CMOVESIZE
NAMOVES EQU NMOVES/4 ;THIS MANY AUXILARY POINT ENTRIES ALLOWED
*
*EXIT POINT LIST ENTRY
*
EMOVEPOS EQU 0H ;POSITION OF THIS EXIT POINT (32)
EMOVEPLYR EQU 20H ;PLAYER # EXIT POINT(FF = O.K. TO BUILD)(8)
* (FE = BUILD NO HOUSES)
EMOVEDIR EQU 28H ;DIRECTION (0=UP,1=DOWN,2=LEFT,3=RIGHT) (8)
EMOVEOBJ EQU 30H ;PTR TO OBJECT RESTING ON THE EXIT PNT (32)
;0 = NO OBJECT
EMOVERET EQU 50H ;INDEX OF RETURN MOVE POINT (16)
EMOVEMPTR EQU 60H ;PTR TO RETURN MOVE POINT (32)
EMOVETYPE EQU 80H ;TYPE OF EXIT (0=CLIFF,1=PIT, ETC.) (16)
EMOVEPIT EQU 90H ;MIDPOINT OF PIT IF THIS IS A PIT (32)
EMOVESIZE EQU 0B0H
NEMOVES EQU NMOVES/9 ;THIS MANY EXIT POINT ENTRIES ALLOWED
**************************************************************************
* *
* END OF POST AND MOVE MAPS *
* *
**************************************************************************
*
*THESE CONSTANTS ARE TO BE REPLACED BY "CMOS" GAME ADJUSTMENTS
****ILIVES EQU 3 ;INITIAL # OF LIVES
IREPLAY EQU 20000H ;INITIAL REPLAY LEVEL OF THIS MANY K
ISAVES EQU 4 ;NUMBER OF TIMES A PLAYER MAY BE SAVED
*
*SCORE AREA EQUATES
P11SCRAD EQU [6,172] ; 1 PLAYER 1 SCORE ADDRESS
P21SCRAD EQU [6,112] ; 2 PLAYER 1 SCORE ADDRESS
P22SCRAD EQU [6,232] ; 2 PLAYER 2 SCORE ADDRESS
P31SCRAD EQU [6,52] ; 3 PLAYER 1 SCORE ADDRESS
P32SCRAD EQU [6,172] ; 3 PLAYER 2 SCORE ADDRESS
P33SCRAD EQU [6,292] ; 3 PLAYER 3 SCORE ADDRESS
P41SCRAD EQU [6,20] ; 4 PLAYER 1 SCORE ADDRESS
P42SCRAD EQU [6,112] ; 4 PLAYER 2 SCORE ADDRESS
P43SCRAD EQU [6,232] ; 4 PLAYER 3 SCORE ADDRESS
P44SCRAD EQU [6,324] ; 4 PLAYER 4 SCORE ADDRESS
PBOXOF EQU [-5,-20] ;SCORE AREA ENCLOSURE OFFSET FROM LEFT MSD
PBOXSIZ EQU [32,86] ;SIZE OF SCORE BOX
SCRSPC EQU [0,8] ;SPACING BETWEEN SCORE DIGITS
SCRCTR EQU [14,24] ; CENTERING LOC FOR PRESS START
SCRERA EQU [10,-16] ; SCORE BOX ERASE
SCRERAS EQU [12,82] ; SCORE BOX ERASE SIZE
SCICTR EQU [14,23] ; INITIAL ENTRY CENTER
SCIMESS EQU [-1,14] ; ENTER INITIALS MESS CENTERING LOCATION
SCITIME EQU [-1,55] ; OFFSET FOR TIME PLOT
SCILET1 EQU [9,0] ; LETTER 1
SCILET2 EQU [9,24] ; LETTER 2
SCILET3 EQU [9,48] ; LETTER 3
SCILETSIZE EQU [17,20] ; SIZE OF A LETTER
SCIERA EQU [7,-16] ; INITIALS BOX ERASE
SCIERAS EQU [17,78] ; INITIALS BOX ERASE SIZE
SCITERA EQU [-2,-14] ; SCORE BOX ERASE
SCITES EQU [10,76] ; SCORE BOX ERASE SIZE
SCSHIRT EQU [12,-14] ; SCORE SHIRT
NLIVES EQU 5 ;MAX NUMBER OF DISPLAYABLE LIVES
PLIFECOF EQU [10,15] ;OFFSET FOR LIFE ACCOUNT CLEAR
PLIFESIZ EQU [14,48] ;SIZE OF LIFE DISPLAY AREA
LIFESPC EQU [0,-9] ;SPACING BETWEEN LIVES
PLIFEOF EQU [10,51] ;OFFSET FOR PLAYER LIVES
PEGGCOF EQU [10,-15] ;OFFSET FOR EGG ACCOUNT CLEAR
PEGGSIZ EQU [14,25] ;SIZE OF EGG ACCOUNT AREA
PEGGOF EQU [11,-12] ;OFFSET FOR EGG ACCOUNT
CRD1BOX EQU [9,121] ; 1 PLAYER CREDIT BOX IS HERE
CRD2BOX EQU [0,181] ; 2 PLAYER CREDIT BOX IS HERE
CRD3BOX EQU [9,121] ; 3 PLAYER CREDIT BOX IS HERE
CRD4BOX EQU [0,181] ; 4 PLAYER CREDIT BOX IS HERE
ISLE1BOX EQU [9,241] ; 1 PLAYER ISLAND BOX IS HERE
ISLE2BOX EQU [18,181] ; 2 PLAYER ISLAND BOX IS HERE
ISLE3BOX EQU [9,241] ; 3 PLAYER ISLAND BOX IS HERE
ISLE4BOX EQU [18,181] ; 4 PLAYER ISLAND BOX IS HERE
CRDSIZE EQU [15,31] ;AND THIS IS THE SIZE
CRDTXT EQU [2,16] ; TEXT ADD ON
CRDX EQU 197 ;CREDIT MESSAGE X
CRDY EQU 2 ;CREDIT MESSAGE Y
CRDNUMXY EQU [10,197] ;CREDIT NUMBER
CRDNUM EQU [10,16] ; CREDIT NUMBER ADD ON
ISLESIZE EQU [15,31] ;AND THIS IS THE SIZE
ISLETXT EQU [1,16] ; TEXT ADD ON
ISLEX EQU 197 ;ISLAND MESSAGE X
ISLEY EQU 19 ;ISLAND MESSAGE Y
ISLENUMXY EQU [26,197] ;ISLAND NUMBER
ISLENUM EQU [8,16] ; ISLE NUMBER ADD ON
STOPW EQU [2,-15] ;STOP WATCH OFFSET
STOPWSIZ EQU [6,14] ;STOP WATCH AREA SIZE
*
*PLAYER JOYSTICK MOVEMENT CONSTANTS
WAY4DELAY EQU 10 ;TICKS TO DELAY UNTIL REPEAT (4-WAY)
WAY4REPEAT EQU 8 ;MOVEMENT REPEAT RATE (4-WAY)
WAY8DELAY EQU 12 ;TICKS TO DELAY UNTIL REPEAT (8-WAY)
WAY8REPEAT EQU 10 ;MOVEMENT REPEAT RATE (8-WAY)
*
*ENEMY SUB-TYPES
TARID EQU 10H
TARBAITID EQU 11H
FIREID EQU 20H
PITID EQU 30H
TUNNELID EQU 31H ;TIME TUNNEL
TROGPITID EQU 32H ;THE PIT FROM WHICH TROG EMERGES
*
*40H - 4FH ARE FOR POWERUPS ONLY!
*IF YOU CHANGE ANY OF THE 4xH I.D.s MAKE SURE THERE ARE NO CONFLICTS
* CREATED BETWEEN PROCESS I.D.s THAT ARE CREATED BY ORing THESE I.D.s (GNP)
FLOWERID EQU 40H
SHROOMID EQU 41H
TSHIRTID EQU 42H ; T-SHIRT
PINEAPPLEID EQU 43H ;PINEAPPLE
HSHOEID EQU 44H ;THE LUCKY HORSESHOE
ICEID EQU 46H ;THE ICE CUBE
CHILIID EQU 49H ;THE RED HOT CHILI PEPPER
CATID EQU 50H ;CATAPULT ID
HAUSID EQU 51H ;TRANSPORT HOUSE ID
ROCKID EQU 52H ;ROCK ID
TGENID EQU 53H ;TROG GENERATOR
*
*TROG I.D. BYTE:
* 0110 CCWW
* C = COLOR
* W = WEAPON
TROGID EQU 60H ;BASE TROG I.D.
*TROG WEAPON I.D.s
HAND EQU 0 ;TROG USING BARE HANDS
CLUB EQU 1 ;TROG USING THE CLUB
WHEEL EQU 2 ;TROG THROWING THE WHEEL
SPRING EQU 3 ;TROG WITH SPRINGS
*TROG COLOR I.D.s
NRM EQU 0 ;BROWN TROG (NORMAL)
GRN EQU 4 ;GREEN TROG
RED EQU 8 ;RED TROG
BLU EQU 0CH ;BLUE TROG
TROGCLUBID EQU TROGID|NRM|CLUB ;TROG HOLDING THE CLUB
TROGWHLID EQU TROGID|NRM|WHEEL ;TROG PUSHING THE WHEEL
TROGSPRGID EQU TROGID|NRM|SPRING ;TROG WITH THE SPRING SHOES
GTROGID EQU TROGID|GRN|NRM ;GREEN TROG
GTROGCLUBID EQU TROGID|GRN|CLUB ;GREEN TROG HOLDING THE CLUB
GTROGWHLID EQU TROGID|GRN|WHEEL ;GREEN TROG PUSHING THE WHEEL
GTROGSPRGID EQU TROGID|GRN|SPRING ;GREEN TROG WITH THE SPRING SHOES
RTROGID EQU TROGID|RED|NRM ;RED TROG
RTROGCLUBID EQU TROGID|RED|CLUB ;RED TROG HOLDING THE CLUB
RTROGWHLID EQU TROGID|RED|WHEEL ;RED TROG PUSHING THE WHEEL
RTROGSPRGID EQU TROGID|RED|SPRING ;RED TROG WITH THE SPRING SHOES
BTROGID EQU TROGID|BLU|NRM ;BLUE TROG
BTROGCLUBID EQU TROGID|BLU|CLUB ;BLUE TROG HOLDING THE CLUB
BTROGWHLID EQU TROGID|BLU|WHEEL ;BLUE TROG PUSHING THE WHEEL
BTROGSPRGID EQU TROGID|BLU|SPRING ;BLUE TROG WITH THE SPRING SHOES
WHEELID EQU 70H
TROGSUBID EQU 90H ;PROCESSES TROG HAS SPAWNED
DEADTROG EQU 0FFH ;A DEAD TROG
**************************************************************************
* *
* PROCESS I.D. EQUATES *
* 15 0 *
* PID FORMAT -- NEWI IPPP IIII IIII *
* N = NON-DESTRUCTIBLE *
* E = WAVE END WAIT *
* W = WAVE END WILL NOT KILL THESE *
* I = PROC. SPECIFIC I.D. *
* P = RESERVED FOR BASE PLAYER PROCESS I.D.'S *
* *
**************************************************************************
COLORPID EQU 20CCH ;COLOR CYCLE PROCESSES
PFADEPID EQU 20D0H ; FADER PROCESSES ( LOW BYTE = PAL )
BUPDPID EQU 20BDH ;BACKGROUND UPDATE PROCESS I.D.
INDPID EQU 0006H ;INDEPENDENT PROCESS
ATTPID EQU 0008H ; ATTRACT MODE PROCESS
INDPIDW EQU 2006H ;WAVE END WILL NOT KILL IND. PROCESS
INDPIDE EQU 4006H ;WAVE END WAIT INDEPENDENT PROCESS
P1PID EQU 0100H ;BASE PROCESS I.D. FOR PLAYER 1 PROCESSES
P2PID EQU 0200H ;BASE PROCESS I.D. FOR PLAYER 2 PROCESSES
P3PID EQU 0300H ;BASE PROCESS I.D. FOR PLAYER 3 PROCESSES
P4PID EQU 0400H ;BASE PROCESS I.D. FOR PLAYER 4 PROCESSES
PXPID EQU 0500H ;GLOBAL PLAYER
PPROCMASK EQU 0F8FFH ;MASK TO CLASSIFY ALL PLAYER PROCS
*THE FOLLOWING I.D'S ARE OR'D INTO THE ABOVE PLAYER BASE PROCESS I.D.S
*TO FORM THE COMPLETE PROCID.
PCPID EQU 0000H ;PLAYER CONTROL PROCESS
PSTRTPID EQU 8002H ;PLAYER START PROCESS IDENTIFIER
PUP EQU 3000H ;PLAYER UP PROCESS
PDOWN EQU 3040H ;PLAYER DOWN PROCESS
PLEFT EQU 3080H ;PLAYER LEFT PROCESS
PRIGHT EQU 30C0H ;PLAYER RIGHT PROCESS
PDRAWPID EQU 2003H ;PLAYER DRAW BUTTON PROCESS
PSPEEDPID EQU 0001H ;PLAYER SPEED UP/DOWN PROCESS
PTREXPID EQU 000AH ;PLAYER IS NOW TREX
PFLASHPID EQU 000BH ;PLAYER IS FLASHING
PFIREPID EQU 000CH ;PLAYER IS SPITTING FIRE
PINITIALPID EQU 2004H ;PLAYER INITIAL ENTRY
PHELPPID EQU 2007H ;PLAYER HELP PROCESS
*COMPLETE PROCESS I.D.S
PCONFPID EQU 1800H ;PLAYER CONFLICT FLASH PROCESS
COLLPID EQU 00C0H ;COLLISION PROCESS I.D. RES C0 - CF
COLLDPID EQU 00CDH ;DINOSAUR COLLISION DETECT PROCESS
COLLEPID EQU 00CEH ;ENEMY COLLISION DETECT PROCESS
CAVESIGNPID EQU 0910H ;CAVE SIGN COLOR CYCLERS
BONUSPID EQU 09A0H ;BONUS PROCESS
BORDERPID EQU 0B0DH ;BONE BORDER ANIMATION PROCESSES
FWORKSPID EQU 0B0EH ;FIREWORKS PROCESSES
GOODIEPID EQU 0B0FH ;TEMPORARY GOODIE ANIMATIONS
HOUSEPID EQU 0D20H ;HOUSE BUILD BASE PROCESS I.D. RESERVE 0D20H - 0D27H
MASTERID EQU 0D37H ;THE MASTER DISPATCHER
EBAITPID EQU 0D39H ;ENFORCER BAITER PROCESS
POWERUPPID EQU 0D3AH ;POWER-UP DISPATCHER
BUYINPID EQU 0D3BH ;END O' GAME BUY-IN WAIT PID
*NOTE: THE 0D4xH PROCIDs ARE CURRENTLY RESERVED FOR POWERUPS (GNP 6/8/90)
FLOWERPID EQU 0D00H|FLOWERID ;SPEED FLOWER PROCID
SHROOMPID EQU 0D00H|SHROOMID ;SLOW SHROOMER PROCID
HSHOEPID EQU 0D00H|HSHOEID ;THE LUCKY HORSESHOE PROCESS(ES)
PINEAPPLEPID EQU 0D00H|PINEAPPLEID ;PINEAPPLE PROCESS(ES)
ICEPID EQU 0D00H|ICEID ;THE ICE CUBE PROCESS(ES)
CHILIPID EQU 0D00H|CHILIID ;THE RED HOT CHILI PEPPER PROC
DINOPID EQU 0D80H ;DINOSAUR BASE PROCESS I.D.
DINO_PUNCH_PID EQU 0D90H ;DINOSAUR PUNCH PROCESS I.D.
DINO_OOF_PID EQU 0DA0H ;DINOSAUR OOF PROCESS I.D.
SKYPID EQU 1BF0H ;SKY COLOR FADE PROCESS I.D.
FADEPID EQU 1FF0H ;MUSIC FADE PROCESS
*COIN SWITCH PIDs
LC_PID EQU 0C000H ;LEFT COIN
CC_PID EQU 0C002H ;CENTER COIN
RC_PID EQU 0C004H ;RIGHT COIN
XC_PID EQU 0C006H ; FOURTH COIN SLOT
SLAM_PID EQU 0C008H ;SLAM TILT PROCESS
COINCTR_PID EQU 0C00AH ; COIN COUNTER PROCESS
PRINT_PID EQU 0800CH ; BACKGROUND PRINTER PROCESS
DIAG_PID EQU 0C100H ; DIAGNOSTICS PROCESS
PARADE_PID EQU 200CH ; PARADE PID
*ENEMY PROCESS I.D.s
TROGPID EQU 0E00H|TROGID ;TROG
TROGSUBPID EQU 0E00H|TROGSUBID ;PROCESS BY TROG, FOR TROG.
TARPID EQU 0E00H|TARID ;TAR PIT PROCID
TARBAITPID EQU 0E00H|TARBAITID ;BAITER TAR PIT
FIREPID EQU 0E00H|FIREID ;FIRE PROCID
PITPID EQU 0E00H|PITID ;SMALL PIT PROCID
TUNNELPID EQU 0E00H|TUNNELID ;THE TUNNEL
TSHIRTPID EQU 0E00H|TSHIRTID ;
WHEELPID EQU 0E00H|WHEELID ;THE WHEEL
CATPID EQU 0E00H|CATID ; CATAPULT PID
HAUSPID EQU 0E00H|HAUSID ; TRANSPORT HOUSE PID
ROCKPID EQU 0E00H|ROCKID ; ROCK PID
TGENPID EQU 0E00H|TGENID ;TROG GENERATOR PID
TROGSPEEDPID EQU 60H ;TROG SPEED UP/SLOW DOWN PROCESS
**************************************************************************
* *
* OBJECT I.D. EQUATES *
* 15 0 *
* OID FORMAT -- ZMPP TTTT TTTT IIII *
* Z = SET, LYING ON GROUND *
* M = MISCELLANEOUS *
* P = RESERVED FOR PLAYERS *
* T = OBJECT TYPE *
* I = IDENTIFIER(SUB-TYPE) *
* *
**************************************************************************
P1OID EQU >1000 ;PLAYER 1 OBJECT ID
P2OID EQU >2000 ;PLAYER 2 OBJECT ID
P3OID EQU >3000 ;PLAYER 3 OBJECT ID
P4OID EQU >4000 ;PLAYER 4 OBJECT ID
PXOID EQU >5000 ;INDESTRUCTIBLE PLAYER I.D.
HBAROID EQU >1 ;HBAR IDENTIFIER
VBAROID EQU >2 ;VBAR IDENTIFIER
JUNKOID EQU 0660H ;SHIT THAT CLUTTERS THE PLAYING FIELD
ATTOID EQU 0680H ; ATTRACT MODE OID
TIPOID EQU 06A0H ;TROG TIPS BOX AND TEXT OID
TIPHEADOID EQU 06A1H ;TROG TIPS HEADER OID
CAVEOID EQU 06C0H ; TROG CAVE OID
HBOXOID EQU 0900H ;PLAYER HELP BOX (RESERVE 900H-907H)
HTEXTOID EQU 0910H ;PLAYER HELP TEXT (RESERVE 910H-917H)
HARROWOID EQU 0920H ;PLAYER HELP ARROW (RESERVE 920H-927H)
HRESOID EQU 0930H ;PLAYER HELP RES (RESERVE 930H-937H)
HBOXMASK EQU 0FFCFH ;MASK TO CLASSIFY ALL HELP BOX PARTS
TEXTOID EQU 0990H ;"ON THE OBJECT LIST" TEXT OID
BMES1OID EQU 0993H ;BUYIN MESSAGE 1 OBJECT ID
BMES2OID EQU 0994H ;BUYIN MESSAGE 2 OBJECT ID
BTIMEOID EQU 0995H ;BUYIN TIMER OBJECT ID
TEXTWOID EQU 0980H ;TEXT WINDOW OID
BONUSOID EQU 09A0H ;BONUS SCORE OID
ICONOID EQU 09A1H ;OID OF BONUS ICONS
BTITLEOID EQU 09A2H ;OID OF BONUS TITLE
BORDEROID EQU 0B0DH ;BONE BORDER OBJECTS
GOODIEOID EQU 0B0FH ;JACK'S GOODIE OBJECTS
GAMEOVEROID EQU 0BAAH ; GAME OVER FLASHER
*DINOSAUR RELATED OBJECTS
DINOOID EQU 0D00H ;DINOSAURS - RESERVE 0D00H - 0D07H
EGGOID EQU 0D10H ;EGGS - RESERVE 0D10H - 0D17H
HOUSEOID EQU 0D20H ;HOUSES - RESERVE 0D20H - 0D27H
DEADDINOOID EQU 0D30H ;DEAD DINOSAURS - RESERVE 0D30H - 0D37H
DINOFIREOID EQU 0D40H ;FIREBALLS - RESERVE 0D40H - 0D47H
*
*DINOSAUR SUB-TYPES
* NOTE: IF YOU CHANGE THE ORDER, ALSO CHANGE ALIGNTAB IN TROGDINO.ASM
REXID .EQU 0 ;THIS IS REX
BLOOPID .EQU 1 ;THIS IS BLOOP
SPIKEID .EQU 2 ;THIS IS SPIKE
GWENID .EQU 3 ;THIS IS GWEN
*
*ENEMY OBJECT I.D.s
*
TROGOID EQU 0E00H|TROGID ;TROG OID
TROGCLUBOID EQU 0E00H|TROGCLUBID ;TROG W/CLUB OID
TROGWHLOID EQU 0E00H|TROGWHLID ;TROG W/WHEEL OID
TROGSPRGOID EQU 0E00H|TROGSPRGID ;TROG W/BOUNCING SPRING SHOE
TAROID EQU 0E00H|TARID ;TAR PIT OID
TARBAITOID EQU 0E00H|TARBAITID ;TAR BAITER OID
FIREOID EQU 0E00H|FIREID ;FIRE OID
PITOID EQU 0E00H|PITID ;PIT OID
TUNNELOID EQU 0E00H|TUNNELID ;THE TUNNEL OID
FLOWEROID EQU 0E00H|FLOWERID ;SPEED FLOWER OID
SHROOMOID EQU 0E00H|SHROOMID ;SLOW SHROOMER OID
TSHIRTOID EQU 0E00H|TSHIRTID ;
WHEELOID EQU 0E00H|WHEELID ;THE WHEEL OBJECT
TROGPITOID EQU 0E00H|TROGPITID ;THE TROG PIT OBJECT
PINEAPPLEOID EQU 0E00H|PINEAPPLEID ; PINEAPPLE
HSHOEOID EQU 0E00H|HSHOEID ;THE LUCKY HORSESHOE OBJECT
CATOID EQU 0E00H|CATID ; CATAPULT OBJECT
ICEOID EQU 0E00H|ICEID ;THE ICE CUBE OBJECT
HAUSOID EQU 0E00H|HAUSID ; TRANSPORT HOUSE OBJECT
ROCKOID EQU 0E00H|ROCKID ; ROCK OBJECT
TGENOID EQU 0E00H|TGENID ;TROG GENERATOR OID
CHILIOID EQU 0E00H|CHILIID ;THE RED HOT CHILI PEPPER OBJ
DEADTROGOID EQU 0E00H|DEADTROG ;DEAD TROG
DEADWHLOID EQU 0E00H|WHEELID|0DH ;"DEAD" WHEEL
*
*DINOSAUR Z POSITIONS
DINOZPOS .EQU 20H
*
*ISLAND DEATH TYPES
TYPE_CLIFF .EQU 0 ;IF OUT OF THIS BOX, THEN FALL IN WATER
TYPE_PIT .EQU 1 ;IF IN THIS BOX, THEN FALL IN PIT
TYPE_LAKE .EQU 2 ;IF IN THIS BOX, THEN FALL IN WATER
TYPE_VOLCANO .EQU 3 ;IF IN THIS BOX, THEN DO VOLCANO COLLISION
*
*ISLAND BACKGROUND TERRAIN TYPES
BTYPE_GREEN .EQU 0 ;NORMAL GREEN ISLAND
BTYPE_LAVA .EQU 1 ;LAVA BACKGROUND
BTYPE_ENT .EQU 2 ;FIRST TROG WAVE BACKGROUND
BTYPE_CLUB .EQU 3 ;TROG WITH CLUB BACKGROUND
BTYPE_WHEEL .EQU 4 ;TROG WITH WHEEL BACKGROUND
BTYPE_SPRING .EQU 5 ;TROG WITH SPRINGS BACKGROUND
BTYPE_CRAY .EQU 6 ;GREEN TROG ISLAND WITH LAVA SURROUNDING IT
BTYPE_DESERT .EQU 7 ; DESERT ISLE
*
*BONUS WAVE TYPES
BONUSW_1 .EQU 1 ;TROG FEAST
BONUSW_2 .EQU 2 ;DIAMOND MINE
BONUSW_3 .EQU 3 ;BONFIRE
NBONUS_WAVES .EQU 3 ;NUMBER OF BONUS WAVES
*
*TROG GLOBAL EQUATES
*
MINPURSUIT .EQU 2 ;MIN. # OF MOVES ALLOWED TO INITIATE PURSUIT
MAXPURSUIT .EQU 8 ;MAX. # OF MOVES ALLOWED TO INTIIATE PURSUIT
*
*COMMUNICATIONS
COMM_PIT_OPEN .EQU PITID ;PIT IS OPEN
COMM_PIT_CLOSE .EQU PITID+1 ;CLOSE PIT PLEASE
COMM_PIT_FAIL .EQU PITID+2 ;FAILURE ON PIT CREATE
*
*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 ID 32 BITS, PALETTE COUNT 16 BITS
*IF PALCNT>0 PALETTE IS ALLOCATED, IF PALCNT=0 PALETTE IS FREE
*
NUMPAL .SET 16 ;NUMBER OF DYNAMICALLY ALLOCATED PALETTES
NMFPAL .SET 11 ;NUMBER OF FOREGROUND PALETTES
NMBPAL .SET 5 ;NUMBER OF BACKGROUND PALETTES
*
*PALETTE ENTRY DATA STRUCTURE
PALID .SET 0 ;PALETTE I.D. (32)
PALCNT .SET 32 ;PALETTE ALLOCATION COUNT (16)
PALRSIZ .SET 48 ;SIZE OF PALETTE ALLOCATION RAM
*
*PALETTE TRANSFER RAM DATA STRUCTURE
PLDCNT .SET 0 ;COLOR COUNT (16)
PALSRC .SET >10 ;SOURCE ADDRESS OF PALETTE COLOR DATA (32)
PALDEST .SET >30 ;DESTINATION PALETTE|START COLOR (16)
PTRSIZ .SET >40 ;SIZE OF EACH CELL
NUMPTR .SET 16 ;NUMBER OF TRANSFERS ALLOWED
*
*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
*
*ALLPLYR - MACRO TO CALL A ROUTINE ON ALL PLAYERS.
*P1=ROUTINE-->A7
*
ALLPLYR $MACRO P1
MOVI :P1:,A7
CALLA CALLPLAY
$END