diff options
Diffstat (limited to 'src/devices/cpu/m6502/m6502.h')
-rw-r--r-- | src/devices/cpu/m6502/m6502.h | 48 |
1 files changed, 2 insertions, 46 deletions
diff --git a/src/devices/cpu/m6502/m6502.h b/src/devices/cpu/m6502/m6502.h index 71bc63a534e..8f5236818f9 100644 --- a/src/devices/cpu/m6502/m6502.h +++ b/src/devices/cpu/m6502/m6502.h @@ -41,7 +41,7 @@ protected: class memory_interface { public: address_space *program, *sprogram; - direct_read_data *direct, *sdirect; + direct_read_data<0> *direct, *sdirect; virtual ~memory_interface() {} virtual uint8_t read(uint16_t adr) = 0; @@ -68,50 +68,11 @@ protected: virtual uint8_t read_arg(uint16_t adr) override; }; - struct disasm_entry { - const char *opcode; - int mode; - offs_t flags; - }; - enum { STATE_RESET = 0xff00 }; enum { - DASM_non, /* no additional arguments */ - DASM_aba, /* absolute */ - DASM_abx, /* absolute + X */ - DASM_aby, /* absolute + Y */ - DASM_acc, /* accumulator */ - DASM_adr, /* absolute address (jmp,jsr) */ - DASM_bzp, /* zero page with bit selection */ - DASM_iax, /* indirect + X (65c02 jmp) */ - DASM_idx, /* zero page pre indexed */ - DASM_idy, /* zero page post indexed */ - DASM_idz, /* zero page post indexed (65ce02) */ - DASM_imm, /* immediate */ - DASM_imp, /* implicit */ - DASM_ind, /* indirect (jmp) */ - DASM_isy, /* zero page pre indexed sp and post indexed Y (65ce02) */ - DASM_iw2, /* immediate word (65ce02) */ - DASM_iw3, /* augment (65ce02) */ - DASM_rel, /* relative */ - DASM_rw2, /* relative word (65cs02, 65ce02) */ - DASM_zpb, /* zero page and branch (65c02 bbr, bbs) */ - DASM_zpg, /* zero page */ - DASM_zpi, /* zero page indirect (65c02) */ - DASM_zpx, /* zero page + X */ - DASM_zpy, /* zero page + Y */ - DASM_imz, /* load immediate byte, store to zero page address (M740) */ - DASM_spg, /* "special page": implied FF00 OR immediate value (M740)*/ - DASM_biz, /* bit, zero page (M740) */ - DASM_bzr, /* bit, zero page, relative offset (M740) */ - DASM_bar, /* bit, accumulator, relative offset (M740) */ - DASM_bac /* bit, accumulator (M740) */ - }; - - enum { F_N = 0x80, F_V = 0x40, F_E = 0x20, // 65ce02 @@ -145,9 +106,7 @@ protected: virtual void state_string_export(const device_state_entry &entry, std::string &str) const override; // device_disasm_interface overrides - virtual uint32_t disasm_min_opcode_bytes() const override; - virtual uint32_t disasm_max_opcode_bytes() const override; - virtual offs_t disasm_disassemble(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options) override; + virtual util::disasm_interface *create_disassembler() override; address_space_config program_config, sprogram_config; @@ -170,9 +129,6 @@ protected: bool nmi_state, irq_state, apu_irq_state, v_state; bool irq_taken, sync, direct_disabled, inhibit_interrupts; - static const disasm_entry disasm_entries[0x100]; - - offs_t disassemble_generic(std::ostream &stream, offs_t pc, const uint8_t *oprom, const uint8_t *opram, uint32_t options, const disasm_entry *table); uint8_t read(uint16_t adr) { return mintf->read(adr); } uint8_t read_9(uint16_t adr) { return mintf->read_9(adr); } void write(uint16_t adr, uint8_t val) { mintf->write(adr, val); } |