diff --git a/apps/zasm/directive.asm b/apps/zasm/directive.asm index 6c89efe..681366d 100644 --- a/apps/zasm/directive.asm +++ b/apps/zasm/directive.asm @@ -79,8 +79,10 @@ handleDW: push hl .loop: call readWord + jr nz, .badfmt ld hl, scratchpad call parseExpr + jr nz, .badarg push ix \ pop hl ld a, l call ioPutC @@ -91,6 +93,15 @@ handleDW: cp a ; ensure Z pop hl ret +.badfmt: + ld a, ERR_BAD_FMT + jr .error +.badarg: + ld a, ERR_BAD_ARG +.error: + call unsetZ + pop hl + ret handleEQU: push hl diff --git a/tools/tests/zasm/errtests.sh b/tools/tests/zasm/errtests.sh index fb7f7b2..6d178fe 100755 --- a/tools/tests/zasm/errtests.sh +++ b/tools/tests/zasm/errtests.sh @@ -20,8 +20,10 @@ chkerr "foo" 1 chkerr "ld a, foo" 2 chkerr "ld a, hl" 2 chkerr ".db foo" 2 +chkerr ".dw foo" 2 chkerr "ld a," 3 chkerr "ld a, 'A" 3 chkerr ".db 0x42," 3 +chkerr ".dw 0x4242," 3 chkerr "ld a, 0x100" 4 chkerr ".db 0x100" 4