zasm: support symbols in .dw directive

This commit is contained in:
Virgil Dupras 2019-05-10 21:17:19 -04:00
parent c000d5cfb1
commit 95f53d0ce3
4 changed files with 20 additions and 18 deletions

View File

@ -33,7 +33,7 @@ handleDW:
call toWord
call readWord
ld hl, scratchpad
call parseNumber
call parseNumberOrSymbol
ld a, ixl
ld (direcData), a
ld a, ixh

View File

@ -115,23 +115,6 @@ parseIXY:
pop hl
ret
; Parse string in (HL) and return its numerical value whether its a number
; literal or a symbol. Returns value in IX.
; Sets Z if number or symbol is valid, unset otherwise.
parseNumberOrSymbol:
call parseNumber
ret z
; Not a number. Try symbol
push de
call symGetVal
jr nz, .notfound ; Z already unset
; Found! value in DE. We need it in IX
ld ixh, d
ld ixl, e
; Z already set
.notfound:
pop de
ret
; find argspec for string at (HL). Returns matching argspec in A.
; Return value 0xff holds a special meaning: arg is not empty, but doesn't match
; any argspec (A == 0 means arg is empty). A return value of 0xff means an

View File

@ -113,3 +113,21 @@ parseNumber:
call hasHexPrefix
jr z, parseHexadecimal
jr parseDecimal
; Parse string in (HL) and return its numerical value whether its a number
; literal or a symbol. Returns value in IX.
; Sets Z if number or symbol is valid, unset otherwise.
parseNumberOrSymbol:
call parseNumber
ret z
; Not a number. Try symbol
push de
call symGetVal
jr nz, .notfound ; Z already unset
; Found! value in DE. We need it in IX
ld ixh, d
ld ixl, e
; Z already set
.notfound:
pop de
ret

View File

@ -3,6 +3,7 @@
label1:
inc a ; comment
ld hl, label2
.dw label2
; comment
.db 42
label2: