zasm: add support for "$" symbol
Allows for the ".fill x-$" pattern.
This commit is contained in:
parent
207adbc2f8
commit
e18f9b53a9
@ -226,7 +226,13 @@ parseLiteral:
|
|||||||
parseNumberOrSymbol:
|
parseNumberOrSymbol:
|
||||||
call parseLiteral
|
call parseLiteral
|
||||||
ret z
|
ret z
|
||||||
; Not a number. Try symbol
|
; Not a number. Try PC
|
||||||
|
push de
|
||||||
|
ld de, .sDollar
|
||||||
|
call strcmp
|
||||||
|
pop de
|
||||||
|
jr z, .returnPC
|
||||||
|
; Not PC either, try symbol
|
||||||
call symSelect
|
call symSelect
|
||||||
call symFind
|
call symFind
|
||||||
jr nz, .notfound
|
jr nz, .notfound
|
||||||
@ -244,3 +250,12 @@ parseNumberOrSymbol:
|
|||||||
; Otherwise return error. Z is already unset, so in fact, this is the
|
; Otherwise return error. Z is already unset, so in fact, this is the
|
||||||
; same as jumping to zasmIsFirstPass
|
; same as jumping to zasmIsFirstPass
|
||||||
jp zasmIsFirstPass
|
jp zasmIsFirstPass
|
||||||
|
|
||||||
|
.returnPC:
|
||||||
|
push hl
|
||||||
|
call zasmGetPC
|
||||||
|
push hl \ pop ix
|
||||||
|
pop hl
|
||||||
|
ret
|
||||||
|
.sDollar:
|
||||||
|
.db '$', 0
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.equ USER_CODE 0x4800
|
.equ USER_CODE 0x4800
|
||||||
.equ USER_RAMSTART 0x5800
|
.equ USER_RAMSTART 0x6000
|
||||||
.equ FS_HANDLE_SIZE 8
|
.equ FS_HANDLE_SIZE 8
|
||||||
|
|
||||||
; *** JUMP TABLE ***
|
; *** JUMP TABLE ***
|
||||||
|
Binary file not shown.
@ -13,6 +13,9 @@ jp test
|
|||||||
zasmIsFirstPass:
|
zasmIsFirstPass:
|
||||||
jp unsetZ
|
jp unsetZ
|
||||||
|
|
||||||
|
zasmGetPC:
|
||||||
|
ret
|
||||||
|
|
||||||
testNum: .db 1
|
testNum: .db 1
|
||||||
|
|
||||||
s1: .db "2+2", 0
|
s1: .db "2+2", 0
|
||||||
|
@ -3,6 +3,9 @@ jp test
|
|||||||
#include "core.asm"
|
#include "core.asm"
|
||||||
#include "parse.asm"
|
#include "parse.asm"
|
||||||
|
|
||||||
|
zasmGetPC:
|
||||||
|
ret
|
||||||
|
|
||||||
testNum: .db 1
|
testNum: .db 1
|
||||||
|
|
||||||
sFoo: .db "Foo", 0
|
sFoo: .db "Foo", 0
|
||||||
|
@ -6,6 +6,7 @@ jp test
|
|||||||
#include "zasm/parse.asm"
|
#include "zasm/parse.asm"
|
||||||
|
|
||||||
; mocks. aren't used in tests
|
; mocks. aren't used in tests
|
||||||
|
zasmGetPC:
|
||||||
zasmIsFirstPass:
|
zasmIsFirstPass:
|
||||||
symSelect:
|
symSelect:
|
||||||
symFind:
|
symFind:
|
||||||
|
@ -27,4 +27,4 @@ label2: .dw 0x42
|
|||||||
rlc c
|
rlc c
|
||||||
cp '-'
|
cp '-'
|
||||||
sbc hl, de
|
sbc hl, de
|
||||||
.fill 0x10
|
.fill 0x50-$
|
||||||
|
Loading…
Reference in New Issue
Block a user