mirror of
https://github.com/dschmenk/PLASMA.git
synced 2025-03-22 01:30:45 +00:00
Update ops $40-$4E
This commit is contained in:
parent
2c9373c962
commit
23779176d2
@ -520,7 +520,7 @@ def compiler(defptr)#0
|
||||
VX++ // INX
|
||||
A_IS_TOSL = FALSE
|
||||
break
|
||||
is $34
|
||||
is $34 // DUP
|
||||
//puts("DUP")
|
||||
if A_IS_TOSL & TOSL_DIRTY
|
||||
*codeptr = $D095+(VX<<8) // STA ESTKL,X
|
||||
@ -554,7 +554,7 @@ def compiler(defptr)#0
|
||||
// Should never happen
|
||||
//
|
||||
//break
|
||||
is $38
|
||||
is $38 // ADDI
|
||||
i++
|
||||
//puts("ADDI $"); putb(^(bytecode+i))
|
||||
if not A_IS_TOSL
|
||||
@ -577,7 +577,7 @@ def compiler(defptr)#0
|
||||
codeptr = codeptr + 7
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3A
|
||||
is $3A // SUBI
|
||||
i++
|
||||
//puts("SUBI $"); putb(^(bytecode+i))
|
||||
if not A_IS_TOSL
|
||||
@ -600,7 +600,7 @@ def compiler(defptr)#0
|
||||
codeptr = codeptr + 7
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3C
|
||||
is $3C // ANDI
|
||||
i++
|
||||
//puts("ANDI $"); putb(^(bytecode+i))
|
||||
if not A_IS_TOSL
|
||||
@ -618,7 +618,7 @@ def compiler(defptr)#0
|
||||
codeptr = codeptr + 4
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $3E
|
||||
is $3E // ORI
|
||||
i++
|
||||
//puts("ORI $"); putb(^(bytecode+i))
|
||||
if not A_IS_TOSL
|
||||
@ -634,87 +634,115 @@ def compiler(defptr)#0
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
// ISEQ,ISNE,ISGT,ISLT,ISGE,ISLE,BRFLS,BRTRU ; 40 42 44 46 48 4A 4C 4E
|
||||
is $40
|
||||
is $40 // ISEQ
|
||||
//puts("ISEQ")
|
||||
if not A_IS_TOSL
|
||||
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $D0; codeptr++ // BNE rel
|
||||
^codeptr = $07; codeptr++ // +7
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $D0; codeptr++ // BNE rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0D5+$0100)+(VX<<8) // CMP ESTKL+1,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $07D0 // BNE +7
|
||||
//^codeptr = $D0; codeptr++ // BNE rel
|
||||
//^codeptr = $07; codeptr++ // +7
|
||||
codeptr=>4 = $C0B5+(VX<<8) // LDA ESTKH,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>6 = ($C0D5+$0100)+(VX<<8) // CMP ESTKH+1
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>8 = $01D0 // BNE +1
|
||||
//^codeptr = $D0; codeptr++ // BNE rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>10 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>12 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>14 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 16
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $42
|
||||
is $42 // ISNE
|
||||
//puts("ISNE")
|
||||
if not A_IS_TOSL
|
||||
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $D0; codeptr++ // BNE rel
|
||||
^codeptr = $06; codeptr++ // +6
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $F0; codeptr++ // BEQ rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0D5+$0100)+(VX<<8) // CMP ESTKL+1,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $06D0 // BNE +6
|
||||
//^codeptr = $D0; codeptr++ // BNE rel
|
||||
//^codeptr = $06; codeptr++ // +6
|
||||
codeptr=>4 = $C0B5+(VX<<8) // LDA ESTKH,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>6 = ($C0D5+$0100)+(VX<<8) // CMP ESTKH+1
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>8 = $01F0 // BEQ +1
|
||||
//^codeptr = $F0; codeptr++ // BEQ rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>10 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>12 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>14 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 16
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $44
|
||||
is $44 // ISGT
|
||||
//puts("ISGT")
|
||||
if not A_IS_TOSL
|
||||
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $50; codeptr++ // BVC rel
|
||||
^codeptr = $02; codeptr++ // +2
|
||||
^codeptr = $49; codeptr++ // EOR #imm
|
||||
^codeptr = $80; codeptr++ // $80
|
||||
^codeptr = $10; codeptr++ // BPL rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0D5+$0100)+(VX<<8) // CMP ESTKL+1,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $C0B5+(VX<<8) // LDA ESTKH,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>4 = ($C0F5+$0100)+(VX<<8) // SBC ESTKH+1
|
||||
//^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>6 = $0250 // BVC +2
|
||||
//^codeptr = $50; codeptr++ // BVC rel
|
||||
//^codeptr = $02; codeptr++ // +2
|
||||
codeptr=>8 = $8049 // EOR #$80
|
||||
//^codeptr = $49; codeptr++ // EOR #imm
|
||||
//^codeptr = $80; codeptr++ // $80
|
||||
codeptr=>10 = $0110 // BPL +1
|
||||
//^codeptr = $10; codeptr++ // BPL rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>12 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>14 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>16 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 18
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $46
|
||||
@ -723,29 +751,40 @@ def compiler(defptr)#0
|
||||
*codeptr = $D095+(VX<<8) // STA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $50; codeptr++ // BVC rel
|
||||
^codeptr = $02; codeptr++ // +2
|
||||
^codeptr = $49; codeptr++ // EOR #imm
|
||||
^codeptr = $80; codeptr++ // $80
|
||||
^codeptr = $10; codeptr++ // BPL rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0B5+$0100)+(VX<<8) // LDA ESTKL+1,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $D0D5+(VX<<8) // CMP ESTKL,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr=>4 = ($C0B5+$0100)+(VX<<8) // LDA ESTKH+1,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>6 = $C0F5+(VX<<8) // SBC ESTKH
|
||||
//^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>8 = $0250 // BVC +2
|
||||
//^codeptr = $50; codeptr++ // BVC rel
|
||||
//^codeptr = $02; codeptr++ // +2
|
||||
codeptr=>10 = $8049 // EOR #$80
|
||||
//^codeptr = $49; codeptr++ // EOR #imm
|
||||
//^codeptr = $80; codeptr++ // $80
|
||||
codeptr=>12 = $0110 // BPL +1
|
||||
//^codeptr = $10; codeptr++ // BPL rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>14 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>16 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>18 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 20
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $48
|
||||
@ -754,61 +793,82 @@ def compiler(defptr)#0
|
||||
*codeptr = $D095+(VX<<8) // STA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $50; codeptr++ // BVC rel
|
||||
^codeptr = $02; codeptr++ // +2
|
||||
^codeptr = $49; codeptr++ // EOR #imm
|
||||
^codeptr = $80; codeptr++ // $80
|
||||
^codeptr = $30; codeptr++ // BMI rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0B5+$0100)+(VX<<8) // LDA ESTKL+1,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $D0D5+(VX<<8) // CMP ESTKL,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr=>4 = ($C0B5+$0100)+(VX<<8) // LDA ESTKH+1,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>6 = $C0F5+(VX<<8) // SBC ESTKH
|
||||
//^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>8 = $0250 // BVC +2
|
||||
//^codeptr = $50; codeptr++ // BVC rel
|
||||
//^codeptr = $02; codeptr++ // +2
|
||||
codeptr=>10 = $8049 // EOR #$80
|
||||
//^codeptr = $49; codeptr++ // EOR #imm
|
||||
//^codeptr = $80; codeptr++ // $80
|
||||
codeptr=>12 = $0130 // BMI +1
|
||||
//^codeptr = $30; codeptr++ // BMI rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>14 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>16 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>18 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 20
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $4A
|
||||
is $4A // ISLE
|
||||
//puts("ISLE")
|
||||
if not A_IS_TOSL
|
||||
*codeptr = $D0B5+(VX<<8) // LDA ESTKL,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $50; codeptr++ // BVC rel
|
||||
^codeptr = $02; codeptr++ // +2
|
||||
^codeptr = $49; codeptr++ // EOR #imm
|
||||
^codeptr = $80; codeptr++ // $80
|
||||
^codeptr = $30; codeptr++ // BMI rel
|
||||
^codeptr = $01; codeptr++ // +1
|
||||
^codeptr = $88; codeptr++ // DEY
|
||||
^codeptr = $98; codeptr++ // TYA
|
||||
^codeptr = $94; codeptr++ // STY zp,X
|
||||
^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
^codeptr = $A0; codeptr++ // LDY #imm
|
||||
^codeptr = $00; codeptr++ // $00
|
||||
codeptr=>0 = ($D0D5+$0100)+(VX<<8) // CMP ESTKL+1,X
|
||||
//^codeptr = $D5; codeptr++ // CMP zp,X
|
||||
//^codeptr = $D0+1+VX; codeptr++ // ESTKL+1
|
||||
codeptr=>2 = $C0B5+(VX<<8) // LDA ESTKH,X
|
||||
//^codeptr = $B5; codeptr++ // LDA zp,X
|
||||
//^codeptr = $C0+VX; codeptr++ // ESTKH
|
||||
codeptr=>4 = ($C0F5+$0100)+(VX<<8) // SBC ESTKH+1
|
||||
//^codeptr = $F5; codeptr++ // SBC zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>6 = $0250 // BVC +2
|
||||
//^codeptr = $50; codeptr++ // BVC rel
|
||||
//^codeptr = $02; codeptr++ // +2
|
||||
codeptr=>8 = $8049 // EOR #$80
|
||||
//^codeptr = $49; codeptr++ // EOR #imm
|
||||
//^codeptr = $80; codeptr++ // $80
|
||||
codeptr=>10 = $0130 // BMI +1
|
||||
//^codeptr = $30; codeptr++ // BMI rel
|
||||
//^codeptr = $01; codeptr++ // +1
|
||||
codeptr=>12 = $9888 // DEY TYA
|
||||
//^codeptr = $88; codeptr++ // DEY
|
||||
//^codeptr = $98; codeptr++ // TYA
|
||||
codeptr=>14 = ($C094+$0100)+(VX<<8) // STY ESTKH+1,X
|
||||
//^codeptr = $94; codeptr++ // STY zp,X
|
||||
//^codeptr = $C0+1+VX; codeptr++ // ESTKH+1
|
||||
codeptr=>16 = $00A0 // LDY #$00
|
||||
//^codeptr = $A0; codeptr++ // LDY #imm
|
||||
//^codeptr = $00; codeptr++ // $00
|
||||
VX++ // INX
|
||||
//^codeptr = $95; codeptr++ // STA zp,X
|
||||
//^codeptr = $D0+VX; codeptr++ // ESTKL
|
||||
codeptr = codeptr + 18
|
||||
A_IS_TOSL = TOSL_DIRTY
|
||||
break
|
||||
is $4C
|
||||
is $4C // BRFLS
|
||||
i++
|
||||
dest = i + *(bytecode+i)
|
||||
i++
|
||||
@ -819,19 +879,26 @@ def compiler(defptr)#0
|
||||
*codeptr = ($D0B5-$0100)+(VX<<8) // LDA ESTKL-1,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $15; codeptr++ // ORA zp,X
|
||||
^codeptr = $C0-1+VX; codeptr++ // ESTKH-1
|
||||
^codeptr = $D0; codeptr++ // BNE rel
|
||||
^codeptr = $03; codeptr++ // +3
|
||||
^codeptr = $4C; codeptr++ // JMP abs
|
||||
*codeptr = addrxlate=>[dest]
|
||||
if not (*codeptr & $8000) // Unresolved address list
|
||||
addrxlate=>[dest] = codeptr - *jitcodeptr
|
||||
codeptr=>0 = ($C015-$0100)+(VX<<8) // ORA ESTKH-1,X
|
||||
//^codeptr = $15; codeptr++ // ORA zp,X
|
||||
//^codeptr = $C0-1+VX; codeptr++ // ESTKH-1
|
||||
codeptr=>2 = $03D0 // BNE +3
|
||||
//^codeptr = $D0; codeptr++ // BNE rel
|
||||
//^codeptr = $03; codeptr++ // +3
|
||||
codeptr->4 = $4C // JMP abs
|
||||
//^codeptr = $4C; codeptr++ // JMP abs
|
||||
codeptr=>5 = addrxlate=>[dest]
|
||||
//*codeptr = addrxlate=>[dest]
|
||||
if not (codeptr->6 & $80) // Unresolved address list
|
||||
//if not (*codeptr & $8000) // Unresolved address list
|
||||
addrxlate=>[dest] = codeptr + 5 - *jitcodeptr
|
||||
//addrxlate=>[dest] = codeptr - *jitcodeptr
|
||||
fin
|
||||
codeptr = codeptr + 2
|
||||
codeptr = codeptr + 7
|
||||
//codeptr = codeptr + 2
|
||||
A_IS_TOSL = FALSE
|
||||
break
|
||||
is $4E
|
||||
is $4E // BRTRU
|
||||
i++
|
||||
dest = i + *(bytecode+i)
|
||||
i++
|
||||
@ -842,16 +909,23 @@ def compiler(defptr)#0
|
||||
*codeptr = ($D0B5-$0100)+(VX<<8) // LDA ESTKL-1,X
|
||||
codeptr = codeptr + 2
|
||||
fin
|
||||
^codeptr = $15; codeptr++ // ORA zp,X
|
||||
^codeptr = $C0-1+VX; codeptr++ // ESTKH-1
|
||||
^codeptr = $F0; codeptr++ // BEQ rel
|
||||
^codeptr = $03; codeptr++ // +3
|
||||
^codeptr = $4C; codeptr++ // JMP abs
|
||||
*codeptr = addrxlate=>[dest]
|
||||
if not (*codeptr & $8000) // Unresolved address list
|
||||
addrxlate=>[dest] = codeptr - *jitcodeptr
|
||||
codeptr=>0 = ($C015-$0100)+(VX<<8) // ORA ESTKH-1,X
|
||||
//^codeptr = $15; codeptr++ // ORA zp,X
|
||||
//^codeptr = $C0-1+VX; codeptr++ // ESTKH-1
|
||||
codeptr=>2 = $03F0 // BEQ +3
|
||||
//^codeptr = $F0; codeptr++ // BEQ rel
|
||||
//^codeptr = $03; codeptr++ // +3
|
||||
codeptr->4 = $4C // JMP abs
|
||||
//^codeptr = $4C; codeptr++ // JMP abs
|
||||
codeptr=>5 = addrxlate=>[dest]
|
||||
//*codeptr = addrxlate=>[dest]
|
||||
if not (codeptr->6 & $80) // Unresolved address list
|
||||
//if not (*codeptr & $8000) // Unresolved address list
|
||||
addrxlate=>[dest] = codeptr + 5 - *jitcodeptr
|
||||
//addrxlate=>[dest] = codeptr - *jitcodeptr
|
||||
fin
|
||||
codeptr = codeptr + 2
|
||||
codeptr = codeptr + 7
|
||||
//codeptr = codeptr + 2
|
||||
A_IS_TOSL = FALSE
|
||||
break
|
||||
// BRNCH,SEL,CALL,ICAL,ENTER,LEAVE,RET,CFFB ; 50 52 54 56 58 5A 5C 5E
|
||||
|
Loading…
x
Reference in New Issue
Block a user