;; Copyright (C) 2014-2015 Ben Kurtovic ;; Released under the terms of the MIT License. See LICENSE for details. ; ----- CRATER UNIT TESTING SUITE --------------------------------------------- ; This file contains test cases for basic arithmetic operations on registers, ; without involving memory or control flow. .include "_header.asm" test: ld a, 0 ld b, 0 ld c, 0 ld d, 0 ld e, 0 ld h, 0 ld l, 0 emu rassert(a=$00, b=$00, c=$00, d=$00, e=$00, h=$00, l=$00) inc a emu rassert(a=$01, b=$00, c=$00, d=$00, e=$00, h=$00, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc b emu rassert(a=$01, b=$01, c=$00, d=$00, e=$00, h=$00, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc c emu rassert(a=$01, b=$01, c=$01, d=$00, e=$00, h=$00, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc d emu rassert(a=$01, b=$01, c=$01, d=$01, e=$00, h=$00, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc e emu rassert(a=$01, b=$01, c=$01, d=$01, e=$01, h=$00, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc h emu rassert(a=$01, b=$01, c=$01, d=$01, e=$01, h=$01, l=$00) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc l emu rassert(a=$01, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) emu fassert(s=0, z=0, f5=0, h=0, f3=0, pv=0, n=0) inc a inc a inc a emu rassert(a=$04, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) ld a, 42 emu rassert(a=$2A, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) inc a emu rassert(a=$2B, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) emu fassert(s=0, z=0, f5=1, h=0, f3=0, pv=0, n=0) ld a, $0F emu rassert(a=$0F, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) inc a emu rassert(a=$10, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) emu fassert(s=0, z=0, f5=0, h=1, f3=0, pv=0, n=0) ld a, $FE inc a emu rassert(a=$FF, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) emu fassert(s=1, z=0, f5=1, h=1, f3=1, pv=0, n=0) inc a emu rassert(a=$00, b=$01, c=$01, d=$01, e=$01, h=$01, l=$01) emu fassert(s=0, z=1, f5=0, h=1, f3=0, pv=1, n=0) inc bc inc de inc hl emu rassert(a=$00, b=$01, c=$02, d=$01, e=$02, h=$01, l=$02) emu fassert(s=0, z=1, f5=0, h=1, f3=0, pv=1, n=0) ld c, $FF inc bc emu rassert(a=$00, b=$02, c=$00, d=$01, e=$02, h=$01, l=$02) ld b, $FF ld c, $FE inc bc emu rassert(a=$00, b=$FF, c=$FF, d=$01, e=$02, h=$01, l=$02) inc bc emu rassert(a=$00, b=$00, c=$00, d=$01, e=$02, h=$01, l=$02)