collapseos/tools/tests/unit/test_symbol.asm
Virgil Dupras 98695f9912 zasm: de-index symRegister
Make symRegister's logic pointer-based so we can break through the 0x100
limit.
2019-05-19 09:06:24 -04:00

64 lines
764 B
NASM

.equ RAMSTART 0x4000
jp test
#include "core.asm"
#include "zasm/util.asm"
.equ SYM_RAMSTART RAMSTART
#include "zasm/symbol.asm"
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
jp nz, fail
cp 1 ; don't match FOOBAR
jp nz, fail
call nexttest
ld a, 1 ; index of FOO
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