total-carnage/DISP.EQU

108 lines
3.8 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.

*.Last mod - 10/23/91 22:32
.GLOBAL OFREE,OBJLST,BAKLST,DISPLAYON,SCRNRELV
.GLOBAL OINIT,GETOBJ,INSOBJ,DELOBJ,DELOBJA8
.GLOBAL DISPLAY,ADDOBJ,KILOBJ,OBJSTR,DISPH
.GLOBAL ANI,STFOBJ,SCRTST,SCRTSTG,GSAGOF,GANIOF,DELBOBJ
.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
.global KIL1OBJC,KILOBJN,DELOBJDIE,FRQDELDIE
*GLOBALS CONNECTED TO NARC
.GLOBAL DFRMGRND,CURPAL,DUMCOLL
*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
*CONSTANTS
SCRNST .EQU [0,0] ;TOP LEFT OF SCREEN
SCRNEND .EQU [256,400] ;BOTTOM RIGHT OF SCREEN
SCRNMID .EQU [128,200] ;MIDPOINT OF SCREEN
;SCRNST .EQU [1,5] ;TOP LEFT OF SCREEN
;SCRNEND .EQU [252,395] ;BOTTOM RIGHT OF SCREEN
;SCRNMID .EQU [128,200] ;MIDPOINT OF SCREEN
* 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
OZPOS .EQU 0A0H ;UHW INTEGER Z POSITION OF OBJECT
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
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 180H ;UHW 16 BIT TOTAL X PRECLIP
OBSIZ .EQU 190H ;1F0
*ENDSTRUCT
NOBJ .EQU 415 ;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