trog/DISPEQU.ASM

137 lines
5.3 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.

*
*GLOBAL EQUATES FROM DUXDISP
.GLOBAL OFREE,OBJLST,BAKLST,BAK2LST,DISPLAYON,SCRNRELV
.GLOBAL OINIT,GETOBJ,INSOBJ,DELOBJ,DISPLAY,ADDOBJ,KILOBJ,OBJSTR,DISPH
.GLOBAL ANI,STFOBJ,MAKE_OBJ,SCRTST,SCRTSTG,GSAGOF,BKGSAGOF,GANIOF
.GLOBAL YZSORT,INSB2OBJ,INSBOBJ,DELB2OBJ,DELBOBJ,KILB2OBJ,KILBOBJ
.GLOBAL PULLB2OBJ,PULLBOBJ,PULLOBJ,GANISAG,ADJSTWTL,CLIPOBJ
.GLOBAL QDMA,QDMAN,GETANIXY
.GLOBAL SCROLLX,SCROLLY,WORLDTLX,WORLDTLY,WORLDTL,BAK2TLX,BAK2TLY
.GLOBAL SCRNTL,SCRNLR,GSCRNREL,ADJNEWTL,DELSOBJ,DELSHAD
.GLOBAL OBJSTR,SCREENTL,SCREENLR,QSYNC,DMAQCUR,DMAQCNT
.GLOBAL BOTQ0CNT,BOTQ1CNT,TOPQ0CNT,TOPQ1CNT,BOTQ0FLG,BOTQ1FLG
.GLOBAL TOPQ0FLG,TOPQ1FLG,BOTQ0,BOTQ1,TOPQ0,TOPQ1,STOPOBJS
.GLOBAL FREEOBJ,FREESOBJ,FREEOBJE,PULLSOBJ,INSSOBJ
.GLOBAL EXISTOBJ,DMAINT
.GLOBAL DISPQT,STFPOST,QSCRTST,DELETE_OBJ,DELETE_OBJ_SUPP
.GLOBAL CHANGOID
.GLOBAL SCREXP32,KILOBJ_XA8, KILOBJ_ALL
.GLOBAL ADDSUPP,DELSUPP,ISSUPPID,ISSUPP,CNTSUPP
.GLOBAL INSERT_SUPP,INSERT_OBJ,INSERT_OBJ_SUPP,DELETE_SUPP
.GLOBAL INITPAL,INITBPAL,GPALOBJ,GBPALOBJ,GPALOBJSTF
.GLOBAL OBJ_ON,OBJ_OFF,OBJ_TO_PNT,FIND_SUPP_LAST, ISSUPPANI
.GLOBAL COPY_OBJ, GETANIX, DELETE_SUPP_ID
.GLOBAL CHANGEZPOS, GETANIXY_PACKED, OBJTOPNT
.GLOBAL KILL_OBJECTS, OBJECTS_ON, OBJECTS_OFF, DELETE_SLAVES
.GLOBAL ADD_SLAVE, MULTI_MAKE, STORE_ZVAL, CREATE_OBJ, IS_OBJ_OFF
.GLOBAL DECZPOS
*
*GLOBAL EQUATES IN DUXUTIL
.GLOBAL DFRMGRND, GPALOBJ, DELSUPP
*
*EXTERNAL REFERENCES TO THE PALETTE ALLOCATOR
.GLOBAL DELPAL, DELETE_PAL
*
*GLOBAL EQUATES OF A MISCELLANEOUS NATURE
.GLOBAL CURPAL, DUMCOLL, PAUSE_GAME
*
*CONSTANTS
*
SCRNST .SET [40,0] ;TOP LEFT OF SCREEN
SCRNEND .SET [256,400] ;BOTTOM RIGHT OF SCREEN
SCRNMID .SET [148,200] ;MIDPOINT OF SCREEN
SHADID .EQU >0FFF ;SHADOWS ARE HIGH PRI
*
*OBJECT INITIALIZATION TABLE
INITXPOS .EQU 0H
INITYPOS .EQU 20H
INITZPOS .EQU 40H
INITZVEL .EQU 50H
INITIMG .EQU 060H
INITZSIZ .EQU 080H
INITCVEC .EQU 0A0H
INITFLAG .EQU 0C0H
INITOID .EQU 0D0H
INITSIZE .EQU 0E0H
*
* OBJECT BLOCK LAYOUT
*
*struct OBJ
OLINK .SET 0 ;UHL Link to next object block (32)
OSLINK .SET 20H ;UHL SPECIAL LINK TO OBJECTS IN CLASS (32)
OXVEL .set 40h ;UHL X VELOCITY 16.16 (32)
OYVEL .set 60h ;UHL Y VELOCITY 16.16 (32)
OXVAL .set 80h ;UHL X POSITION (32)
OXPOS .set 90h ; Integer portion of X position (16)
OYVAL .set 0A0h ;UHL Y POSITION (32)
OYPOS .SET 0B0h ; Integer portion of Y position (16)
OZVAL .SET 0C0H ;UHL Z POSITION (32)
OZPOS .SET 0D0h ; Integer portion of z position (16)
OZVEL .set 0E0h ;UHL Z VELOCITY (32)
OFLAGS .set 100H ;UHW DMA CONTROL (16)
OFSET .SET 110H ;UHW PRECOMPUTED DMA OFFSET (16)
OSAG .SET 120H ;UHL SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS) (32)
OSIZE .SET 140H ;UHL [H,W] OF OBJECT (32)
OSIZEX .EQU 140H ; X SIZE OF OBJECT (16)
OSIZEY .EQU 150H ; Y SIZE OF OBJECT (16)
OPAL .set 160h ;UHW PALETTE # OF OBJECT (16)
OCONST .SET 170H ;UHW CONSTANT COLOR SUBSTITUTE (16)
OIMG .set 180h ;UHL Pointer to image data table (32)
OID .set 1A0H ;UHW Object ID (16)
OZSIZ .SET 1B0H ;UHL [PLUS,MINUS] Z THICKNESS (32)
OZMINUS .SET 1B0H ; Thickness along minus Z (16)
OZPLUS .SET 1C0H ; Thickness along plus Z (16)
OCVECT .set 1D0H ;UHL Link to collision handler (32)
OPLINK .set 1F0H ;UHL Link to controlling process (32)
ODMAXY .SET 210H ;UHL [Y,X] SCREEN COORDINATE OF OBJECT (32)
ODMAX .EQU 210H ; X COORDINATE (16)
ODMAY .EQU 220H ; Y COORDINATE (16)
OXCLIP .SET 230H ;UHW TOTAL X PRECLIP (16)
OSHAD .SET 240H ;UHL Link to object shadow (32)
OATTRIB .SET 260H ;UHW Object attribute word (16)
OMLINK .SET 270H ;UHL Multi-part object link (32)
OBSIZ .SET 290H ;Object Block Size
*endstruct
NOBJ .SET 330 ; OBJECTS TO DISPLAY
*
BQCELL .SET >A0 ;SIZE OF DMA QUEUE ELEMENT
**************************************************************************
* *
* OFLAGS DEFINITIONS *
* *
**************************************************************************
M_WRZERO .EQU 0001H ;Write Zero Data
M_WRNONZ .EQU 0002H ;Write Non-Zero Data
M_CONZER .EQU 0004H ;Replace Zero Data with constant
M_CONNON .EQU 0008H ;Replace Non-Zero Data with constant
M_CONST .EQU 000CH ;any constant data replacement
M_FLIPH .EQU 0010H ;Flip Horizontally
M_FLIPV .EQU 0020H ;Flip Vertically
M_NOSCROLL .EQU 0100H ;Not affected by scroll velocities, screen coordinates.
M_PZPLUS .EQU 0200H ;TAKE Z VALUE FROM RAM LOC. PREVZ AND ADD 1
M_PIXSCAN .EQU 0400H ;IF=1 O.K. TO PIXEL SCAN WITH THIS OBJECT
M_NOCOLL .EQU 0800H ;IF=1 OBJECT NOT COLLIDABLE
M_SLAVE .EQU 1000H ;THIS IS A SLAVE OBJECT
M_NOPAUSE .EQU 2000H ;ADD VELOCITIES EVEN IN PAUSE MODE
M_MASTER .EQU 4000H ;MASTER OBJECT FLAG
*
*BIT POSITIONS FOR OFLAGS
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_NOSCROLL .EQU 8
B_PZPLUS .EQU 9
B_PIXSCAN .EQU 10
B_NOCOLL .EQU 11
B_SLAVE .EQU 12
B_NOPAUSE .EQU 13
B_MASTER .EQU 14