1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2024-10-02 20:55:30 +00:00

65802 bug fixes

This commit is contained in:
David Schmenk 2018-03-09 19:50:31 -08:00
parent b0a9cb3e0e
commit ce29a7c361
3 changed files with 49 additions and 41 deletions

View File

@ -348,7 +348,7 @@ CMDENTRY = *
; PRINT FAIL MESSAGE, WAIT FOR KEYPRESS, AND REBOOT ; PRINT FAIL MESSAGE, WAIT FOR KEYPRESS, AND REBOOT
; ;
FAIL INC $3F4 ; INVALIDATE POWER-UP BYTE FAIL INC $3F4 ; INVALIDATE POWER-UP BYTE
LDY #33 LDY #31
- LDA FAILMSG,Y - LDA FAILMSG,Y
ORA #$80 ORA #$80
JSR $FDED JSR $FDED
@ -1335,12 +1335,12 @@ CASELP CMP (IP),Y
INY INY
FIXNEXT TYA FIXNEXT TYA
LDY #$00 LDY #$00
CLC SEC
ADC IPL ADC IPL
STA IPL STA IPL
BCC ++ BCC ++
INC IPH INC IPH
++ JMP NEXTOP ++ JMP FETCHOP
BRAND LDA ESTKL,X BRAND LDA ESTKL,X
ORA ESTKH,X ORA ESTKH,X
BEQ BRNCH BEQ BRNCH
@ -1428,7 +1428,7 @@ _BRLE LDA ESTKL+1,X
BVS + BVS +
BPL BRNCH BPL BRNCH
INX ; DROP FOR VALUES INX ; DROP FOR VALUES
INX INX
BNE NOBRNCH ; BMI NOBRNCH BNE NOBRNCH ; BMI NOBRNCH
+ BMI BRNCH + BMI BRNCH
BPL - BPL -

View File

@ -977,12 +977,12 @@ CASELP CMP (IP),Y
INY INY
FIXNEXT TYA FIXNEXT TYA
LDY #$00 LDY #$00
CLC SEC
ADC IPL ADC IPL
STA IPL STA IPL
BCC ++ BCC ++
INC IPH INC IPH
++ JMP NEXTOP ++ JMP FETCHOP
BRAND LDA ESTKL,X BRAND LDA ESTKL,X
ORA ESTKH,X ORA ESTKH,X
BEQ BRNCH BEQ BRNCH
@ -1060,7 +1060,7 @@ _BRLE LDA ESTKL+1,X
BVS + BVS +
BPL BRNCH BPL BRNCH
- INX ; DROP FOR VALUES - INX ; DROP FOR VALUES
INX INX
BNE NOBRNCH ; BMI NOBRNCH BNE NOBRNCH ; BMI NOBRNCH
DECBRGE DEC ESTKL,X DECBRGE DEC ESTKL,X
LDA ESTKL,X LDA ESTKL,X

View File

@ -246,28 +246,6 @@ OPTBL !WORD CN,CN,CN,CN,CN,CN,CN,CN ; 00 02
;* ENTER INTO BYTECODE INTERPRETER - IMMEDIATELY SWITCH TO NATIVE ;* ENTER INTO BYTECODE INTERPRETER - IMMEDIATELY SWITCH TO NATIVE
;* ;*
!AS !AS
DINTRP PHP
PLA
STA PSR
SEI
CLC ; SWITCH TO NATIVE MODE
XCE
+ACCMEM16 ; 16 BIT A/M
PLA
INC
STA IP
STX ESP
TSX
STX HWSP
LDX #>OPTBL
!IF DEBUG {
BRA SETDBG
} ELSE {
STX OPPAGE
LDY #$00
JMP FETCHOP
}
!AS
IINTRP PHP IINTRP PHP
PLA PLA
STA PSR STA PSR
@ -422,7 +400,7 @@ CMDENTRY = *
; PRINT FAIL MESSAGE, WAIT FOR KEYPRESS, AND REBOOT ; PRINT FAIL MESSAGE, WAIT FOR KEYPRESS, AND REBOOT
; ;
FAIL INC $3F4 ; INVALIDATE POWER-UP BYTE FAIL INC $3F4 ; INVALIDATE POWER-UP BYTE
LDY #33 LDY #31
- LDA FAILMSG,Y - LDA FAILMSG,Y
ORA #$80 ORA #$80
JSR $FDED JSR $FDED
@ -496,6 +474,28 @@ OPXTBL !WORD CN,CN,CN,CN,CN,CN,CN,CN ; 00 02
!WORD LNOT,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 80 82 84 86 88 8A 8C 8E !WORD LNOT,ADD,SUB,MUL,DIV,MOD,INCR,DECR ; 80 82 84 86 88 8A 8C 8E
!WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 90 92 94 96 98 9A 9C 9E !WORD NEG,COMP,BAND,IOR,XOR,SHL,SHR,IDXW ; 90 92 94 96 98 9A 9C 9E
!WORD BRGT,BRLT,INCBRLE,ADDBRLE,DECBRGE,SUBBRGE,BRAND,BROR ; A0 A2 A4 A6 A8 AA AC AE !WORD BRGT,BRLT,INCBRLE,ADDBRLE,DECBRGE,SUBBRGE,BRAND,BROR ; A0 A2 A4 A6 A8 AA AC AE
!AS
DINTRP PHP
PLA
STA PSR
SEI
CLC ; SWITCH TO NATIVE MODE
XCE
+ACCMEM16 ; 16 BIT A/M
PLA
INC
STA IP
STX ESP
TSX
STX HWSP
LDX #>OPTBL
!IF DEBUG {
JMP SETDBG
} ELSE {
STX OPPAGE
LDY #$00
JMP FETCHOP
}
;********************************************************************* ;*********************************************************************
;* ;*
;* CODE BELOW HERE DEFAULTS TO NATIVE 16 BIT A/M, 8 BIT X,Y ;* CODE BELOW HERE DEFAULTS TO NATIVE 16 BIT A/M, 8 BIT X,Y
@ -1173,7 +1173,7 @@ ISLT PLA
;* BRANCHES ;* BRANCHES
;* ;*
SEL TYA ; FLATTEN IP SEL TYA ; FLATTEN IP
CLC SEC
ADC IP ADC IP
INY ;+INC_IP INY ;+INC_IP
;CLC ; ADD BRANCH OFFSET (BETTER NOT CARRY OUT OF IP+Y) ;CLC ; ADD BRANCH OFFSET (BETTER NOT CARRY OUT OF IP+Y)
@ -1182,37 +1182,42 @@ SEL TYA ; FLATTEN IP
LDY #$00 LDY #$00
LDA (IP),Y LDA (IP),Y
TAX ; CASE COUNT TAX ; CASE COUNT
PLA
CPX #$00
BEQ ++ BEQ ++
INC IP INC IP
PLA
CASELP CMP (IP),Y CASELP CMP (IP),Y
BEQ +++ BEQ +++
DEX
BEQ +
INY INY
INY INY
INY INY
INY INY
BNE + BNE CASELP
+ACCMEM8 ; 8 BIT A/M +ACCMEM8 ; 8 BIT A/M
INC IPH INC IPH
+ACCMEM16 ; 16 BIT A/M +ACCMEM16 ; 16 BIT A/M
+ DEX BRA CASELP
BEQ CASELP + INY
INY
INY
FIXNEXT TYA FIXNEXT TYA
LDY #$00 LDY #$00
SEC SEC
ADC IP ADC IP
STA IP STA IP
++ JMP NEXTOP ++ JMP FETCHOP
+++ INY +++ INY
BRA BRNCH BRA BRNCH
BRAND LDA TOS,S BRAND LDA TOS,S
BEQ BRNCH BEQ BRNCH
PLA ; DROP LEFT HALF OF AND PLA ; DROP LEFT HALF OF AND
BNE NOBRNCH BRA NOBRNCH
BROR LDA TOS,S BROR LDA TOS,S
BNE BRNCH BNE BRNCH
PLA ; DROP LEFT HALF OF OR PLA ; DROP LEFT HALF OF OR
BNE NOBRNCH BRA NOBRNCH
BRTRU PLA BRTRU PLA
BNE BRNCH BNE BRNCH
NOBRNCH INY ;+INC_IP NOBRNCH INY ;+INC_IP
@ -1273,7 +1278,7 @@ _BRLE LDA NOS,S
BVS + BVS +
BPL BRNCH BPL BRNCH
PLA ; DROP FOR VALUES PLA ; DROP FOR VALUES
PLA PLA
BNE NOBRNCH ; BMI NOBRNCH BNE NOBRNCH ; BMI NOBRNCH
+ BMI BRNCH + BMI BRNCH
PLA ; DROP FOR VALUES PLA ; DROP FOR VALUES
@ -1689,6 +1694,9 @@ DBGTBL !WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 00 02 04 06 08
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 50 52 54 56 58 5A 5C 5E !WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 50 52 54 56 58 5A 5C 5E
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 60 62 64 66 68 6A 6C 6E !WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 60 62 64 66 68 6A 6C 6E
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 70 72 74 76 78 7A 7C 7E !WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 70 72 74 76 78 7A 7C 7E
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 80 82 84 86 88 8A 8C 8E
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; 90 92 94 96 98 9A 9C 9E
!WORD STEP,STEP,STEP,STEP,STEP,STEP,STEP,STEP ; A0 A2 A4 A6 A8 AA AC AE
;* ;*
;* DEBUG PRINT ROUTINES ;* DEBUG PRINT ROUTINES
;* ;*
@ -1848,8 +1856,8 @@ STEP STX TMPL
CMP #$10 CMP #$10
BCC DBGKEY BCC DBGKEY
LDX TMPL LDX TMPL
CPX #$00 ; FORCE PAUSE AT 'ZERO' ; CPX #$00 ; FORCE PAUSE AT 'ZERO'
BEQ DBGKEY ; BEQ DBGKEY
- LDX $C000 - LDX $C000
CPX #$9B CPX #$9B
BNE + BNE +