2022-11-15 17:51:52 +00:00
|
|
|
%import textio
|
2022-11-28 22:07:07 +00:00
|
|
|
%zeropage dontuse
|
|
|
|
|
2022-10-22 11:33:35 +00:00
|
|
|
main {
|
2022-11-28 18:22:35 +00:00
|
|
|
bool[1] expected = [ true ]
|
2022-11-28 22:07:07 +00:00
|
|
|
uword[1] expectedw = [4242 ]
|
2022-11-28 18:22:35 +00:00
|
|
|
|
|
|
|
sub get() -> bool {
|
2022-11-28 22:07:07 +00:00
|
|
|
%asm {{
|
|
|
|
stz P8ZP_SCRATCH_W1
|
|
|
|
stz P8ZP_SCRATCH_W1+1
|
|
|
|
stz P8ZP_SCRATCH_W2
|
|
|
|
stz P8ZP_SCRATCH_W2+1
|
|
|
|
stz P8ZP_SCRATCH_REG
|
|
|
|
stz P8ZP_SCRATCH_B1
|
|
|
|
}}
|
|
|
|
return true
|
|
|
|
}
|
|
|
|
sub same() -> bool {
|
|
|
|
%asm {{
|
|
|
|
stz P8ZP_SCRATCH_W1
|
|
|
|
stz P8ZP_SCRATCH_W1+1
|
|
|
|
stz P8ZP_SCRATCH_W2
|
|
|
|
stz P8ZP_SCRATCH_W2+1
|
|
|
|
stz P8ZP_SCRATCH_REG
|
|
|
|
stz P8ZP_SCRATCH_B1
|
|
|
|
}}
|
2022-11-28 18:22:35 +00:00
|
|
|
return true
|
|
|
|
}
|
|
|
|
|
2022-11-28 22:07:07 +00:00
|
|
|
sub getw() -> uword {
|
|
|
|
%asm {{
|
|
|
|
stz P8ZP_SCRATCH_W1
|
|
|
|
stz P8ZP_SCRATCH_W1+1
|
|
|
|
stz P8ZP_SCRATCH_W2
|
|
|
|
stz P8ZP_SCRATCH_W2+1
|
|
|
|
stz P8ZP_SCRATCH_REG
|
|
|
|
stz P8ZP_SCRATCH_B1
|
|
|
|
}}
|
|
|
|
return 4242
|
|
|
|
}
|
|
|
|
sub samew() -> uword {
|
|
|
|
%asm {{
|
|
|
|
stz P8ZP_SCRATCH_W1
|
|
|
|
stz P8ZP_SCRATCH_W1+1
|
|
|
|
stz P8ZP_SCRATCH_W2
|
|
|
|
stz P8ZP_SCRATCH_W2+1
|
|
|
|
stz P8ZP_SCRATCH_REG
|
|
|
|
stz P8ZP_SCRATCH_B1
|
|
|
|
}}
|
|
|
|
return 4242
|
|
|
|
}
|
|
|
|
sub one() -> ubyte {
|
|
|
|
%asm {{
|
|
|
|
stz P8ZP_SCRATCH_W1
|
|
|
|
stz P8ZP_SCRATCH_W1+1
|
|
|
|
stz P8ZP_SCRATCH_W2
|
|
|
|
stz P8ZP_SCRATCH_W2+1
|
|
|
|
stz P8ZP_SCRATCH_REG
|
|
|
|
stz P8ZP_SCRATCH_B1
|
|
|
|
}}
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
|
2022-11-28 18:22:35 +00:00
|
|
|
sub start() {
|
|
|
|
if get() == expected[0]
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if expected[0] == get()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
2022-11-28 22:07:07 +00:00
|
|
|
|
|
|
|
if getw() == expectedw[0]
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if expectedw[0] == getw()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; unquals
|
|
|
|
|
|
|
|
if get() != expected[0]
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if expected[0] != get()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
if getw() != expectedw[0]
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if expectedw[0] != getw()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
; now with 2 non-simple operands:
|
|
|
|
if get() == same()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if same() == get()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
if getw() == samew()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if samew() == getw()
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
|
|
|
|
|
|
|
; unquals
|
|
|
|
|
|
|
|
if get() != same()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if same() != get()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
if getw() != samew()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
; this is working fine:
|
|
|
|
if samew() != getw()
|
|
|
|
txt.print("fail\n")
|
|
|
|
else
|
|
|
|
txt.print("ok\n")
|
|
|
|
|
|
|
|
|
|
|
|
; pointer stuff
|
|
|
|
uword ptr = $4000
|
|
|
|
@(ptr+one()) = 42
|
|
|
|
if @(ptr+one()) == 42
|
|
|
|
txt.print("ok\n")
|
|
|
|
else
|
|
|
|
txt.print("fail\n")
|
2022-11-28 18:22:35 +00:00
|
|
|
}
|
2022-09-18 14:04:49 +00:00
|
|
|
}
|