lea $FFFFD080,a1 ; Load Object_RAM+$80 into a1 to be read from later. tst.b $FFFFA420 ; Is flag $FFFFA420 set? beq @u ; If not, branch to subroutine "@u" without doing any other operation. ; Otherwise: bsr @u ; Branch to subroutine "@u" once. lea $FFFFD140,a1 ; Load Object_RAM+$140 into a1 to be read from later. bsr @u ; Branch to subroutine "@u" again. lea $FFFFD180,a1 ; Load Object_RAM+$180 into a1 to be read from later. @u btst #0,$FFFFD04E ; Test the first bit of flag $FFFFD04E. Is it set? bne @d ; If said bit is not set, branch. addq.w #4,$A(a1) ; Quickly add 4 to whatever value is in the y-position equate (I think). @d btst #1,$FFFFD04E ; Test the second bit of flag $FFFFD04E. Is it set? bne @none ; If said bit is not set, branch. subq.w #4,$A(a1) ; Quickly subtract 4 from whatever value is in the y-position equate (I think). @l btst #2,$FFFFD04E ; Test the third bit of flag $FFFFD04E. Is it set? bne @r ; If said bit is not set, branch. addq.w #8,8(a1) ; Quickly add 8 to whatever value is in the x-position equate (I think). @r btst #3,$FFFFD04E ; Test the fourth bit of flag $FFFFD04E. Is it set? bne @none ; If said bit is not set, branch. subq.w #8,8(a1) ; Quickly subtract 8 from whatever value is in the x-position equate (I think). @none rts ; Go back to whatever we were doing before starting this subroutine.