diff --git a/src/asm/asm.1.s b/src/asm/asm.1.s index 8a71207..f894fbf 100644 --- a/src/asm/asm.1.s +++ b/src/asm/asm.1.s @@ -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 diff --git a/src/asm/asm.eval.s b/src/asm/asm.eval.s index 45f805e..366024d 100644 --- a/src/asm/asm.eval.s +++ b/src/asm/asm.eval.s @@ -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 diff --git a/src/asm/asm.opcodes.s b/src/asm/asm.opcodes.s index eca9679..86a8828 100644 --- a/src/asm/asm.opcodes.s +++ b/src/asm/asm.opcodes.s @@ -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 @@ -2515,6 +2527,10 @@ ddbop ldx #$00 jsr putbyte lda passnum beq :jmp + lda objptr + sta pcobjptr + lda objptr+2 + sta pcobjptr+2 lda modeflag bit #relflag beq :jmp @@ -2626,6 +2642,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 +2706,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 diff --git a/src/asm/asm.vars.s b/src/asm/asm.vars.s index 6faeecb..482eff9 100644 --- a/src/asm/asm.vars.s +++ b/src/asm/asm.vars.s @@ -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