1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-08-06 11:25:07 +00:00

LC no longer has to be write enbaled

This commit is contained in:
David Schmenk
2014-06-18 16:51:35 -07:00
parent cc32fe3891
commit 5f71c1481b

View File

@@ -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 ;* ENTER INTO BYTECODE INTERPRETER
;* ;*
DINTERP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD DINTERP PLA
BIT LCRWEN+LCBNK2
PLA
STA IPL STA IPL
PLA PLA
STA IPH STA IPH
@@ -189,9 +187,7 @@ DINTERP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
LDA #>OPTBL LDA #>OPTBL
STA OPPAGE STA OPPAGE
JMP FETCHOP JMP FETCHOP
IINTRP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD IINTRP PLA
BIT LCRWEN+LCBNK2
PLA
STA TMPL STA TMPL
PLA PLA
STA TMPH STA TMPH
@@ -205,9 +201,7 @@ IINTRP BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
LDA #>OPTBL LDA #>OPTBL
STA OPPAGE STA OPPAGE
JMP FETCHOP JMP FETCHOP
IINTRPX BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD IINTRPX PLA
BIT LCRWEN+LCBNK2
PLA
STA TMPL STA TMPL
PLA PLA
STA TMPH STA TMPH
@@ -316,10 +310,12 @@ DISABLE80 !BYTE 21, 13, '1', 26, 13
FAILMSG !BYTE 39 FAILMSG !BYTE 39
!TEXT "MISSING CMD. PRESS ANY KEY TO RESET..." !TEXT "MISSING CMD. PRESS ANY KEY TO RESET..."
PAGE0 = * PAGE0 = *
;******************************
;* *
;* INTERP BYTECODE INNER LOOP *
;* *
;******************************
!PSEUDOPC $00EF { !PSEUDOPC $00EF {
;*
;* INTERP BYTECODE INNER LOOP
;*
INX ; DROP @ $EF INX ; DROP @ $EF
INY ; NEXTOP @ $F0 INY ; NEXTOP @ $F0
BEQ NEXTOPH BEQ NEXTOPH
@@ -330,10 +326,10 @@ NEXTOPH INC IPH
BNE FETCHOP BNE FETCHOP
} }
PAGE3 = * PAGE3 = *
!PSEUDOPC $03D0 {
;* ;*
;* PAGE 3 VECTORS INTO INTERPRETER ;* PAGE 3 VECTORS INTO INTERPRETER
;* ;*
!PSEUDOPC $03D0 {
BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY BIT LCRDEN+LCBNK2 ; $03D0 - DIRECT INTERP ENTRY
JMP DINTERP JMP DINTERP
BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY BIT LCRDEN+LCBNK2 ; $03D6 - INDIRECT INTERP ENTRY
@@ -1373,17 +1369,17 @@ IBRNCH LDA IPL
;* ;*
CALL +INC_IP CALL +INC_IP
LDA (IP),Y LDA (IP),Y
STA CALLADR+1 STA TMPL
+INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA CALLADR+2 STA TMPH
LDA IPH LDA IPH
PHA PHA
LDA IPL LDA IPL
PHA PHA
TYA TYA
PHA PHA
CALLADR JSR $FFFF JSR JMPTMP
PLA PLA
TAY TAY
PLA PLA
@@ -1392,16 +1388,14 @@ CALLADR JSR $FFFF
STA IPH STA IPH
LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
STA OPPAGE STA OPPAGE
BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
BIT LCRWEN+LCBNK2
JMP NEXTOP JMP NEXTOP
; ;
CALLX +INC_IP CALLX +INC_IP
LDA (IP),Y LDA (IP),Y
STA CALXADR+1 STA TMPL
+INC_IP +INC_IP
LDA (IP),Y LDA (IP),Y
STA CALXADR+2 STA TMPH
LDA IPH LDA IPH
PHA PHA
LDA IPL LDA IPL
@@ -1410,7 +1404,7 @@ CALLX +INC_IP
PHA PHA
STA ALTRDOFF STA ALTRDOFF
CLI CLI
CALXADR JSR $FFFF JSR JMPTMP
SEI SEI
STA ALTRDON STA ALTRDON
PLA PLA
@@ -1421,16 +1415,14 @@ CALXADR JSR $FFFF
STA IPH STA IPH
LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
STA OPPAGE STA OPPAGE
BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
BIT LCRWEN+LCBNK2
JMP NEXTOP JMP NEXTOP
;* ;*
;* INDIRECT CALL TO ADDRESS (NATIVE CODE) ;* INDIRECT CALL TO ADDRESS (NATIVE CODE)
;* ;*
ICAL LDA ESTKL,X ICAL LDA ESTKL,X
STA ICALADR+1 STA TMPL
LDA ESTKH,X LDA ESTKH,X
STA ICALADR+2 STA TMPH
INX INX
LDA IPH LDA IPH
PHA PHA
@@ -1438,7 +1430,7 @@ ICAL LDA ESTKL,X
PHA PHA
TYA TYA
PHA PHA
ICALADR JSR $FFFF JSR JMPTMP
PLA PLA
TAY TAY
PLA PLA
@@ -1447,14 +1439,12 @@ ICALADR JSR $FFFF
STA IPH STA IPH
LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE LDA #>OPTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
STA OPPAGE STA OPPAGE
BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
BIT LCRWEN+LCBNK2
JMP NEXTOP JMP NEXTOP
; ;
ICALX LDA ESTKL,X ICALX LDA ESTKL,X
STA ICLXADR+1 STA TMPL
LDA ESTKH,X LDA ESTKH,X
STA ICLXADR+2 STA TMPH
INX INX
LDA IPH LDA IPH
PHA PHA
@@ -1464,7 +1454,7 @@ ICALX LDA ESTKL,X
PHA PHA
STA ALTRDOFF STA ALTRDOFF
CLI CLI
ICLXADR JSR $FFFF JSR JMPTMP
SEI SEI
STA ALTRDON STA ALTRDON
PLA PLA
@@ -1475,10 +1465,12 @@ ICLXADR JSR $FFFF
STA IPH STA IPH
LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE LDA #>OPXTBL ; MAKE SURE WE'RE INDEXING THE RIGHT TABLE
STA OPPAGE STA OPPAGE
BIT LCRWEN+LCBNK2 ; WRITE ENABLE LANGUAGE CARD
BIT LCRWEN+LCBNK2
JMP NEXTOP JMP NEXTOP
;* ;*
;* JUMP INDIRECT TRHOUGH TMP
;*
JMPTMP JMP (TMP)
;*
;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT ;* ENTER FUNCTION WITH FRAME SIZE AND PARAM COUNT
;* ;*
ENTER +INC_IP ENTER +INC_IP