From 1a3da885973c913b277ef2a63fa26ce45779eec3 Mon Sep 17 00:00:00 2001 From: David Schmenk Date: Sun, 15 Jun 2014 23:24:16 -0700 Subject: [PATCH] Set page 3 vectors and page 0 interp loop in 'BYE' processing --- PLASMA/src/plvm02.s | 49 ++++++++++++++++++++++----------------------- 1 file changed, 24 insertions(+), 25 deletions(-) diff --git a/PLASMA/src/plvm02.s b/PLASMA/src/plvm02.s index 5561a398..8a4c9413 100644 --- a/PLASMA/src/plvm02.s +++ b/PLASMA/src/plvm02.s @@ -43,6 +43,7 @@ NEXTOP = $F0 OPIDX = NEXTOP+8 OPPAGE = OPIDX+1 STRBUF = $0280 +INTERP = $03D0 ;* ;* INTERPRETER INSTRUCTION POINTER INCREMENT MACRO ;* @@ -93,14 +94,6 @@ RAMEXIT LDA NODEV DEC DEVCNT RAMDONE CLI ;* -;* INSTALL PAGE 3 VECTORS -;* - LDY #$1F -- LDA PAGE3,Y - STA $03D0,Y - DEY - BPL - -;* ;* MOVE VM INTO LANGUAGE CARD ;* BIT LCRWEN+LCBNK2 @@ -165,20 +158,6 @@ RAMDONE CLI JMP CMDEXEC GETPFXPARMS !BYTE 1 !WORD STRBUF ; PATH STRING GOES HERE -PAGE3 = * - !PSEUDOPC $03D0 { -;* -;* PAGE 3 VECTORS INTO INTERPRETER -;* -INTERP BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY - JMP DINTERP - BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY - JMP IINTRP - BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY - JMP IINTRPX -TMRVEC !WORD TMRRTS -TMRRTS RTS -} ;************************************************ ;* * ;* LANGUAGE CARD RESIDENT PLASMA VM STARTS HERE * @@ -283,6 +262,14 @@ CMDEXEC = * DEY BPL - ; +; INSTALL PAGE 3 VECTORS +; + LDY #$11 +- LDA PAGE3,Y + STA INTERP,Y + DEY + BPL - +; ; READ CMD INTO MEMORY ; JSR PRODOS ; CLOSE EVERYTHING @@ -334,7 +321,7 @@ FAILMSG !BYTE 39 PAGE0 = * !PSEUDOPC $00F0 { ;* -;* INTERP BYTECODE +;* INTERP BYTECODE INNER LOOP ;* INY BEQ NEXTOPH @@ -344,10 +331,22 @@ FETCHOP LDA (IP),Y NEXTOPH INC IPH BNE FETCHOP } -DEFCMD !FILL 63 +PAGE3 = * + !PSEUDOPC $03D0 { +;* +;* PAGE 3 VECTORS INTO INTERPRETER +;* + BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY + JMP DINTERP + BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY + JMP IINTRP + BIT LCRDEN+LCBNK2 ; $03DC - INDIRECT INTERPX ENTRY + JMP IINTRPX +} +DEFCMD !FILL 33 ENDBYE = * } -LCDEFCMD = *-63 ; DEFCMD IN LC MEMORY +LCDEFCMD = *-33 ; DEFCMD IN LC MEMORY ;***************** ;* * ;* OPXCODE TABLE *