diff options
author | David Haywood <mamehaze@gmail.com> | 2018-10-16 16:44:30 +0100 |
---|---|---|
committer | ajrhacker <ajrhacker@users.noreply.github.com> | 2018-10-16 11:44:30 -0400 |
commit | ec010f5c85a39fb2de31924fb7af13124ec4f834 (patch) | |
tree | 0127620899f18fbedc51c7649fd0e97c859ca58b | |
parent | 59cc16c51c5b978de594df3b3fadaf039daa8ff1 (diff) |
XaviX - begin to reimplement Super XaviX opcodes based on use (nw) (#4149)
* disable all super xavix opcodes, ready for one-by-one reimplementation (nw)
* begin reimplementation (nw)
* get past first callf (nw)
* (nw)
* (nw)
* (nw)
* (nw)
* phx,phy etc. (nw)
* plx/ply (nw)
* more (nw)
* (nw)
* (nw)
* (nw)
-rw-r--r-- | src/devices/cpu/m6502/dxavix2000.lst | 34 | ||||
-rw-r--r-- | src/devices/cpu/m6502/oxavix2000.lst | 59 | ||||
-rw-r--r-- | src/devices/cpu/m6502/xavix2000.cpp | 2 | ||||
-rw-r--r-- | src/devices/cpu/m6502/xavix2000.h | 24 | ||||
-rw-r--r-- | src/devices/cpu/m6502/xavix2000d.cpp | 2 |
5 files changed, 48 insertions, 73 deletions
diff --git a/src/devices/cpu/m6502/dxavix2000.lst b/src/devices/cpu/m6502/dxavix2000.lst index cb45c31050f..202b7aecd64 100644 --- a/src/devices/cpu/m6502/dxavix2000.lst +++ b/src/devices/cpu/m6502/dxavix2000.lst @@ -1,20 +1,20 @@ # license:BSD-3-Clause # copyright-holders:David Haywood -# XaviX (SSD 2000) - m6502 with custom opcodes -brk_xav_imp ora_idx kil_non slo_idx nop_zpg ora_zpg asl_zpg unk07_imp php_imp ora_imm asl_acc anc_imm nop_aba ora_aba asl_aba slo_aba -bpl_rel ora_idy phx_imp slo_idy nop_zpx ora_zpx asl_zpx slo_zpx clc_imp ora_aby nop_imp unk1b_imp nop_abx ora_abx asl_abx slo_abx -jsr_adr and_idx callf_xa3 rla_idx bit_zpg and_zpg rol_zpg rla_zpg plp_imp and_imm rol_acc anc_imm bit_aba and_aba rol_aba rla_aba -bmi_rel and_idy plx_imp rla_idy nop_zpx and_zpx rol_zpx rla_zpx sec_imp and_aby nop_imp rla_aby nop_abx and_abx rol_abx rla_abx -rti_xav_imp eor_idx kil_non sre_idx nop_zpg eor_zpg lsr_zpg sre_zpg pha_imp eor_imm lsr_acc asr_imm jmp_adr eor_aba lsr_aba sre_aba -bvc_rel eor_idy phy_imp sre_idy nop_zpx eor_zpx lsr_zpx sre_zpx cli_imp eor_aby nop_imp unk5b_imp nop_abx eor_abx lsr_abx sre_abx -rts_imp adc_idx kil_non rra_idx nop_zpg adc_zpg ror_zpg rra_zpg pla_imp adc_imm ror_acc arr_imm jmp_ind adc_aba ror_aba rra_aba -bvs_rel adc_idy ply_imp unk73_imp nop_zpx adc_zpx ror_zpx rra_zpx sei_imp adc_aby nop_imp rra_aby nop_abx adc_abx ror_abx rra_abx -retf_imp sta_idx nop_imm unk83_imm sty_zpg sta_zpg stx_zpg unk87_imm dey_imp nop_imm txa_imp ane_imm sty_aba sta_aba stx_aba sax_aba -bcc_rel sta_idy kil_non sha_idy sty_zpx sta_zpx stx_zpy sax_zpy tya_imp sta_aby txs_imp unk9b_imp shy_abx sta_abx shx_aby sha_aby -ldy_imm lda_idx ldx_imm unka3_imp ldy_zpg lda_zpg ldx_zpg unka7_imp tay_imp lda_imm tax_imp lxa_imm ldy_aba lda_aba ldx_aba lax_aba -bcs_rel lda_idy unkb2_imp lax_idy ldy_zpx lda_zpx ldx_zpy lax_zpy clv_imp lda_aby tsx_imp las_aby ldy_abx lda_abx ldx_aby lax_aby -cpy_imm cmp_idx nop_imm dcp_idx cpy_zpg cmp_zpg dec_zpg dcp_zpg iny_imp cmp_imm dex_imp sbx_imm cpy_aba cmp_aba dec_aba dcp_aba -bne_rel cmp_idy kil_non dcp_idy nop_zpx cmp_zpx dec_zpx dcp_zpx cld_imp cmp_aby nop_imp dcp_aby nop_abx cmp_abx dec_abx dcp_abx -cpx_imm sbc_idx nop_imm isb_idx cpx_zpg sbc_zpg inc_zpg isb_zpg inx_imp sbc_imm nop_imp sbc_imm cpx_aba sbc_aba inc_aba isb_aba -beq_rel sbc_idy kil_non isb_idy nop_zpx sbc_zpx inc_zpx isb_zpx sed_imp sbc_aby nop_imp isb_aby nop_abx sbc_abx inc_abx isb_abx +# Super XaviX (SSD 2000) - m6502 with custom opcodes +brk_xav_imp unh_imp unh_imp unh_imp unh_imp ora_zpg asl_zpg unh_imp php_imp ora_imm asl_acc unh_imp unh_imp ora_aba unh_imp unh_imp +bpl_rel unh_imp phx_imp unh_imp unh_imp unh_imp unh_imp unh_imp clc_imp ora_aby unh_imp unh_imp unh_imp ora_abx unh_imp unh_imp +jsr_adr unh_imp callf_xa3 unh_imp unh_imp unh_imp rol_zpg unh_imp plp_imp and_imm rol_acc unh_imp bit_aba unh_imp unh_imp unh_imp +bmi_rel unh_imp plx_imp unh_imp unh_imp unh_imp unh_imp unh_imp sec_imp unh_imp unh_imp unh_imp unh_imp unh_imp rol_abx unh_imp +rti_xav_imp unh_imp unh_imp unh_imp unh_imp eor_zpg lsr_zpg unh_imp pha_imp eor_imm lsr_acc unh_imp jmp_adr unh_imp lsr_aba unh_imp +unh_imp eor_idy phy_imp unh_imp unh_imp unh_imp unh_imp unh_imp cli_imp eor_aby unh_imp unh_imp unh_imp eor_abx unh_imp unh_imp +rts_imp unh_imp unh_imp unh_imp unh_imp adc_zpg ror_zpg unh_imp pla_imp adc_imm unh_imp unh_imp jmp_ind unh_imp unh_imp unh_imp +bvs_rel adc_idy ply_imp unh_imp unh_imp unh_imp unh_imp unh_imp sei_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp +retf_imp unh_imp unh_imp unh_imp sty_zpg sta_zpg stx_zpg unh_imp dey_imp unh_imp txa_imp unh_imp unh_imp sta_aba stx_aba unh_imp +bcc_rel sta_idy unh_imp unh_imp unh_imp unh_imp stx_zpy unh_imp tya_imp sta_aby txs_imp unh_imp unh_imp sta_abx unh_imp unh_imp +ldy_imm unh_imp ldx_imm unh_imp ldy_zpg lda_zpg ldx_zpg unh_imp tay_imp lda_imm tax_imp unh_imp unh_imp lda_aba unh_imp unh_imp +bcs_rel lda_idy clr_acc unh_imp unh_imp unh_imp ldx_zpy unh_imp clv_imp lda_aby tsx_imp unh_imp unh_imp lda_abx ldx_aby unh_imp +cpy_imm unh_imp unh_imp unh_imp cpy_zpg cmp_zpg dec_zpg unh_imp iny_imp cmp_imm dex_imp unh_imp unh_imp unh_imp unh_imp unh_imp +bne_rel cmp_idy unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp dec_abx unh_imp +cpx_imm unh_imp unh_imp unh_imp cpx_zpg sbc_zpg inc_zpg unh_imp inx_imp sbc_imm unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp +beq_rel unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp unh_imp reset diff --git a/src/devices/cpu/m6502/oxavix2000.lst b/src/devices/cpu/m6502/oxavix2000.lst index 3409ae414f7..d69f2195f6a 100644 --- a/src/devices/cpu/m6502/oxavix2000.lst +++ b/src/devices/cpu/m6502/oxavix2000.lst @@ -1,59 +1,42 @@ # license:BSD-3-Clause # copyright-holders:David Haywood -# xavix2000 opcodes +# xavix2000 opcodes (Super XaviX) -plx_imp +unh_imp + fatalerror("unhandled opcode %02x%04x: %02x\n", m_codebank, PPC, inst_state); read_pc_noinc(); prefetch(); -phx_imp - read_pc_noinc(); - prefetch(); - -ply_imp +clr_acc read_pc_noinc(); + A = 0; + set_nz(A); prefetch(); phy_imp read_pc_noinc(); + write(SP, Y); + dec_SP(); prefetch(); -unk1b_imp - read_pc_noinc(); - prefetch(); - -unk5b_imp - read_pc_noinc(); - prefetch(); - -unk9b_imp - read_pc_noinc(); - prefetch(); - -unka3_imp - read_pc_noinc(); - prefetch(); - -unka7_imp - read_pc_noinc(); - prefetch(); - -unk07_imp +phx_imp read_pc_noinc(); + write(SP, X); + dec_SP(); prefetch(); -unkb2_imp +plx_imp read_pc_noinc(); + read(SP); + inc_SP(); + X = read(SP); + set_nz(X); prefetch(); -unk73_imp +ply_imp read_pc_noinc(); - prefetch(); - -unk87_imm - read_pc(); - prefetch(); - -unk83_imm - read_pc(); + read(SP); + inc_SP(); + Y = read(SP); + set_nz(Y); prefetch(); diff --git a/src/devices/cpu/m6502/xavix2000.cpp b/src/devices/cpu/m6502/xavix2000.cpp index afbf87fd8c6..34f41a483b6 100644 --- a/src/devices/cpu/m6502/xavix2000.cpp +++ b/src/devices/cpu/m6502/xavix2000.cpp @@ -2,7 +2,7 @@ // copyright-holders:David Haywood /*************************************************************************** - xavix2000.cpp + xavix2000.cpp (Super XaviX) The dies for these are marked diff --git a/src/devices/cpu/m6502/xavix2000.h b/src/devices/cpu/m6502/xavix2000.h index 60e341e1230..bcc61e1c378 100644 --- a/src/devices/cpu/m6502/xavix2000.h +++ b/src/devices/cpu/m6502/xavix2000.h @@ -2,7 +2,7 @@ // copyright-holders:David Haywood /*************************************************************************** - xavix2000.h + xavix2000.h (Super XaviX) ***************************************************************************/ #ifndef MAME_CPU_M6502_XAVIX2000_H @@ -26,22 +26,14 @@ public: #define O(o) void o ## _full(); void o ## _partial() // xaviv opcodes - O(phx_imp); - O(phy_imp); - O(plx_imp); - O(ply_imp); - O(unk1b_imp); - O(unk5b_imp); - O(unk9b_imp); - O(unka3_imp); - O(unka7_imp); - O(unkb2_imp); - O(unk07_imp); - O(unk73_imp); - - O(unk83_imm); - O(unk87_imm); + O(unh_imp); + O(phx_imp); // 12 + O(phy_imp); // 52 + O(plx_imp); // 32 + O(ply_imp); // 72 + + O(clr_acc); // b2 #undef O diff --git a/src/devices/cpu/m6502/xavix2000d.cpp b/src/devices/cpu/m6502/xavix2000d.cpp index 9daea8a96c4..883410a05d8 100644 --- a/src/devices/cpu/m6502/xavix2000d.cpp +++ b/src/devices/cpu/m6502/xavix2000d.cpp @@ -2,7 +2,7 @@ // copyright-holders:David Haywood /*************************************************************************** - xavix2000d.cpp + xavix2000d.cpp (Super XaviX) ***************************************************************************/ |