99 lines
4.2 KiB
NASM
99 lines
4.2 KiB
NASM
|
.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
|
|||
|
|
|||
|
|