From af66ca419ba7092cd791e49ef681567955b8fd2f Mon Sep 17 00:00:00 2001 From: hap Date: Sat, 14 Dec 2024 15:21:05 +0100 Subject: m6502: rename m65c02 to w65c02 as well --- scripts/src/cpu.lua | 18 +- src/devices/bus/a2bus/a2superdrive.cpp | 17 +- src/devices/bus/a2bus/transwarp.cpp | 10 +- src/devices/bus/bbc/tube/tube_6502.cpp | 4 +- src/devices/bus/bbc/tube/tube_rc6502.cpp | 4 +- src/devices/bus/cbmiec/fd2000.cpp | 2 +- src/devices/bus/cbmiec/fd2000.h | 4 +- src/devices/bus/cbmiec/serialbox.cpp | 2 +- src/devices/bus/cbmiec/serialbox.h | 4 +- src/devices/cpu/m6502/dm65c02.lst | 20 - src/devices/cpu/m6502/dw65c02.lst | 20 + src/devices/cpu/m6502/gew12.cpp | 10 +- src/devices/cpu/m6502/gew12.h | 6 +- src/devices/cpu/m6502/gew7.cpp | 10 +- src/devices/cpu/m6502/gew7.h | 6 +- src/devices/cpu/m6502/m6502.txt | 4 +- src/devices/cpu/m6502/m65c02.cpp | 33 -- src/devices/cpu/m6502/m65c02.h | 77 --- src/devices/cpu/m6502/m65c02d.cpp | 18 - src/devices/cpu/m6502/m65c02d.h | 29 - src/devices/cpu/m6502/m65ce02.cpp | 6 +- src/devices/cpu/m6502/m65ce02.h | 4 +- src/devices/cpu/m6502/om65c02.lst | 897 ------------------------------ src/devices/cpu/m6502/ow65c02.lst | 897 ++++++++++++++++++++++++++++++ src/devices/cpu/m6502/r65c02.cpp | 2 +- src/devices/cpu/m6502/r65c02.h | 4 +- src/devices/cpu/m6502/w65c02.cpp | 33 ++ src/devices/cpu/m6502/w65c02.h | 77 +++ src/devices/cpu/m6502/w65c02d.cpp | 18 + src/devices/cpu/m6502/w65c02d.h | 29 + src/devices/cpu/m6502/w65c02s.cpp | 2 +- src/devices/cpu/m6502/w65c02s.h | 4 +- src/mame/apple/apple2e.cpp | 16 +- src/mame/chess/conchess.cpp | 4 +- src/mame/fidelity/desdis.cpp | 4 +- src/mame/fidelity/elite.cpp | 1 - src/mame/funtech/supracan.cpp | 4 +- src/mame/funworld/4roses.cpp | 4 +- src/mame/hegenerglaser/academy.cpp | 4 +- src/mame/hegenerglaser/modena.cpp | 4 +- src/mame/hegenerglaser/montec.cpp | 4 +- src/mame/hegenerglaser/polgar.cpp | 4 +- src/mame/misc/rgum.cpp | 4 +- src/mame/novag/sexpert.cpp | 6 +- src/mame/pinball/alvg.cpp | 6 +- src/mame/pinball/gts3.cpp | 17 +- src/mame/pinball/gts3a.cpp | 25 +- src/mame/saitek/corona.cpp | 4 +- src/mame/saitek/simultano.cpp | 4 +- src/mame/saitek/stratos.cpp | 4 +- src/mame/seta/downtown.cpp | 32 +- src/mame/svision/svision.cpp | 6 +- src/mame/televideo/tv955.cpp | 4 +- src/mame/tvgames/elan_eu3a05.cpp | 2 +- src/mame/yamaha/ympsr16.cpp | 4 +- src/osd/modules/debugger/debuggdbstub.cpp | 2 +- src/tools/unidasm.cpp | 4 +- 57 files changed, 1214 insertions(+), 1230 deletions(-) delete mode 100644 src/devices/cpu/m6502/dm65c02.lst create mode 100644 src/devices/cpu/m6502/dw65c02.lst delete mode 100644 src/devices/cpu/m6502/m65c02.cpp delete mode 100644 src/devices/cpu/m6502/m65c02.h delete mode 100644 src/devices/cpu/m6502/m65c02d.cpp delete mode 100644 src/devices/cpu/m6502/m65c02d.h delete mode 100644 src/devices/cpu/m6502/om65c02.lst create mode 100644 src/devices/cpu/m6502/ow65c02.lst create mode 100644 src/devices/cpu/m6502/w65c02.cpp create mode 100644 src/devices/cpu/m6502/w65c02.h create mode 100644 src/devices/cpu/m6502/w65c02d.cpp create mode 100644 src/devices/cpu/m6502/w65c02d.h diff --git a/scripts/src/cpu.lua b/scripts/src/cpu.lua index 1f14e6e6bff..014c27a25d3 100644 --- a/scripts/src/cpu.lua +++ b/scripts/src/cpu.lua @@ -1755,7 +1755,6 @@ end --@src/devices/cpu/m6502/m6510.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/m6510t.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/m65ce02.h,CPUS["M6502"] = true ---@src/devices/cpu/m6502/m65c02.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/m740.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/m7501.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/m8502.h,CPUS["M6502"] = true @@ -1765,6 +1764,7 @@ end --@src/devices/cpu/m6502/st2xxx.h,CPUS["ST2XXX"] = true --@src/devices/cpu/m6502/st2204.h,CPUS["ST2XXX"] = true --@src/devices/cpu/m6502/st2205u.h,CPUS["ST2XXX"] = true +--@src/devices/cpu/m6502/w65c02.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/w65c02s.h,CPUS["M6502"] = true --@src/devices/cpu/m6502/xavix.h,CPUS["XAVIX"] = true --@src/devices/cpu/m6502/xavix.h,CPUS["XAVIX2000"] = true @@ -1809,8 +1809,6 @@ if CPUS["M6502"] then MAME_DIR .. "src/devices/cpu/m6502/m6510.h", MAME_DIR .. "src/devices/cpu/m6502/m6510t.cpp", MAME_DIR .. "src/devices/cpu/m6502/m6510t.h", - MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp", - MAME_DIR .. "src/devices/cpu/m6502/m65c02.h", MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp", MAME_DIR .. "src/devices/cpu/m6502/m65ce02.h", MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", @@ -1825,6 +1823,8 @@ if CPUS["M6502"] then MAME_DIR .. "src/devices/cpu/m6502/r65c19.h", MAME_DIR .. "src/devices/cpu/m6502/rp2a03.cpp", MAME_DIR .. "src/devices/cpu/m6502/rp2a03.h", + MAME_DIR .. "src/devices/cpu/m6502/w65c02.cpp", + MAME_DIR .. "src/devices/cpu/m6502/w65c02.h", MAME_DIR .. "src/devices/cpu/m6502/w65c02s.cpp", MAME_DIR .. "src/devices/cpu/m6502/w65c02s.h", } @@ -1833,7 +1833,6 @@ if CPUS["M6502"] then { MAME_DIR .. "src/devices/cpu/m6502/odeco16.lst", GEN_DIR .. "emu/cpu/m6502/deco16.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/ddeco16.lst" }, {"@echo Generating deco16 instruction source file...", PYTHON .. " $(1) s deco16 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/om4510.lst", GEN_DIR .. "emu/cpu/m6502/m4510.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm4510.lst" }, {"@echo Generating m4510 instruction source file...", PYTHON .. " $(1) s m4510 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/om6502.lst", GEN_DIR .. "emu/cpu/m6502/m6502.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6502.lst" }, {"@echo Generating m6502 instruction source file...", PYTHON .. " $(1) s m6502 $(<) $(2) $(@)" }}, - { MAME_DIR .. "src/devices/cpu/m6502/om65c02.lst", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65c02.lst" }, {"@echo Generating m65c02 instruction source file...", PYTHON .. " $(1) s m65c02 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/om65ce02.lst", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65ce02.lst" }, {"@echo Generating m65ce02 instruction source file...", PYTHON .. " $(1) s m65ce02 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/om6509.lst", GEN_DIR .. "emu/cpu/m6502/m6509.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6509.lst" }, {"@echo Generating m6509 instruction source file...", PYTHON .. " $(1) s m6509 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/om6510.lst", GEN_DIR .. "emu/cpu/m6502/m6510.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6510.lst" }, {"@echo Generating m6510 instruction source file...", PYTHON .. " $(1) s m6510 $(<) $(2) $(@)" }}, @@ -1841,6 +1840,7 @@ if CPUS["M6502"] then { MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", }, {"@echo Generating r65c02 instruction source file...", PYTHON .. " $(1) s r65c02 - $(<) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/or65c19.lst", GEN_DIR .. "emu/cpu/m6502/r65c19.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dr65c19.lst" }, {"@echo Generating r65c19 instruction source file...", PYTHON .. " $(1) s r65c19 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/orp2a03.lst", GEN_DIR .. "emu/cpu/m6502/rp2a03.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/drp2a03.lst" }, {"@echo Generating rp2a03 instruction source file...", PYTHON .. " $(1) s rp2a03_core $(<) $(2) $(@)" }}, + { MAME_DIR .. "src/devices/cpu/m6502/ow65c02.lst", GEN_DIR .. "emu/cpu/m6502/w65c02.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dw65c02.lst" }, {"@echo Generating w65c02 instruction source file...", PYTHON .. " $(1) s w65c02 $(<) $(2) $(@)" }}, { MAME_DIR .. "src/devices/cpu/m6502/ow65c02s.lst", GEN_DIR .. "emu/cpu/m6502/w65c02s.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dw65c02s.lst" }, {"@echo Generating w65c02s instruction source file...", PYTHON .. " $(1) s w65c02s $(<) $(2) $(@)" }}, } @@ -1850,12 +1850,12 @@ if CPUS["M6502"] then { MAME_DIR .. "src/devices/cpu/m6502/m6502.cpp", GEN_DIR .. "emu/cpu/m6502/m6502.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/m6509.cpp", GEN_DIR .. "emu/cpu/m6502/m6509.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/m6510.cpp", GEN_DIR .. "emu/cpu/m6502/m6510.hxx" }, - { MAME_DIR .. "src/devices/cpu/m6502/m65c02.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/m65ce02.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/m740.cpp", GEN_DIR .. "emu/cpu/m6502/m740.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/r65c02.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/r65c19.cpp", GEN_DIR .. "emu/cpu/m6502/r65c19.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/rp2a03.cpp", GEN_DIR .. "emu/cpu/m6502/rp2a03.hxx" }, + { MAME_DIR .. "src/devices/cpu/m6502/w65c02.cpp", GEN_DIR .. "emu/cpu/m6502/w65c02.hxx" }, { MAME_DIR .. "src/devices/cpu/m6502/w65c02s.cpp", GEN_DIR .. "emu/cpu/m6502/w65c02s.hxx" }, } end @@ -1905,7 +1905,6 @@ if opt_tool(CPUS, "M6502") then table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/odeco16.lst", GEN_DIR .. "emu/cpu/m6502/deco16d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/ddeco16.lst" }, {"@echo Generating deco16 disassembler source file...", PYTHON .. " $(1) d deco16 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om4510.lst", GEN_DIR .. "emu/cpu/m6502/m4510d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm4510.lst" }, {"@echo Generating m4510 disassembler source file...", PYTHON .. " $(1) d m4510 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om6502.lst", GEN_DIR .. "emu/cpu/m6502/m6502d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6502.lst" }, {"@echo Generating m6502 disassembler source file...", PYTHON .. " $(1) d m6502 $(<) $(2) $(@)" }}) - table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om65c02.lst", GEN_DIR .. "emu/cpu/m6502/m65c02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65c02.lst" }, {"@echo Generating m65c02 disassembler source file...", PYTHON .. " $(1) d m65c02 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om65ce02.lst", GEN_DIR .. "emu/cpu/m6502/m65ce02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm65ce02.lst" }, {"@echo Generating m65ce02 disassembler source file...", PYTHON .. " $(1) d m65ce02 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om6509.lst", GEN_DIR .. "emu/cpu/m6502/m6509d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6509.lst" }, {"@echo Generating m6509 disassembler source file...", PYTHON .. " $(1) d m6509 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/om6510.lst", GEN_DIR .. "emu/cpu/m6502/m6510d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dm6510.lst" }, {"@echo Generating m6510 disassembler source file...", PYTHON .. " $(1) d m6510 $(<) $(2) $(@)" }}) @@ -1913,18 +1912,19 @@ if opt_tool(CPUS, "M6502") then table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/dr65c02.lst", GEN_DIR .. "emu/cpu/m6502/r65c02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", }, {"@echo Generating r65c02 disassembler source file...", PYTHON .. " $(1) d r65c02 - $(<) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/or65c19.lst", GEN_DIR .. "emu/cpu/m6502/r65c19d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dr65c19.lst" }, {"@echo Generating r65c19 disassembler source file...", PYTHON .. " $(1) d r65c19 $(<) $(2) $(@)" }}) table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/orp2a03.lst", GEN_DIR .. "emu/cpu/m6502/rp2a03d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/drp2a03.lst" }, {"@echo Generating rp2a03 disassembler source file...", PYTHON .. " $(1) d rp2a03 $(<) $(2) $(@)" }}) + table.insert(disasm_custombuildtask, { MAME_DIR .. "src/devices/cpu/m6502/ow65c02.lst", GEN_DIR .. "emu/cpu/m6502/w65c02d.hxx", { MAME_DIR .. "src/devices/cpu/m6502/m6502make.py", MAME_DIR .. "src/devices/cpu/m6502/dw65c02.lst" }, {"@echo Generating w65c02 disassembler source file...", PYTHON .. " $(1) d w65c02 $(<) $(2) $(@)" }}) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/deco16d.cpp", GEN_DIR .. "emu/cpu/m6502/deco16d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m4510d.cpp", GEN_DIR .. "emu/cpu/m6502/m4510d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6502d.cpp", GEN_DIR .. "emu/cpu/m6502/m6502d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6509d.cpp", GEN_DIR .. "emu/cpu/m6502/m6509d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m6510d.cpp", GEN_DIR .. "emu/cpu/m6502/m6510d.hxx" }) - table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65c02d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.cpp", GEN_DIR .. "emu/cpu/m6502/m65ce02d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/m740d.cpp", GEN_DIR .. "emu/cpu/m6502/m740d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/r65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/r65c02d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/r65c19d.cpp", GEN_DIR .. "emu/cpu/m6502/r65c19d.hxx" }) table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.cpp", GEN_DIR .. "emu/cpu/m6502/rp2a03d.hxx" }) + table.insert(disasm_dependency, { MAME_DIR .. "src/devices/cpu/m6502/w65c02d.cpp", GEN_DIR .. "emu/cpu/m6502/w65c02d.hxx" }) table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/deco16d.cpp") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/deco16d.h") @@ -1936,8 +1936,6 @@ if opt_tool(CPUS, "M6502") then table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m6509d.h") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m6510d.cpp") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m6510d.h") - table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m65c02d.cpp") - table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m65c02d.h") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.cpp") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m65ce02d.h") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/m740d.cpp") @@ -1948,6 +1946,8 @@ if opt_tool(CPUS, "M6502") then table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/r65c19d.h") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.cpp") table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/rp2a03d.h") + table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/w65c02d.cpp") + table.insert(disasm_files, MAME_DIR .. "src/devices/cpu/m6502/w65c02d.h") end if opt_tool(CPUS, "XAVIX") then diff --git a/src/devices/bus/a2bus/a2superdrive.cpp b/src/devices/bus/a2bus/a2superdrive.cpp index f9ce022a672..922c9bc0403 100644 --- a/src/devices/bus/a2bus/a2superdrive.cpp +++ b/src/devices/bus/a2bus/a2superdrive.cpp @@ -74,11 +74,10 @@ protected: virtual void write_c800(uint16_t offset, uint8_t data) override; private: + void w65c02_mem(address_map &map) ATTR_COLD; - void m65c02_mem(address_map &map) ATTR_COLD; - - void m65c02_w(offs_t offset, uint8_t value); - uint8_t m65c02_r(offs_t offset); + void w65c02_w(offs_t offset, uint8_t value); + uint8_t w65c02_r(offs_t offset); void phases_w(uint8_t phases); void sel35_w(int sel35); @@ -111,10 +110,10 @@ const tiny_rom_entry *a2bus_superdrive_device::device_rom_region() const return ROM_NAME( superdrive ); } -void a2bus_superdrive_device::m65c02_mem(address_map &map) +void a2bus_superdrive_device::w65c02_mem(address_map &map) { map(0x0000, 0x7fff).ram().share(m_ram); - map(0x0a00, 0x0aff).rw(FUNC(a2bus_superdrive_device::m65c02_r), FUNC(a2bus_superdrive_device::m65c02_w)); + map(0x0a00, 0x0aff).rw(FUNC(a2bus_superdrive_device::w65c02_r), FUNC(a2bus_superdrive_device::w65c02_w)); map(0x8000, 0xffff).rom().region(SUPERDRIVE_ROM_REGION, 0x0000); } @@ -123,7 +122,7 @@ void a2bus_superdrive_device::device_add_mconfig(machine_config &config) { W65C02S(config, m_65c02, DERIVED_CLOCK(2, 7)); /* ~ 2.046 MHz */ - m_65c02->set_addrmap(AS_PROGRAM, &a2bus_superdrive_device::m65c02_mem); + m_65c02->set_addrmap(AS_PROGRAM, &a2bus_superdrive_device::w65c02_mem); SWIM1(config, m_fdc, C16M); @@ -221,7 +220,7 @@ void a2bus_superdrive_device::write_c800(uint16_t offset, uint8_t data) /* uc 65c02 i/o at $0a00 */ -void a2bus_superdrive_device::m65c02_w(offs_t offset, uint8_t value) +void a2bus_superdrive_device::w65c02_w(offs_t offset, uint8_t value) { // $00-$0f = swim registers // $40 = head sel low @@ -265,7 +264,7 @@ void a2bus_superdrive_device::m65c02_w(offs_t offset, uint8_t value) } } -uint8_t a2bus_superdrive_device::m65c02_r(offs_t offset) +uint8_t a2bus_superdrive_device::w65c02_r(offs_t offset) { floppy_image_device *floppy = nullptr; diff --git a/src/devices/bus/a2bus/transwarp.cpp b/src/devices/bus/a2bus/transwarp.cpp index da737f84e2f..34b3a3305b9 100644 --- a/src/devices/bus/a2bus/transwarp.cpp +++ b/src/devices/bus/a2bus/transwarp.cpp @@ -22,7 +22,7 @@ #include "emu.h" #include "transwarp.h" #include "cpu/m6502/m6502.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" //************************************************************************** @@ -65,7 +65,7 @@ private: uint8_t dma_r(offs_t offset); void dma_w(offs_t offset, uint8_t data); - void m65c02_mem(address_map &map) ATTR_COLD; + void w65c02_mem(address_map &map) ATTR_COLD; void hit_slot(int slot); void hit_slot_joy(); @@ -77,7 +77,7 @@ private: DEFINE_DEVICE_TYPE_PRIVATE(A2BUS_TRANSWARP, device_a2bus_card_interface, a2bus_transwarp_device, "a2twarp", "Applied Engineering TransWarp") -void a2bus_transwarp_device::m65c02_mem(address_map &map) +void a2bus_transwarp_device::w65c02_mem(address_map &map) { map(0x0000, 0xffff).rw(FUNC(a2bus_transwarp_device::dma_r), FUNC(a2bus_transwarp_device::dma_w)); } @@ -169,8 +169,8 @@ ioport_constructor a2bus_transwarp_device::device_input_ports() const void a2bus_transwarp_device::device_add_mconfig(machine_config &config) { - M65C02(config, m_ourcpu, DERIVED_CLOCK(1, 2)); - m_ourcpu->set_addrmap(AS_PROGRAM, &a2bus_transwarp_device::m65c02_mem); + W65C02(config, m_ourcpu, DERIVED_CLOCK(1, 2)); + m_ourcpu->set_addrmap(AS_PROGRAM, &a2bus_transwarp_device::w65c02_mem); } //************************************************************************** diff --git a/src/devices/bus/bbc/tube/tube_6502.cpp b/src/devices/bus/bbc/tube/tube_6502.cpp index dcca3ba692e..732fd38775a 100644 --- a/src/devices/bus/bbc/tube/tube_6502.cpp +++ b/src/devices/bus/bbc/tube/tube_6502.cpp @@ -134,8 +134,8 @@ void bbc_tube_6502_device::device_add_mconfig(machine_config &config) m_maincpu->set_addrmap(AS_PROGRAM, &bbc_tube_6502_device::tube_6502_mem); TUBE(config, m_ula); - m_ula->pnmi_handler().set_inputline(m_maincpu, M65C02_NMI_LINE); - m_ula->pirq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); + m_ula->pnmi_handler().set_inputline(m_maincpu, G65SC02_NMI_LINE); + m_ula->pirq_handler().set_inputline(m_maincpu, G65SC02_IRQ_LINE); m_ula->prst_handler().set(FUNC(bbc_tube_6502_device::prst_w)); RAM(config, m_ram).set_default_size("64K").set_default_value(0); diff --git a/src/devices/bus/bbc/tube/tube_rc6502.cpp b/src/devices/bus/bbc/tube/tube_rc6502.cpp index 85f3fce1f11..70a0d1ea2d1 100644 --- a/src/devices/bus/bbc/tube/tube_rc6502.cpp +++ b/src/devices/bus/bbc/tube/tube_rc6502.cpp @@ -135,8 +135,8 @@ void bbc_tube_rc6502_device::device_add_mconfig(machine_config &config) add_common_devices(config); TUBE(config, m_ula); - m_ula->pnmi_handler().set_inputline(m_maincpu, M65C02_NMI_LINE); - m_ula->pirq_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); + m_ula->pnmi_handler().set_inputline(m_maincpu, W65C02_NMI_LINE); + m_ula->pirq_handler().set_inputline(m_maincpu, W65C02_IRQ_LINE); m_ula->prst_handler().set(FUNC(bbc_tube_rc6502_device::prst_w)); } diff --git a/src/devices/bus/cbmiec/fd2000.cpp b/src/devices/bus/cbmiec/fd2000.cpp index 4b4834271a1..91b3cc9ae44 100644 --- a/src/devices/bus/cbmiec/fd2000.cpp +++ b/src/devices/bus/cbmiec/fd2000.cpp @@ -219,7 +219,7 @@ void fd2000_device::floppy_formats(format_registration &fr) void fd2000_device::add_common_devices(machine_config &config) { - M65C02(config, m_maincpu, 24_MHz_XTAL / 12); + W65C02(config, m_maincpu, 24_MHz_XTAL / 12); via6522_device &via(R65C22(config, G65SC22P2_TAG, 24_MHz_XTAL / 12)); via.readpa_handler().set(FUNC(fd2000_device::via_pa_r)); diff --git a/src/devices/bus/cbmiec/fd2000.h b/src/devices/bus/cbmiec/fd2000.h index 04ac1264f79..d632e77c11f 100644 --- a/src/devices/bus/cbmiec/fd2000.h +++ b/src/devices/bus/cbmiec/fd2000.h @@ -12,7 +12,7 @@ #pragma once #include "cbmiec.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "imagedev/floppy.h" #include "machine/6522via.h" #include "machine/upd765.h" @@ -58,7 +58,7 @@ protected: void add_common_devices(machine_config &config); - required_device m_maincpu; + required_device m_maincpu; required_device m_fdc; required_device m_floppy0; diff --git a/src/devices/bus/cbmiec/serialbox.cpp b/src/devices/bus/cbmiec/serialbox.cpp index 9d9dcc114cf..950cf46b964 100644 --- a/src/devices/bus/cbmiec/serialbox.cpp +++ b/src/devices/bus/cbmiec/serialbox.cpp @@ -71,7 +71,7 @@ void cbm_serial_box_device::serial_box_mem(address_map &map) void cbm_serial_box_device::device_add_mconfig(machine_config &config) { - M65C02(config, m_maincpu, XTAL(4'000'000)/4); + W65C02(config, m_maincpu, XTAL(4'000'000)/4); m_maincpu->set_addrmap(AS_PROGRAM, &cbm_serial_box_device::serial_box_mem); } diff --git a/src/devices/bus/cbmiec/serialbox.h b/src/devices/bus/cbmiec/serialbox.h index 4b51d5752ef..268013ffb45 100644 --- a/src/devices/bus/cbmiec/serialbox.h +++ b/src/devices/bus/cbmiec/serialbox.h @@ -12,7 +12,7 @@ #pragma once #include "cbmiec.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" @@ -43,7 +43,7 @@ protected: void cbm_iec_reset(int state) override; private: - required_device m_maincpu; + required_device m_maincpu; void serial_box_mem(address_map &map) ATTR_COLD; }; diff --git a/src/devices/cpu/m6502/dm65c02.lst b/src/devices/cpu/m6502/dm65c02.lst deleted file mode 100644 index cb76456593b..00000000000 --- a/src/devices/cpu/m6502/dm65c02.lst +++ /dev/null @@ -1,20 +0,0 @@ -# license:BSD-3-Clause -# copyright-holders:Olivier Galibert -# m65c02 -brk_c_imp ora_idx nop_imm nop_c_imp tsb_zpg ora_zpg asl_c_zpg nop_c_imp php_imp ora_imm asl_acc nop_c_imp tsb_aba ora_aba asl_c_aba nop_c_imp -bpl_rel ora_idy ora_zpi nop_c_imp trb_zpg ora_zpx asl_c_zpx nop_c_imp clc_imp ora_aby inc_acc nop_c_imp trb_aba ora_abx asl_c_abx nop_c_imp -jsr_adr and_idx nop_imm nop_c_imp bit_zpg and_zpg rol_c_zpg nop_c_imp plp_imp and_imm rol_acc nop_c_imp bit_aba and_aba rol_c_aba nop_c_imp -bmi_rel and_idy and_zpi nop_c_imp bit_zpx and_zpx rol_c_zpx nop_c_imp sec_imp and_aby dec_acc nop_c_imp bit_abx and_abx rol_c_abx nop_c_imp -rti_imp eor_idx nop_imm nop_c_imp nop_zpg eor_zpg lsr_c_zpg nop_c_imp pha_imp eor_imm lsr_acc nop_c_imp jmp_adr eor_aba lsr_c_aba nop_c_imp -bvc_rel eor_idy eor_zpi nop_c_imp nop_zpx eor_zpx lsr_c_zpx nop_c_imp cli_imp eor_aby phy_imp nop_c_imp nop_c_aba eor_abx lsr_c_abx nop_c_imp -rts_imp adc_c_idx nop_imm nop_c_imp stz_zpg adc_c_zpg ror_c_zpg nop_c_imp pla_imp adc_c_imm ror_acc nop_c_imp jmp_c_ind adc_c_aba ror_c_aba nop_c_imp -bvs_rel adc_c_idy adc_c_zpi nop_c_imp stz_zpx adc_c_zpx ror_c_zpx nop_c_imp sei_imp adc_c_aby ply_imp nop_c_imp jmp_iax adc_c_abx ror_c_abx nop_c_imp -bra_rel sta_idx nop_imm nop_c_imp sty_zpg sta_zpg stx_zpg nop_c_imp dey_imp bit_imm txa_imp nop_c_imp sty_aba sta_aba stx_aba nop_c_imp -bcc_rel sta_idy sta_zpi nop_c_imp sty_zpx sta_zpx stx_zpy nop_c_imp tya_imp sta_aby txs_imp nop_c_imp stz_aba sta_abx stz_abx nop_c_imp -ldy_imm lda_idx ldx_imm nop_c_imp ldy_zpg lda_zpg ldx_zpg nop_c_imp tay_imp lda_imm tax_imp nop_c_imp ldy_aba lda_aba ldx_aba nop_c_imp -bcs_rel lda_idy lda_zpi nop_c_imp ldy_zpx lda_zpx ldx_zpy nop_c_imp clv_imp lda_aby tsx_imp nop_c_imp ldy_abx lda_abx ldx_aby nop_c_imp -cpy_imm cmp_idx nop_imm nop_c_imp cpy_zpg cmp_zpg dec_c_zpg nop_c_imp iny_imp cmp_imm dex_imp nop_c_imp cpy_aba cmp_aba dec_c_aba nop_c_imp -bne_rel cmp_idy cmp_zpi nop_c_imp nop_zpx cmp_zpx dec_c_zpx nop_c_imp cld_imp cmp_aby phx_imp nop_c_imp nop_c_abx cmp_abx dec_c_abx nop_c_imp -cpx_imm sbc_c_idx nop_imm nop_c_imp cpx_zpg sbc_c_zpg inc_c_zpg nop_c_imp inx_imp sbc_c_imm nop_imp nop_c_imp cpx_aba sbc_c_aba inc_c_aba nop_c_imp -beq_rel sbc_c_idy sbc_c_zpi nop_c_imp nop_zpx sbc_c_zpx inc_c_zpx nop_c_imp sed_imp sbc_c_aby plx_imp nop_c_imp nop_c_abx sbc_c_abx inc_c_abx nop_c_imp -reset_c diff --git a/src/devices/cpu/m6502/dw65c02.lst b/src/devices/cpu/m6502/dw65c02.lst new file mode 100644 index 00000000000..d253cfa2774 --- /dev/null +++ b/src/devices/cpu/m6502/dw65c02.lst @@ -0,0 +1,20 @@ +# license:BSD-3-Clause +# copyright-holders:Olivier Galibert +# w65c02 +brk_c_imp ora_idx nop_imm nop_c_imp tsb_zpg ora_zpg asl_c_zpg nop_c_imp php_imp ora_imm asl_acc nop_c_imp tsb_aba ora_aba asl_c_aba nop_c_imp +bpl_rel ora_idy ora_zpi nop_c_imp trb_zpg ora_zpx asl_c_zpx nop_c_imp clc_imp ora_aby inc_acc nop_c_imp trb_aba ora_abx asl_c_abx nop_c_imp +jsr_adr and_idx nop_imm nop_c_imp bit_zpg and_zpg rol_c_zpg nop_c_imp plp_imp and_imm rol_acc nop_c_imp bit_aba and_aba rol_c_aba nop_c_imp +bmi_rel and_idy and_zpi nop_c_imp bit_zpx and_zpx rol_c_zpx nop_c_imp sec_imp and_aby dec_acc nop_c_imp bit_abx and_abx rol_c_abx nop_c_imp +rti_imp eor_idx nop_imm nop_c_imp nop_zpg eor_zpg lsr_c_zpg nop_c_imp pha_imp eor_imm lsr_acc nop_c_imp jmp_adr eor_aba lsr_c_aba nop_c_imp +bvc_rel eor_idy eor_zpi nop_c_imp nop_zpx eor_zpx lsr_c_zpx nop_c_imp cli_imp eor_aby phy_imp nop_c_imp nop_c_aba eor_abx lsr_c_abx nop_c_imp +rts_imp adc_c_idx nop_imm nop_c_imp stz_zpg adc_c_zpg ror_c_zpg nop_c_imp pla_imp adc_c_imm ror_acc nop_c_imp jmp_c_ind adc_c_aba ror_c_aba nop_c_imp +bvs_rel adc_c_idy adc_c_zpi nop_c_imp stz_zpx adc_c_zpx ror_c_zpx nop_c_imp sei_imp adc_c_aby ply_imp nop_c_imp jmp_iax adc_c_abx ror_c_abx nop_c_imp +bra_rel sta_idx nop_imm nop_c_imp sty_zpg sta_zpg stx_zpg nop_c_imp dey_imp bit_imm txa_imp nop_c_imp sty_aba sta_aba stx_aba nop_c_imp +bcc_rel sta_idy sta_zpi nop_c_imp sty_zpx sta_zpx stx_zpy nop_c_imp tya_imp sta_aby txs_imp nop_c_imp stz_aba sta_abx stz_abx nop_c_imp +ldy_imm lda_idx ldx_imm nop_c_imp ldy_zpg lda_zpg ldx_zpg nop_c_imp tay_imp lda_imm tax_imp nop_c_imp ldy_aba lda_aba ldx_aba nop_c_imp +bcs_rel lda_idy lda_zpi nop_c_imp ldy_zpx lda_zpx ldx_zpy nop_c_imp clv_imp lda_aby tsx_imp nop_c_imp ldy_abx lda_abx ldx_aby nop_c_imp +cpy_imm cmp_idx nop_imm nop_c_imp cpy_zpg cmp_zpg dec_c_zpg nop_c_imp iny_imp cmp_imm dex_imp nop_c_imp cpy_aba cmp_aba dec_c_aba nop_c_imp +bne_rel cmp_idy cmp_zpi nop_c_imp nop_zpx cmp_zpx dec_c_zpx nop_c_imp cld_imp cmp_aby phx_imp nop_c_imp nop_c_abx cmp_abx dec_c_abx nop_c_imp +cpx_imm sbc_c_idx nop_imm nop_c_imp cpx_zpg sbc_c_zpg inc_c_zpg nop_c_imp inx_imp sbc_c_imm nop_imp nop_c_imp cpx_aba sbc_c_aba inc_c_aba nop_c_imp +beq_rel sbc_c_idy sbc_c_zpi nop_c_imp nop_zpx sbc_c_zpx inc_c_zpx nop_c_imp sed_imp sbc_c_aby plx_imp nop_c_imp nop_c_abx sbc_c_abx inc_c_abx nop_c_imp +reset_c diff --git a/src/devices/cpu/m6502/gew12.cpp b/src/devices/cpu/m6502/gew12.cpp index b087b18f43d..2459bb13517 100644 --- a/src/devices/cpu/m6502/gew12.cpp +++ b/src/devices/cpu/m6502/gew12.cpp @@ -19,7 +19,7 @@ DEFINE_DEVICE_TYPE(GEW12, gew12_device, "gew12", "Yamaha YMW728-F (GEW12)") gew12_device::gew12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6502_mcu_device_base(mconfig, GEW12, tag, owner, clock) + : m6502_mcu_device_base(mconfig, GEW12, tag, owner, clock) , device_mixer_interface(mconfig, *this, 2) , m_in_cb(*this, 0xff), m_out_cb(*this) , m_rom(*this, DEVICE_SELF) @@ -36,7 +36,7 @@ void gew12_device::device_add_mconfig(machine_config &config) void gew12_device::device_start() { - m65c02_device::device_start(); + w65c02_device::device_start(); m_bank_mask = device_generic_cart_interface::map_non_power_of_two( unsigned(m_rom->bytes() >> 14), @@ -61,7 +61,7 @@ void gew12_device::device_start() void gew12_device::device_reset() { - m6502_mcu_device_base::device_reset(); + m6502_mcu_device_base::device_reset(); internal_update(); m_irq_pending = 0; @@ -142,9 +142,9 @@ void gew12_device::internal_irq(int num, int state) void gew12_device::irq_update() { if (m_irq_pending & m_irq_enable) - set_input_line(M65C02_IRQ_LINE, ASSERT_LINE); + set_input_line(W65C02_IRQ_LINE, ASSERT_LINE); else - set_input_line(M65C02_IRQ_LINE, CLEAR_LINE); + set_input_line(W65C02_IRQ_LINE, CLEAR_LINE); } diff --git a/src/devices/cpu/m6502/gew12.h b/src/devices/cpu/m6502/gew12.h index bc4f2a8ac59..101116c6903 100644 --- a/src/devices/cpu/m6502/gew12.h +++ b/src/devices/cpu/m6502/gew12.h @@ -11,9 +11,9 @@ #define MAME_CPU_M6502_GEW12_H #include "m6502mcu.h" -#include "m65c02.h" +#include "w65c02.h" -class gew12_device : public m6502_mcu_device_base, public device_mixer_interface { +class gew12_device : public m6502_mcu_device_base, public device_mixer_interface { public: gew12_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); @@ -27,7 +27,7 @@ protected: virtual void device_reset() override ATTR_COLD; virtual void internal_update(u64 current_time) override; - using m6502_mcu_device_base::internal_update; + using m6502_mcu_device_base::internal_update; enum { diff --git a/src/devices/cpu/m6502/gew7.cpp b/src/devices/cpu/m6502/gew7.cpp index 7fd85ad2538..2594a2166ef 100644 --- a/src/devices/cpu/m6502/gew7.cpp +++ b/src/devices/cpu/m6502/gew7.cpp @@ -19,7 +19,7 @@ DEFINE_DEVICE_TYPE(GEW7, gew7_device, "gew7", "Yamaha YMW270-F (GEW7)") gew7_device::gew7_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) - : m6502_mcu_device_base(mconfig, GEW7, tag, owner, clock) + : m6502_mcu_device_base(mconfig, GEW7, tag, owner, clock) , device_mixer_interface(mconfig, *this, 2) , m_in_cb(*this, 0xff), m_out_cb(*this) , m_rom(*this, DEVICE_SELF) @@ -43,7 +43,7 @@ void gew7_device::device_add_mconfig(machine_config &config) void gew7_device::device_start() { - m6502_mcu_device_base::device_start(); + m6502_mcu_device_base::device_start(); m_bank_mask = device_generic_cart_interface::map_non_power_of_two( unsigned(m_rom->bytes() >> 14), @@ -68,7 +68,7 @@ void gew7_device::device_start() void gew7_device::device_reset() { - m6502_mcu_device_base::device_reset(); + m6502_mcu_device_base::device_reset(); internal_update(); m_timer_stat = m_timer_en = 0; @@ -117,7 +117,7 @@ void gew7_device::timer_stat_w(u8 data) m_timer_stat &= ~data; if (!(m_timer_stat & 3)) - set_input_line(M65C02_IRQ_LINE, CLEAR_LINE); + set_input_line(W65C02_IRQ_LINE, CLEAR_LINE); internal_update(); } @@ -165,7 +165,7 @@ u64 gew7_device::timer_update(int num, u64 current_time) if (elapsed > m_timer_count[num]) { m_timer_stat |= (1 << num); - set_input_line(M65C02_IRQ_LINE, ASSERT_LINE); + set_input_line(W65C02_IRQ_LINE, ASSERT_LINE); } m_timer_count[num] -= elapsed; diff --git a/src/devices/cpu/m6502/gew7.h b/src/devices/cpu/m6502/gew7.h index 6a2a6de27eb..5c9a891559e 100644 --- a/src/devices/cpu/m6502/gew7.h +++ b/src/devices/cpu/m6502/gew7.h @@ -11,10 +11,10 @@ #define MAME_CPU_M6502_GEW7_H #include "m6502mcu.h" -#include "m65c02.h" +#include "w65c02.h" #include "sound/gew7.h" -class gew7_device : public m6502_mcu_device_base, public device_mixer_interface +class gew7_device : public m6502_mcu_device_base, public device_mixer_interface { public: gew7_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock); @@ -32,7 +32,7 @@ protected: virtual void device_reset() override ATTR_COLD; virtual void internal_update(u64 current_time) override; - using m6502_mcu_device_base::internal_update; + using m6502_mcu_device_base::internal_update; u8 timer_stat_r(); void timer_stat_w(u8 data); diff --git a/src/devices/cpu/m6502/m6502.txt b/src/devices/cpu/m6502/m6502.txt index c774747a98a..2d4564ee0be 100644 --- a/src/devices/cpu/m6502/m6502.txt +++ b/src/devices/cpu/m6502/m6502.txt @@ -87,10 +87,10 @@ additional commands atari lynx bastian schicks bll integrated g65sc02 cpu core -no bbr bbs instructions, else m65c02 compatible +no bbr bbs instructions, else w65c02 compatible watara supervision -integrated m65c02 cpu core (or g65sc02 or m65ce02?) +integrated w65c02 cpu core (or g65sc02 or m65ce02?) gte65816 (nintendo snes) diff --git a/src/devices/cpu/m6502/m65c02.cpp b/src/devices/cpu/m6502/m65c02.cpp deleted file mode 100644 index e79380fe83d..00000000000 --- a/src/devices/cpu/m6502/m65c02.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -/*************************************************************************** - - m65c02.cpp - - WDC W65C02, CMOS variant with some additional instructions - (but not the bitwise ones) - -***************************************************************************/ - -#include "emu.h" -#include "m65c02.h" -#include "m65c02d.h" - -DEFINE_DEVICE_TYPE(M65C02, m65c02_device, "m65c02", "WDC W65C02") - -m65c02_device::m65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, M65C02, tag, owner, clock) -{ -} - -m65c02_device::m65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : - m6502_device(mconfig, type, tag, owner, clock) -{ -} - -std::unique_ptr m65c02_device::create_disassembler() -{ - return std::make_unique(); -} - -#include "cpu/m6502/m65c02.hxx" diff --git a/src/devices/cpu/m6502/m65c02.h b/src/devices/cpu/m6502/m65c02.h deleted file mode 100644 index 5a89f301236..00000000000 --- a/src/devices/cpu/m6502/m65c02.h +++ /dev/null @@ -1,77 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -/*************************************************************************** - - m65c02.h - - WDC W65C02, CMOS variant with some additional instructions - (but not the bitwise ones) - -***************************************************************************/ -#ifndef MAME_CPU_M6502_M65C02_H -#define MAME_CPU_M6502_M65C02_H - -#pragma once - -#include "m6502.h" - -class m65c02_device : public m6502_device { -public: - m65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - - virtual std::unique_ptr create_disassembler() override; - virtual void do_exec_full() override; - virtual void do_exec_partial() override; - -protected: - m65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); - -#define O(o) void o ## _full(); void o ## _partial() - - // 65c02 opcodes - O(adc_c_aba); O(adc_c_abx); O(adc_c_aby); O(adc_c_idx); O(adc_c_idy); O(adc_c_imm); O(adc_c_zpg); O(adc_c_zpi); O(adc_c_zpx); - O(and_zpi); - O(asl_c_aba); O(asl_c_abx); O(asl_c_zpg); O(asl_c_zpx); - O(bbr_zpb); - O(bbs_zpb); - O(bit_abx); O(bit_imm); O(bit_zpx); - O(bra_rel); - O(brk_c_imp); - O(cmp_zpi); - O(dec_acc); O(dec_c_aba); O(dec_c_abx); O(dec_c_zpg); O(dec_c_zpx); - O(eor_zpi); - O(inc_acc); O(inc_c_aba); O(inc_c_abx); O(inc_c_zpg); O(inc_c_zpx); - O(jmp_c_ind); O(jmp_iax); - O(lda_zpi); - O(lsr_c_aba); O(lsr_c_abx); O(lsr_c_zpg); O(lsr_c_zpx); - O(nop_c_aba); O(nop_c_abx); O(nop_c_imp); - O(ora_zpi); - O(phx_imp); - O(phy_imp); - O(plx_imp); - O(ply_imp); - O(rmb_bzp); - O(rol_c_aba); O(rol_c_abx); O(rol_c_zpg); O(rol_c_zpx); - O(ror_c_aba); O(ror_c_abx); O(ror_c_zpg); O(ror_c_zpx); - O(sbc_c_aba); O(sbc_c_abx); O(sbc_c_aby); O(sbc_c_idx); O(sbc_c_idy); O(sbc_c_imm); O(sbc_c_zpg); O(sbc_c_zpi); O(sbc_c_zpx); - O(smb_bzp); - O(stp_imp); - O(sta_zpi); - O(stz_aba); O(stz_abx); O(stz_zpg); O(stz_zpx); - O(trb_aba); O(trb_zpg); - O(tsb_aba); O(tsb_zpg); - O(wai_imp); - O(reset_c); - -#undef O -}; - -enum { - M65C02_IRQ_LINE = m6502_device::IRQ_LINE, - M65C02_NMI_LINE = m6502_device::NMI_LINE, - M65C02_SET_OVERFLOW = m6502_device::V_LINE -}; - -DECLARE_DEVICE_TYPE(M65C02, m65c02_device) - -#endif // MAME_CPU_M6502_M65C02_H diff --git a/src/devices/cpu/m6502/m65c02d.cpp b/src/devices/cpu/m6502/m65c02d.cpp deleted file mode 100644 index 2c7b3b81fc3..00000000000 --- a/src/devices/cpu/m6502/m65c02d.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -/*************************************************************************** - - m65c02d.cpp - - MOS Technology 6502, CMOS variant with some additional instructions - (but not the bitwise ones), disassembler - -***************************************************************************/ - -#include "emu.h" -#include "m65c02d.h" -#include "cpu/m6502/m65c02d.hxx" - -m65c02_disassembler::m65c02_disassembler() : m6502_base_disassembler(disasm_entries) -{ -} diff --git a/src/devices/cpu/m6502/m65c02d.h b/src/devices/cpu/m6502/m65c02d.h deleted file mode 100644 index 77b134c4b95..00000000000 --- a/src/devices/cpu/m6502/m65c02d.h +++ /dev/null @@ -1,29 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Olivier Galibert -/*************************************************************************** - - m65c02d.h - - MOS Technology 6502, CMOS variant with some additional instructions - (but not the bitwise ones), disassembler - -***************************************************************************/ - -#ifndef MAME_CPU_M6502_M65C02D_H -#define MAME_CPU_M6502_M65C02D_H - -#pragma once - -#include "m6502d.h" - -class m65c02_disassembler : public m6502_base_disassembler -{ -public: - m65c02_disassembler(); - virtual ~m65c02_disassembler() = default; - -private: - static const disasm_entry disasm_entries[0x100]; -}; - -#endif diff --git a/src/devices/cpu/m6502/m65ce02.cpp b/src/devices/cpu/m6502/m65ce02.cpp index a787eb9dcef..22e6bd5f3c5 100644 --- a/src/devices/cpu/m6502/m65ce02.cpp +++ b/src/devices/cpu/m6502/m65ce02.cpp @@ -20,7 +20,7 @@ m65ce02_device::m65ce02_device(const machine_config &mconfig, const char *tag, d } m65ce02_device::m65ce02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : - m65c02_device(mconfig, type, tag, owner, clock), TMP3(0), Z(0), B(0) + w65c02_device(mconfig, type, tag, owner, clock), TMP3(0), Z(0), B(0) { } @@ -31,7 +31,7 @@ std::unique_ptr m65ce02_device::create_disassembler() void m65ce02_device::init() { - m65c02_device::init(); + w65c02_device::init(); state_add(M65CE02_Z, "Z", Z); state_add(M65CE02_B, "B", B).callimport().formatstr("%2s"); save_item(NAME(B)); @@ -51,7 +51,7 @@ void m65ce02_device::device_start() void m65ce02_device::device_reset() { - m65c02_device::device_reset(); + w65c02_device::device_reset(); Z = 0x00; B = 0x0000; } diff --git a/src/devices/cpu/m6502/m65ce02.h b/src/devices/cpu/m6502/m65ce02.h index 3cf488208a1..cf0a48e9a5b 100644 --- a/src/devices/cpu/m6502/m65ce02.h +++ b/src/devices/cpu/m6502/m65ce02.h @@ -12,9 +12,9 @@ #pragma once -#include "m65c02.h" +#include "w65c02.h" -class m65ce02_device : public m65c02_device { +class m65ce02_device : public w65c02_device { public: m65ce02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/cpu/m6502/om65c02.lst b/src/devices/cpu/m6502/om65c02.lst deleted file mode 100644 index a3a0d1e6cde..00000000000 --- a/src/devices/cpu/m6502/om65c02.lst +++ /dev/null @@ -1,897 +0,0 @@ -# license:BSD-3-Clause -# copyright-holders:Olivier Galibert -# m65c02 opcodes - -adc_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - if(page_changing(TMP, X)) { - read(set_l(TMP, TMP+X)); - } - TMP += X; - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_aby - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - if(page_changing(TMP, Y)) { - read(set_l(TMP, TMP+Y)); - } - TMP += Y; - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_idx - TMP2 = read_pc(); - PC++; - read(TMP2); - TMP2 += X; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_idy - TMP2 = read_pc(); - PC++; - TMP = read(TMP2); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - if(page_changing(TMP, Y)) { - read(set_l(TMP, TMP+Y)); - } - TMP2 = read(TMP+Y); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_imm - TMP = read_pc(); - PC++; - do_adc(TMP); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -adc_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP2 = read(uint8_t(TMP+X)); - do_adc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -and_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - A &= TMP2; - set_nz(A); - prefetch(); - -asl_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_asl(TMP2); - write(TMP, TMP2); - prefetch(); - -asl_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_asl(TMP2); - write(TMP, TMP2); - prefetch(); - -asl_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_asl(TMP2); - write(TMP, TMP2); - prefetch(); - -asl_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2 = do_asl(TMP2); - write(TMP, TMP2); - prefetch(); - -bbr_zpb - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP = read_pc(); - PC++; - if(!(TMP2 & (1 << ((inst_state >> 4) & 7)))) { - read_pc(); - if(page_changing(PC, int8_t(TMP))) { - read_arg(set_l(PC, PC+int8_t(TMP))); - } - PC += int8_t(TMP); - } - prefetch(); - -bbs_zpb - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP = read_pc(); - PC++; - if(TMP2 & (1 << ((inst_state >> 4) & 7))) { - read_pc(); - if(page_changing(PC, int8_t(TMP))) { - read_arg(set_l(PC, PC+int8_t(TMP))); - } - PC += int8_t(TMP); - } - prefetch(); - -bit_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - if(page_changing(TMP, X)) { - read(set_l(TMP, TMP+X)); - } - TMP += X; - TMP2 = read(TMP); - do_bit(TMP2); - prefetch(); - -bit_imm - TMP = read_pc(); - PC++; - if(A & TMP) - P &= ~F_Z; - else - P |= F_Z; - prefetch(); - -bit_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP2 = read(uint8_t(TMP+X)); - do_bit(TMP2); - prefetch(); - -bra_rel - TMP = read_pc(); - PC++; - read_pc(); - if(page_changing(PC, int8_t(TMP))) { - read_arg(set_l(PC, PC+int8_t(TMP))); - } - PC += int8_t(TMP); - prefetch(); - -brk_c_imp - if(irq_taken || nmi_pending) { - read_pc(); - } else { - read_pc(); - PC++; - } - write(SP, PC >> 8); - dec_SP(); - write(SP, PC); - dec_SP(); - write(SP, irq_taken || nmi_pending ? P & ~F_B : P); - dec_SP(); - if(irq_taken && nmi_pending) { - standard_irq_callback(NMI_LINE, PC); - PC = read_arg(0xfffa); - PC = set_h(PC, read_arg(0xfffb)); - nmi_pending = false; - } else { - if(irq_taken) - standard_irq_callback(IRQ_LINE, PC); - PC = read_arg(0xfffe); - PC = set_h(PC, read_arg(0xffff)); - } - irq_taken = false; - P = (P | F_I) & ~F_D; // Do *not* move after the prefetch - prefetch(); - inst_state = -1; - -cmp_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - do_cmp(A, TMP2); - prefetch(); - -dec_acc - read_pc(); - A--; - set_nz(A); - prefetch(); - -dec_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2--; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -dec_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2--; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -dec_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2--; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -dec_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2--; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -eor_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - A ^= TMP2; - set_nz(A); - prefetch(); - -inc_acc - read_pc(); - A++; - set_nz(A); - prefetch(); - -inc_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2++; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -inc_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2++; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -inc_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2++; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -inc_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2++; - set_nz(TMP2); - write(TMP, TMP2); - prefetch(); - -jmp_iax - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - PC = read(TMP); - PC = set_h(PC, read(TMP+1)); - prefetch(); - -jmp_c_ind - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - PC = read(TMP); - read(set_l(TMP, TMP+1)); - PC = set_h(PC, read(TMP+1)); - prefetch(); - -lda_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - A = read(TMP); - set_nz(A); - prefetch(); - -lsr_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_lsr(TMP2); - write(TMP, TMP2); - prefetch(); - -lsr_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_lsr(TMP2); - write(TMP, TMP2); - prefetch(); - -lsr_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_lsr(TMP2); - write(TMP, TMP2); - prefetch(); - -lsr_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2 = do_lsr(TMP2); - write(TMP, TMP2); - prefetch(); - -nop_c_imp - prefetch(); - -nop_c_aba - read_pc(); - PC++; - read_pc(); - PC++; - read_pc(); - read_pc(); - read_pc(); - read_pc(); - read_pc(); - prefetch(); - -nop_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - prefetch(); - -ora_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - A |= TMP2; - set_nz(A); - prefetch(); - -phx_imp - read_pc(); - write(SP, X); - dec_SP(); - prefetch(); - -phy_imp - read_pc(); - write(SP, Y); - dec_SP(); - prefetch(); - -plx_imp - read_pc(); - read(SP); - inc_SP(); - X = read(SP); - set_nz(X); - prefetch(); - -ply_imp - read_pc(); - read(SP); - inc_SP(); - Y = read(SP); - set_nz(Y); - prefetch(); - -rmb_bzp - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 &= ~(1 << ((inst_state >> 4) & 7)); - write(TMP, TMP2); - prefetch(); - -rol_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_rol(TMP2); - write(TMP, TMP2); - prefetch(); - -rol_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_rol(TMP2); - write(TMP, TMP2); - prefetch(); - -rol_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_rol(TMP2); - write(TMP, TMP2); - prefetch(); - -rol_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2 = do_rol(TMP2); - write(TMP, TMP2); - prefetch(); - -ror_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_ror(TMP2); - write(TMP, TMP2); - prefetch(); - -ror_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - TMP += X; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_ror(TMP2); - write(TMP, TMP2); - prefetch(); - -ror_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 = do_ror(TMP2); - write(TMP, TMP2); - prefetch(); - -ror_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP = uint8_t(TMP+X); - TMP2 = read(TMP); - read(TMP); - TMP2 = do_ror(TMP2); - write(TMP, TMP2); - prefetch(); - -sbc_c_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - if(page_changing(TMP, X)) { - read(set_l(TMP, TMP+X)); - } - TMP += X; - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_aby - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - if(page_changing(TMP, Y)) { - read(set_l(TMP, TMP+Y)); - } - TMP += Y; - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_idx - TMP2 = read_pc(); - PC++; - read(TMP2); - TMP2 += X; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_idy - TMP2 = read_pc(); - PC++; - TMP = read(TMP2); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - if(page_changing(TMP, Y)) { - read(set_l(TMP, TMP+Y)); - } - TMP2 = read(TMP+Y); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_imm - TMP = read_pc(); - PC++; - do_sbc(TMP); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - TMP2 = read(TMP); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -sbc_c_zpx - TMP = read_pc(); - PC++; - read(TMP); - TMP2 = read(uint8_t(TMP+X)); - do_sbc(TMP2); - if(P & F_D) { - read_pc(); - set_nz(A); - } - prefetch(); - -smb_bzp - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - TMP2 |= 1 << ((inst_state >> 4) & 7); - write(TMP, TMP2); - prefetch(); - -sta_zpi - TMP2 = read_pc(); - PC++; - TMP = read(TMP2 & 0xff); - TMP = set_h(TMP, read((TMP2+1) & 0xff)); - write(TMP, A); - prefetch(); - -stp_imp - for(;;) { - eat-all-cycles; - } - -stz_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - write(TMP, 0x00); - prefetch(); - -stz_abx - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - read(set_l(TMP, TMP+X)); - write(TMP+X, 0x00); - prefetch(); - -stz_zpg - TMP = read_pc(); - PC++; - write(TMP, 0x00); - prefetch(); - -stz_zpx - TMP = read_pc(); - PC++; - read(TMP); - write(uint8_t(TMP+X), 0x00); - prefetch(); - -trb_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - if(A & TMP2) - P &= ~F_Z; - else - P |= F_Z; - TMP2 &= ~A; - write(TMP, TMP2); - prefetch(); - -trb_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - if(A & TMP2) - P &= ~F_Z; - else - P |= F_Z; - TMP2 &= ~A; - write(TMP, TMP2); - prefetch(); - -tsb_aba - TMP = read_pc(); - PC++; - TMP = set_h(TMP, read_pc()); - PC++; - TMP2 = read(TMP); - read(TMP); - if(A & TMP2) - P &= ~F_Z; - else - P |= F_Z; - TMP2 |= A; - write(TMP, TMP2); - prefetch(); - -tsb_zpg - TMP = read_pc(); - PC++; - TMP2 = read(TMP); - read(TMP); - if(A & TMP2) - P &= ~F_Z; - else - P |= F_Z; - TMP2 |= A; - write(TMP, TMP2); - prefetch(); - -wai_imp - read_pc(); - read_pc(); - while(!nmi_pending && !irq_state) { - eat-all-cycles; - } - prefetch(); - -# exceptions -reset_c - read_arg(0xffff); - read_pc(); - read(SP); - dec_SP(); - read(SP); - dec_SP(); - read(SP); - dec_SP(); - P = (P | F_I) & ~F_D; - PC = read_arg(0xfffc); - PC = set_h(PC, read_arg(0xfffd)); - prefetch(); - inst_state = -1; diff --git a/src/devices/cpu/m6502/ow65c02.lst b/src/devices/cpu/m6502/ow65c02.lst new file mode 100644 index 00000000000..d4debf9f1fc --- /dev/null +++ b/src/devices/cpu/m6502/ow65c02.lst @@ -0,0 +1,897 @@ +# license:BSD-3-Clause +# copyright-holders:Olivier Galibert +# w65c02 opcodes + +adc_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + if(page_changing(TMP, X)) { + read(set_l(TMP, TMP+X)); + } + TMP += X; + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_aby + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + if(page_changing(TMP, Y)) { + read(set_l(TMP, TMP+Y)); + } + TMP += Y; + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_idx + TMP2 = read_pc(); + PC++; + read(TMP2); + TMP2 += X; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_idy + TMP2 = read_pc(); + PC++; + TMP = read(TMP2); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + if(page_changing(TMP, Y)) { + read(set_l(TMP, TMP+Y)); + } + TMP2 = read(TMP+Y); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_imm + TMP = read_pc(); + PC++; + do_adc(TMP); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +adc_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP2 = read(uint8_t(TMP+X)); + do_adc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +and_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + A &= TMP2; + set_nz(A); + prefetch(); + +asl_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_asl(TMP2); + write(TMP, TMP2); + prefetch(); + +asl_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_asl(TMP2); + write(TMP, TMP2); + prefetch(); + +asl_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_asl(TMP2); + write(TMP, TMP2); + prefetch(); + +asl_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2 = do_asl(TMP2); + write(TMP, TMP2); + prefetch(); + +bbr_zpb + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP = read_pc(); + PC++; + if(!(TMP2 & (1 << ((inst_state >> 4) & 7)))) { + read_pc(); + if(page_changing(PC, int8_t(TMP))) { + read_arg(set_l(PC, PC+int8_t(TMP))); + } + PC += int8_t(TMP); + } + prefetch(); + +bbs_zpb + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP = read_pc(); + PC++; + if(TMP2 & (1 << ((inst_state >> 4) & 7))) { + read_pc(); + if(page_changing(PC, int8_t(TMP))) { + read_arg(set_l(PC, PC+int8_t(TMP))); + } + PC += int8_t(TMP); + } + prefetch(); + +bit_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + if(page_changing(TMP, X)) { + read(set_l(TMP, TMP+X)); + } + TMP += X; + TMP2 = read(TMP); + do_bit(TMP2); + prefetch(); + +bit_imm + TMP = read_pc(); + PC++; + if(A & TMP) + P &= ~F_Z; + else + P |= F_Z; + prefetch(); + +bit_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP2 = read(uint8_t(TMP+X)); + do_bit(TMP2); + prefetch(); + +bra_rel + TMP = read_pc(); + PC++; + read_pc(); + if(page_changing(PC, int8_t(TMP))) { + read_arg(set_l(PC, PC+int8_t(TMP))); + } + PC += int8_t(TMP); + prefetch(); + +brk_c_imp + if(irq_taken || nmi_pending) { + read_pc(); + } else { + read_pc(); + PC++; + } + write(SP, PC >> 8); + dec_SP(); + write(SP, PC); + dec_SP(); + write(SP, irq_taken || nmi_pending ? P & ~F_B : P); + dec_SP(); + if(irq_taken && nmi_pending) { + standard_irq_callback(NMI_LINE, PC); + PC = read_arg(0xfffa); + PC = set_h(PC, read_arg(0xfffb)); + nmi_pending = false; + } else { + if(irq_taken) + standard_irq_callback(IRQ_LINE, PC); + PC = read_arg(0xfffe); + PC = set_h(PC, read_arg(0xffff)); + } + irq_taken = false; + P = (P | F_I) & ~F_D; // Do *not* move after the prefetch + prefetch(); + inst_state = -1; + +cmp_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + do_cmp(A, TMP2); + prefetch(); + +dec_acc + read_pc(); + A--; + set_nz(A); + prefetch(); + +dec_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2--; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +dec_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2--; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +dec_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2--; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +dec_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2--; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +eor_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + A ^= TMP2; + set_nz(A); + prefetch(); + +inc_acc + read_pc(); + A++; + set_nz(A); + prefetch(); + +inc_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2++; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +inc_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2++; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +inc_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2++; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +inc_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2++; + set_nz(TMP2); + write(TMP, TMP2); + prefetch(); + +jmp_iax + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + PC = read(TMP); + PC = set_h(PC, read(TMP+1)); + prefetch(); + +jmp_c_ind + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + PC = read(TMP); + read(set_l(TMP, TMP+1)); + PC = set_h(PC, read(TMP+1)); + prefetch(); + +lda_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + A = read(TMP); + set_nz(A); + prefetch(); + +lsr_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_lsr(TMP2); + write(TMP, TMP2); + prefetch(); + +lsr_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_lsr(TMP2); + write(TMP, TMP2); + prefetch(); + +lsr_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_lsr(TMP2); + write(TMP, TMP2); + prefetch(); + +lsr_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2 = do_lsr(TMP2); + write(TMP, TMP2); + prefetch(); + +nop_c_imp + prefetch(); + +nop_c_aba + read_pc(); + PC++; + read_pc(); + PC++; + read_pc(); + read_pc(); + read_pc(); + read_pc(); + read_pc(); + prefetch(); + +nop_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + prefetch(); + +ora_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + A |= TMP2; + set_nz(A); + prefetch(); + +phx_imp + read_pc(); + write(SP, X); + dec_SP(); + prefetch(); + +phy_imp + read_pc(); + write(SP, Y); + dec_SP(); + prefetch(); + +plx_imp + read_pc(); + read(SP); + inc_SP(); + X = read(SP); + set_nz(X); + prefetch(); + +ply_imp + read_pc(); + read(SP); + inc_SP(); + Y = read(SP); + set_nz(Y); + prefetch(); + +rmb_bzp + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 &= ~(1 << ((inst_state >> 4) & 7)); + write(TMP, TMP2); + prefetch(); + +rol_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_rol(TMP2); + write(TMP, TMP2); + prefetch(); + +rol_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_rol(TMP2); + write(TMP, TMP2); + prefetch(); + +rol_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_rol(TMP2); + write(TMP, TMP2); + prefetch(); + +rol_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2 = do_rol(TMP2); + write(TMP, TMP2); + prefetch(); + +ror_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_ror(TMP2); + write(TMP, TMP2); + prefetch(); + +ror_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + TMP += X; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_ror(TMP2); + write(TMP, TMP2); + prefetch(); + +ror_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 = do_ror(TMP2); + write(TMP, TMP2); + prefetch(); + +ror_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP = uint8_t(TMP+X); + TMP2 = read(TMP); + read(TMP); + TMP2 = do_ror(TMP2); + write(TMP, TMP2); + prefetch(); + +sbc_c_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + if(page_changing(TMP, X)) { + read(set_l(TMP, TMP+X)); + } + TMP += X; + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_aby + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + if(page_changing(TMP, Y)) { + read(set_l(TMP, TMP+Y)); + } + TMP += Y; + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_idx + TMP2 = read_pc(); + PC++; + read(TMP2); + TMP2 += X; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_idy + TMP2 = read_pc(); + PC++; + TMP = read(TMP2); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + if(page_changing(TMP, Y)) { + read(set_l(TMP, TMP+Y)); + } + TMP2 = read(TMP+Y); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_imm + TMP = read_pc(); + PC++; + do_sbc(TMP); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + TMP2 = read(TMP); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +sbc_c_zpx + TMP = read_pc(); + PC++; + read(TMP); + TMP2 = read(uint8_t(TMP+X)); + do_sbc(TMP2); + if(P & F_D) { + read_pc(); + set_nz(A); + } + prefetch(); + +smb_bzp + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + TMP2 |= 1 << ((inst_state >> 4) & 7); + write(TMP, TMP2); + prefetch(); + +sta_zpi + TMP2 = read_pc(); + PC++; + TMP = read(TMP2 & 0xff); + TMP = set_h(TMP, read((TMP2+1) & 0xff)); + write(TMP, A); + prefetch(); + +stp_imp + for(;;) { + eat-all-cycles; + } + +stz_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + write(TMP, 0x00); + prefetch(); + +stz_abx + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + read(set_l(TMP, TMP+X)); + write(TMP+X, 0x00); + prefetch(); + +stz_zpg + TMP = read_pc(); + PC++; + write(TMP, 0x00); + prefetch(); + +stz_zpx + TMP = read_pc(); + PC++; + read(TMP); + write(uint8_t(TMP+X), 0x00); + prefetch(); + +trb_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + if(A & TMP2) + P &= ~F_Z; + else + P |= F_Z; + TMP2 &= ~A; + write(TMP, TMP2); + prefetch(); + +trb_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + if(A & TMP2) + P &= ~F_Z; + else + P |= F_Z; + TMP2 &= ~A; + write(TMP, TMP2); + prefetch(); + +tsb_aba + TMP = read_pc(); + PC++; + TMP = set_h(TMP, read_pc()); + PC++; + TMP2 = read(TMP); + read(TMP); + if(A & TMP2) + P &= ~F_Z; + else + P |= F_Z; + TMP2 |= A; + write(TMP, TMP2); + prefetch(); + +tsb_zpg + TMP = read_pc(); + PC++; + TMP2 = read(TMP); + read(TMP); + if(A & TMP2) + P &= ~F_Z; + else + P |= F_Z; + TMP2 |= A; + write(TMP, TMP2); + prefetch(); + +wai_imp + read_pc(); + read_pc(); + while(!nmi_pending && !irq_state) { + eat-all-cycles; + } + prefetch(); + +# exceptions +reset_c + read_arg(0xffff); + read_pc(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + read(SP); + dec_SP(); + P = (P | F_I) & ~F_D; + PC = read_arg(0xfffc); + PC = set_h(PC, read_arg(0xfffd)); + prefetch(); + inst_state = -1; diff --git a/src/devices/cpu/m6502/r65c02.cpp b/src/devices/cpu/m6502/r65c02.cpp index d9e665d7e4c..9dc65010c8c 100644 --- a/src/devices/cpu/m6502/r65c02.cpp +++ b/src/devices/cpu/m6502/r65c02.cpp @@ -21,7 +21,7 @@ DEFINE_DEVICE_TYPE(R65C102, r65c102_device, "r65c102", "Rockwell R65C102") DEFINE_DEVICE_TYPE(R65C112, r65c112_device, "r65c112", "Rockwell R65C112") r65c02_device::r65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : - m65c02_device(mconfig, type, tag, owner, clock) + w65c02_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/r65c02.h b/src/devices/cpu/m6502/r65c02.h index 2e929652757..2a98d4be6ec 100644 --- a/src/devices/cpu/m6502/r65c02.h +++ b/src/devices/cpu/m6502/r65c02.h @@ -11,9 +11,9 @@ #ifndef MAME_CPU_M6502_R65C02_H #define MAME_CPU_M6502_R65C02_H -#include "m65c02.h" +#include "w65c02.h" -class r65c02_device : public m65c02_device { +class r65c02_device : public w65c02_device { public: r65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/devices/cpu/m6502/w65c02.cpp b/src/devices/cpu/m6502/w65c02.cpp new file mode 100644 index 00000000000..c482b31d449 --- /dev/null +++ b/src/devices/cpu/m6502/w65c02.cpp @@ -0,0 +1,33 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert +/*************************************************************************** + + w65c02.cpp + + WDC W65C02, CMOS variant with some additional instructions + (but not the bitwise ones) + +***************************************************************************/ + +#include "emu.h" +#include "w65c02.h" +#include "w65c02d.h" + +DEFINE_DEVICE_TYPE(W65C02, w65c02_device, "w65c02", "WDC W65C02") + +w65c02_device::w65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + m6502_device(mconfig, W65C02, tag, owner, clock) +{ +} + +w65c02_device::w65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : + m6502_device(mconfig, type, tag, owner, clock) +{ +} + +std::unique_ptr w65c02_device::create_disassembler() +{ + return std::make_unique(); +} + +#include "cpu/m6502/w65c02.hxx" diff --git a/src/devices/cpu/m6502/w65c02.h b/src/devices/cpu/m6502/w65c02.h new file mode 100644 index 00000000000..552565d4203 --- /dev/null +++ b/src/devices/cpu/m6502/w65c02.h @@ -0,0 +1,77 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert +/*************************************************************************** + + w65c02.h + + WDC W65C02, CMOS variant with some additional instructions + (but not the bitwise ones) + +***************************************************************************/ +#ifndef MAME_CPU_M6502_W65C02_H +#define MAME_CPU_M6502_W65C02_H + +#pragma once + +#include "m6502.h" + +class w65c02_device : public m6502_device { +public: + w65c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + + virtual std::unique_ptr create_disassembler() override; + virtual void do_exec_full() override; + virtual void do_exec_partial() override; + +protected: + w65c02_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock); + +#define O(o) void o ## _full(); void o ## _partial() + + // 65c02 opcodes + O(adc_c_aba); O(adc_c_abx); O(adc_c_aby); O(adc_c_idx); O(adc_c_idy); O(adc_c_imm); O(adc_c_zpg); O(adc_c_zpi); O(adc_c_zpx); + O(and_zpi); + O(asl_c_aba); O(asl_c_abx); O(asl_c_zpg); O(asl_c_zpx); + O(bbr_zpb); + O(bbs_zpb); + O(bit_abx); O(bit_imm); O(bit_zpx); + O(bra_rel); + O(brk_c_imp); + O(cmp_zpi); + O(dec_acc); O(dec_c_aba); O(dec_c_abx); O(dec_c_zpg); O(dec_c_zpx); + O(eor_zpi); + O(inc_acc); O(inc_c_aba); O(inc_c_abx); O(inc_c_zpg); O(inc_c_zpx); + O(jmp_c_ind); O(jmp_iax); + O(lda_zpi); + O(lsr_c_aba); O(lsr_c_abx); O(lsr_c_zpg); O(lsr_c_zpx); + O(nop_c_aba); O(nop_c_abx); O(nop_c_imp); + O(ora_zpi); + O(phx_imp); + O(phy_imp); + O(plx_imp); + O(ply_imp); + O(rmb_bzp); + O(rol_c_aba); O(rol_c_abx); O(rol_c_zpg); O(rol_c_zpx); + O(ror_c_aba); O(ror_c_abx); O(ror_c_zpg); O(ror_c_zpx); + O(sbc_c_aba); O(sbc_c_abx); O(sbc_c_aby); O(sbc_c_idx); O(sbc_c_idy); O(sbc_c_imm); O(sbc_c_zpg); O(sbc_c_zpi); O(sbc_c_zpx); + O(smb_bzp); + O(stp_imp); + O(sta_zpi); + O(stz_aba); O(stz_abx); O(stz_zpg); O(stz_zpx); + O(trb_aba); O(trb_zpg); + O(tsb_aba); O(tsb_zpg); + O(wai_imp); + O(reset_c); + +#undef O +}; + +enum { + W65C02_IRQ_LINE = m6502_device::IRQ_LINE, + W65C02_NMI_LINE = m6502_device::NMI_LINE, + W65C02_SET_OVERFLOW = m6502_device::V_LINE +}; + +DECLARE_DEVICE_TYPE(W65C02, w65c02_device) + +#endif // MAME_CPU_M6502_W65C02_H diff --git a/src/devices/cpu/m6502/w65c02d.cpp b/src/devices/cpu/m6502/w65c02d.cpp new file mode 100644 index 00000000000..919d2ddf6f5 --- /dev/null +++ b/src/devices/cpu/m6502/w65c02d.cpp @@ -0,0 +1,18 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert +/*************************************************************************** + + w65c02d.cpp + + WDC W65C02, CMOS variant with some additional instructions + (but not the bitwise ones), disassembler + +***************************************************************************/ + +#include "emu.h" +#include "w65c02d.h" +#include "cpu/m6502/w65c02d.hxx" + +w65c02_disassembler::w65c02_disassembler() : m6502_base_disassembler(disasm_entries) +{ +} diff --git a/src/devices/cpu/m6502/w65c02d.h b/src/devices/cpu/m6502/w65c02d.h new file mode 100644 index 00000000000..1e9edec6a14 --- /dev/null +++ b/src/devices/cpu/m6502/w65c02d.h @@ -0,0 +1,29 @@ +// license:BSD-3-Clause +// copyright-holders:Olivier Galibert +/*************************************************************************** + + w65c02d.h + + WDC W65C02, CMOS variant with some additional instructions + (but not the bitwise ones), disassembler + +***************************************************************************/ + +#ifndef MAME_CPU_M6502_W65C02D_H +#define MAME_CPU_M6502_W65C02D_H + +#pragma once + +#include "m6502d.h" + +class w65c02_disassembler : public m6502_base_disassembler +{ +public: + w65c02_disassembler(); + virtual ~w65c02_disassembler() = default; + +private: + static const disasm_entry disasm_entries[0x100]; +}; + +#endif diff --git a/src/devices/cpu/m6502/w65c02s.cpp b/src/devices/cpu/m6502/w65c02s.cpp index 171db777dc2..17c61bafc4e 100644 --- a/src/devices/cpu/m6502/w65c02s.cpp +++ b/src/devices/cpu/m6502/w65c02s.cpp @@ -21,7 +21,7 @@ w65c02s_device::w65c02s_device(const machine_config &mconfig, const char *tag, d } w65c02s_device::w65c02s_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : - m65c02_device(mconfig, type, tag, owner, clock) + w65c02_device(mconfig, type, tag, owner, clock) { } diff --git a/src/devices/cpu/m6502/w65c02s.h b/src/devices/cpu/m6502/w65c02s.h index a5848f86e68..7a3da04bcd5 100644 --- a/src/devices/cpu/m6502/w65c02s.h +++ b/src/devices/cpu/m6502/w65c02s.h @@ -12,9 +12,9 @@ #ifndef MAME_CPU_M6502_W65C02S_H #define MAME_CPU_M6502_W65C02S_H -#include "m65c02.h" +#include "w65c02.h" -class w65c02s_device : public m65c02_device { +class w65c02s_device : public w65c02_device { public: w65c02s_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); diff --git a/src/mame/apple/apple2e.cpp b/src/mame/apple/apple2e.cpp index 9a90dfe8353..dfea6c28acd 100644 --- a/src/mame/apple/apple2e.cpp +++ b/src/mame/apple/apple2e.cpp @@ -128,7 +128,7 @@ MIG RAM page 2 $CE02 is the speaker/slot bitfield and $CE03 is the paddle/accele #include "apple2common.h" #include "cpu/m6502/m6502.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "cpu/mcs48/mcs48.h" #include "cpu/z80/z80.h" #include "imagedev/cassette.h" @@ -4954,7 +4954,7 @@ void apple2e_state::apple2e_common(machine_config &config, bool enhanced, bool r /* basic machine hardware */ if (enhanced) { - M65C02(config, m_maincpu, 1021800); + W65C02(config, m_maincpu, 1021800); } else { @@ -5093,7 +5093,7 @@ void apple2e_state::spectred(machine_config &config) void apple2e_state::tk3000(machine_config &config) { apple2e(config); - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::base_map); // z80_device &subcpu(Z80(config, "subcpu", 1021800)); // schematics are illegible on where the clock comes from, but it *seems* to be the same as the 65C02 clock @@ -5226,7 +5226,7 @@ void apple2e_state::apple2c_mem_pal(machine_config &config) void apple2e_state::laser128(machine_config &config) { apple2c(config); - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); @@ -5261,7 +5261,7 @@ void apple2e_state::laser128(machine_config &config) void apple2e_state::laser128o(machine_config &config) { apple2c(config); - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); @@ -5297,7 +5297,7 @@ void apple2e_state::laser128o(machine_config &config) void apple2e_state::laser128ex2(machine_config &config) { apple2c(config); - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::laser128_map); m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); @@ -5334,7 +5334,7 @@ void apple2e_state::ace500(machine_config &config) apple2e_common(config, true, false); subdevice("flop_a2_orig")->set_filter("A2C"); // Filter list to compatible disks for this machine. - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::ace500_map); m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); @@ -5376,7 +5376,7 @@ void apple2e_state::ace500(machine_config &config) void apple2e_state::ace2200(machine_config &config) { apple2e_common(config, false, false); - M65C02(config.replace(), m_maincpu, 1021800); + W65C02(config.replace(), m_maincpu, 1021800); m_maincpu->set_addrmap(AS_PROGRAM, &apple2e_state::ace2200_map); m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline)); diff --git a/src/mame/chess/conchess.cpp b/src/mame/chess/conchess.cpp index 8185c89e4e8..05f858a33ca 100644 --- a/src/mame/chess/conchess.cpp +++ b/src/mame/chess/conchess.cpp @@ -67,8 +67,8 @@ is integrated. #include "bus/generic/carts.h" #include "bus/generic/slot.h" #include "cpu/m6502/m6502.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/sensorboard.h" #include "sound/beep.h" #include "video/pwm.h" @@ -299,7 +299,7 @@ void conchess_state::concvicp(machine_config &config) concams5(config); // basic machine hardware - M65C02(config.replace(), m_maincpu, 12.288_MHz_XTAL/2); + W65C02(config.replace(), m_maincpu, 12.288_MHz_XTAL/2); m_maincpu->set_addrmap(AS_PROGRAM, &conchess_state::main_map); const attotime irq_period = attotime::from_hz(12.288_MHz_XTAL / 0x4000); diff --git a/src/mame/fidelity/desdis.cpp b/src/mame/fidelity/desdis.cpp index 227e155db0d..6655c8d2769 100644 --- a/src/mame/fidelity/desdis.cpp +++ b/src/mame/fidelity/desdis.cpp @@ -37,8 +37,8 @@ Designer Mach IV Master 2325 (model 6129) overview: #include "emu.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" +#include "cpu/m6502/w65c02.h" #include "cpu/m68000/m68000.h" #include "cpu/m68000/m68020.h" #include "machine/clock.h" @@ -286,7 +286,7 @@ INPUT_PORTS_END void desdis_state::fdes2100d(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 6_MHz_XTAL); // W65C02P-6 + W65C02(config, m_maincpu, 6_MHz_XTAL); // W65C02P-6 m_maincpu->set_addrmap(AS_PROGRAM, &desdis_state::fdes2100d_map); auto &irq_clock(CLOCK(config, "irq_clock", 600)); // from 556 timer (22nF, 102K, 1K), ideal frequency is 600Hz diff --git a/src/mame/fidelity/elite.cpp b/src/mame/fidelity/elite.cpp index a0684166201..6c57bca896a 100644 --- a/src/mame/fidelity/elite.cpp +++ b/src/mame/fidelity/elite.cpp @@ -82,7 +82,6 @@ alternate view (see video options). The EAG conversion is a cloneset of feag. #include "bus/generic/carts.h" #include "bus/generic/slot.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" #include "machine/clock.h" #include "machine/i8255.h" diff --git a/src/mame/funtech/supracan.cpp b/src/mame/funtech/supracan.cpp index 62fe56948ce..4757c11be54 100644 --- a/src/mame/funtech/supracan.cpp +++ b/src/mame/funtech/supracan.cpp @@ -68,7 +68,7 @@ STATUS: #include "bus/supracan/rom.h" #include "bus/supracan/slot.h" #include "cpu/m68000/m68000.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "emupal.h" #include "screen.h" @@ -2394,7 +2394,7 @@ void supracan_state::supracan(machine_config &config) // TODO: Verify type and actual clock // /4 makes speedyd to fail booting - M65C02(config, m_soundcpu, U13_CLOCK / 6 / 2); + W65C02(config, m_soundcpu, U13_CLOCK / 6 / 2); m_soundcpu->set_addrmap(AS_PROGRAM, &supracan_state::sound_map); config.set_perfect_quantum(m_soundcpu); diff --git a/src/mame/funworld/4roses.cpp b/src/mame/funworld/4roses.cpp index 180825bc93b..571834f7bc4 100644 --- a/src/mame/funworld/4roses.cpp +++ b/src/mame/funworld/4roses.cpp @@ -195,7 +195,7 @@ #include "emu.h" #include "funworld.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/6821pia.h" #include "machine/nvram.h" #include "sound/ay8910.h" @@ -460,7 +460,7 @@ GFXDECODE_END void _4roses_state::_4roses(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, MASTER_CLOCK/8); // 2MHz, guess + W65C02(config, m_maincpu, MASTER_CLOCK/8); // 2MHz, guess m_maincpu->set_addrmap(AS_PROGRAM, &_4roses_state::_4roses_map); m_maincpu->set_addrmap(AS_OPCODES, &_4roses_state::_4roses_opcodes_map); diff --git a/src/mame/hegenerglaser/academy.cpp b/src/mame/hegenerglaser/academy.cpp index 09c9faddda9..d57c0456a76 100644 --- a/src/mame/hegenerglaser/academy.cpp +++ b/src/mame/hegenerglaser/academy.cpp @@ -27,7 +27,7 @@ Academy hardware. Much unused data remains, and the TRAIN button doesn't work. #include "mmboard.h" #include "mmdisplay2.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/74259.h" #include "machine/nvram.h" #include "video/pwm.h" @@ -130,7 +130,7 @@ INPUT_PORTS_END void academy_state::academy(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 4.9152_MHz_XTAL); + W65C02(config, m_maincpu, 4.9152_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &academy_state::main_map); const attotime nmi_period = attotime::from_hz(4.9152_MHz_XTAL / 0x2000); diff --git a/src/mame/hegenerglaser/modena.cpp b/src/mame/hegenerglaser/modena.cpp index 99e1d944a3e..4d74595400c 100644 --- a/src/mame/hegenerglaser/modena.cpp +++ b/src/mame/hegenerglaser/modena.cpp @@ -20,7 +20,7 @@ Hardware notes: #include "mmdisplay1.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/clock.h" #include "machine/nvram.h" #include "machine/sensorboard.h" @@ -170,7 +170,7 @@ INPUT_PORTS_END void modena_state::modena(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 4.194304_MHz_XTAL); + W65C02(config, m_maincpu, 4.194304_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &modena_state::modena_mem); clock_device &nmi_clock(CLOCK(config, "nmi_clock", 4.194304_MHz_XTAL / 0x2000)); // active for 975us diff --git a/src/mame/hegenerglaser/montec.cpp b/src/mame/hegenerglaser/montec.cpp index dc2d72890b0..9904ebb0bb7 100644 --- a/src/mame/hegenerglaser/montec.cpp +++ b/src/mame/hegenerglaser/montec.cpp @@ -23,8 +23,8 @@ Hardware notes: #include "mmboard.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/74259.h" #include "machine/nvram.h" #include "sound/dac.h" @@ -224,7 +224,7 @@ void montec_state::montec4le(machine_config &config) montec4(config); // basic machine hardware - M65C02(config.replace(), m_maincpu, 8_MHz_XTAL); + W65C02(config.replace(), m_maincpu, 8_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &montec_state::montec_mem); const attotime irq_period = attotime::from_hz(8_MHz_XTAL / 0x4000); diff --git a/src/mame/hegenerglaser/polgar.cpp b/src/mame/hegenerglaser/polgar.cpp index 4739bd9790c..c49d5b2e098 100644 --- a/src/mame/hegenerglaser/polgar.cpp +++ b/src/mame/hegenerglaser/polgar.cpp @@ -19,8 +19,8 @@ The 10MHz version has a W65C02P-8 @ 9.83MHz. #include "mmboard.h" #include "mmdisplay2.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/74259.h" #include "machine/nvram.h" @@ -134,7 +134,7 @@ void polgar_state::polgar10(machine_config &config) polgar(config); // basic machine hardware - M65C02(config.replace(), m_maincpu, 9.8304_MHz_XTAL); + W65C02(config.replace(), m_maincpu, 9.8304_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &polgar_state::polgar_mem); const attotime nmi_period = attotime::from_hz(9.8304_MHz_XTAL / 0x2000); diff --git a/src/mame/misc/rgum.cpp b/src/mame/misc/rgum.cpp index 1cda780c567..1c568ff648b 100644 --- a/src/mame/misc/rgum.cpp +++ b/src/mame/misc/rgum.cpp @@ -23,7 +23,7 @@ TODO: */ #include "emu.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/i8255.h" #include "machine/nvram.h" #include "sound/ay8910.h" @@ -289,7 +289,7 @@ GFXDECODE_END void rgum_state::rgum(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 24_MHz_XTAL / 16); // divisor not verified + W65C02(config, m_maincpu, 24_MHz_XTAL / 16); // divisor not verified m_maincpu->set_addrmap(AS_PROGRAM, &rgum_state::main_map); // NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // MK48Z08 diff --git a/src/mame/novag/sexpert.cpp b/src/mame/novag/sexpert.cpp index 05d1d96f304..f0d5d61618a 100644 --- a/src/mame/novag/sexpert.cpp +++ b/src/mame/novag/sexpert.cpp @@ -39,7 +39,7 @@ TODO: #include "emu.h" #include "bus/rs232/rs232.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/clock.h" #include "machine/mos6551.h" #include "machine/nvram.h" @@ -405,7 +405,7 @@ INPUT_PORTS_END void sexpert_state::sexpert(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 10_MHz_XTAL/2); // or 12_MHz_XTAL/2, also seen with R65C02 + W65C02(config, m_maincpu, 10_MHz_XTAL/2); // or 12_MHz_XTAL/2, also seen with R65C02 m_maincpu->set_addrmap(AS_PROGRAM, &sexpert_state::sexpert_map); auto &irq_clock(CLOCK(config, "irq_clock", 32.768_kHz_XTAL/128)); // 256Hz @@ -444,7 +444,7 @@ void sexpert_state::sexpert(machine_config &config) // uart (configure after video) MOS6551(config, m_acia).set_xtal(1.8432_MHz_XTAL); // R65C51P2 - RTS to CTS, DCD to GND - m_acia->irq_handler().set_inputline("maincpu", m65c02_device::NMI_LINE); + m_acia->irq_handler().set_inputline("maincpu", w65c02_device::NMI_LINE); m_acia->rts_handler().set("acia", FUNC(mos6551_device::write_cts)); m_acia->txd_handler().set("rs232", FUNC(rs232_port_device::write_txd)); m_acia->dtr_handler().set("rs232", FUNC(rs232_port_device::write_dtr)); diff --git a/src/mame/pinball/alvg.cpp b/src/mame/pinball/alvg.cpp index d0304c881a6..94921587d13 100644 --- a/src/mame/pinball/alvg.cpp +++ b/src/mame/pinball/alvg.cpp @@ -64,7 +64,7 @@ ToDo: ****************************************************************************************************/ #include "emu.h" #include "genpin.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "cpu/m6809/m6809.h" #include "cpu/mcs51/mcs51.h" #include "machine/6522via.h" @@ -596,7 +596,7 @@ void alvg_state::pca020(machine_config &config) void alvg_state::alvg(machine_config &config) { /* basic machine hardware */ - M65C02(config, m_maincpu, XTAL(4'000'000) / 2); + W65C02(config, m_maincpu, XTAL(4'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, &alvg_state::main_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -628,7 +628,7 @@ void alvg_state::alvg(machine_config &config) genpin_audio(config); - INPUT_MERGER_ANY_HIGH(config, "cpuirq").output_handler().set_inputline(m_maincpu, M65C02_IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, "cpuirq").output_handler().set_inputline(m_maincpu, W65C02_IRQ_LINE); } diff --git a/src/mame/pinball/gts3.cpp b/src/mame/pinball/gts3.cpp index 40b710aa986..b5f1f812355 100644 --- a/src/mame/pinball/gts3.cpp +++ b/src/mame/pinball/gts3.cpp @@ -64,7 +64,7 @@ ToDo: #include "gottlieb_a.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/6522via.h" #include "machine/input_merger.h" #include "speaker.h" @@ -105,7 +105,6 @@ private: void solenoid_w(offs_t, u8); void u4b_w(u8 data); void u5a_w(u8 data); - void nmi_w(int state); void mem_map(address_map &map) ATTR_COLD; bool m_dispclk = false; @@ -115,7 +114,7 @@ private: u8 m_segment[4]{}; u8 m_u4b = 0U; - required_device m_maincpu; + required_device m_maincpu; required_device m_u4; required_device m_u5; optional_device m_p5_sound; @@ -242,12 +241,6 @@ INPUT_CHANGED_MEMBER( gts3_state::test_inp ) m_u4->write_ca1(newval); } -// This trampoline needed; WRITELINE("maincpu", m65c02_device, nmi_line) does not work -void gts3_state::nmi_w(int state) -{ - m_maincpu->set_input_line(INPUT_LINE_NMI, (state) ? CLEAR_LINE : HOLD_LINE); -} - void gts3_state::lampret_w(u8 data) { if (m_row < 12) @@ -348,7 +341,7 @@ void gts3_state::machine_reset() void gts3_state::p0(machine_config &config) { - M65C02(config, m_maincpu, XTAL(4'000'000) / 2); + W65C02(config, m_maincpu, XTAL(4'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, >s3_state::mem_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); @@ -361,7 +354,7 @@ void gts3_state::p0(machine_config &config) m_u4->readpb_handler().set(FUNC(gts3_state::u4b_r)); m_u4->writepb_handler().set(FUNC(gts3_state::u4b_w)); //m_u4->ca2_handler().set(FUNC(gts3_state::u4ca2_w)); - m_u4->cb2_handler().set(FUNC(gts3_state::nmi_w)); + m_u4->cb2_handler().set_inputline("maincpu", W65C02_NMI_LINE).invert(); R65C22(config, m_u5, XTAL(4'000'000) / 2); m_u5->irq_handler().set("irq", FUNC(input_merger_device::in_w<1>)); @@ -372,7 +365,7 @@ void gts3_state::p0(machine_config &config) //m_u5->cb1_handler().set(FUNC(gts3_state::u5cb1_w)); //m_u5->cb2_handler().set(FUNC(gts3_state::u5cb2_w)); - INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline("maincpu", m65c02_device::IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline("maincpu", W65C02_IRQ_LINE); /* Sound */ genpin_audio(config); diff --git a/src/mame/pinball/gts3a.cpp b/src/mame/pinball/gts3a.cpp index 443c9fde0a6..84c6438c82e 100644 --- a/src/mame/pinball/gts3a.cpp +++ b/src/mame/pinball/gts3a.cpp @@ -50,7 +50,7 @@ ToDo: #include "gottlieb_a.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/6522via.h" #include "machine/input_merger.h" #include "video/mc6845.h" @@ -101,7 +101,6 @@ private: void u5a_w(u8 data); u8 dmd_r(); void dmd_w(u8 data); - void nmi_w(int state); void crtc_vs(int state); MC6845_UPDATE_ROW(crtc_update_row); void palette_init(palette_device &palette); @@ -113,8 +112,8 @@ private: u8 m_segment = 0U; u8 m_u4b = 0U; - required_device m_maincpu; - required_device m_dmdcpu; + required_device m_maincpu; + required_device m_dmdcpu; required_memory_bank m_bank1; required_device m_crtc; required_shared_ptr m_vram; @@ -286,12 +285,6 @@ INPUT_CHANGED_MEMBER( gts3a_state::test_inp ) m_u4->write_ca1(newval); } -// This trampoline needed; WRITELINE("maincpu", m65c02_device, nmi_line) does not work -void gts3a_state::nmi_w(int state) -{ - m_maincpu->set_input_line(INPUT_LINE_NMI, (state) ? CLEAR_LINE : HOLD_LINE); -} - void gts3a_state::lampret_w(u8 data) { if (m_row < 12) @@ -316,7 +309,7 @@ void gts3a_state::solenoid_w(offs_t offset, u8 data) void gts3a_state::segbank_w(u8 data) { m_segment = data; - m_dmdcpu->set_input_line(M65C02_IRQ_LINE, ASSERT_LINE); + m_dmdcpu->set_input_line(W65C02_IRQ_LINE, ASSERT_LINE); } void gts3a_state::u4b_w(u8 data) @@ -360,7 +353,7 @@ void gts3a_state::init_gts3a() u8 gts3a_state::dmd_r() { - m_dmdcpu->set_input_line(M65C02_IRQ_LINE, CLEAR_LINE); + m_dmdcpu->set_input_line(W65C02_IRQ_LINE, CLEAR_LINE); return m_segment; } @@ -430,12 +423,12 @@ void gts3a_state::machine_reset() void gts3a_state::p0(machine_config &config) { - M65C02(config, m_maincpu, XTAL(4'000'000) / 2); + W65C02(config, m_maincpu, XTAL(4'000'000) / 2); m_maincpu->set_addrmap(AS_PROGRAM, >s3a_state::mem_map); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); // 6116LP + DS1210 - M65C02(config, m_dmdcpu, XTAL(3'579'545) / 2); + W65C02(config, m_dmdcpu, XTAL(3'579'545) / 2); m_dmdcpu->set_addrmap(AS_PROGRAM, >s3a_state::dmd_map); // Video @@ -462,7 +455,7 @@ void gts3a_state::p0(machine_config &config) m_u4->readpb_handler().set(FUNC(gts3a_state::u4b_r)); m_u4->writepb_handler().set(FUNC(gts3a_state::u4b_w)); //m_u4->ca2_handler().set(FUNC(gts3a_state::u4ca2_w)); - m_u4->cb2_handler().set(FUNC(gts3a_state::nmi_w)); + m_u4->cb2_handler().set_inputline("maincpu", W65C02_NMI_LINE).invert(); R65C22(config, m_u5, XTAL(4'000'000) / 2); m_u5->irq_handler().set("irq", FUNC(input_merger_device::in_w<1>)); @@ -473,7 +466,7 @@ void gts3a_state::p0(machine_config &config) //m_u5->cb1_Handler().set(FUNC(gts3a_state::u5cb1_w)); //m_u5->cb2_Handler().set(FUNC(gts3a_state::u5cb2_w)); - INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline("maincpu", m65c02_device::IRQ_LINE); + INPUT_MERGER_ANY_HIGH(config, "irq").output_handler().set_inputline("maincpu", W65C02_IRQ_LINE); // Sound genpin_audio(config); diff --git a/src/mame/saitek/corona.cpp b/src/mame/saitek/corona.cpp index 310390a62c8..39dab1bffcd 100644 --- a/src/mame/saitek/corona.cpp +++ b/src/mame/saitek/corona.cpp @@ -13,7 +13,7 @@ different compared to Stratos/Turbo King. #include "emu.h" #include "stratos.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/nvram.h" #include "machine/sensorboard.h" #include "sound/dac.h" @@ -260,7 +260,7 @@ INPUT_PORTS_END void corona_state::corona(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 5_MHz_XTAL); // see change_cpu_freq + W65C02(config, m_maincpu, 5_MHz_XTAL); // see change_cpu_freq m_maincpu->set_addrmap(AS_PROGRAM, &corona_state::main_map); m_maincpu->set_periodic_int(FUNC(corona_state::irq0_line_hold), attotime::from_hz(183)); diff --git a/src/mame/saitek/simultano.cpp b/src/mame/saitek/simultano.cpp index 8a6b257cd5f..cca07d80e16 100644 --- a/src/mame/saitek/simultano.cpp +++ b/src/mame/saitek/simultano.cpp @@ -31,8 +31,8 @@ TODO: #include "bus/generic/slot.h" #include "bus/generic/carts.h" -#include "cpu/m6502/m65c02.h" #include "cpu/m6502/r65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/nvram.h" #include "machine/sensorboard.h" #include "sound/dac.h" @@ -352,7 +352,7 @@ void simultano_state::simultano(machine_config &config) cc2150(config); // basic machine hardware - M65C02(config.replace(), m_maincpu, 5_MHz_XTAL); + W65C02(config.replace(), m_maincpu, 5_MHz_XTAL); m_maincpu->set_addrmap(AS_PROGRAM, &simultano_state::simultano_map); m_maincpu->set_periodic_int(FUNC(simultano_state::irq0_line_hold), attotime::from_hz(76)); // approximation diff --git a/src/mame/saitek/stratos.cpp b/src/mame/saitek/stratos.cpp index b1a51a7c80f..8ee440c7c38 100644 --- a/src/mame/saitek/stratos.cpp +++ b/src/mame/saitek/stratos.cpp @@ -54,7 +54,7 @@ is engine version C. #include "emu.h" #include "stratos.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/nvram.h" #include "machine/sensorboard.h" #include "sound/dac.h" @@ -490,7 +490,7 @@ INPUT_PORTS_END void stratos_state::stratos(machine_config &config) { // basic machine hardware - M65C02(config, m_maincpu, 5_MHz_XTAL); // see change_cpu_freq + W65C02(config, m_maincpu, 5_MHz_XTAL); // see change_cpu_freq m_maincpu->set_addrmap(AS_PROGRAM, &stratos_state::main_map); m_maincpu->set_periodic_int(FUNC(stratos_state::irq0_line_hold), attotime::from_hz(76)); diff --git a/src/mame/seta/downtown.cpp b/src/mame/seta/downtown.cpp index 97db78bf420..05b2294e507 100644 --- a/src/mame/seta/downtown.cpp +++ b/src/mame/seta/downtown.cpp @@ -293,7 +293,7 @@ P1-049-A #include "emu.h" #include "x1_012.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "cpu/m68000/m68000.h" #include "machine/74157.h" #include "machine/gen_latch.h" @@ -933,7 +933,7 @@ void tndrcade_state::sub_bankswitch_lockout_w(u8 data) seta_coin_lockout_w(data); // 65C02 code doesn't seem to do anything to explicitly acknowledge IRQ; implicitly acknowledging it here seems most likely - m_subcpu->set_input_line(m65c02_device::IRQ_LINE, CLEAR_LINE); + m_subcpu->set_input_line(W65C02_IRQ_LINE, CLEAR_LINE); } @@ -1043,7 +1043,7 @@ void downtown_state::calibr50_sub_bankswitch_w(u8 data) // Bit 2: IRQCLR if (!BIT(data, 2)) - m_subcpu->set_input_line(m65c02_device::IRQ_LINE, CLEAR_LINE); + m_subcpu->set_input_line(W65C02_IRQ_LINE, CLEAR_LINE); // Bit 1: /PCMMUTE m_x1snd->set_output_gain(ALL_OUTPUTS, BIT(data, 1) ? 1.0f : 0.0f); @@ -1769,10 +1769,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(downtown_state::seta_sub_interrupt) int scanline = param; if (scanline == 240) - m_subcpu->pulse_input_line(m65c02_device::NMI_LINE, attotime::zero); + m_subcpu->pulse_input_line(W65C02_NMI_LINE, attotime::zero); if (scanline == 112) - m_subcpu->set_input_line(m65c02_device::IRQ_LINE, ASSERT_LINE); + m_subcpu->set_input_line(W65C02_IRQ_LINE, ASSERT_LINE); } @@ -1785,10 +1785,10 @@ TIMER_DEVICE_CALLBACK_MEMBER(tndrcade_state::tndrcade_sub_interrupt) int scanline = param; if (scanline == 240) - m_subcpu->pulse_input_line(m65c02_device::NMI_LINE, attotime::zero); + m_subcpu->pulse_input_line(W65C02_NMI_LINE, attotime::zero); if ((scanline % 16) == 0) - m_subcpu->set_input_line(m65c02_device::IRQ_LINE, ASSERT_LINE); + m_subcpu->set_input_line(W65C02_IRQ_LINE, ASSERT_LINE); } void tndrcade_state::tndrcade(machine_config &config) @@ -1797,7 +1797,7 @@ void tndrcade_state::tndrcade(machine_config &config) M68000(config, m_maincpu, 16_MHz_XTAL / 2); // 8 MHz m_maincpu->set_addrmap(AS_PROGRAM, &tndrcade_state::tndrcade_map); - M65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz + W65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz m_subcpu->set_addrmap(AS_PROGRAM, &tndrcade_state::tndrcade_sub_map); TIMER(config, "scantimer").configure_scanline(FUNC(tndrcade_state::tndrcade_sub_interrupt), "screen", 0, 1); @@ -1849,7 +1849,7 @@ void downtown_state::twineagl(machine_config &config) M68000(config, m_maincpu, 16_MHz_XTAL / 2); // 8 MHz m_maincpu->set_addrmap(AS_PROGRAM, &downtown_state::downtown_map); - M65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz + W65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz m_subcpu->set_addrmap(AS_PROGRAM, &downtown_state::twineagl_sub_map); TIMER(config, "s_scantimer").configure_scanline(FUNC(downtown_state::seta_sub_interrupt), "screen", 0, 1); @@ -1900,7 +1900,7 @@ void downtown_state::downtown(machine_config &config) M68000(config, m_maincpu, 16_MHz_XTAL / 2); // verified on pcb m_maincpu->set_addrmap(AS_PROGRAM, &downtown_state::downtown_map); - M65C02(config, m_subcpu, 16_MHz_XTAL / 8); // verified on pcb + W65C02(config, m_subcpu, 16_MHz_XTAL / 8); // verified on pcb m_subcpu->set_addrmap(AS_PROGRAM, &downtown_state::downtown_sub_map); TIMER(config, "s_scantimer").configure_scanline(FUNC(downtown_state::seta_sub_interrupt), "screen", 0, 1); @@ -1981,7 +1981,7 @@ void usclssic_state::usclssic(machine_config &config) WATCHDOG_TIMER(config, "watchdog"); - M65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz + W65C02(config, m_subcpu, 16_MHz_XTAL / 8); // 2 MHz m_subcpu->set_addrmap(AS_PROGRAM, &usclssic_state::calibr50_sub_map); UPD4701A(config, m_upd4701); @@ -2010,7 +2010,7 @@ void usclssic_state::usclssic(machine_config &config) screen.set_visarea(0*8, 48*8-1, 1*8, 31*8-1); screen.set_screen_update(FUNC(usclssic_state::screen_update_usclssic)); screen.set_palette(m_palette); - screen.screen_vblank().set_inputline(m_subcpu, m65c02_device::IRQ_LINE, ASSERT_LINE); + screen.screen_vblank().set_inputline(m_subcpu, W65C02_IRQ_LINE, ASSERT_LINE); X1_012(config, m_tiles, m_palette, gfx_usclssic); m_tiles->set_screen(m_screen); @@ -2023,7 +2023,7 @@ void usclssic_state::usclssic(machine_config &config) SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch[0]); - m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, m65c02_device::NMI_LINE); + m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, W65C02_NMI_LINE); m_soundlatch[0]->set_separate_acknowledge(true); X1_010(config, m_x1snd, 16_MHz_XTAL); // 16 MHz @@ -2051,7 +2051,7 @@ void downtown_state::calibr50(machine_config &config) NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); - M65C02(config, m_subcpu, 16_MHz_XTAL / 8); // verified on pcb + W65C02(config, m_subcpu, 16_MHz_XTAL / 8); // verified on pcb m_subcpu->set_addrmap(AS_PROGRAM, &downtown_state::calibr50_sub_map); m_subcpu->set_periodic_int(FUNC(downtown_state::irq0_line_assert), attotime::from_hz(4*60)); // IRQ: 4/frame @@ -2088,7 +2088,7 @@ void downtown_state::calibr50(machine_config &config) SPEAKER(config, "mono").front_center(); GENERIC_LATCH_8(config, m_soundlatch[0]); - m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, m65c02_device::NMI_LINE); + m_soundlatch[0]->data_pending_callback().set_inputline(m_subcpu, W65C02_NMI_LINE); m_soundlatch[0]->set_separate_acknowledge(true); GENERIC_LATCH_8(config, m_soundlatch[1]); @@ -2110,7 +2110,7 @@ void downtown_state::metafox(machine_config &config) M68000(config, m_maincpu, 16000000/2); // 8 MHz m_maincpu->set_addrmap(AS_PROGRAM, &downtown_state::downtown_map); - M65C02(config, m_subcpu, 16000000/8); // 2 MHz + W65C02(config, m_subcpu, 16000000/8); // 2 MHz m_subcpu->set_addrmap(AS_PROGRAM, &downtown_state::metafox_sub_map); TIMER(config, "s_scantimer").configure_scanline(FUNC(downtown_state::seta_sub_interrupt), "screen", 0, 1); diff --git a/src/mame/svision/svision.cpp b/src/mame/svision/svision.cpp index 573262426f5..2f7c65dd373 100644 --- a/src/mame/svision/svision.cpp +++ b/src/mame/svision/svision.cpp @@ -13,7 +13,7 @@ #include "bus/generic/carts.h" #include "bus/generic/slot.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/timer.h" #include "emupal.h" @@ -207,7 +207,7 @@ void svision_state::check_irq() bool irq = m_timer_shot && BIT(m_reg[BANK], 1); irq = irq || (m_dma_finished && BIT(m_reg[BANK], 2)); - m_maincpu->set_input_line(M65C02_IRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); + m_maincpu->set_input_line(W65C02_IRQ_LINE, irq ? ASSERT_LINE : CLEAR_LINE); } TIMER_CALLBACK_MEMBER(svision_state::timer) @@ -712,7 +712,7 @@ void svision_state::svision(machine_config &config) { svision_base(config); - M65C02(config, m_maincpu, 4'000'000); + W65C02(config, m_maincpu, 4'000'000); m_maincpu->set_addrmap(AS_PROGRAM, &svision_state::program_map); SCREEN(config, m_screen, SCREEN_TYPE_LCD); diff --git a/src/mame/televideo/tv955.cpp b/src/mame/televideo/tv955.cpp index e2742322078..870208da10e 100644 --- a/src/mame/televideo/tv955.cpp +++ b/src/mame/televideo/tv955.cpp @@ -9,7 +9,7 @@ Skeleton driver for "third generation" TeleVideo terminals (905, 955, 9220). #include "emu.h" #include "tv955kb.h" #include "bus/rs232/rs232.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" #include "machine/input_merger.h" #include "machine/mos6551.h" #include "machine/nvram.h" @@ -146,7 +146,7 @@ INPUT_PORTS_END void tv955_state::tv955(machine_config &config) { - M65C02(config, m_maincpu, 19.3396_MHz_XTAL / 9); + W65C02(config, m_maincpu, 19.3396_MHz_XTAL / 9); m_maincpu->set_addrmap(AS_PROGRAM, &tv955_state::mem_map); INPUT_MERGER_ANY_HIGH(config, "mainirq").output_handler().set_inputline(m_maincpu, m6502_device::IRQ_LINE); diff --git a/src/mame/tvgames/elan_eu3a05.cpp b/src/mame/tvgames/elan_eu3a05.cpp index dcff115046f..5b4d42d4042 100644 --- a/src/mame/tvgames/elan_eu3a05.cpp +++ b/src/mame/tvgames/elan_eu3a05.cpp @@ -211,7 +211,7 @@ Set 5043 bit 0 low #include "elan_eu3a05_a.h" #include "cpu/m6502/m6502.h" -//#include "cpu/m6502/m65c02.h" +//#include "cpu/m6502/w65c02.h" #include "emupal.h" #include "screen.h" #include "softlist_dev.h" diff --git a/src/mame/yamaha/ympsr16.cpp b/src/mame/yamaha/ympsr16.cpp index e0a0bdfa64d..c8a7c57a14a 100644 --- a/src/mame/yamaha/ympsr16.cpp +++ b/src/mame/yamaha/ympsr16.cpp @@ -23,7 +23,7 @@ #include "emu.h" //#include "bus/midi/midi.h" -#include "cpu/m6502/m65c02.h" +#include "cpu/m6502/w65c02.h" namespace { @@ -122,7 +122,7 @@ INPUT_PORTS_END void yamaha_psr16_state::psr16(machine_config &config) { - M65C02(config, m_maincpu, 5.5_MHz_XTAL / 4); // XTAL value from PSS-480; internal divider guessed + W65C02(config, m_maincpu, 5.5_MHz_XTAL / 4); // XTAL value from PSS-480; internal divider guessed m_maincpu->set_addrmap(AS_PROGRAM, &yamaha_psr16_state::psr16_map); } diff --git a/src/osd/modules/debugger/debuggdbstub.cpp b/src/osd/modules/debugger/debuggdbstub.cpp index a6519a8e13e..36806dfefba 100644 --- a/src/osd/modules/debugger/debuggdbstub.cpp +++ b/src/osd/modules/debugger/debuggdbstub.cpp @@ -511,9 +511,9 @@ static const std::map gdb_register_maps = { "m6502", gdb_register_map_m6502 }, { "m6507", gdb_register_map_m6502 }, { "m6510", gdb_register_map_m6502 }, - { "m65c02", gdb_register_map_m6502 }, { "m65ce02", gdb_register_map_m6502 }, { "rp2a03", gdb_register_map_m6502 }, + { "w65c02", gdb_register_map_m6502 }, { "w65c02s", gdb_register_map_m6502 }, { "m6809", gdb_register_map_m6809 }, { "score7", gdb_register_map_score7 }, diff --git a/src/tools/unidasm.cpp b/src/tools/unidasm.cpp index b5c40510865..1d7e9fc6932 100644 --- a/src/tools/unidasm.cpp +++ b/src/tools/unidasm.cpp @@ -96,11 +96,11 @@ using util::BIT; #include "cpu/m6502/m6502d.h" #include "cpu/m6502/m6509d.h" #include "cpu/m6502/m6510d.h" -#include "cpu/m6502/m65c02d.h" #include "cpu/m6502/m65ce02d.h" #include "cpu/m6502/m740d.h" #include "cpu/m6502/r65c02d.h" #include "cpu/m6502/r65c19d.h" +#include "cpu/m6502/w65c02d.h" #include "cpu/m6502/xavixd.h" #include "cpu/m6502/xavix2000d.h" #include "cpu/m6800/6800dasm.h" @@ -525,7 +525,6 @@ static const dasm_table_entry dasm_table[] = { "m6502", le, 0, []() -> util::disasm_interface * { return new m6502_disassembler; } }, { "m6509", le, 0, []() -> util::disasm_interface * { return new m6509_disassembler; } }, { "m6510", le, 0, []() -> util::disasm_interface * { return new m6510_disassembler; } }, - { "m65c02", le, 0, []() -> util::disasm_interface * { return new m65c02_disassembler; } }, { "m65ce02", le, 0, []() -> util::disasm_interface * { return new m65ce02_disassembler; } }, { "m6800", be, 0, []() -> util::disasm_interface * { return new m680x_disassembler(6800); } }, { "m68000", be, 0, []() -> util::disasm_interface * { return new m68k_disassembler(m68k_disassembler::TYPE_68000); } }, @@ -727,6 +726,7 @@ static const dasm_table_entry dasm_table[] = { "vt50", le, 0, []() -> util::disasm_interface * { return new vt50_disassembler; } }, { "vt52", le, 0, []() -> util::disasm_interface * { return new vt52_disassembler; } }, { "vt61", le, -1, []() -> util::disasm_interface * { return new vt61_disassembler; } }, + { "w65c02", le, 0, []() -> util::disasm_interface * { return new w65c02_disassembler; } }, { "we32100", be, 0, []() -> util::disasm_interface * { return new we32100_disassembler; } }, { "x86_16", le, 0, []() -> util::disasm_interface * { i386_unidasm.mode = 16; return new i386_disassembler(&i386_unidasm); } }, { "x86_32", le, 0, []() -> util::disasm_interface * { i386_unidasm.mode = 32; return new i386_disassembler(&i386_unidasm); } }, -- cgit v1.2.3