narc/SYS/DISPEQU.ASM

99 lines
4.2 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 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