collapseos/tools/tests/unit/test_core.asm

74 lines
952 B
NASM
Raw Normal View History

2019-11-16 00:59:26 +11:00
.equ foo 456 ; AFTER_ORG should not get that value
.org 0x1234
.equ AFTER_ORG @
.org 0
jp test
dummyLabel:
testNum: .db 1
.equ dummyLabel 0x42
test:
ld hl, 0xffff
ld sp, hl
; *** Just little z80 flags memo.
and a ; clear carry
ld hl, 100
ld de, 101
sbc hl, de
jp nc, fail ; carry is set
call nexttest
and a ; clear carry
ld hl, 101
ld de, 100
sbc hl, de
jp c, fail ; carry is reset
call nexttest
ld a, 1
dec a
jp m, fail ; positive
dec a
jp p, fail ; negative
call nexttest
; Test that .equ can override label
ld a, 0x42
ld hl, dummyLabel
cp l
jp nz, fail
call nexttest
2019-11-16 00:59:26 +11:00
; test that "@" is updated by a .org directive
ld hl, AFTER_ORG
ld de, 0x1234
or a ; clear carry
sbc hl, de
2019-06-01 01:12:29 +10:00
jp nz, fail
call nexttest
2019-12-14 14:49:15 +11:00
; test that AND affects the Z flag
ld a, 0x69
and 0x80
jp nz, fail
call nexttest
; success
xor a
halt
nexttest:
ld a, (testNum)
inc a
ld (testNum), a
ret
fail:
ld a, (testNum)
halt
2019-11-16 00:59:26 +11:00