From c29dcb65c8e96420a8dff5867a56193aa8f58315 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Mon, 16 Jun 2014 10:29:04 -0700 Subject: [PATCH] Move DROP to ZP --- src/vmsrc/plvm01.s | 11 ++++++----- src/vmsrc/plvm02.s | 11 ++++++----- src/vmsrc/plvm03.s | 15 ++++++++------- src/vmsrc/plvmzp.inc | 1 + 4 files changed, 21 insertions(+), 17 deletions(-) diff --git a/src/vmsrc/plvm01.s b/src/vmsrc/plvm01.s index dd796ce..20f00c2 100644 --- a/src/vmsrc/plvm01.s +++ b/src/vmsrc/plvm01.s @@ -184,7 +184,7 @@ ADD LDA ESTKL,X LDA ESTKH,X ADC ESTKH+1,X STA ESTKH+1,X -DROP INX + INX JMP NEXTOP ;* ;* SUB TOS FROM TOS-1 @@ -923,9 +923,9 @@ LEAVE LDY #$01 RET RTS A1CMD !SOURCE "vmsrc/a1cmd.a" SEGEND = * -VMINIT LDY #$0D ; INSTALL PAGE 0 FETCHOP ROUTINE +VMINIT LDY #$0E ; INSTALL PAGE 0 FETCHOP ROUTINE - LDA PAGE0,Y - STA NEXTOP,Y + STA DROP,Y DEY BPL - LDA #$00 ; INIT FRAME POINTER @@ -939,11 +939,12 @@ VMINIT LDY #$0D ; INSTALL PAGE 0 FETCHOP ROUTINE LDX #ESTKSZ/2 ; INIT EVAL STACK INDEX JMP A1CMD PAGE0 = * - !PSEUDOPC $00F0 { + !PSEUDOPC $00EF { ;* ;* INTERP BYTECODE INNER LOOP ;* - INY + INX ; DROP + INY ; NEXTOP BEQ NEXTOPH FETCHOP LDA (IP),Y STA OPIDX diff --git a/src/vmsrc/plvm02.s b/src/vmsrc/plvm02.s index 9ca82fd..e42ff64 100644 --- a/src/vmsrc/plvm02.s +++ b/src/vmsrc/plvm02.s @@ -253,9 +253,9 @@ CMDEXEC = * ; ; INSTALL PAGE 0 FETCHOP ROUTINE ; - LDY #$0D + LDY #$0E - LDA PAGE0,Y - STA NEXTOP,Y + STA DROP,Y DEY BPL - ; @@ -316,11 +316,12 @@ DISABLE80 !BYTE 21, 13, '1', 26, 13 FAILMSG !BYTE 39 !TEXT "MISSING CMD. PRESS ANY KEY TO RESET..." PAGE0 = * - !PSEUDOPC $00F0 { + !PSEUDOPC $00EF { ;* ;* INTERP BYTECODE INNER LOOP ;* - INY + INX ; DROP @ $EF + INY ; NEXTOP @ $F0 BEQ NEXTOPH FETCHOP LDA (IP),Y STA OPIDX @@ -368,7 +369,7 @@ ADD LDA ESTKL,X LDA ESTKH,X ADC ESTKH+1,X STA ESTKH+1,X -DROP INX + INX JMP NEXTOP ;* ;* SUB TOS FROM TOS-1 diff --git a/src/vmsrc/plvm03.s b/src/vmsrc/plvm03.s index f73c028..d7e5716 100644 --- a/src/vmsrc/plvm03.s +++ b/src/vmsrc/plvm03.s @@ -14,7 +14,7 @@ MEMBANK = $FFEF ; XPAGE ADDRESSES ; XPAGE = $1600 -NEXTOPX = XPAGE+NEXTOP +DROPX = XPAGE+DROP IFPX = XPAGE+IFPH IPX = XPAGE+IPH TMPX = XPAGE+TMPH @@ -50,11 +50,11 @@ DSTX = XPAGE+DSTH BNE PRHEX LDA #$01 STA MEMBANK - LDY #$0D ; INSTALL PAGE 0 FETCHOP ROUTINE + LDY #$0E ; INSTALL PAGE 0 FETCHOP ROUTINE LDA #$00 - LDX PAGE0,Y - STX NEXTOP,Y - STA NEXTOPX,Y + STX DROP,Y + STA DROPX,Y DEY BPL - STA TMPX ; CLEAR ALL EXTENDED POINTERS @@ -73,11 +73,12 @@ SEGREQ !BYTE 4 !BYTE $10 !BYTE $00 PAGE0 = * - !PSEUDOPC $00F0 { + !PSEUDOPC $00EF { ;* ;* INTERP BYTECODE INNER LOOP ;* - INY + INX ; DROP + INY ; NEXTOP BEQ NEXTOPH FETCHOP LDA (IP),Y STA OPIDX @@ -271,7 +272,7 @@ ADD LDA ESTKL,X LDA ESTKH,X ADC ESTKH+1,X STA ESTKH+1,X -DROP INX + INX JMP NEXTOP ;* ;* SUB TOS FROM TOS-1 diff --git a/src/vmsrc/plvmzp.inc b/src/vmsrc/plvmzp.inc index 5fc6d17..9667f31 100644 --- a/src/vmsrc/plvmzp.inc +++ b/src/vmsrc/plvmzp.inc @@ -28,6 +28,7 @@ NPARMS = TMPL FRMSZ = TMPH DVSIGN = TMP+2 ESP = TMP+2 +DROP = $EF NEXTOP = $F0 OPIDX = NEXTOP+8 OPPAGE = OPIDX+1