34 lines
952 B
ArmAsm
34 lines
952 B
ArmAsm
; Tests for the bug reported in #2859. Boolean not had the correct precedence
|
|
; (as specified in the docs) but worked only correctly at the start of a full
|
|
; expression.
|
|
|
|
; This one assembles ok since ! is at the start
|
|
.if !.defined(__DOCART__) && .defined(__C64__)
|
|
.byte 1
|
|
.endif
|
|
|
|
; This one assembles too since a parenthesis restarts a full expression
|
|
.if .defined(__C64__) && (!.defined(__DOCART__))
|
|
.byte 2
|
|
.endif
|
|
|
|
; This one doesn't work since ! is somewhere in between
|
|
.if .defined(__C64__) && !.defined(__DOCART__)
|
|
.byte 3
|
|
.endif
|
|
|
|
|
|
.import _exit
|
|
.export _main
|
|
|
|
|
|
; The following code is an indirect test for the precedence of .not.
|
|
; .not has the lowest precedence, so the expression that is loaded into A
|
|
; evaluates to zero. This has of course to be changed when the precedence
|
|
; of .not is changed.
|
|
_main:
|
|
lda #.not 0 + 1 ; Means: .not (0 + 1)
|
|
ldx #0
|
|
jmp _exit
|
|
|