mirror of
https://github.com/toyoshim/Applerm-II.git
synced 2024-05-31 15:41:29 +00:00
Implement op -0x8f
This commit is contained in:
parent
34f60ed8b6
commit
4a3cf30de1
122
6502.S
122
6502.S
|
@ -17,6 +17,7 @@
|
||||||
#define RX r9
|
#define RX r9
|
||||||
#define RY r10
|
#define RY r10
|
||||||
#define SP r11
|
#define SP r11
|
||||||
|
#define TZ r12
|
||||||
#define ADDR r12
|
#define ADDR r12
|
||||||
|
|
||||||
#define FLAG_N (1 << 7)
|
#define FLAG_N (1 << 7)
|
||||||
|
@ -184,12 +185,40 @@
|
||||||
_ldb
|
_ldb
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro _toAbsb
|
||||||
|
adds r0, PC, #1
|
||||||
|
_ldw
|
||||||
|
mov r1, T0
|
||||||
|
_stb
|
||||||
|
adds PC, PC, #2
|
||||||
|
.endm
|
||||||
|
|
||||||
.macro _toAddr
|
.macro _toAddr
|
||||||
mov r0, ADDR
|
mov r0, ADDR
|
||||||
mov r1, T0
|
mov r1, T0
|
||||||
_stb
|
_stb
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro _toIndexedIndirect
|
||||||
|
adds r0, PC, #1
|
||||||
|
mov r0, PC
|
||||||
|
_ldb
|
||||||
|
mov r1, RX
|
||||||
|
adds r0, r0, R1
|
||||||
|
uxtb r0, r0
|
||||||
|
mov T1, r0
|
||||||
|
_ldb
|
||||||
|
mov TZ, r0
|
||||||
|
adds r0, T1, #1
|
||||||
|
uxtb r0, r0
|
||||||
|
_ldb
|
||||||
|
lsls r0, r0, #8
|
||||||
|
add r0, r0, TZ
|
||||||
|
mov r1, T0
|
||||||
|
_stb
|
||||||
|
adds PC, PC, #2
|
||||||
|
.endm
|
||||||
|
|
||||||
.macro _toReg reg
|
.macro _toReg reg
|
||||||
mov \reg, T0
|
mov \reg, T0
|
||||||
.endm
|
.endm
|
||||||
|
@ -198,6 +227,7 @@
|
||||||
_fromImmb
|
_fromImmb
|
||||||
mov r1, T0
|
mov r1, T0
|
||||||
_stb
|
_stb
|
||||||
|
adds PC, PC, #1
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro __cl flag
|
.macro __cl flag
|
||||||
|
@ -281,6 +311,14 @@
|
||||||
add PC, PC, r0
|
add PC, PC, r0
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro _dec
|
||||||
|
mov r0, RA
|
||||||
|
adds r0, r0, #1
|
||||||
|
mov RA, r0
|
||||||
|
_flag_nz
|
||||||
|
adds PC, PC, #1
|
||||||
|
.endm
|
||||||
|
|
||||||
.macro _jmp
|
.macro _jmp
|
||||||
mov PC, r0
|
mov PC, r0
|
||||||
.endm
|
.endm
|
||||||
|
@ -374,6 +412,13 @@
|
||||||
mov PC, r0
|
mov PC, r0
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
.macro _t a b
|
||||||
|
mov r0, \a
|
||||||
|
mov \a, \b
|
||||||
|
mov \b, r0
|
||||||
|
adds PC, PC, #1
|
||||||
|
.endm
|
||||||
|
|
||||||
.macro _resume
|
.macro _resume
|
||||||
ldr r0, =#r_pc
|
ldr r0, =#r_pc
|
||||||
ldr PC, [r0]
|
ldr PC, [r0]
|
||||||
|
@ -470,6 +515,13 @@ op7a:
|
||||||
op7b:
|
op7b:
|
||||||
op7c:
|
op7c:
|
||||||
op7f:
|
op7f:
|
||||||
|
op80:
|
||||||
|
op82:
|
||||||
|
op83:
|
||||||
|
op87:
|
||||||
|
op89:
|
||||||
|
op8b:
|
||||||
|
op8f:
|
||||||
_nop
|
_nop
|
||||||
_decode
|
_decode
|
||||||
|
|
||||||
|
@ -874,41 +926,51 @@ op7e: // ROR - Absolute, X
|
||||||
_ror
|
_ror
|
||||||
_decode
|
_decode
|
||||||
|
|
||||||
op80:
|
op81: // STA - (Indirect, X)
|
||||||
b quit
|
mov T0, RA
|
||||||
op81:
|
_toIndexedIndirect
|
||||||
b quit
|
_decode
|
||||||
op82:
|
|
||||||
b quit
|
|
||||||
op83:
|
|
||||||
b quit
|
|
||||||
op84: // STY - Zero Page
|
op84: // STY - Zero Page
|
||||||
mov T0, RY
|
mov T0, RY
|
||||||
_toZero
|
_toZero
|
||||||
_decode
|
_decode
|
||||||
|
|
||||||
op85:
|
op85: // STA - Zero Page
|
||||||
b quit
|
mov T0, RA
|
||||||
op86:
|
_toZero
|
||||||
b quit
|
_decode
|
||||||
op87:
|
|
||||||
b quit
|
op86: // STX - Zero Page
|
||||||
op88:
|
mov T0, RX
|
||||||
b quit
|
_toZero
|
||||||
op89:
|
_decode
|
||||||
b quit
|
|
||||||
op8a:
|
op88: // DEY
|
||||||
b quit
|
_fromReg RY
|
||||||
op8b:
|
_dec
|
||||||
b quit
|
_toReg RY
|
||||||
op8c:
|
_decode
|
||||||
b quit
|
|
||||||
op8d:
|
op8a: // TXA
|
||||||
b quit
|
_t RX, RA
|
||||||
op8e:
|
_decode
|
||||||
b quit
|
|
||||||
op8f:
|
op8c: // STY - Absolute
|
||||||
b quit
|
mov T0, RY
|
||||||
|
_toAbsb
|
||||||
|
_decode
|
||||||
|
|
||||||
|
op8d: // STA - Absolute
|
||||||
|
mov T0, RA
|
||||||
|
_toAbsb
|
||||||
|
_decode
|
||||||
|
|
||||||
|
op8e: // STX - Absolute
|
||||||
|
mov T0, RX
|
||||||
|
_toAbsb
|
||||||
|
_decode
|
||||||
|
|
||||||
op90:
|
op90:
|
||||||
b quit
|
b quit
|
||||||
op91:
|
op91:
|
||||||
|
|
Loading…
Reference in New Issue
Block a user