************************************************************** * * Software: * Initiated: 9/3/93 * * COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC. * ************************************************************** .globl OFREE,OBJLST,BAKLST,DISPLAYON,SCRNRELV .globl GETOBJ,INSOBJ,DELOBJ,DELOBJA8 .globl DISPLAY,OBJSTR .globl ANI,SCRTST,SCRTSTG,GANIOF,DELBOBJ .globl INSBOBJ,KILBOBJ .globl PULLBOBJ,PULLOBJ,GANISAG .globl QDMA,QDMAN,GETANIXY .globl obj_addworldxy .globl SCROLLX,SCROLLY,WORLDTLX,WORLDTLY,WORLDTL .globl SCRNTL,SCRNLR,GSCRNREL,ADJNEWTL .globl OBJSTR,SCREENTL,SCREENLR,DMAQCUR .globl dpage,dtype .globl dmaq0cnt,dmaq1cnt,dmaq0flg,dmaq1flg .globl dmaq0,dmaq1 .globl STOPOBJS .globl FREEOBJ,EXISTOBJ .globl ISOBJ .globl BEGINOBJW,BEGINOBJ .globl BEGINOBJWP,BEGINOBJP .globl obj_delc,obj_del1c,obj_aniq,obj_aniq_cnoff .globl obj_aniq_scld .globl DELOBJDIE,FRQDELDIE .globl scrn_scaleininit,scrn_scalein,scrn_scaleout .globl display_blank,display_unblank .globl display_2dsclmodeon,display_2dsclstarmodeon *CONSTANTS SCRNXP equ 56 ;Left X padding in bitmap SCRNST equ [0,-32] ;Top left of screen SCRNEND equ [254,432] ;Bottom right of screen SCRNMID equ [128,200] ;Midpoint of screen PAGE1YO equ 256 ;2nd page Y offset TSEC equ 53 ;Ticks per second ;HEBLNKINIT equ 32h ;Initial value for register HEBLNKINIT equ 65h ;Initial value for register OWSPD equ 18 ;Open window speed OWSPD2 equ 25 CWSPD equ 40 ;Close win speed RING_X_MID equ 1024 SCALETSIZE equ 40*4*16 *STRUCT OBJ OLINK equ 000 ;UHL *next object block OXVEL equ 020h ;UHL X velocity 16:16 OYVEL equ 040h ;UHL Y velocity 16:16 OZVEL equ 060h ;UHL Z velocity 16:16 OXVAL equ 080h ;UHL X position 16:16 OXFRAC equ 080h ; X pos fraction OXPOS equ 090h ; X pos integer OYVAL equ 0a0h ;UHL Y position 16:16 OYFRAC equ 0a0h ; Y pos frac OYPOS equ 0b0h ; Y pos int OZVAL equ 0c0h ;UHL Z position 16:16 OZPOS equ 0d0h ; Z pos int OFLAGS equ 0e0h ;UHW Mode flags OCTRL equ 0f0h ;UHW DMA control OFSET equ 100h ;UHW Offset OSAG equ 110h ;UHL *Image data OSIZE equ 130h ; OSIZEX equ 130h ;UHW X size OSIZEY equ 140h ;UHW Y size OPAL equ 150h ;UHW Palette # OCONST equ 160h ;UHW Constant color OIMG equ 170h ;UHL *Image header OID equ 190h ;UHW Object ID OPLINK equ 1a0h ;UHL *Process ODATA_p equ 1c0h ;UHL *Scale table if scaled obj OXANI equ 1e0h ;SHL X scaled animation pt 16:16 OMISC equ 210h ;UHW Misc data (3D mode Z offset) ODOFF equ 220h ; ODXOFF equ 220h ;SDW display x offset ODYOFF equ 230h ;SDW display y offset OSCALE EQU 240H ;UHL scale this object (set to 100% in BEGINOBJ) OBSIZ equ 260h *ENDSTRUCT NOBJ equ 350 ;Total # objects BQCELL equ 0c0h ;Size of DMA queue element ;Values for OFLAGS & OCTRL 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 0ch ;Replace all with constant M_FLIPH equ 10h ;Flip horizontally M_FLIPV equ 20h ;Flip vertically M_3DQ equ 40h ;Display in quick perspective M_NODISP equ 80H ;DONT DISPLAY THIS OBJ M_3D equ 100h ;Display in perspective using XYZ M_SHAD equ 200h ;Shadow M_PIXSCAN equ 400h ;Pixel scan on M_NOCOLL equ 800h ;Collisions off M_NOSCALE equ 1000h ;3D scaling off M_SCRNREL equ 2000h ;Screen relative XY on M_BOBJ equ 4000h ;background object (special flip) ;OFLAGS/OCTRL bits 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_3DQ equ 6 B_NODISP equ 7 ;DONT DISPLAY THIS OBJ B_3D equ 8 B_SHAD equ 9 B_PIXSCAN equ 10 B_NOCOLL equ 11 B_NOSCALE equ 12 B_SCRNREL equ 13 B_BOBJ equ 14 ******************************************************************************