************************************************************** * * Software: * Initiated: * * COPYRIGHT (C) 1992 WILLIAMS ELECTRONICS GAMES, INC. * ************************************************************** *CLICK AN AUDIT COUNTER AUDIT .macro P1 MOVI :P1:,A0 CALLA AUD1 .endm *AUDIT A WORD LONG RAM LOCATION *P1 = AUDIT *P2 = RAM LOCATION AUDITCNT .macro P1,P2 MOVE @:P2:,A1 MOVI :P1:,A0 CALLA AUD .endm *Get a game adjustment value in A0 ADJUST .macro P1 MOVI :P1:,A0 CALLA GET_ADJ .endm *FCALL - Function call without using the system stack FCALL .macro n,b movi :n:,:b:,L exgpc :b: .endm *FRET - Function return without using the system stack FRET .macro b exgpc :b: .endm ****************************************************************************** REFLONG .macro label .globl label .long label .endm FACE24 .macro NAME,MOVE,REG .if $isreg(REG) move *:REG:(FACING_DIR),a14 .else move *a13(FACING_DIR),a14 .endif movi :NAME:_2_:MOVE:,a0 btst MOVE_UP_BIT,a14 jrnz DONE? movi :NAME:_4_:MOVE:,a0 DONE? .endm FACE24TBL .macro TBL,REG .if ($symcmp(TBL,"a0") = 0) | ($symcmp(TBL,"a14") = 0) .emsg "ERROR! - Can't use a0 or a14 with FACE24TBL" .mexit .endif .if $isreg(REG) move *:REG:(WRESTLERNUM),a0 .else move *a13(WRESTLERNUM),a0 .endif X64 a0 .if $isreg(REG) move *:REG:(FACING_DIR),a14 .else move *a13(FACING_DIR),a14 .endif btst MOVE_UP_BIT,a14 jrnz DONE? addi 32,a0 DONE? .if $isreg(TBL) add :TBL:,a0 .else addi :TBL:,a0 .endif move *a0,a0,L .endm FACETBL .macro TBL,REG .if $symcmp(TBL,"a0") = 0) .emsg "ERROR! - Can't use a0 with FACETBL" .mexit .endif .if $isreg(REG) move *:REG:(WRESTLERNUM),a0 .else move *a13(WRESTLERNUM),a0 .endif X32 a0 .if $isreg(TBL) add :TBL:,a0 .else addi :TBL:,a0 .endif move *a0,a0,L .endm ****************************************************************************** ;Under no circumstances should MODE_DEAD ever be changed to anything else. ; (well, except for the come-back-to-life thing at the end, and that's ; a very special case that'll be handled separately.) SETMODE .macro MODE move a0,-*sp,1 move *a13(PLYRMODE),a0 cmpi MODE_DEAD,a0 jreq done? movi MODE_:MODE:,a0 move a0,*a13(PLYRMODE) done? move *sp+,a0,1 .endm ****************************************************************************** JAM_STR .macro FONT,SPACING,CSPACE,X,Y,PALETTE,PR_METHOD .long :FONT: .word :SPACING: .word :CSPACE: .word :X: .word :Y: .long :PALETTE: .long :PR_METHOD: .endm ****************************************************************************** OPPDIST .macro DX,DZ move *a13(CLOSEST_XDIST),a14 cmpi DX,a14 jrgt FOO? move *a13(CLOSEST_ZDIST),a14 cmpi DZ,a14 FOO? .endm ****************************************************************************** TBL_OBJ .macro OBJ movi OBJ,a0 calla BEGINOBJ_TBL .endm ****************************************************************************** X2 .macro a sll 1,:a: .endm ****************************************************************************** X4 .macro a sll 2,:a: .endm ****************************************************************************** X8 .macro a sll 3,:a: .endm ****************************************************************************** X16 .macro a sll 4,:a: .endm ****************************************************************************** X32 .macro a sll 5,:a: .endm ****************************************************************************** X64 .macro a sll 6,:a: .endm ****************************************************************************** X128 .macro a sll 7,:a: .endm ****************************************************************************** X256 .macro a sll 8,:a: .endm ****************************************************************************** TINTON .macro .global tint_on calla tint_on .endm TINTOFF .macro .global tint_off calla tint_off .endm ******************************** * Macro defines, include after mproc.equ * 11 June 91 SPL *.Last mod - 1/31/93 1:00 BSSX .macro n,s .def :n: .bss :n:,:s: .endm SUBR .macro p1 .def :p1: .even :p1: .endm SUBRP .macro p1 .even :p1: .endm STRUCT .macro o .asg :o:,SOFF .endm STRUCTPD .macro .asg PDATA,SOFF .endm STRUC .macro n,s :n: .set SOFF .eval SOFF+:s:,SOFF .endm WORD .macro n :n: .set SOFF .eval SOFF+16,SOFF .endm LONG .macro n :n: .set SOFF .eval SOFF+32,SOFF .endm APTR .macro n :n: .set SOFF .eval SOFF+32,SOFF .endm LABEL .macro n :n: .set SOFF .endm FLAG .macro n :n:_B .equ SOFF :n:_M .equ 1<