narc/SYS/DISPEQU.ASM

99 lines
4.2 KiB
NASM
Raw Permalink Normal View History

2021-04-06 14:36:38 -07:00
.GLOBAL OFREE,OBJLST,BAKLST,BAK2LST,DISPLAYON,SCRNRELV
.GLOBAL OINIT,GETOBJ,INSOBJ,DELOBJ,DISPLAY,ADDOBJ,KILOBJ,OBJSTR,DISPH
.GLOBAL ANI,STFOBJ,MAKOBJ,SCRTST,SCRTSTG,GSAGOF,GANIOF
.GLOBAL YZSORT,INSB2OBJ,INSBOBJ,DELB2OBJ,DELBOBJ,KILB2OBJ,KILBOBJ
.GLOBAL PULLB2OBJ,PULLBOBJ,PULLOBJ,GANISAG,ADJSTWTL,CLIPOBJ
.GLOBAL QDMA,QDMAN,SHADJUMP,GETANIXY,ANI2,SHADST2,SHADCPY,SHADCPY2
.GLOBAL SCROLLX,SCROLLY,WORLDTLX,WORLDTLY,WORLDTL,BAK2TLX,BAK2TLY
.GLOBAL SCRNTL,SCRNLR,GSCRNREL,ADJNEWTL,DELSOBJ,DELSHAD,SHADST
.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 PIXQHEAD,PIXQTAIL,PIXQVAL,SHADUPD,SHADUPD2,EXISTOBJ,DMAINT
.GLOBAL DISPQT
*
*GLOBALS CONNECTED TO NARC
.GLOBAL DFRMGRND,CURPAL,PIXQADD,DUMCOLL,ERRORLOG,BULLRET1,BULLRET2
*
*CONSTANTS
*
SCRNST .SET [80,0] ;TOP LEFT OF SCREEN
SCRNEND .SET [400,512] ;BOTTOM RIGHT OF SCREEN
SCRNMID .SET [255,256] ;MIDPOINT OF SCREEN
SHADID .EQU >0FFF ;SHADOWS ARE HIGH PRI
*
* OBJECT BLOCK LAYOUT
*
OLINK .SET 0 ; 32 BIT Link to next object block
OSLINK .SET 20H ; 32 BIT SPECIAL LINK TO OBJECTS IN CLASS
OXVEL .set 40h ; 32 BIT X VELOCITY 16.16
OYVEL .set 60h ; 32 BIT Y VELOCITY 16.16
OXVAL .set 80h ; 32 BIT X POSITION
OXFRAC .set 80h ; Fractional portion of X position
OXPOS .set 90h ; Integer portion of X position
OYVAL .set 0A0h ; 32 BIT Y POSITION
OYFRAC .set 0A0h ; Fractional portion of Y position
OYPOS .SET 0B0h ; Integer portion of Y position
OZVAL .SET 0C0H ; 32 BIT Z POSITION
OZPOS .SET 0D0h ; INTEGER Z position of object
OZVEL .set 0E0h ; 32 BIT Z VELOCITY
OFLAGS .set 100H ; 32 BIT bits 0 - 5 DMA CONTROL; B16-31= OFFSET PRECOMPUTED
OFSET .SET 110H ; PRECOMPUTED OFFSET
OSAG .SET 120H ; 32 BIT SOURCE ADDRESS (UNCLIPPED, ADJUSTED FOR FLIPS)
OSIZE .SET 140H ; 32 BIT H,W OF OBJECT (16,16) W=ADJUSTED FOR MORSEL
OSIZEX .EQU 140H ;X SIZE
OSIZEY .EQU 150H ;Y SIZE
OPAL .set 160h ; 32 BIT B(0-15) PALETTE; B(16-31) CONSTANT COLOR
OCONST .SET 170H ; CONSTANT COLOR
OIMG .set 180h ; 32 BIT Pointer to image data table
OID .set 1A0H ; 16 BIT Object ID
OZSIZ .SET 1B0H ; 32 BIT Z THICKNESS
OZMINUS .SET 1B0H ; Thickness along minus Z
OZPLUS .SET 1C0H ; Thickness along plus Z
OCVECT .set 1D0H ; 32 BIT Link to collision handler
OPLINK .set 1F0H ; 32 BIT Link to controlling process
ODMAXY .SET 210H ; 32 BIT SCREEN COORD OF OBJECT
ODMAX .EQU 210H ;X COORDINATE
ODMAY .EQU 220H ;Y COORDINATE
OXCLIP .SET 230H ;16 BIT TOTAL X PRECLIP
OSHAD .SET 240H ;32 BIT SHADOW LINK
OBLIPIMG .SET 260H ;PTR TO SCANNER BLIP IMAGE
OEBLIP .SET 280H ;[Y,X] LOCATION OF PREVIOUS SCANNER BLIP, 0 = NONE
OBSIZ .SET 2A0H ; Object Block Size
NOBJ .SET 384 ; OBJECTS TO DISPLAY
*
BQCELL .SET >A0 ;SIZE OF DMA QUEUE ELEMENT
***********************
* Values for OFLAGS *
***********************
M_WRZERO .set 1 ;Write Zero Data
M_WRNONZ .set 2 ;Write Non-Zero Data
M_CONZER .set 4 ;Replace Zero Data with constant
M_CONNON .set 8 ;Replace Non-Zero Data with constant
M_CONST .set >C ;any constant data replacement
M_FLIPH .set >10 ;Flip Horizontally
M_FLIPV .set >20 ;Flip Vertically
M_NODIS .set >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 .SET >1000 ;TAKE Z VALUE FROM RAM LOC. PREVZ
M_NOMOV .set >2000 ;Do not add velocities
*
*BIT POSITIONS FOR OFLAGS
B_WRZERO .set 0
B_WRNONZ .set 1
B_CONZER .set 2
B_CONNON .set 3
B_FLIPH .set 4
B_FLIPV .set 5
B_NODIS .set 8
B_PZPLUS .EQU 9
B_PIXSCAN .EQU 10
B_NOCOLL .EQU 11
B_PREVZ .SET 12
B_NOMOV .set 13