diff options
author | 2012-11-06 16:27:39 +0000 | |
---|---|---|
committer | 2012-11-06 16:27:39 +0000 | |
commit | fac1ca581b31525279ead471282c1eed1790daab (patch) | |
tree | 3870b4c93b8c72f54062dbe68a0cbd2750c9ec26 /src/emu/cpu/m6502/om6510.lst | |
parent | 54b3c7a31dd607b734e55d9ca96254f0801abb6b (diff) |
6502: Rewrite modern, cycle-exact and interruptible [O. Galibert]
Diffstat (limited to 'src/emu/cpu/m6502/om6510.lst')
-rw-r--r-- | src/emu/cpu/m6502/om6510.lst | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/src/emu/cpu/m6502/om6510.lst b/src/emu/cpu/m6502/om6510.lst index e69de29bb2d..e08a5229111 100644 --- a/src/emu/cpu/m6502/om6510.lst +++ b/src/emu/cpu/m6502/om6510.lst @@ -0,0 +1,46 @@ +# 6510 undocumented instructions in a C64 context +anc_10_imm + TMP2 = read_pc(); + A &= TMP2; + set_nz(A); + if(A & 0x80) + P |= F_C; + else + P &= ~F_C; + prefetch(); + +ane_10_imm + TMP2 = read_pc(); + A = (A | 0xee) & TMP2 & X; + set_nz(A); + prefetch(); + +asr_10_imm + TMP2 = read_pc(); + A = do_lsr(A & TMP2); + set_nz(A); + prefetch(); + +arr_10_imm + TMP2 = read_pc(); + A &= TMP2; + do_arr(); + prefetch(); + +las_10_aby + TMP = read_pc(); + TMP = set_h(TMP, read_pc()); + if(page_changing(TMP, Y)) { + read(set_l(TMP, TMP+Y)); + } + TMP2 = read(TMP+Y); + A = X = TMP2 & SP; + SP = set_l(SP, A); + set_nz(A); + prefetch(); + +lxa_10_imm + TMP2 = read_pc(); + A = X = (A | 0xee) & TMP2; + set_nz(A); + prefetch(); |