Browse Source

zasm: implement error conditions in .dw

pull/10/head
Virgil Dupras 5 years ago
parent
commit
436ff51c39
2 changed files with 13 additions and 0 deletions
  1. +11
    -0
      apps/zasm/directive.asm
  2. +2
    -0
      tools/tests/zasm/errtests.sh

+ 11
- 0
apps/zasm/directive.asm View File

@@ -79,8 +79,10 @@ handleDW:
push hl push hl
.loop: .loop:
call readWord call readWord
jr nz, .badfmt
ld hl, scratchpad ld hl, scratchpad
call parseExpr call parseExpr
jr nz, .badarg
push ix \ pop hl push ix \ pop hl
ld a, l ld a, l
call ioPutC call ioPutC
@@ -91,6 +93,15 @@ handleDW:
cp a ; ensure Z cp a ; ensure Z
pop hl pop hl
ret ret
.badfmt:
ld a, ERR_BAD_FMT
jr .error
.badarg:
ld a, ERR_BAD_ARG
.error:
call unsetZ
pop hl
ret


handleEQU: handleEQU:
push hl push hl


+ 2
- 0
tools/tests/zasm/errtests.sh View File

@@ -20,8 +20,10 @@ chkerr "foo" 1
chkerr "ld a, foo" 2 chkerr "ld a, foo" 2
chkerr "ld a, hl" 2 chkerr "ld a, hl" 2
chkerr ".db foo" 2 chkerr ".db foo" 2
chkerr ".dw foo" 2
chkerr "ld a," 3 chkerr "ld a," 3
chkerr "ld a, 'A" 3 chkerr "ld a, 'A" 3
chkerr ".db 0x42," 3 chkerr ".db 0x42," 3
chkerr ".dw 0x4242," 3
chkerr "ld a, 0x100" 4 chkerr "ld a, 0x100" 4
chkerr ".db 0x100" 4 chkerr ".db 0x100" 4

Loading…
Cancel
Save