summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/cpu/m6502
diff options
context:
space:
mode:
author R. Belmont <rb6502@users.noreply.github.com>2013-03-30 20:48:43 +0000
committer R. Belmont <rb6502@users.noreply.github.com>2013-03-30 20:48:43 +0000
commit95327fc0a8199d0f6e8568ff2d358c8e7e39dd38 (patch)
tree4c829b3078d112656555195d8570f23050e589ae /src/emu/cpu/m6502
parent37f9ac09ca22726d56e7d2522203851d35ca76be (diff)
M740: correct disassembly of bbs/bbc on A register. [R. Belmont]
Diffstat (limited to 'src/emu/cpu/m6502')
-rw-r--r--src/emu/cpu/m6502/dm740.lst64
-rw-r--r--src/emu/cpu/m6502/m5074x.h1
-rw-r--r--src/emu/cpu/m6502/m6502.c5
-rw-r--r--src/emu/cpu/m6502/m6502.h3
-rw-r--r--src/emu/cpu/m6502/m740.h4
-rw-r--r--src/emu/cpu/m6502/om740.lst4
6 files changed, 43 insertions, 38 deletions
diff --git a/src/emu/cpu/m6502/dm740.lst b/src/emu/cpu/m6502/dm740.lst
index a609afb13a3..9f7d41bdb87 100644
--- a/src/emu/cpu/m6502/dm740.lst
+++ b/src/emu/cpu/m6502/dm740.lst
@@ -1,34 +1,34 @@
# m740 device
-brk740_imp ora_idx kil_non bbs_acc nop_zpg ora_zpg asl_zpg bbs_bzr php_imp ora_imm asl_acc seb_acc nop_aba ora_aba asl_aba seb_biz
-bpl_rel ora_idy clt_imp bbc_acc nop_zpx ora_zpx asl_zpx bbc_bzr clc_imp ora_aby dec_acc clb_acc nop_abx ora_abx asl_abx clb_biz
-jsr_adr and_idx jsr_spg bbs_acc bit_zpg and_zpg rol_zpg bbs_bzr plp_imp and_imm rol_acc seb_acc bit_aba and_aba rol_aba seb_biz
-bmi_rel and_idy set_imp bbc_acc nop_zpx and_zpx rol_zpx bbc_bzr sec_imp and_aby inc_acc clb_acc ldm_imz and_abx rol_abx clb_biz
-rti_imp eor_idx kil_non bbs_acc com_zpg eor_zpg lsr_zpg bbs_bzr pha_imp eor_imm lsr_acc seb_acc jmp_adr eor_aba lsr_aba seb_biz
-bvc_rel eor_idy kil_non bbc_acc nop_zpx eor_zpx lsr_zpx bbc_bzr cli_imp eor_aby nop_imp clb_acc nop_abx eor_abx lsr_abx clb_biz
-rts_imp adc_idx kil_non bbs_acc nop_zpg adc_zpg ror_zpg bbs_bzr pla_imp adc_imm ror_acc seb_acc jmp_ind adc_aba ror_aba seb_biz
-bvs_rel adc_idy kil_non bbc_acc nop_zpx adc_zpx ror_zpx bbc_bzr sei_imp adc_aby nop_imp clb_acc nop_abx adc_abx ror_abx clb_biz
-bra_rel sta_idx rrf_zpg bbs_acc sty_zpg sta_zpg stx_zpg bbs_bzr dey_imp nop_imm txa_imp seb_acc sty_aba sta_aba stx_aba seb_biz
-bcc_rel sta_idy kil_non bbc_acc sty_zpx sta_zpx stx_zpy bbc_bzr tya_imp sta_aby txs_imp clb_acc shy_abx sta_abx shx_aby clb_biz
-ldy_imm lda_idx ldx_imm bbs_acc ldy_zpg lda_zpg ldx_zpg bbs_bzr tay_imp lda_imm tax_imp seb_acc ldy_aba lda_aba ldx_aba seb_biz
-bcs_rel lda_idy jmp_zpi bbc_acc ldy_zpx lda_zpx ldx_zpy bbc_bzr clv_imp lda_aby tsx_imp clb_acc ldy_abx lda_abx ldx_aby clb_biz
-cpy_imm cmp_idx nop_imm bbs_acc cpy_zpg cmp_zpg dec_zpg bbs_bzr iny_imp cmp_imm dex_imp seb_acc cpy_aba cmp_aba dec_aba seb_biz
-bne_rel cmp_idy kil_non bbc_acc nop_zpx cmp_zpx dec_zpx bbc_bzr cld_imp cmp_aby nop_imp clb_acc nop_abx cmp_abx dec_abx clb_biz
-cpx_imm sbc_idx nop_imm bbs_acc cpx_zpg sbc_zpg inc_zpg bbs_bzr inx_imp sbc_imm nop_imp seb_acc cpx_aba sbc_aba inc_aba seb_biz
-beq_rel sbc_idy kil_non bbc_acc nop_zpx sbc_zpx inc_zpx bbc_bzr sed_imp sbc_aby nop_imp clb_acc nop_abx sbc_abx inc_abx clb_biz
-brk740_imp ort_idx kil_non bbs_acc nop_zpg ort_zpg asl_zpg bbs_bzr php_imp ort_imm asl_acc seb_acc nop_aba ort_aba asl_aba seb_biz
-bpl_rel ort_idy clt_imp bbc_acc nop_zpx ort_zpx asl_zpx bbc_bzr clc_imp ort_aby dect_acc clb_acc nop_abx ort_abx asl_abx clb_biz
-jsr_adr andt_idx jsr_spg bbs_acc bit_zpg andt_zpg rol_zpg bbs_bzr plp_imp andt_imm rol_acc seb_acc bit_aba andt_aba rol_aba seb_biz
-bmi_rel andt_idy set_imp bbc_acc nop_zpx andt_zpx rol_zpx bbc_bzr sec_imp andt_aby inct_acc clb_acc ldm_imz andt_abx rol_abx clb_biz
-rti_imp eort_idx kil_non bbs_acc com_zpg eort_zpg lsr_zpg bbs_bzr pha_imp eort_imm lsr_acc seb_acc jmp_adr eort_aba lsr_aba seb_biz
-bvc_rel eort_idy kil_non bbc_acc nop_zpx eort_zpx lsr_zpx bbc_bzr cli_imp eort_aby nop_imp clb_acc nop_abx eort_abx lsr_abx clb_biz
-rts_imp adct_idx kil_non bbs_acc nop_zpg adct_zpg ror_zpg bbs_bzr pla_imp adct_imm ror_acc seb_acc jmp_ind adct_aba ror_aba seb_biz
-bvs_rel adct_idy kil_non bbc_acc nop_zpx adct_zpx ror_zpx bbc_bzr sei_imp adct_aby nop_imp clb_acc nop_abx adct_abx ror_abx clb_biz
-bra_rel sta_idx rrf_zpg bbs_acc sty_zpg sta_zpg stx_zpg bbs_bzr dey_imp nop_imm txa_imp seb_acc sty_aba sta_aba stx_aba seb_biz
-bcc_rel sta_idy kil_non bbc_acc sty_zpx sta_zpx stx_zpy bbc_bzr tya_imp sta_aby txs_imp clb_acc shy_abx sta_abx shx_aby clb_biz
-ldy_imm ldt_idx ldx_imm bbs_acc ldy_zpg ldt_zpg ldx_zpg bbs_bzr tay_imp ldt_imm tax_imp seb_acc ldy_aba ldt_aba ldx_aba seb_biz
-bcs_rel ldt_idy jmp_zpi bbc_acc ldy_zpx ldt_zpx ldx_zpy bbc_bzr clv_imp ldt_aby tsx_imp clb_acc ldy_abx ldt_abx ldx_aby clb_biz
-cpy_imm cmp_idx nop_imm bbs_acc cpy_zpg cmpt_zpg dec_zpg bbs_bzr iny_imp cmpt_imm dex_imp seb_acc cpy_aba cmpt_aba dec_aba seb_biz
-bne_rel cmp_idy kil_non bbc_acc nop_zpx cmpt_zpx dec_zpx bbc_bzr cld_imp cmpt_aby nop_imp clb_acc nop_abx cmpt_abx dec_abx clb_biz
-cpx_imm sbct_idx nop_imm bbs_acc cpx_zpg sbct_zpg inc_zpg bbs_bzr inx_imp sbc_imm nop_imp seb_acc cpx_aba sbct_aba inc_aba seb_biz
-beq_rel sbct_idy kil_non bbc_acc nop_zpx sbct_zpx inc_zpx bbc_bzr sed_imp sbc_aby nop_imp clb_acc nop_abx sbct_abx inc_abx clb_biz
+brk740_imp ora_idx kil_non bbs_bar nop_zpg ora_zpg asl_zpg bbs_bzr php_imp ora_imm asl_acc seb_acc nop_aba ora_aba asl_aba seb_biz
+bpl_rel ora_idy clt_imp bbc_bar nop_zpx ora_zpx asl_zpx bbc_bzr clc_imp ora_aby dec_acc clb_acc nop_abx ora_abx asl_abx clb_biz
+jsr_adr and_idx jsr_spg bbs_bar bit_zpg and_zpg rol_zpg bbs_bzr plp_imp and_imm rol_acc seb_acc bit_aba and_aba rol_aba seb_biz
+bmi_rel and_idy set_imp bbc_bar nop_zpx and_zpx rol_zpx bbc_bzr sec_imp and_aby inc_acc clb_acc ldm_imz and_abx rol_abx clb_biz
+rti_imp eor_idx kil_non bbs_bar com_zpg eor_zpg lsr_zpg bbs_bzr pha_imp eor_imm lsr_acc seb_acc jmp_adr eor_aba lsr_aba seb_biz
+bvc_rel eor_idy kil_non bbc_bar nop_zpx eor_zpx lsr_zpx bbc_bzr cli_imp eor_aby nop_imp clb_acc nop_abx eor_abx lsr_abx clb_biz
+rts_imp adc_idx kil_non bbs_bar nop_zpg adc_zpg ror_zpg bbs_bzr pla_imp adc_imm ror_acc seb_acc jmp_ind adc_aba ror_aba seb_biz
+bvs_rel adc_idy kil_non bbc_bar nop_zpx adc_zpx ror_zpx bbc_bzr sei_imp adc_aby nop_imp clb_acc nop_abx adc_abx ror_abx clb_biz
+bra_rel sta_idx rrf_zpg bbs_bar sty_zpg sta_zpg stx_zpg bbs_bzr dey_imp nop_imm txa_imp seb_acc sty_aba sta_aba stx_aba seb_biz
+bcc_rel sta_idy kil_non bbc_bar sty_zpx sta_zpx stx_zpy bbc_bzr tya_imp sta_aby txs_imp clb_acc shy_abx sta_abx shx_aby clb_biz
+ldy_imm lda_idx ldx_imm bbs_bar ldy_zpg lda_zpg ldx_zpg bbs_bzr tay_imp lda_imm tax_imp seb_acc ldy_aba lda_aba ldx_aba seb_biz
+bcs_rel lda_idy jmp_zpi bbc_bar ldy_zpx lda_zpx ldx_zpy bbc_bzr clv_imp lda_aby tsx_imp clb_acc ldy_abx lda_abx ldx_aby clb_biz
+cpy_imm cmp_idx nop_imm bbs_bar cpy_zpg cmp_zpg dec_zpg bbs_bzr iny_imp cmp_imm dex_imp seb_acc cpy_aba cmp_aba dec_aba seb_biz
+bne_rel cmp_idy kil_non bbc_bar nop_zpx cmp_zpx dec_zpx bbc_bzr cld_imp cmp_aby nop_imp clb_acc nop_abx cmp_abx dec_abx clb_biz
+cpx_imm sbc_idx nop_imm bbs_bar cpx_zpg sbc_zpg inc_zpg bbs_bzr inx_imp sbc_imm nop_imp seb_acc cpx_aba sbc_aba inc_aba seb_biz
+beq_rel sbc_idy kil_non bbc_bar nop_zpx sbc_zpx inc_zpx bbc_bzr sed_imp sbc_aby nop_imp clb_acc nop_abx sbc_abx inc_abx clb_biz
+brk740_imp ort_idx kil_non bbs_bar nop_zpg ort_zpg asl_zpg bbs_bzr php_imp ort_imm asl_acc seb_acc nop_aba ort_aba asl_aba seb_biz
+bpl_rel ort_idy clt_imp bbc_bar nop_zpx ort_zpx asl_zpx bbc_bzr clc_imp ort_aby dect_acc clb_acc nop_abx ort_abx asl_abx clb_biz
+jsr_adr andt_idx jsr_spg bbs_bar bit_zpg andt_zpg rol_zpg bbs_bzr plp_imp andt_imm rol_acc seb_acc bit_aba andt_aba rol_aba seb_biz
+bmi_rel andt_idy set_imp bbc_bar nop_zpx andt_zpx rol_zpx bbc_bzr sec_imp andt_aby inct_acc clb_acc ldm_imz andt_abx rol_abx clb_biz
+rti_imp eort_idx kil_non bbs_bar com_zpg eort_zpg lsr_zpg bbs_bzr pha_imp eort_imm lsr_acc seb_acc jmp_adr eort_aba lsr_aba seb_biz
+bvc_rel eort_idy kil_non bbc_bar nop_zpx eort_zpx lsr_zpx bbc_bzr cli_imp eort_aby nop_imp clb_acc nop_abx eort_abx lsr_abx clb_biz
+rts_imp adct_idx kil_non bbs_bar nop_zpg adct_zpg ror_zpg bbs_bzr pla_imp adct_imm ror_acc seb_acc jmp_ind adct_aba ror_aba seb_biz
+bvs_rel adct_idy kil_non bbc_bar nop_zpx adct_zpx ror_zpx bbc_bzr sei_imp adct_aby nop_imp clb_acc nop_abx adct_abx ror_abx clb_biz
+bra_rel sta_idx rrf_zpg bbs_bar sty_zpg sta_zpg stx_zpg bbs_bzr dey_imp nop_imm txa_imp seb_acc sty_aba sta_aba stx_aba seb_biz
+bcc_rel sta_idy kil_non bbc_bar sty_zpx sta_zpx stx_zpy bbc_bzr tya_imp sta_aby txs_imp clb_acc shy_abx sta_abx shx_aby clb_biz
+ldy_imm ldt_idx ldx_imm bbs_bar ldy_zpg ldt_zpg ldx_zpg bbs_bzr tay_imp ldt_imm tax_imp seb_acc ldy_aba ldt_aba ldx_aba seb_biz
+bcs_rel ldt_idy jmp_zpi bbc_bar ldy_zpx ldt_zpx ldx_zpy bbc_bzr clv_imp ldt_aby tsx_imp clb_acc ldy_abx ldt_abx ldx_aby clb_biz
+cpy_imm cmp_idx nop_imm bbs_bar cpy_zpg cmpt_zpg dec_zpg bbs_bzr iny_imp cmpt_imm dex_imp seb_acc cpy_aba cmpt_aba dec_aba seb_biz
+bne_rel cmp_idy kil_non bbc_bar nop_zpx cmpt_zpx dec_zpx bbc_bzr cld_imp cmpt_aby nop_imp clb_acc nop_abx cmpt_abx dec_abx clb_biz
+cpx_imm sbct_idx nop_imm bbs_bar cpx_zpg sbct_zpg inc_zpg bbs_bzr inx_imp sbc_imm nop_imp seb_acc cpx_aba sbct_aba inc_aba seb_biz
+beq_rel sbct_idy kil_non bbc_bar nop_zpx sbct_zpx inc_zpx bbc_bzr sed_imp sbc_aby nop_imp clb_acc nop_abx sbct_abx inc_abx clb_biz
reset740
diff --git a/src/emu/cpu/m6502/m5074x.h b/src/emu/cpu/m6502/m5074x.h
index 18904fec7cf..98c7848d4e1 100644
--- a/src/emu/cpu/m6502/m5074x.h
+++ b/src/emu/cpu/m6502/m5074x.h
@@ -93,7 +93,6 @@ protected:
virtual void device_start();
virtual void device_reset();
virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);
- virtual void device_config_complete();
virtual void execute_set_input(int inputnum, int state);
virtual const address_space_config *memory_space_config(address_spacenum spacenum) const { return (spacenum == AS_PROGRAM) ? &m_program_config : NULL; }
diff --git a/src/emu/cpu/m6502/m6502.c b/src/emu/cpu/m6502/m6502.c
index 89934569ddb..6e36fa6c662 100644
--- a/src/emu/cpu/m6502/m6502.c
+++ b/src/emu/cpu/m6502/m6502.c
@@ -625,6 +625,11 @@ offs_t m6502_device::disassemble_generic(char *buffer, offs_t pc, const UINT8 *o
flags |= 3;
break;
+ case DASM_bar:
+ sprintf(buffer, " %d, A, $%04x", (opram[0] >> 5) & 7, (pc & 0xf0000) | UINT16(pc + 3 + INT8(opram[1])));
+ flags |= 2;
+ break;
+
default:
fprintf(stderr, "Unhandled dasm mode %d\n", e.mode);
abort();
diff --git a/src/emu/cpu/m6502/m6502.h b/src/emu/cpu/m6502/m6502.h
index cb2fdb5519a..56a0c89f70d 100644
--- a/src/emu/cpu/m6502/m6502.h
+++ b/src/emu/cpu/m6502/m6502.h
@@ -128,7 +128,8 @@ protected:
DASM_imz, /* load immediate byte, store to zero page address (M740) */
DASM_spg, /* "special page": implied FF00 plus immediate value (M740)*/
DASM_biz, /* bit, zero page (M740) */
- DASM_bzr /* bit, zero page, relative offset (M740) */
+ DASM_bzr, /* bit, zero page, relative offset (M740) */
+ DASM_bar /* bit, accumulator, relative offset (M740) */
};
enum {
diff --git a/src/emu/cpu/m6502/m740.h b/src/emu/cpu/m6502/m740.h
index d31834a8c94..831b7608d75 100644
--- a/src/emu/cpu/m6502/m740.h
+++ b/src/emu/cpu/m6502/m740.h
@@ -102,8 +102,8 @@ protected:
O(reset740);
O(seb_biz); O(seb_acc);
O(clb_biz); O(clb_acc);
- O(bbc_bzr); O(bbc_acc);
- O(bbs_bzr); O(bbs_acc);
+ O(bbc_bzr); O(bbc_bar);
+ O(bbs_bzr); O(bbs_bar);
O(rrf_zpg);
O(bra_rel);
O(jmp_zpi);
diff --git a/src/emu/cpu/m6502/om740.lst b/src/emu/cpu/m6502/om740.lst
index 70a2b52ddbe..e5efd076def 100644
--- a/src/emu/cpu/m6502/om740.lst
+++ b/src/emu/cpu/m6502/om740.lst
@@ -72,7 +72,7 @@ bbs_bzr
}
prefetch();
-bbc_acc
+bbc_bar
TMP = read_pc();
read_pc_noinc();
if(!(A & (1 << ((IR>>5) & 7)))) {
@@ -80,7 +80,7 @@ bbc_acc
}
prefetch();
-bbs_acc
+bbs_bar
TMP = read_pc();
read_pc_noinc();
if(A & (1 << ((IR>>5) & 7))) {