summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502/om6510.lst
diff options
context:
space:
mode:
author Olivier Galibert <galibert@pobox.com>2012-11-06 16:27:39 +0000
committer Olivier Galibert <galibert@pobox.com>2012-11-06 16:27:39 +0000
commitfac1ca581b31525279ead471282c1eed1790daab (patch)
tree3870b4c93b8c72f54062dbe68a0cbd2750c9ec26 /src/emu/cpu/m6502/om6510.lst
parent54b3c7a31dd607b734e55d9ca96254f0801abb6b (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.lst46
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();