collapseos/tools/tests/unit/test_symbol.asm

65 lines
822 B
NASM

.equ RAMSTART 0x4000
jp test
#include "core.asm"
#include "lib/util.asm"
#include "zasm/util.asm"
#include "zasm/const.asm"
.equ SYM_RAMSTART RAMSTART
#include "zasm/symbol.asm"
; Pretend that we aren't in first pass
zasmIsFirstPass:
jp unsetZ
testNum: .db 1
sFOO: .db "FOO", 0
sFOOBAR: .db "FOOBAR", 0
test:
ld hl, 0xffff
ld sp, hl
; Check that we compare whole strings (a prefix will not match a longer
; string).
call symInit
ld hl, sFOOBAR
ld de, 42
call symRegister
jp nz, fail
ld hl, sFOO
ld de, 43
call symRegister
jp nz, fail
ld hl, sFOO
call symFind ; don't match FOOBAR
jp nz, fail
call symGetVal
ld a, d
or a
jp nz, fail
ld a, e
cp 43
jp nz, fail
call nexttest
; success
xor a
halt
nexttest:
ld a, (testNum)
inc a
ld (testNum), a
ret
fail:
ld a, (testNum)
halt