Set page 3 vectors and page 0 interp loop in 'BYE' processing

This commit is contained in:
David Schmenk 2014-06-15 23:24:16 -07:00
parent fdac1a5f2a
commit 1a3da88597

View File

@ -43,6 +43,7 @@ NEXTOP = $F0
OPIDX = NEXTOP+8 OPIDX = NEXTOP+8
OPPAGE = OPIDX+1 OPPAGE = OPIDX+1
STRBUF = $0280 STRBUF = $0280
INTERP = $03D0
;* ;*
;* INTERPRETER INSTRUCTION POINTER INCREMENT MACRO ;* INTERPRETER INSTRUCTION POINTER INCREMENT MACRO
;* ;*
@ -93,14 +94,6 @@ RAMEXIT LDA NODEV
DEC DEVCNT DEC DEVCNT
RAMDONE CLI RAMDONE CLI
;* ;*
;* INSTALL PAGE 3 VECTORS
;*
LDY #$1F
- LDA PAGE3,Y
STA $03D0,Y
DEY
BPL -
;*
;* MOVE VM INTO LANGUAGE CARD ;* MOVE VM INTO LANGUAGE CARD
;* ;*
BIT LCRWEN+LCBNK2 BIT LCRWEN+LCBNK2
@ -165,20 +158,6 @@ RAMDONE CLI
JMP CMDEXEC JMP CMDEXEC
GETPFXPARMS !BYTE 1 GETPFXPARMS !BYTE 1
!WORD STRBUF ; PATH STRING GOES HERE !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 * ;* LANGUAGE CARD RESIDENT PLASMA VM STARTS HERE *
@ -283,6 +262,14 @@ CMDEXEC = *
DEY DEY
BPL - BPL -
; ;
; INSTALL PAGE 3 VECTORS
;
LDY #$11
- LDA PAGE3,Y
STA INTERP,Y
DEY
BPL -
;
; READ CMD INTO MEMORY ; READ CMD INTO MEMORY
; ;
JSR PRODOS ; CLOSE EVERYTHING JSR PRODOS ; CLOSE EVERYTHING
@ -334,7 +321,7 @@ FAILMSG !BYTE 39
PAGE0 = * PAGE0 = *
!PSEUDOPC $00F0 { !PSEUDOPC $00F0 {
;* ;*
;* INTERP BYTECODE ;* INTERP BYTECODE INNER LOOP
;* ;*
INY INY
BEQ NEXTOPH BEQ NEXTOPH
@ -344,10 +331,22 @@ FETCHOP LDA (IP),Y
NEXTOPH INC IPH NEXTOPH INC IPH
BNE FETCHOP 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 = * ENDBYE = *
} }
LCDEFCMD = *-63 ; DEFCMD IN LC MEMORY LCDEFCMD = *-33 ; DEFCMD IN LC MEMORY
;***************** ;*****************
;* * ;* *
;* OPXCODE TABLE * ;* OPXCODE TABLE *