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
|
||
|
||
|