smashtv/DISP.EQU

115 lines
4.0 KiB
Plaintext
Raw Permalink Normal View History

2021-04-06 15:09:56 -07:00
.GLOBAL OFREE,OBJLST,BAKLST,DISPLAYON,SCRNRELV
.GLOBAL OINIT,GETOBJ,INSOBJ,DELOBJ,DISPLAY,ADDOBJ,KILOBJ,OBJSTR,DISPH
.GLOBAL ANI,STFOBJ,MAKOBJ,SCRTST,SCRTSTG,GSAGOF,GANIOF
.GLOBAL YZSORT,INSBOBJ,KILBOBJ
.GLOBAL PULLBOBJ,PULLOBJ,GANISAG,ADJSTWTL,CLIPOBJ
.GLOBAL QDMA,QDMAN,GETANIXY
.GLOBAL SCROLLX,SCROLLY,WORLDTLX,WORLDTLY,WORLDTL
.GLOBAL SCRNTL,SCRNLR,GSCRNREL,ADJNEWTL
.GLOBAL OBJSTR,SCREENTL,SCREENLR,QSYNC,DMAQCUR,DMAQCNT
.GLOBAL BOTQ0CNT,BOTQ1CNT,TOPQ0CNT,TOPQ1CNT,BOTQ0FLG,BOTQ1FLG
.GLOBAL TOPQ0FLG,TOPQ1FLG,BOTQ0,BOTQ1,TOPQ0,TOPQ1,STOPOBJS
.GLOBAL FREEOBJ,FREEOBJE
.GLOBAL EXISTOBJ,DMAINT
.GLOBAL DISPQT,ENDOFREE,ISOBJ
.GLOBAL BEGINOBJ,BEGINOBJ2,BKGSAGOF
*
*GLOBALS CONNECTED TO NARC
.GLOBAL DFRMGRND,CURPAL,DUMCOLL
*
*CONSTANTS
*
;
SCRNST .EQU [1,5] ;TOP LEFT OF SCREEN
SCRNEND .EQU [252,395] ;BOTTOM RIGHT OF SCREEN
SCRNMID .EQU [128,200] ;MIDPOINT OF SCREEN
;SHADID .EQU >0FFF ;SHADOWS ARE HIGH PRI
*
*OBJECT INITIALIZATION TABLE
INITXVAL .EQU 0
INITYVAL .EQU 20H
INITIMG .EQU 40H
INITZPOS .EQU 60H
INITFLAGS .EQU 70H
INITID .EQU 80H
INITXVEL .EQU 90H
INITYVEL .EQU 0B0H
;INITCVECT .EQU 0D0H
*
* OBJECT BLOCK LAYOUT
*
*STRUCT OBJ
OLINK .EQU 0 ;UHL 32 BIT LINK TO NEXT OBJECT BLOCK
OXVEL .EQU 20H ;UHL 32 BIT X VELOCITY 16.16
OYVEL .EQU 40H ;UHL 32 BIT Y VELOCITY 16.16
OXVAL .EQU 60H ;UHL 32 BIT X POSITION
OXFRAC .EQU 60H ; FRACTIONAL PORTION OF X POSITION
OXPOS .EQU 70H ; INTEGER PORTION OF X POSITION
OYVAL .EQU 080H ;UHL 32 BIT Y POSITION
OYFRAC .EQU 080H ; FRACTIONAL PORTION OF Y POSITION
OYPOS .EQU 090H ; INTEGER PORTION OF Y POSITION
;OZVAL .EQU 0A0H ; 32 BIT Z POSITION
OZPOS .EQU 0A0H ;UHW INTEGER Z POSITION OF OBJECT
;OZVEL .EQU 0C0H ; 32 BIT Z VELOCITY
OFLAGS .EQU 0B0H ;UHW 32 BIT BITS 0 - 5 DMA CONTROL; B16-31= OFFSET PRECOMPUTED
OFSET .EQU 0C0H ;UHW PRECOMPUTED OFFSET
OSAG .EQU 0D0H ;UHL 32 BIT SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS)
OSIZE .EQU 0F0H ; 32 BIT H,W OF OBJECT (16,16) W=ADJUSTED FOR MORSEL
OSIZEX .EQU 0F0H ;UHW X SIZE
OSIZEY .EQU 100H ;UHW Y SIZE
OPAL .EQU 110H ;UHW PALLETTE
OCONST .EQU 120H ;CONSTANT COLOR
OIMG .EQU 130H ;UHL 32 BIT POINTER TO IMAGE DATA TABLE
OID .EQU 150H ;UHW 16 BIT OBJECT ID
;OZSIZ .EQU 190H ; 32 BIT Z THICKNESS
;OZMINUS .EQU 1B0H ; THICKNESS ALONG MINUS Z
;OZPLUS .EQU 1C0H ; THICKNESS ALONG PLUS Z
;OCVECT .EQU 180H ; 32 BIT LINK TO COLLISION HANDLER
OPLINK .EQU 160H ;UHL 32 BIT LINK TO CONTROLLING PROCESS
ODMAXY .EQU 180H ; 32 BIT SCREEN COORD OF OBJECT
ODMAX .EQU 180H ;X COORDINATE
ODMAY .EQU 190H ;Y COORDINATE
OXCLIP .EQU 1A0H ;UHW 16 BIT TOTAL X PRECLIP
;OSHAD .EQU 1C0H ;32 BIT SHADOW LINK
OCOLLIDE .EQU 1E0H
OBSIZ .EQU 1F0H
*ENDSTRUCT
NOBJ .EQU 420 ; OBJECTS TO DISPLAY
*
BQCELL .EQU >A0 ;SIZE OF DMA QUEUE ELEMENT
***********************
* VALUES FOR OFLAGS *
***********************
M_WRZERO .EQU 1 ;WRITE ZERO DATA
M_WRNONZ .EQU 2 ;WRITE NON-ZERO DATA
M_CONZER .EQU 4 ;REPLACE ZERO DATA WITH CONSTANT
M_CONNON .EQU 8 ;REPLACE NON-ZERO DATA WITH CONSTANT
M_CONST .EQU >C ;ANY CONSTANT DATA REPLACEMENT
M_FLIPH .EQU >10 ;FLIP HORIZONTALLY
M_FLIPV .EQU >20 ;FLIP VERTICALLY
M_NODIS .EQU >100 ;IGNORE THIS ENTRY
M_PZPLUS .EQU >200 ;TAKE Z VALUE FROM RAM LOC. PREVZ AND ADD 1
M_PIXSCAN .EQU >400 ;IF=1 O.K. TO PIXEL SCAN WITH THIS OBJECT
M_NOCOLL .EQU >800 ;IF=1 OBJECT NOT COLLIDABLE
M_PREVZ .EQU >1000 ;TAKE Z VALUE FROM RAM LOC. PREVZ
M_NOMOV .EQU >2000 ;DO NOT ADD VELOCITIES
M_INUSE .set >8000 ;obj in use by display system
*
*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_NODIS .EQU 8
B_PZPLUS .EQU 9
B_PIXSCAN .EQU 10
B_NOCOLL .EQU 11
B_PREVZ .EQU 12
B_NOMOV .EQU 13
B_INUSE .set 15