collapseos/tools/tests/unit/test_core.asm

68 lines
941 B
NASM

.equ foo 456 ; AFTER_ORG should not get that value
.org 0x1234
.equ AFTER_ORG @
.org 0
jp test
.inc "ascii.h"
.inc "core.asm"
.inc "lib/ari.asm"
.inc "lib/fmt.asm"
.inc "stdio.asm"
.inc "common.asm"
dummyLabel:
.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 de, 0x42
ld hl, dummyLabel
call assertEQW
call nexttest
; test that "@" is updated by a .org directive
ld hl, AFTER_ORG
ld de, 0x1234
call assertEQW
call nexttest
; test that AND affects the Z flag
ld a, 0x69
and 0x80
call assertZ
call nexttest
; success
xor a
halt
STDIO_RAMSTART: