update program counter (for eval purposes) after each argument in data statements.

db,dw,da,adr,adrl all allow multiple arguments.  In merlin, the value of * is updated after each argument.  in qasm, the value of * is not updated.

Encountered assembling marinetti.
This commit is contained in:
Kelvin Sherlock 2020-05-31 12:59:27 -04:00
parent cacc4661ac
commit 0976282d81
4 changed files with 29 additions and 2 deletions

View File

@ -1586,8 +1586,10 @@ initline php
sta lableused
lda objptr
sta lineobjptr
sta pcobjptr
lda objptr+2
sta lineobjptr+2
sta pcobjptr+2
:xit plp
rts

View File

@ -1285,9 +1285,9 @@ getnum php
:xc1 jmp :doxc ;y still on stack!
:pc iny
rep $30
lda lineobjptr
lda pcobjptr
sta val
lda lineobjptr+$2
lda pcobjptr+$2
sta val+$2
lda modeflag
bit #relflag

View File

@ -2424,6 +2424,12 @@ dwop php
lda lvalue+$1
jsr putbyte
jsr relcorrect
rep $30
lda objptr
sta pcobjptr
lda objptr+2
sta pcobjptr+2
sep $30
plx
txy
lda (lineptr),y
@ -2475,6 +2481,12 @@ dfbop php
lda lvalue
jsr putbyte
jsr relcorrect
rep $30
lda objptr
sta pcobjptr
lda objptr+2
sta pcobjptr+2
sep $30
plx
txy
lda (lineptr),y
@ -2626,6 +2638,12 @@ adrop php
lda lvalue+2
jsr putbyte
jsr relcorrect
rep $30
lda objptr
sta pcobjptr
lda objptr+2
sta pcobjptr+2
sep $30
plx
txy
lda (lineptr),y
@ -2684,6 +2702,12 @@ adrlop php
lda lvalue+$3
jsr putbyte
jsr relcorrect
rep $30
lda objptr
sta pcobjptr
lda objptr+2
sta pcobjptr+2
sep $30
plx
txy
lda (lineptr),y

View File

@ -187,6 +187,7 @@ lvalue ds 4
myvalue ds 4
noshift ds 4
lineobjptr ds 4
pcobjptr ds 4
xreg ds 4 ;variables used by EVAL
yreg ds 4