115 lines
4.0 KiB
Plaintext
115 lines
4.0 KiB
Plaintext
|
.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
|
|||
|
|