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)
This commit is contained in:
David Haywood 2018-10-16 16:44:30 +01:00 committed by ajrhacker
parent 59cc16c51c
commit ec010f5c85
5 changed files with 47 additions and 72 deletions

View File

@ -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

View File

@ -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
phx_imp
read_pc_noinc();
write(SP, X);
dec_SP();
prefetch();
unk5b_imp
plx_imp
read_pc_noinc();
read(SP);
inc_SP();
X = read(SP);
set_nz(X);
prefetch();
unk9b_imp
ply_imp
read_pc_noinc();
prefetch();
unka3_imp
read_pc_noinc();
prefetch();
unka7_imp
read_pc_noinc();
prefetch();
unk07_imp
read_pc_noinc();
prefetch();
unkb2_imp
read_pc_noinc();
prefetch();
unk73_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();

View File

@ -2,7 +2,7 @@
// copyright-holders:David Haywood
/***************************************************************************
xavix2000.cpp
xavix2000.cpp (Super XaviX)
The dies for these are marked

View File

@ -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(unh_imp);
O(unk83_imm);
O(unk87_imm);
O(phx_imp); // 12
O(phy_imp); // 52
O(plx_imp); // 32
O(ply_imp); // 72
O(clr_acc); // b2
#undef O

View File

@ -2,7 +2,7 @@
// copyright-holders:David Haywood
/***************************************************************************
xavix2000d.cpp
xavix2000d.cpp (Super XaviX)
***************************************************************************/