CMP_Double .macro ;NESASM3 syntax ; input: ; \1 = first condition. Valid addressing modes: immediate, zero page, or absolute. ; \2 = second condition. Valid addressing modes: immediate, zero page, or absolute. ; \3 = branch here if both are true ; \4 = branch here if only first condition is true ; \5 = branch here if only second condition is true ; \6 = branch here if both are false CMP \1 BNE .check2\@ ;\1 is not true CMP \2 BEQ .doubletrue\@ JMP \4 ;only condition 1 is true .doubletrue\@: JMP \3 ;both are true .check2\@: CMP \2 BNE .doublefalse\@ JMP \5 ;only condition 2 is true .doublefalse: JMP \6 ;both are false .endm