Am I doing it wrong?
Code: Select all
.macro assert_regbits_816 ldr, expected_size
.pushseg
.segment "DEVNULL"
.local Code
.proc Code
ldr #0
.endproc
.popseg
.assert .sizeof(Code) = expected_size, error, .sprintf("expected %d-bit mode for %s but got %d-bit", 8 * (expected_size - 1), .string(ldr), 8 * (.sizeof(Code) - 1))
.endmacro
.macro assert_a16
assert_regbits_816 lda, 3
.endmacro
.macro assert_i16
assert_regbits_816 ldx, 3
.endmacro
.macro assert_a8
assert_regbits_816 lda, 2
.endmacro
.macro assert_i8
assert_regbits_816 ldx, 2
.endmacro
; Test cases ;;;;;;;;;;;;;;;;;;;
.out "The following should all succeed"
.p02
assert_a8
assert_i8
.p816
.a16
assert_a16
.a8
assert_a8
.i16
assert_i16
.i8
assert_i8
.out "Six errors should follow"
.a16
assert_a8
.i16
assert_i8
.a8
assert_a16
.i8
assert_i16
.p02
assert_i16
assert_a16