From 5f71c1481bf3f6143b066441fea34325ee87dccc Mon Sep 17 00:00:00 2001 From: David Schmenk <dschmenk@gmail.com> Date: Wed, 18 Jun 2014 16:51:35 -0700 Subject: [PATCH] LC no longer has to be write enbaled --- src/vmsrc/plvm02.s | 58 ++++++++++++++++++++-------------------------- 1 file changed, 25 insertions(+), 33 deletions(-) diff --git a/src/vmsrc/plvm02.s b/src/vmsrc/plvm02.s index e42ff64..8afff28 100644 --- a/src/vmsrc/plvm02.s +++ b/src/vmsrc/plvm02.s @@ -179,9 +179,7 @@ OPTBL !WORD ZERO,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 00 02 04 06 08 0A 0C 0E ;* ;* ENTER INTO BYTECODE INTERPRETER ;* -DINTERP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 - PLA +DINTERP PLA STA IPL PLA STA IPH @@ -189,9 +187,7 @@ DINTERP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD LDA #>OPTBL STA OPPAGE JMP FETCHOP -IINTRP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 - PLA +IINTRP PLA STA TMPL PLA STA TMPH @@ -205,9 +201,7 @@ IINTRP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD LDA #>OPTBL STA OPPAGE JMP FETCHOP -IINTRPX BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 - PLA +IINTRPX PLA STA TMPL PLA STA TMPH @@ -316,10 +310,12 @@ DISABLE80 !BYTE 21, 13, '1', 26, 13 FAILMSG !BYTE 39 !TEXT "MISSING CMD. PRESS ANY KEY TO RESET..." PAGE0 = * +;****************************** +;* * +;* INTERP BYTECODE INNER LOOP * +;* * +;****************************** !PSEUDOPC $00EF { -;* -;* INTERP BYTECODE INNER LOOP -;* INX ; DROP @ $EF INY ; NEXTOP @ $F0 BEQ NEXTOPH @@ -330,10 +326,10 @@ NEXTOPH INC IPH BNE FETCHOP } PAGE3 = * - !PSEUDOPC $03D0 { ;* ;* PAGE 3 VECTORS INTO INTERPRETER ;* + !PSEUDOPC $03D0 { BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY JMP DINTERP BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY @@ -1373,17 +1369,17 @@ IBRNCH LDA IPL ;* CALL +INC_IP LDA (IP),Y - STA CALLADR+1 + STA TMPL +INC_IP LDA (IP),Y - STA CALLADR+2 + STA TMPH LDA IPH PHA LDA IPL PHA TYA PHA -CALLADR JSR $FFFF + JSR JMPTMP PLA TAY PLA @@ -1392,16 +1388,14 @@ CALLADR JSR $FFFF STA IPH LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE STA OPPAGE - BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 JMP NEXTOP ; CALLX +INC_IP LDA (IP),Y - STA CALXADR+1 + STA TMPL +INC_IP LDA (IP),Y - STA CALXADR+2 + STA TMPH LDA IPH PHA LDA IPL @@ -1410,7 +1404,7 @@ CALLX +INC_IP PHA STA ALTRDOFF CLI -CALXADR JSR $FFFF + JSR JMPTMP SEI STA ALTRDON PLA @@ -1421,16 +1415,14 @@ CALXADR JSR $FFFF STA IPH LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE STA OPPAGE - BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 JMP NEXTOP ;* ;* INDIRECT CALL TO ADDRESS (NATIVE CODE) ;* ICAL LDA ESTKL,X - STA ICALADR+1 + STA TMPL LDA ESTKH,X - STA ICALADR+2 + STA TMPH INX LDA IPH PHA @@ -1438,7 +1430,7 @@ ICAL LDA ESTKL,X PHA TYA PHA -ICALADR JSR $FFFF + JSR JMPTMP PLA TAY PLA @@ -1447,14 +1439,12 @@ ICALADR JSR $FFFF STA IPH LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE STA OPPAGE - BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 JMP NEXTOP ; ICALX LDA ESTKL,X - STA ICLXADR+1 + STA TMPL LDA ESTKH,X - STA ICLXADR+2 + STA TMPH INX LDA IPH PHA @@ -1464,7 +1454,7 @@ ICALX LDA ESTKL,X PHA STA ALTRDOFF CLI -ICLXADR JSR $FFFF + JSR JMPTMP SEI STA ALTRDON PLA @@ -1475,10 +1465,12 @@ ICLXADR JSR $FFFF STA IPH LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE STA OPPAGE - BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD - BIT LCRWEN+LCBNK2 JMP NEXTOP ;* +;* JUMP INDIRECT TRHOUGH TMP +;* +JMPTMP JMP (TMP) +;* ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER +INC_IP