smashtv/ROBO.EQU

469 lines
12 KiB
Plaintext
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.

**************************************************************************
* *
* ROBO.INC *
* ALL .EQU CONSTANTS TO BE USED THROUGHOUT ROBO *
* *
* *
**************************************************************************
;
;
PLYR2_ID .EQU 11
;
GATELFT .EQU >0A50000 ;FOR PLAYER RUNNING THROUGH
GATERGT .EQU GATELFT+0480000H
GATETOP .EQU 06F0000H
GATEBOT .EQU GATETOP+03A0000H
;
;POINTS FOR ALL ENEMIES, ETC.
;
HLKPT .EQU >500
FATPT .EQU >2750
ORBPT .EQU >2500
TNKPT .EQU >7500
WALPT .EQU >5500
PZPT .EQU >5010
PZPT2 .EQU >1250
MUTPT .EQU >350
MUTPT2 .EQU >75000
MUTPT3 .EQU >5000
KEYPT .EQU >15000
RBTAPT .EQU >1050
GALPT .EQU >2000
HEADPT .EQU >20000
SWARMPT .EQU >2050
RBOS1 .EQU >100000
SNKPT .EQU >1000
;
PCSMAX .EQU 125 ;CHUNKS UP INTO AIR ;85
;
;TANK BULLET DATA STRUCTURE
;
BNCS .EQU PDATA ;UHB
LAST .EQU PDATA+8 ;UHB
FDLY .EQU PDATA+16 ;UHB ;FRANIM DELAY CNTR
;SHWFLG .EQU PDATA+24 ;UHB ;1=THIS PC IS SPINNING! DO NOT KILL!
;
; CHNSW DATA STRUCTURE
;
PTRX .EQU PDATA ;UHW ;LAST X
PTRY .EQU PDATA+16 ;UHW ;LAST Y
ANIMTIK .EQU PDATA+32 ;UHB ;FRAME SLEEP TIME
;16 BITS FREE
;MYPLYR .EQU PDATA+56 ;UHB PLAYER 1 OR 2 FIRED ME
THETA .EQU PDATA+64 ;SHL ;CURRENT PROGRESSION
DELTA .EQU PDATA+96 ;SHL ;DELTA ANGLE
TORSO .EQU PDATA+128 ;UHL TORSO PTR OF PLYR WHO TOUCHED ME
HITS .EQU PDATA+160 ;UHB ;CURRENT NUMBER OF HITS
PLYRPC .EQU PDATA+168 ;UHL PLAYER TSO PRC WHOM BLADES SURROUND
;
;
;BULLET LAYOUT
BLTDIR .EQU PDATA ;UHW
AGE .EQU PDATA+16 ;UHW
GTMP .EQU PDATA+32 ;UHB - PNTR INTO CY TABLE FOR GRENADE
SLIDEX .EQU PDATA+4 ;UHB
SLIDEY .EQU PDATA+48 ;UHB
MYPLYR .EQU PDATA+56 ;UHB PLAYER 1 OR 2 FIRED ME
;THE RINGS USE BULLET LAYOUT WITH SOME ADDED FIELDS:
DELAY .EQU PDATA+64 ;UHB DELAY FOR Y UPDATE
PNTR .EQU PDATA+72 ;UHB PNTR INTO Y UPDATE TABLE
FROM_TSO .EQU PDATA+80 ;UHL FROM TORSO
TIME .EQU PDATA+112 ;UHW TIME RINGS STAY ON
;TORSO PDATA STRUCTURE
*STRUCT PLYR
TSO_PTR .EQU PDATA ;UHL TORSO FOR THESE LEGS
LEG_PTR .EQU PDATA+32 ;UHL LEGS IMG FOR THIS TORSO
STICK .EQU PDATA+64 ;UHL STICK ADDRESS
DELYDET .EQU PDATA+96 ;UHW DELAY KILL TAKE OUT!!!
OSHTDIR .EQU PDATA+112 ;UHB OLD SHOT DIR
P_DIR .EQU PDATA+120 ;UHW PLAYER DIR
OLD_P_DIR .EQU PDATA+136 ;UHW OLD DIR
WPN_TYP .EQU PDATA+152 ;UHW WEAPON TYPE
REV_P_DIR .EQU PDATA+168 ;UHW REV DIR
SHOOT_FLAG .EQU PDATA+184 ;UHW SHOOT FLAG
TMP_P_DIR .EQU PDATA+200 ;UHW TEMP P1 DIR
PNUM .EQU PDATA+216 ;UHB PLAYER NUMBER
HAVE_REV .EQU PDATA+232 ;UHW FLAG
REV_FLAG .EQU PDATA+248 ;UHW FLAG
DEAD .EQU PDATA+264 ;UHW DEAD FLAG
BLDFLG .EQU PDATA+280 ;UHB BLADES ON FLAG
SHOTCNT .EQU PDATA+288 ;UHW SHOT CNTR FOR METER
BNDTYP .EQU PDATA+304 ;UHB BOUNDARY TYPE
PRVBND .EQU PDATA+312 ;UHB PREVIOUS BOUNDARY
UPBND .EQU PDATA+320 ;UHL UP BOUND
DNBND .EQU PDATA+352 ;UHL
LFTBND .EQU PDATA+384 ;UHL
RGTBND .EQU PDATA+416 ;UHL
LEG_PRC .EQU PDATA+448 ;UHL LEG PROCESS PTR
LSRPTR .EQU PDATA+480 ;UHL HELPER PTR OR 0 IF NONE
LEG2_PTR .EQU PDATA+512 ;UHL
*ENDSTRUCT
;LEGS PDATA STRUCTURE
;TSO_PTR .EQU PDATA ;UHL TORSO FOR THESE LEGS
;LEG_PTR .EQU PDATA+32 ;UHL LEGS IMG FOR THIS TORSO
TSO_PRC .EQU PDATA+96 ;UHL TORSO PROCESS FOR THESE LEGS
SHOECNT .EQU PDATA+128 ;UHW SHOES ON TIMER
SVSHO .EQU PDATA+144 ;UHW SAVE SHOE CNT FOR NEXT WAVE
;
;PROCESS ID'S
;
AMDEPID .EQU 200
NEOPID .EQU 201
SCOREPID .EQU 202
LC_PID .EQU 203
RC_PID .EQU 204
CC_PID .EQU 205
SLAM_PID .EQU 206
DIAG_PID .EQU 207
P1SWPID .EQU 208
P2SWPID .EQU 209
CP_PID1 .EQU 210
END_GAME_PID .EQU 211
CP_PID2 .EQU 212
COLRPID .EQU 213
DUM_ID .EQU 214
BUYCPID .EQU 215
BUYINPID .EQU 216
INDPID .EQU 217
P1PID .EQU 218
P2PID .EQU 219
PMPID .EQU 220
GMEOVPID .EQU 221
LORDPID .EQU 223
ARWPID .EQU 224
DRLPID .EQU 225
DRRPID .EQU 226
DRTOPID .EQU 227 ;TOP DOOR OPEN ID
DRTCPID .EQU 228 ;TOP DOOR CLOSE ID
CHSRPID .EQU 229
CHNSWPID .EQU 230
LSRPID .EQU 231
ICONPID .EQU 232
ICTST .EQU 233
COLPID .EQU 234 ;COLLISION ROUTINE
PCPID .EQU 235
HULKPID .EQU 236
DRSPID .EQU 237
ORBPID .EQU 238
TNKPID .EQU 239
FATPID .EQU 240
STIMEPID .EQU 241
PODPID .EQU 242
EXPID .EQU 243
B1PID .EQU 244 ;BLINK RING PROC PLAYER 1
B2PID .EQU 245 ;BLINK RING PROC PLAYER 2
DLYPID .EQU 246 ;DELAY PLYR START BUTTON
PLY1PID .EQU 247 ;PLAYER 1 STUFF
PLY2PID .EQU 248 ;PLAYER 2 STUFF
DG1PID .EQU 249
DG2PID .EQU 250
CHSR2PID .EQU 251
SCRPID .EQU 253
CAMPID .EQU 254
FDPID .EQU 255
MNPID .EQU 256
CYCPID .EQU 257
SETPID .EQU 258
RCYC1PID .EQU 259
RCYC2PID .EQU 260
MCYCPID .EQU 261
CSHPID .EQU 262
FLYPID .EQU 263
TEMPPID .EQU 264
TP2PID .EQU 265
WLMNPID .EQU 266
BONPID .EQU 267
PICPID .EQU 268
BON1PID .EQU 269
TVPID .EQU 270
TV2PID .EQU 271
KCHAS .EQU 272
RNGPID .EQU 273
FADEPID .EQU 274
STPPID .EQU 275
RBTAPID .EQU 276
CYC2PID .EQU 277
GALPID .EQU 278
COBPID .EQU 279 ;COBRA MISC
COBPIDA .EQU 280 ;COBRA ANIMATION
COBPIDM .EQU 281 ;COBRA MAIN HEAD
COBPIDS .EQU 282 ;COBRA SPINE
BUNK .EQU 283
SNKPID .EQU 284 ;JACK SNAKE
LZRPID .EQU 285
BULPID .EQU 286
FIXIT .EQU 7777H
BEEPID .EQU 400
;
;ENEMY VALUES FOR WAVE_INFO TABLE
ATRAIN .EQU 1
ORB .EQU 2
TANK .EQU 3
FAT .EQU 4
WLMN .EQU 5
HULK .EQU 6
MINE .EQU 7
MUTD .EQU 8
FACE .EQU 9
RBTA .EQU 10
GALS3 .EQU 11
GALS1 .EQU 12
GALS1A .EQU 13
GALS2 .EQU 14
COBRA .EQU 15
SNK .EQU 16
;
;OBJECT ID'S
;
;**** OBJECT IDENTIFIER FIELDS
B_CLASS .set 15
F_CLASS .set >E000
CLSNEUT .EQU >0000 ;NEUTRAL ITEMS
CLSPLYR .EQU >4000 ;PLAYERS STUFF
CLSENMY .EQU >8000 ;ENEMIES
;
TYPNEUT .EQU 0000H ;TYPE NEUTRAL
TYPPLYR .EQU 0100H ;PLAYER
TYPPLBL .EQU 0200H ;PLAYER BULLET
TYPRBTA .EQU 0300H ;SMALL ROBOT
TYPORB .EQU 0400H ;ORB ENEMY (JARVIS)
TYPORBL .EQU 0500H ;ORB LAZER
TYPHULK .EQU 0600H ;HULK BAD GUY
TYPTEXT .EQU 0700H ;TYPE TEXT
TYPWLMN .EQU 0800H ;WALL MAN
TYPGAL .EQU 0900H ;GALAGA ENEMY 1
TYPCOB .EQU 0A00H ;COBRA
TYPCHSR .EQU 0B00H ;CHASER AFTER WAVE OVER
TYPICON .EQU 0C00H ;POWERUP ICON
TYPPRSM .EQU 0D00H ;PRISM AROUND PLAYER
TYPTANK .EQU 0E00H ;TANK IMAGE
TYPLSR .EQU 0F00H ;LASER SATELLITE AROUND PLAYER
TYPFAT .EQU 1000H ;FAT MAN
TYPTORSO .EQU 1100H ;TORSO OF TANK
TYPSNK .EQU 1200H ;JACK SNAKE
; .EQU 1300H ;
; .EQU 1400H ;
TYPCBALL .EQU 1500H ;CANNON BALL
TYPCBL2 .EQU 1600H ;EXPLODEING CBALL
TYPMINE .EQU 1700H ;MINE
TYPMUT .EQU 1800H ;MUTOID MAN
TYPFACE .EQU 1900H ;FLATFACE
TYPPILE .EQU 1A00H ;STUFF ON FLOOR BULLETS BUMP IN TO
;
;SUB COBRA ICONS
;
SUBCOBBOD .EQU 0
SUBCOBHD .EQU >30
SUBCOBFLM .EQU >40
;
;SUB PILE TYPES
;
SUBEDGE .EQU 01H ;EDGE OF WALL IN ARENA 1 (CIRCUIT 1)
;
;SUB GALAGA ICONS
;
SUBHEAD .EQU 02H
SUBBALL .EQU 03H
SUBCHN .EQU 04H
;
;SUB FACE ICONS
;
SUBGLL .EQU 00H
SUBGLR .EQU 01H
SUBSHL .EQU 02H
SUBSHR .EQU 03H
SUBEL .EQU 04H
SUBER .EQU 05H
SUBMTL .EQU 06H
SUBMTR .EQU 07H
SUBCKL .EQU 08H
SUBCKR .EQU 09H
SUBNSL .EQU 0AH
SUBNSR .EQU 0BH
;
;SUB MUTOID PIECES
;
SUBTKL .EQU 01H
SUBTKR .EQU 02H
SUBTSL .EQU 03H
SUBTSR .EQU 04H
SUBARML .EQU 05H
SUBARMR .EQU 06H
SUBHD .EQU 07H
SUBSNK .EQU 08H
;
;TYPE EXPLOSIONS SUB TYPES
SUBNORM .EQU 0000H ;EXPLOSION THAT WON'T HURT ANYONE
SUBKILL .EQU 0001H ;KILLER TYPE EXPLOSION
;TYPE ICONS SUB TYPES
SUBPOW1 .EQU 0000H ;BLADES ICON
SUBPOW2 .EQU 0001H ;HELPER ICON
SUBSPRY1 .EQU 0002H ;SPRAY BULLETS ICON
SUBPOD .EQU 0003H ;POD BOMBS ICON
SUBMAN .EQU 0004H ;EXTRA MAN ICON
SUBGREN .EQU 0005H ;GRENADE
SUBRING .EQU 0006H ;RING ICON
SUBNSTP .EQU 0007H ;NON STOPPING BULLETS ICON
SUBKEY .EQU 0008H ;KEY ICON
SUBSHOE .EQU 0009H ;SHOE ICON
SUBSMRT .EQU 000AH ;SMART BOMB
SUBPZ1 .EQU 000BH ;PRIZE 1
SUBPZ2 .EQU 000CH ;PRIZE 2
SUBPZ3 .EQU 000DH ;PRIZE 3
SUBCSH .EQU 000EH ;CASH ITEMS ON FLOOR
SUBCSHI .EQU 000FH ;CASH ITEMS ON FLOOR AT START OF WAVE
;
;TYPE PLAYER SUB TYPES
SUBPL_1 .EQU 0001H ;PLAYER 1
SUBPL_2 .EQU 0002H
SUBRNG1 .EQU 0003H ;RINGS FOR PLAYER 1
SUBRNG2 .EQU 0004H ;RINGS FOR PLAYER 2
;
;TYPE PLAY BULLET SUB TYPES
SUBLZR .EQU 0001H ;REGULAR LAZER SHOTS
SUBSPRY .EQU 0002H ;SPRAY SUB TYPE
SUBSPEW .EQU 0003H ;SPEW TYPE WEAPON (3)
SUBGRND .EQU 0004H ;GRENADE
SUBNOSTP .EQU 0005H ;NON STOPPING BULLET
SUBSPEW2 .EQU 0006H ;SPEW TYPE WEAPON (6) BLOW UP
;TYPE NEUTRAL SUB TYPES
SUBARW .EQU 0001H ;ARROW ID
SUBUP .EQU 0002H ;OVERHEAD ITEMS
SUBUP2 .EQU 0003H ;OVERHEAD ITEMS AFTER VEL SET
SUBCHNK .EQU 0004H ;CHUNK PC
SUBCHNK2 .EQU 0005H ;CHUNK PC
;TYPE TEXT SUB TYPES
SUBTXT .EQU 0001H ;TEXT ID
SUBP1TXT .EQU 0002H ;P1 TEXT
SUBP2TXT .EQU 0003H ;P2 TEXT
SUBP1LVS .EQU 0004H ;ID FOR P1 LIVES DIGIT
SUBWNDW .EQU 0005H ;BIG BOX WINDOW ID
SUBNEW .EQU 0006H ;NEWOID FOR WAVES
SUBTIME .EQU 0007H ;BTIME ID
SUBMES1 .EQU 0008H
SUBMES2 .EQU 0009H
SUBGOTXT .EQU 000AH ;GAME OVER TEXT
SUBSCOR .EQU 000BH ;SCORE ID
SUBP2LVS .EQU 000CH ;ID FOR P2 LIVES DIGIT
SUBDG1I .EQU 000DH ;CNTDWN PLYR1
SUBDG2I .EQU 000EH ;CNTDWN PLYR2
SUBTV .EQU 000FH ;TV MONITOR IMAGES
SUBTV2 .EQU 0010H ;TV MONITOR IMAGES
;
;
B_TYPE .set 12
F_TYPE .set >1F00
B_PLYR .set 6
F_PLYR .set >00C0
B_PLYR1 .set 6
B_PLYR2 .set 7
B_SUBT .set 5
F_SUBT .set >003F
PLIST_ID .EQU 1000H
JOYLFT .EQU 2
JOYRGT .EQU 3
JOYUP .EQU 0
JOYDN .EQU 1
; BIT MASKS FOR PLAYER CONTROL TESTING
BMPRYTE .EQU 3 ;MOVE RIGHT,LEFT,DOWN,UP (LSB)
BMPLEFT .EQU 2
BMPDOWN .EQU 1
BMPUP .EQU 0
.IF YUNIT
;YUNIT EQUATES
BMPFRYTE .EQU 7 ;FIRE RIGHT,LEFT,DOWN,UP (MSB)
BMPFLEFT .EQU 6
BMPFDOWN .EQU 5
BMPFUP .EQU 4
.ELSE
;ZUNIT EQUATES
BMPFRYTE .EQU 11 ;FIRE RIGHT,LEFT,DOWN,UP (MSB)
BMPFLEFT .EQU 10
BMPFDOWN .EQU 9
BMPFUP .EQU 8
.ENDIF
; BITS USED IN PLAYER CONTROLS (1=ACTIVE)
PRYTE .EQU 8
PLEFT .EQU 4
PDOWN .EQU 2
PUP .EQU 1
.IF YUNIT
;YUNIT EQUATES
PFRYTE .EQU 80H
PFLEFT .EQU 40H
PFDOWN .EQU 20H
PFUP .EQU 10H
.ELSE
;ZUNIT EQUATES
PFRYTE .EQU 800H
PFLEFT .EQU 400H
PFDOWN .EQU 200H
PFUP .EQU 100H
.ENDIF
;
;*GAME STATE CONSTANTS
INGAME .EQU 10H
ININTRO .EQU 18H
INMSU .EQU 1AH
INPLAY .EQU 20H
INAMODE .EQU 30H
INDIAG .EQU 40H
INGAMEOV .EQU 50H
STOPOBJ .EQU 60H
;
IBUYINS .EQU 8000 ;NUMBER OF BUYINS ALLOWED
BBUYIN .EQU 19 ;TIME TO BUY IN
*
;*ASCII FONT MISCELLANEOUS EQUATES
F15SP EQU 7EH ;FONT 15 SP CHARACTER, FOR HS ENTRY
F15RUB EQU F15SP+1 ;FONT 15 RUB CHARACTER,FOR HS ENTRY
F15END EQU F15RUB+1 ;FONT 15 END CHARACTER,FOR HS ENTRY
F15RQUOT EQU F15END+1 ;FONT 15 RIGHT QUOTE
************************************************************
* *
* PLAYER DATA STRUCTURE *
* ALL OFFSETS ARE 32 BITS FOR MASS MOVES. *
* *
************************************************************
POBJ .EQU 00H ;PLAYER OBJECT BLOCK
PSCRAD .EQU 20H ;PLAYER SCORE SCREEN ADDRESS
PSCORE .EQU 40H ;PLAYER SCORE
SCRCNT .EQU 60H ;PLAYER SCORE COUNTER
SCRSUB .EQU 80H ;TEMP FOR COUNTER
SCOLOR .EQU 0A0H ;SCORE CONSTANT COLOR,PALLETTE
PFLAGS .EQU 0C0H ;PLAYER FLAGS
PENRGSIZ .EQU 0E0H ;INC/DEC SIZE OF PLAYER LIVES
PPID .EQU 100H ;BASE PROCESS I.D. OF PLAYER PROCESSES
PNEXTREP .EQU 120H ;NEXT REPLAY LEVEL, 32 BITS BCD
PLIVES .EQU 140H ;# OF PLAYER LIVES
PBUYINS .EQU 150H ;# OF TIMES BUYIN IS ALLOWED
STIMER .EQU 160H ;SCORE TIMER
PSWTCH .EQU 170H ;PLAYER SWITCHES
DLY_MSG .EQU 190H ;MESSAGE DELAY CONTROL WORD
CNTD .EQU 1A0H ;UHB PLAYER CONTINUE FLAG/CNTDWN FLAG
PDEND .EQU 1C0H ;END OF PLAYER DATA
PDSIZE .EQU PDEND ;SIZE OF PLAYER DATA BLOCK
;
;SCREEN SETS
;
SKYTOPOF .EQU 45