diff options
Diffstat (limited to 'src/devices/cpu/m6502/oxavix2000.lst')
-rw-r--r-- | src/devices/cpu/m6502/oxavix2000.lst | 181 |
1 files changed, 96 insertions, 85 deletions
diff --git a/src/devices/cpu/m6502/oxavix2000.lst b/src/devices/cpu/m6502/oxavix2000.lst index 0832f2adef4..ba0089e7c18 100644 --- a/src/devices/cpu/m6502/oxavix2000.lst +++ b/src/devices/cpu/m6502/oxavix2000.lst @@ -60,249 +60,259 @@ neg_acc set_nz(A); prefetch(); -oral0_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +oraj_imp read_pc_noinc(); + A |= m_j; + set_nz(A); prefetch(); -oral1_acc +orak_imp read_pc_noinc(); - A |= (m_l & 0x0000ff00) >> 8; + A |= m_k; set_nz(A); prefetch(); -oral2_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +oral_imp read_pc_noinc(); + A |= m_l; + set_nz(A); prefetch(); -oral3_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +oram_imp read_pc_noinc(); + A |= m_m; + set_nz(A); prefetch(); -andl0_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +andj_imp read_pc_noinc(); + A &= m_j; + set_nz(A); prefetch(); -andl1_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +andk_imp read_pc_noinc(); + A &= m_k; + set_nz(A); prefetch(); -andl2_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +andl_imp read_pc_noinc(); + A &= m_l; + set_nz(A); prefetch(); -andl3_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +andm_imp read_pc_noinc(); + A &= m_m; + set_nz(A); prefetch(); -eorl0_acc +eorj_imp read_pc_noinc(); - A ^= (m_l & 0x000000ff) >> 0; + A ^= m_j; set_nz(A); prefetch(); -eorl1_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +eork_imp read_pc_noinc(); + A ^= m_k; + set_nz(A); prefetch(); -eorl2_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +eorl_imp read_pc_noinc(); + A ^= m_l; + set_nz(A); prefetch(); -eorl3_acc - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); +eorm_imp read_pc_noinc(); + A ^= m_m; + set_nz(A); prefetch(); -adcl0_acc +adcj_imp read_pc_noinc(); - do_adc((m_l & 0x000000ff) >> 0); + do_adc(m_j); prefetch(); -adcl1_acc +adck_imp read_pc_noinc(); - do_adc((m_l & 0x0000ff00) >> 8); + do_adc(m_k); prefetch(); -adcl2_acc +adcl_imp read_pc_noinc(); - do_adc((m_l & 0x00ff0000) >> 16); + do_adc(m_l); prefetch(); -adcl3_acc +adcm_imp read_pc_noinc(); - do_adc((m_l & 0xff000000) >> 24); + do_adc(m_m); prefetch(); -stal0_acc +staj_imp read_pc_noinc(); - m_l = (m_l & 0xffffff00) | (A & 0xff); // TODO: flags + m_j = A; prefetch(); -stal1_acc +stak_imp read_pc_noinc(); - m_l = (m_l & 0xffff00ff) | ((A & 0xff) << 8); // TODO: flags + m_k = A; prefetch(); -stal2_acc +stal_imp read_pc_noinc(); - m_l = (m_l & 0xff00ffff) | ((A & 0xff) << 16); // TODO: flags + m_l = A; prefetch(); -stal3_acc +stam_imp read_pc_noinc(); - m_l = (m_l & 0x00ffffff) | ((A & 0xff) << 24); // TODO: flags + m_m = A; prefetch(); -ldal0_acc +ldaj_imp read_pc_noinc(); - A = (m_l & 0x000000ff) >> 0; // TODO: flags + A = m_j; // TODO: flags prefetch(); -ldal1_acc +ldak_imp read_pc_noinc(); - A = (m_l & 0x0000ff00) >> 8; // TODO: flags + A = m_k; // TODO: flags prefetch(); -ldal2_acc +ldal_imp read_pc_noinc(); - A = (m_l & 0x00ff0000) >> 16; // TODO: flags + A = m_l; // TODO: flags prefetch(); -ldal3_acc +ldam_imp read_pc_noinc(); - A = (m_l & 0xff000000) >> 24; // TODO: flags + A = m_m; // TODO: flags prefetch(); -cmpl0_acc +cmpj_imp read_pc_noinc(); - do_cmp(A, (m_l & 0x000000ff) >> 0); + do_cmp(A, m_j); prefetch(); -cmpl1_acc +cmpk_imp read_pc_noinc(); - do_cmp(A, (m_l & 0x0000ff00) >> 8); + do_cmp(A, m_k); prefetch(); -cmpl2_acc +cmpl_imp read_pc_noinc(); - do_cmp(A, (m_l & 0x00ff0000) >> 16); + do_cmp(A, m_l); prefetch(); -cmpl3_acc +cmpm_imp read_pc_noinc(); - do_cmp(A, (m_l & 0xff000000) >> 24); + do_cmp(A, m_m); prefetch(); -sbcl0_acc +sbcj_imp read_pc_noinc(); - do_sbc((m_l & 0x000000ff) >> 0); + do_sbc(m_j); prefetch(); -sbcl1_acc +sbck_imp read_pc_noinc(); - do_sbc((m_l & 0x0000ff00) >> 8); + do_sbc(m_k); prefetch(); -sbcl2_acc +sbcl_imp read_pc_noinc(); - do_sbc((m_l & 0x00ff0000) >> 16); + do_sbc(m_l); prefetch(); -sbcl3_acc +sbcm_imp read_pc_noinc(); - do_sbc((m_l & 0xff000000) >> 24); + do_sbc(m_m); prefetch(); -spa0_acc +spa0_imp read_pc_noinc(); - m_pa = (m_pa & 0xffff00) | A; // TODO: Flags? + m_pa = (m_pa & 0xffff00) | A; prefetch(); -lpa0_acc +lpa0_imp read_pc_noinc(); A = (m_pa & 0x0000ff) >> 0; // TODO: Flags? prefetch(); -spa1_acc +spa1_imp read_pc_noinc(); - m_pa = (m_pa & 0xff00ff) | (A << 8); // TODO: Flags? + m_pa = (m_pa & 0xff00ff) | (A << 8); prefetch(); -lpa1_acc +lpa1_imp read_pc_noinc(); A = (m_pa & 0x00ff00) >> 8; // TODO: Flags? prefetch(); -spa2_acc +spa2_imp read_pc_noinc(); - m_pa = (m_pa & 0x00ffff) | (A << 16); // TODO: Flags? + m_pa = (m_pa & 0x00ffff) | (A << 16); prefetch(); -lpa2_acc +lpa2_imp read_pc_noinc(); A = (m_pa & 0xff0000) >> 16; // TODO: Flags? prefetch(); -spb0_acc +spb0_imp read_pc_noinc(); m_pb = (m_pb & 0xffff00) | A; // TODO: Flags? prefetch(); -lpb0_acc +lpb0_imp read_pc_noinc(); A = (m_pb & 0x0000ff) >> 0; // TODO: Flags? prefetch(); -spb1_acc +spb1_imp read_pc_noinc(); m_pb = (m_pb & 0xff00ff) | (A << 8); // TODO: Flags? prefetch(); -lpb1_acc +lpb1_imp read_pc_noinc(); A = (m_pb & 0x00ff00) >> 8; // TODO: Flags? prefetch(); -spb2_acc +spb2_imp read_pc_noinc(); m_pb = (m_pb & 0x00ffff) | (A << 16); // TODO: Flags? prefetch(); -lpb2_acc +lpb2_imp read_pc_noinc(); A = (m_pb & 0xff0000) >> 16; // TODO: Flags? prefetch(); incpa_imp read_pc_noinc(); - m_pa++; + m_pa = (m_pa & ~0xff) | ((m_pa+1) & 0xff); set_nz(m_pa&0xff); // startup code seems to require flag to set if low byte is 0x00? prefetch(); incpb_imp read_pc_noinc(); - m_pb++; + m_pb = (m_pb & ~0xff) | ((m_pb+1) & 0xff); set_nz(m_pb&0xff); // startup code seems to require flag to set if low byte is 0x00? prefetch(); decpa_imp read_pc_noinc(); - m_pa--; + m_pa = (m_pa & ~0xff) | ((m_pa-1) & 0xff); set_nz(m_pa&0xff); // startup code seems to require flag to set if low byte is 0x00? prefetch(); decpb_imp read_pc_noinc(); - m_pb--; + m_pb = (m_pb & ~0xff) | ((m_pb-1) & 0xff); set_nz(m_pb&0xff); // startup code seems to require flag to set if low byte is 0x00? prefetch(); @@ -420,8 +430,9 @@ bit_imm prefetch(); asr_zpg - fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); - read_pc_noinc(); + TMP = read_pc(); // TODO: verify this, should it write back or set A? + TMP = read(TMP); + do_asr(TMP); prefetch(); asr_aba |