From f474114e1d33a559fdb9e3369d648ce45e081e99 Mon Sep 17 00:00:00 2001 From: Aaron Giles Date: Sat, 22 Aug 2009 06:25:07 +0000 Subject: [PATCH] Added infrastructure to compile universal standalone disassembler: - added unidasm to the tools build - split the disassemblers out of libcpu and into new libdasm - ensured the disassembly entry points for all disassemblers are in the source file for the disassembler (sometimes new generic versions were created) Still needs command line options and file loading, but the fundamentals are present, and it links. --- .gitattributes | 4 + makefile | 3 +- src/emu/cpu/arm/arm.c | 8 +- src/emu/cpu/arm/armdasm.c | 6 + src/emu/cpu/arm7/arm7.c | 11 +- src/emu/cpu/arm7/arm7dasm.c | 10 + src/emu/cpu/cpu.mak | 169 ++++++++--------- src/emu/cpu/cubeqcpu/cubedasm.c | 305 ++++++++++++++++++++++++++++++ src/emu/cpu/cubeqcpu/cubeqcpu.c | 292 +---------------------------- src/emu/cpu/dsp32/dsp32.c | 13 +- src/emu/cpu/dsp32/dsp32dis.c | 10 + src/emu/cpu/e132xs/32xsdasm.c | 5 + src/emu/cpu/esrip/esrip.c | 83 +-------- src/emu/cpu/esrip/esripdsm.c | 92 +++++++++ src/emu/cpu/g65816/g65816ds.c | 5 + src/emu/cpu/h83002/h8_16.c | 15 +- src/emu/cpu/h83002/h8_8.c | 9 +- src/emu/cpu/h83002/h8disasm.c | 16 ++ src/emu/cpu/i386/i386dasm.c | 17 +- src/emu/cpu/i960/i960.c | 15 +- src/emu/cpu/i960/i960dis.c | 13 ++ src/emu/cpu/jaguar/jagdasm.c | 14 ++ src/emu/cpu/jaguar/jaguar.c | 21 +-- src/emu/cpu/m37710/m7700ds.c | 6 + src/emu/cpu/m68000/m68kdasm.c | 31 ++++ src/emu/cpu/mb86233/mb86233.c | 16 +- src/emu/cpu/mb86233/mb86233d.c | 7 + src/emu/cpu/mips/mips3dsm.c | 18 ++ src/emu/cpu/mips/psxdasm.c | 7 + src/emu/cpu/mips/r3000.c | 20 +- src/emu/cpu/mips/r3kdasm.c | 16 ++ src/emu/cpu/nec/necdasm.c | 8 +- src/emu/cpu/powerpc/ppc_dasm.c | 7 + src/emu/cpu/rsp/rsp.c | 10 +- src/emu/cpu/rsp/rsp_dasm.c | 8 + src/emu/cpu/sh2/sh2.c | 7 +- src/emu/cpu/sh2/sh2dasm.c | 6 + src/emu/cpu/sh2/sh2drc.c | 11 +- src/emu/cpu/sh4/sh4.c | 7 +- src/emu/cpu/sh4/sh4dasm.c | 6 + src/emu/cpu/sharc/sharc.c | 18 +- src/emu/cpu/sharc/sharcdsm.c | 15 ++ src/emu/cpu/ssem/ssem.c | 13 +- src/emu/cpu/ssem/ssemdasm.c | 11 ++ src/emu/cpu/ssp1601/ssp1601.c | 9 +- src/emu/cpu/ssp1601/ssp1601d.c | 9 + src/emu/cpu/tms32031/dis32031.c | 7 + src/emu/cpu/tms32031/tms32031.c | 14 +- src/emu/cpu/tms57002/57002dsm.c | 90 +++++++++ src/emu/cpu/tms57002/tms57002.c | 83 +-------- src/emu/cpu/v60/v60.c | 21 --- src/emu/cpu/v60/v60d.c | 21 +++ src/emu/cpu/z8000/8000dasm.c | 4 + src/emu/emu.mak | 4 +- src/tools/tools.mak | 14 ++ src/tools/unidasm.c | 319 ++++++++++++++++++++++++++++++++ 56 files changed, 1241 insertions(+), 738 deletions(-) create mode 100644 src/emu/cpu/cubeqcpu/cubedasm.c create mode 100644 src/emu/cpu/esrip/esripdsm.c create mode 100644 src/emu/cpu/tms57002/57002dsm.c create mode 100644 src/tools/unidasm.c diff --git a/.gitattributes b/.gitattributes index ab96acee908..6aa61bcc834 100644 --- a/.gitattributes +++ b/.gitattributes @@ -62,6 +62,7 @@ src/emu/cpu/cp1610/1610dasm.c svneol=native#text/plain src/emu/cpu/cp1610/cp1610.c svneol=native#text/plain src/emu/cpu/cp1610/cp1610.h svneol=native#text/plain src/emu/cpu/cpu.mak svneol=native#text/plain +src/emu/cpu/cubeqcpu/cubedasm.c svneol=native#text/plain src/emu/cpu/cubeqcpu/cubeqcpu.c svneol=native#text/plain src/emu/cpu/cubeqcpu/cubeqcpu.h svneol=native#text/plain src/emu/cpu/drcbec.c svneol=native#text/plain @@ -93,6 +94,7 @@ src/emu/cpu/e132xs/e132xs.h svneol=native#text/plain src/emu/cpu/e132xs/e132xsop.c svneol=native#text/plain src/emu/cpu/esrip/esrip.c svneol=native#text/plain src/emu/cpu/esrip/esrip.h svneol=native#text/plain +src/emu/cpu/esrip/esripdsm.c svneol=native#text/plain src/emu/cpu/f8/f8.c svneol=native#text/plain src/emu/cpu/f8/f8.h svneol=native#text/plain src/emu/cpu/f8/f8dasm.c svneol=native#text/plain @@ -422,6 +424,7 @@ src/emu/cpu/tms34010/dis34010.c svneol=native#text/plain src/emu/cpu/tms34010/makefile svneol=native#text/plain src/emu/cpu/tms34010/tms34010.c svneol=native#text/plain src/emu/cpu/tms34010/tms34010.h svneol=native#text/plain +src/emu/cpu/tms57002/57002dsm.c svneol=native#text/plain src/emu/cpu/tms57002/tms57002.c svneol=native#text/plain src/emu/cpu/tms57002/tms57002.h svneol=native#text/plain src/emu/cpu/tms57002/tmsinstr.lst svneol=native#text/plain @@ -3692,4 +3695,5 @@ src/tools/split.c svneol=native#text/plain src/tools/src2html.c svneol=native#text/plain src/tools/srcclean.c svneol=native#text/plain src/tools/tools.mak svneol=native#text/plain +src/tools/unidasm.c svneol=native#text/plain src/version.c svneol=native#text/plain diff --git a/makefile b/makefile index 9da042bcc53..a742a10941e 100644 --- a/makefile +++ b/makefile @@ -420,6 +420,7 @@ OBJDIRS = $(OBJ) LIBEMU = $(OBJ)/libemu.a LIBCPU = $(OBJ)/libcpu.a +LIBDASM = $(OBJ)/libdasm.a LIBSOUND = $(OBJ)/libsound.a LIBUTIL = $(OBJ)/libutil.a LIBOCORE = $(OBJ)/libocore.a @@ -537,7 +538,7 @@ $(sort $(OBJDIRS)): ifndef EXECUTABLE_DEFINED -$(EMULATOR): $(VERSIONOBJ) $(DRVLIBS) $(LIBOSD) $(LIBEMU) $(LIBCPU) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(LIBOCORE) $(RESFILE) +$(EMULATOR): $(VERSIONOBJ) $(DRVLIBS) $(LIBOSD) $(LIBEMU) $(LIBCPU) $(LIBDASM) $(LIBSOUND) $(LIBUTIL) $(EXPAT) $(ZLIB) $(LIBOCORE) $(RESFILE) # always recompile the version string $(CC) $(CDEFS) $(CFLAGS) -c $(SRC)/version.c -o $(VERSIONOBJ) @echo Linking $@... diff --git a/src/emu/cpu/arm/arm.c b/src/emu/cpu/arm/arm.c index 62b92ee10b5..628ab21b067 100644 --- a/src/emu/cpu/arm/arm.c +++ b/src/emu/cpu/arm/arm.c @@ -18,6 +18,8 @@ #include "arm.h" #include "debugger.h" +CPU_DISASSEMBLE( arm ); + #define READ8(addr) cpu_read8(cpustate,addr) #define WRITE8(addr,data) cpu_write8(cpustate,addr,data) #define READ32(addr) cpu_read32(cpustate,addr) @@ -492,12 +494,6 @@ static void set_irq_line(ARM_REGS* cpustate, int irqline, int state) arm_check_irq_state(cpustate); } -static CPU_DISASSEMBLE( arm ) -{ - UINT32 opcode = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24); - return 4 | arm_disasm(buffer, pc, opcode); -} - static CPU_INIT( arm ) { ARM_REGS *cpustate = get_safe_token(device); diff --git a/src/emu/cpu/arm/armdasm.c b/src/emu/cpu/arm/armdasm.c index aa17861e374..bd915b89aa2 100644 --- a/src/emu/cpu/arm/armdasm.c +++ b/src/emu/cpu/arm/armdasm.c @@ -391,3 +391,9 @@ UINT32 arm_disasm( char *pBuf, UINT32 pc, UINT32 opcode ) return dasmflags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( arm ) +{ + UINT32 opcode = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24); + return 4 | arm_disasm(buffer, pc, opcode); +} diff --git a/src/emu/cpu/arm7/arm7.c b/src/emu/cpu/arm7/arm7.c index 8652f971135..11c11036d96 100644 --- a/src/emu/cpu/arm7/arm7.c +++ b/src/emu/cpu/arm7/arm7.c @@ -279,16 +279,15 @@ static void set_irq_line(arm_state *cpustate, int irqline, int state) static CPU_DISASSEMBLE( arm7 ) { + CPU_DISASSEMBLE( arm7arm ); + CPU_DISASSEMBLE( arm7thumb ); + arm_state *cpustate = get_safe_token(device); if (T_IS_SET(GET_CPSR)) - { - return thumb_disasm(buffer, pc, oprom[0] | (oprom[1] << 8)) | 2; - } + return CPU_DISASSEMBLE_CALL(arm7thumb); else - { - return arm7_disasm(buffer, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)) | 4; - } + return CPU_DISASSEMBLE_CALL(arm7arm); } diff --git a/src/emu/cpu/arm7/arm7dasm.c b/src/emu/cpu/arm7/arm7dasm.c index 18ca7bdfa02..dd3bd7777d1 100644 --- a/src/emu/cpu/arm7/arm7dasm.c +++ b/src/emu/cpu/arm7/arm7dasm.c @@ -1305,3 +1305,13 @@ UINT32 thumb_disasm( char *pBuf, UINT32 pc, UINT16 opcode ) return dasmflags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( arm7arm ) +{ + return arm7_disasm(buffer, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)) | 4; +} + +CPU_DISASSEMBLE( arm7thumb ) +{ + return thumb_disasm(buffer, pc, oprom[0] | (oprom[1] << 8)) | 2; +} diff --git a/src/emu/cpu/cpu.mak b/src/emu/cpu/cpu.mak index abf89ce81c2..4fcb7818ac6 100644 --- a/src/emu/cpu/cpu.mak +++ b/src/emu/cpu/cpu.mak @@ -81,13 +81,13 @@ $(DRCOBJ): $(DRCDEPS) ifneq ($(filter ARM,$(CPUS)),) OBJDIRS += $(CPUOBJ)/arm CPUOBJS += $(CPUOBJ)/arm/arm.o -DBGOBJS += $(CPUOBJ)/arm/armdasm.o +DASMOBJS += $(CPUOBJ)/arm/armdasm.o endif ifneq ($(filter ARM7,$(CPUS)),) OBJDIRS += $(CPUOBJ)/arm7 CPUOBJS += $(CPUOBJ)/arm7/arm7.o -DBGOBJS += $(CPUOBJ)/arm7/arm7dasm.o +DASMOBJS += $(CPUOBJ)/arm7/arm7dasm.o endif $(CPUOBJ)/arm/arm.o: $(CPUSRC)/arm/arm.c \ @@ -107,7 +107,7 @@ $(CPUOBJ)/arm7/arm7.o: $(CPUSRC)/arm7/arm7.c \ ifneq ($(filter SE3208,$(CPUS)),) OBJDIRS += $(CPUOBJ)/se3208 CPUOBJS += $(CPUOBJ)/se3208/se3208.o -DBGOBJS += $(CPUOBJ)/se3208/se3208dis.o +DASMOBJS += $(CPUOBJ)/se3208/se3208dis.o endif $(CPUOBJ)/se3208/se3208.o: $(CPUSRC)/se3208/se3208.c \ @@ -122,7 +122,7 @@ $(CPUOBJ)/se3208/se3208.o: $(CPUSRC)/se3208/se3208.c \ ifneq ($(filter ALPHA8201,$(CPUS)),) OBJDIRS += $(CPUOBJ)/alph8201 CPUOBJS += $(CPUOBJ)/alph8201/alph8201.o -DBGOBJS += $(CPUOBJ)/alph8201/8201dasm.o +DASMOBJS += $(CPUOBJ)/alph8201/8201dasm.o endif $(CPUOBJ)/alph8201/alph8201.o: $(CPUSRC)/alph8201/alph8201.c \ @@ -137,7 +137,7 @@ $(CPUOBJ)/alph8201/alph8201.o: $(CPUSRC)/alph8201/alph8201.c \ ifneq ($(filter ADSP21XX,$(CPUS)),) OBJDIRS += $(CPUOBJ)/adsp2100 CPUOBJS += $(CPUOBJ)/adsp2100/adsp2100.o -DBGOBJS += $(CPUOBJ)/adsp2100/2100dasm.o +DASMOBJS += $(CPUOBJ)/adsp2100/2100dasm.o endif $(CPUOBJ)/adsp2100/adsp2100.o: $(CPUSRC)/adsp2100/adsp2100.c \ @@ -153,7 +153,7 @@ $(CPUOBJ)/adsp2100/adsp2100.o: $(CPUSRC)/adsp2100/adsp2100.c \ ifneq ($(filter ADSP21062,$(CPUS)),) OBJDIRS += $(CPUOBJ)/sharc CPUOBJS += $(CPUOBJ)/sharc/sharc.o -DBGOBJS += $(CPUOBJ)/sharc/sharcdsm.o +DASMOBJS += $(CPUOBJ)/sharc/sharcdsm.o endif $(CPUOBJ)/sharc/sharc.o: $(CPUSRC)/sharc/sharc.c \ @@ -175,7 +175,7 @@ $(CPUOBJ)/sharc/sharc.o: $(CPUSRC)/sharc/sharc.c \ ifneq ($(filter APEXC,$(CPUS)),) OBJDIRS += $(CPUOBJ)/apexc CPUOBJS += $(CPUOBJ)/apexc/apexc.o -DBGOBJS += $(CPUOBJ)/apexc/apexcdsm.o +DASMOBJS += $(CPUOBJ)/apexc/apexcdsm.o endif $(CPUOBJ)/apexc/apexc.o: $(CPUSRC)/apexc/apexc.c \ @@ -190,7 +190,7 @@ $(CPUOBJ)/apexc/apexc.o: $(CPUSRC)/apexc/apexc.c \ ifneq ($(filter DSP32C,$(CPUS)),) OBJDIRS += $(CPUOBJ)/dsp32 CPUOBJS += $(CPUOBJ)/dsp32/dsp32.o -DBGOBJS += $(CPUOBJ)/dsp32/dsp32dis.o +DASMOBJS += $(CPUOBJ)/dsp32/dsp32dis.o endif $(CPUOBJ)/dsp32/dsp32.o: $(CPUSRC)/dsp32/dsp32.c \ @@ -205,7 +205,7 @@ $(CPUOBJ)/dsp32/dsp32.o: $(CPUSRC)/dsp32/dsp32.c \ ifneq ($(filter ASAP,$(CPUS)),) OBJDIRS += $(CPUOBJ)/asap CPUOBJS += $(CPUOBJ)/asap/asap.o -DBGOBJS += $(CPUOBJ)/asap/asapdasm.o +DASMOBJS += $(CPUOBJ)/asap/asapdasm.o endif $(CPUOBJ)/asap/asap.o: $(CPUSRC)/asap/asap.c \ @@ -220,7 +220,7 @@ $(CPUOBJ)/asap/asap.o: $(CPUSRC)/asap/asap.c \ ifneq ($(filter JAGUAR,$(CPUS)),) OBJDIRS += $(CPUOBJ)/jaguar CPUOBJS += $(CPUOBJ)/jaguar/jaguar.o -DBGOBJS += $(CPUOBJ)/jaguar/jagdasm.o +DASMOBJS += $(CPUOBJ)/jaguar/jagdasm.o endif $(CPUOBJ)/jaguar/jaguar.o: $(CPUSRC)/jaguar/jaguar.c \ @@ -235,7 +235,7 @@ $(CPUOBJ)/jaguar/jaguar.o: $(CPUSRC)/jaguar/jaguar.c \ ifneq ($(filter AVR8,$(CPUS)),) OBJDIRS += $(CPUOBJ)/avr8 CPUOBJS += $(CPUOBJ)/avr8/avr8.o -DBGOBJS += $(CPUOBJ)/avr8/avr8dasm.o +DASMOBJS += $(CPUOBJ)/avr8/avr8dasm.o endif $(CPUOBJ)/avr8/avr8.o: $(CPUSRC)/avr8/avr8.c \ @@ -250,7 +250,7 @@ $(CPUOBJ)/avr8/avr8.o: $(CPUSRC)/avr8/avr8.c \ ifneq ($(filter CUBEQCPU,$(CPUS)),) OBJDIRS += $(CPUOBJ)/cubeqcpu CPUOBJS += $(CPUOBJ)/cubeqcpu/cubeqcpu.o -#DBGOBJS += $(CPUOBJ)/cubeqcpu/cubedasm.o +DASMOBJS += $(CPUOBJ)/cubeqcpu/cubedasm.o endif $(CPUOBJ)/cubeqcpu/cubeqcpu.o: $(CPUSRC)/cubeqcpu/cubeqcpu.c \ @@ -265,7 +265,7 @@ $(CPUOBJ)/cubeqcpu/cubeqcpu.o: $(CPUSRC)/cubeqcpu/cubeqcpu.c \ ifneq ($(filter ESRIP,$(CPUS)),) OBJDIRS += $(CPUOBJ)/esrip CPUOBJS += $(CPUOBJ)/esrip/esrip.o -#DBGOBJS += $(CPUOBJ)/esrip/esrip.o +DASMOBJS += $(CPUOBJ)/esrip/esripdsm.o endif $(CPUOBJ)/esrip/esrip.o: $(CPUSRC)/esrip/esrip.c \ @@ -280,7 +280,7 @@ $(CPUOBJ)/esrip/esrip.o: $(CPUSRC)/esrip/esrip.c \ ifneq ($(filter CDP1802,$(CPUS)),) OBJDIRS += $(CPUOBJ)/cdp1802 CPUOBJS += $(CPUOBJ)/cdp1802/cdp1802.o -DBGOBJS += $(CPUOBJ)/cdp1802/1802dasm.o +DASMOBJS += $(CPUOBJ)/cdp1802/1802dasm.o endif $(CPUOBJ)/cdp1802/cdp1802.o: $(CPUSRC)/cdp1802/cdp1802.c \ @@ -295,9 +295,9 @@ $(CPUOBJ)/cdp1802/cdp1802.o: $(CPUSRC)/cdp1802/cdp1802.c \ ifneq ($(filter COP400,$(CPUS)),) OBJDIRS += $(CPUOBJ)/cop400 CPUOBJS += $(CPUOBJ)/cop400/cop400.o -DBGOBJS += $(CPUOBJ)/cop400/cop410ds.o -DBGOBJS += $(CPUOBJ)/cop400/cop420ds.o -DBGOBJS += $(CPUOBJ)/cop400/cop440ds.o +DASMOBJS += $(CPUOBJ)/cop400/cop410ds.o +DASMOBJS += $(CPUOBJ)/cop400/cop420ds.o +DASMOBJS += $(CPUOBJ)/cop400/cop440ds.o endif $(CPUOBJ)/cop400/cop400.o: $(CPUSRC)/cop400/cop400.c \ @@ -313,7 +313,7 @@ $(CPUOBJ)/cop400/cop400.o: $(CPUSRC)/cop400/cop400.c \ ifneq ($(filter CP1610,$(CPUS)),) OBJDIRS += $(CPUOBJ)/cp1610 CPUOBJS += $(CPUOBJ)/cp1610/cp1610.o -DBGOBJS += $(CPUOBJ)/cp1610/1610dasm.o +DASMOBJS += $(CPUOBJ)/cp1610/1610dasm.o endif $(CPUOBJ)/cp1610/cp1610.o: $(CPUSRC)/cp1610/cp1610.c \ @@ -328,7 +328,7 @@ $(CPUOBJ)/cp1610/cp1610.o: $(CPUSRC)/cp1610/cp1610.c \ ifneq ($(filter CCPU,$(CPUS)),) OBJDIRS += $(CPUOBJ)/ccpu CPUOBJS += $(CPUOBJ)/ccpu/ccpu.o -DBGOBJS += $(CPUOBJ)/ccpu/ccpudasm.o +DASMOBJS += $(CPUOBJ)/ccpu/ccpudasm.o endif $(CPUOBJ)/ccpu/ccpu.o: $(CPUSRC)/ccpu/ccpu.c \ @@ -343,7 +343,7 @@ $(CPUOBJ)/ccpu/ccpu.o: $(CPUSRC)/ccpu/ccpu.c \ ifneq ($(filter T11,$(CPUS)),) OBJDIRS += $(CPUOBJ)/t11 CPUOBJS += $(CPUOBJ)/t11/t11.o -DBGOBJS += $(CPUOBJ)/t11/t11dasm.o +DASMOBJS += $(CPUOBJ)/t11/t11dasm.o endif $(CPUOBJ)/t11/t11.o: $(CPUSRC)/t11/t11.c \ @@ -360,7 +360,7 @@ $(CPUOBJ)/t11/t11.o: $(CPUSRC)/t11/t11.c \ ifneq ($(filter F8,$(CPUS)),) OBJDIRS += $(CPUOBJ)/f8 CPUOBJS += $(CPUOBJ)/f8/f8.o -DBGOBJS += $(CPUOBJ)/f8/f8dasm.o +DASMOBJS += $(CPUOBJ)/f8/f8dasm.o endif $(CPUOBJ)/f8/f8.o: $(CPUSRC)/f8/f8.c \ @@ -381,7 +381,7 @@ CPUOBJS += \ $(CPUOBJ)/g65816/g65816o2.o \ $(CPUOBJ)/g65816/g65816o3.o \ $(CPUOBJ)/g65816/g65816o4.o -DBGOBJS += $(CPUOBJ)/g65816/g65816ds.o +DASMOBJS += $(CPUOBJ)/g65816/g65816ds.o endif G65816DEPS = \ @@ -416,7 +416,7 @@ $(CPUOBJ)/g65816/g65816o4.o: $(CPUSRC)/g65816/g65816o4.c \ ifneq ($(filter HD6309,$(CPUS)),) OBJDIRS += $(CPUOBJ)/hd6309 CPUOBJS += $(CPUOBJ)/hd6309/hd6309.o -DBGOBJS += $(CPUOBJ)/hd6309/6309dasm.o +DASMOBJS += $(CPUOBJ)/hd6309/6309dasm.o endif $(CPUOBJ)/hd6309/hd6309.o: $(CPUSRC)/hd6309/hd6309.c \ @@ -432,7 +432,7 @@ $(CPUOBJ)/hd6309/hd6309.o: $(CPUSRC)/hd6309/hd6309.c \ ifneq ($(filter H83002,$(CPUS)),) OBJDIRS += $(CPUOBJ)/h83002 CPUOBJS += $(CPUOBJ)/h83002/h8_16.o $(CPUOBJ)/h83002/h8periph.o -DBGOBJS += $(CPUOBJ)/h83002/h8disasm.o +DASMOBJS += $(CPUOBJ)/h83002/h8disasm.o endif $(CPUOBJ)/h83002/h8_16.o: $(CPUSRC)/h83002/h8_16.c \ @@ -453,7 +453,7 @@ $(CPUOBJ)/h83002/h8periph.o: $(CPUSRC)/h83002/h8periph.c \ ifneq ($(filter H83334,$(CPUS)),) OBJDIRS += $(CPUOBJ)/h83002 CPUOBJS += $(CPUOBJ)/h83002/h8_8.o $(CPUOBJ)/h83002/h8periph.o -DBGOBJS += $(CPUOBJ)/h83002/h8disasm.o +DASMOBJS += $(CPUOBJ)/h83002/h8disasm.o endif $(CPUOBJ)/h83002/h8_8.o: $(CPUSRC)/h83002/h8_8.c \ @@ -473,7 +473,7 @@ $(CPUOBJ)/h83002/h8periph.o: $(CPUSRC)/h83002/h8periph.c \ ifneq ($(filter SH2,$(CPUS)),) OBJDIRS += $(CPUOBJ)/sh2 CPUOBJS += $(CPUOBJ)/sh2/sh2.o $(CPUOBJ)/sh2/sh2comn.o $(CPUOBJ)/sh2/sh2drc.o $(CPUOBJ)/sh2/sh2fe.o $(DRCOBJ) -DBGOBJS += $(CPUOBJ)/sh2/sh2dasm.o +DASMOBJS += $(CPUOBJ)/sh2/sh2dasm.o endif $(CPUOBJ)/sh2/sh2.o: $(CPUSRC)/sh2/sh2.c \ @@ -499,7 +499,7 @@ $(CPUOBJ)/sh2/sh2fe.o: $(CPUSRC)/sh2/sh2fe.c \ ifneq ($(filter SH4,$(CPUS)),) OBJDIRS += $(CPUOBJ)/sh4 CPUOBJS += $(CPUOBJ)/sh4/sh4.o $(CPUOBJ)/sh4/sh4comn.o -DBGOBJS += $(CPUOBJ)/sh4/sh4dasm.o +DASMOBJS += $(CPUOBJ)/sh4/sh4dasm.o endif $(CPUOBJ)/sh4/sh4.o: $(CPUSRC)/sh4/sh4.c \ @@ -519,7 +519,7 @@ $(CPUOBJ)/sh4/sh4comn.o: $(CPUSRC)/sh4/sh4comn.c \ ifneq ($(filter H6280,$(CPUS)),) OBJDIRS += $(CPUOBJ)/h6280 CPUOBJS += $(CPUOBJ)/h6280/h6280.o -DBGOBJS += $(CPUOBJ)/h6280/6280dasm.o +DASMOBJS += $(CPUOBJ)/h6280/6280dasm.o endif $(CPUOBJ)/h6280/h6280.o: $(CPUSRC)/h6280/h6280.c \ @@ -536,7 +536,7 @@ $(CPUOBJ)/h6280/h6280.o: $(CPUSRC)/h6280/h6280.c \ ifneq ($(filter E1,$(CPUS)),) OBJDIRS += $(CPUOBJ)/e132xs CPUOBJS += $(CPUOBJ)/e132xs/e132xs.o -DBGOBJS += $(CPUOBJ)/e132xs/32xsdasm.o +DASMOBJS += $(CPUOBJ)/e132xs/32xsdasm.o endif $(CPUOBJ)/e132xs/e132xs.o: $(CPUSRC)/e132xs/e132xs.c \ @@ -552,7 +552,7 @@ $(CPUOBJ)/e132xs/e132xs.o: $(CPUSRC)/e132xs/e132xs.c \ ifneq ($(filter I4004,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i4004 CPUOBJS += $(CPUOBJ)/i4004/i4004.o -DBGOBJS += $(CPUOBJ)/i4004/4004dasm.o +DASMOBJS += $(CPUOBJ)/i4004/4004dasm.o endif $(CPUOBJ)/i4004/i4004.o: $(CPUSRC)/i4004/i4004.c \ @@ -567,7 +567,7 @@ $(CPUOBJ)/i4004/i4004.o: $(CPUSRC)/i4004/i4004.c \ ifneq ($(filter I8085,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i8085 CPUOBJS += $(CPUOBJ)/i8085/i8085.o -DBGOBJS += $(CPUOBJ)/i8085/8085dasm.o +DASMOBJS += $(CPUOBJ)/i8085/8085dasm.o endif $(CPUOBJ)/i8085/i8085.o: $(CPUSRC)/i8085/i8085.c \ @@ -583,7 +583,7 @@ $(CPUOBJ)/i8085/i8085.o: $(CPUSRC)/i8085/i8085.c \ ifneq ($(filter MCS48,$(CPUS)),) OBJDIRS += $(CPUOBJ)/mcs48 CPUOBJS += $(CPUOBJ)/mcs48/mcs48.o -DBGOBJS += $(CPUOBJ)/mcs48/mcs48dsm.o +DASMOBJS += $(CPUOBJ)/mcs48/mcs48dsm.o endif $(CPUOBJ)/mcs48/mcs48.o: $(CPUSRC)/mcs48/mcs48.c \ @@ -598,7 +598,7 @@ $(CPUOBJ)/mcs48/mcs48.o: $(CPUSRC)/mcs48/mcs48.c \ ifneq ($(filter MCS51,$(CPUS)),) OBJDIRS += $(CPUOBJ)/mcs51 CPUOBJS += $(CPUOBJ)/mcs51/mcs51.o -DBGOBJS += $(CPUOBJ)/mcs51/mcs51dasm.o +DASMOBJS += $(CPUOBJ)/mcs51/mcs51dasm.o endif $(CPUOBJ)/mcs51/mcs51.o: $(CPUSRC)/mcs51/mcs51.c \ @@ -613,13 +613,13 @@ ifneq ($(filter I86,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i86 $(CPUOBJ)/i386 CPUOBJS += $(CPUOBJ)/i86/i86.o CPUOBJS += $(CPUOBJ)/i86/i286.o -DBGOBJS += $(CPUOBJ)/i386/i386dasm.o +DASMOBJS += $(CPUOBJ)/i386/i386dasm.o endif ifneq ($(filter I386,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i386 CPUOBJS += $(CPUOBJ)/i386/i386.o -DBGOBJS += $(CPUOBJ)/i386/i386dasm.o +DASMOBJS += $(CPUOBJ)/i386/i386dasm.o endif I86DEPS = \ @@ -662,7 +662,7 @@ $(CPUOBJ)/i386/i386.o: $(CPUSRC)/i386/i386.c \ ifneq ($(filter I860,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i860 CPUOBJS += $(CPUOBJ)/i860/i860.o -DBGOBJS += $(CPUOBJ)/i860/i860dis.o +DASMOBJS += $(CPUOBJ)/i860/i860dis.o endif $(CPUOBJ)/i860/i860.o: $(CPUSRC)/i860/i860.c \ @@ -676,7 +676,7 @@ $(CPUOBJ)/i860/i860.o: $(CPUSRC)/i860/i860.c \ ifneq ($(filter I960,$(CPUS)),) OBJDIRS += $(CPUOBJ)/i960 CPUOBJS += $(CPUOBJ)/i960/i960.o -DBGOBJS += $(CPUOBJ)/i960/i960dis.o +DASMOBJS += $(CPUOBJ)/i960/i960dis.o endif $(CPUOBJ)/i960/i960.o: $(CPUSRC)/i960/i960.c \ @@ -691,7 +691,7 @@ $(CPUOBJ)/i960/i960.o: $(CPUSRC)/i960/i960.c \ ifneq ($(filter KONAMI,$(CPUS)),) OBJDIRS += $(CPUOBJ)/konami CPUOBJS += $(CPUOBJ)/konami/konami.o -DBGOBJS += $(CPUOBJ)/konami/knmidasm.o +DASMOBJS += $(CPUOBJ)/konami/knmidasm.o endif $(CPUOBJ)/konami/konami.o: $(CPUSRC)/konami/konami.c \ @@ -708,7 +708,7 @@ $(CPUOBJ)/konami/konami.o: $(CPUSRC)/konami/konami.c \ ifneq ($(filter LH5801,$(CPUS)),) OBJDIRS += $(CPUOBJ)/lh5801 CPUOBJS += $(CPUOBJ)/lh5801/lh5801.o -DBGOBJS += $(CPUOBJ)/lh5801/5801dasm.o +DASMOBJS += $(CPUOBJ)/lh5801/5801dasm.o endif $(CPUOBJ)/lh5801/lh5801.o: $(CPUSRC)/lh5801/lh5801.c \ @@ -724,7 +724,7 @@ $(CPUOBJ)/lh5801/lh5801.o: $(CPUSRC)/lh5801/lh5801.c \ ifneq ($(filter SSEM,$(CPUS)),) OBJDIRS += $(CPUOBJ)/ssem CPUOBJS += $(CPUOBJ)/ssem/ssem.o -DBGOBJS += $(CPUOBJ)/ssem/ssemdasm.o +DASMOBJS += $(CPUOBJ)/ssem/ssemdasm.o endif $(CPUOBJ)/ssem/ssem.o: $(CPUSRC)/ssem/ssem.c \ @@ -739,7 +739,7 @@ $(CPUOBJ)/ssem/ssem.o: $(CPUSRC)/ssem/ssem.c \ ifneq ($(filter MB88XX,$(CPUS)),) OBJDIRS += $(CPUOBJ)/mb88xx CPUOBJS += $(CPUOBJ)/mb88xx/mb88xx.o -DBGOBJS += $(CPUOBJ)/mb88xx/mb88dasm.o +DASMOBJS += $(CPUOBJ)/mb88xx/mb88dasm.o endif $(CPUOBJ)/mb88xx/mb88xx.o: $(CPUSRC)/mb88xx/mb88xx.c \ @@ -754,7 +754,7 @@ $(CPUOBJ)/mb88xx/mb88xx.o: $(CPUSRC)/mb88xx/mb88xx.c \ ifneq ($(filter MB86233,$(CPUS)),) OBJDIRS += $(CPUOBJ)/mb86233 CPUOBJS += $(CPUOBJ)/mb86233/mb86233.o -DBGOBJS += $(CPUOBJ)/mb86233/mb86233d.o +DASMOBJS += $(CPUOBJ)/mb86233/mb86233d.o endif $(CPUOBJ)/mb86233/mb86233.o: $(CPUSRC)/mb86233/mb86233.c \ @@ -769,7 +769,7 @@ $(CPUOBJ)/mb86233/mb86233.o: $(CPUSRC)/mb86233/mb86233.c \ ifneq ($(filter PIC16C5X,$(CPUS)),) OBJDIRS += $(CPUOBJ)/pic16c5x CPUOBJS += $(CPUOBJ)/pic16c5x/pic16c5x.o -DBGOBJS += $(CPUOBJ)/pic16c5x/16c5xdsm.o +DASMOBJS += $(CPUOBJ)/pic16c5x/16c5xdsm.o endif $(CPUOBJ)/pic16c5x/pic16c5x.o: $(CPUSRC)/pic16c5x/pic16c5x.c \ @@ -788,9 +788,9 @@ OBJDIRS += $(CPUOBJ)/mips CPUOBJS += $(CPUOBJ)/mips/r3000.o CPUOBJS += $(CPUOBJ)/mips/mips3com.o $(CPUOBJ)/mips/mips3fe.o $(CPUOBJ)/mips/mips3drc.o $(DRCOBJ) CPUOBJS += $(CPUOBJ)/mips/psx.o -DBGOBJS += $(CPUOBJ)/mips/r3kdasm.o -DBGOBJS += $(CPUOBJ)/mips/mips3dsm.o -DBGOBJS += $(CPUOBJ)/mips/psxdasm.o +DASMOBJS += $(CPUOBJ)/mips/r3kdasm.o +DASMOBJS += $(CPUOBJ)/mips/mips3dsm.o +DASMOBJS += $(CPUOBJ)/mips/psxdasm.o endif $(CPUOBJ)/mips/r3000.o: $(CPUSRC)/mips/r3000.c \ @@ -826,7 +826,7 @@ CPUOBJS += \ $(CPUOBJ)/m37710/m37710o1.o \ $(CPUOBJ)/m37710/m37710o2.o \ $(CPUOBJ)/m37710/m37710o3.o -DBGOBJS += $(CPUOBJ)/m37710/m7700ds.o +DASMOBJS += $(CPUOBJ)/m37710/m7700ds.o endif M37710DEPS = \ @@ -864,7 +864,7 @@ CPUOBJS += $(CPUOBJ)/m6502/m6502.o CPUOBJS += $(CPUOBJ)/m6502/m6509.o CPUOBJS += $(CPUOBJ)/m6502/m65ce02.o CPUOBJS += $(CPUOBJ)/m6502/m4510.o -DBGOBJS += $(CPUOBJ)/m6502/6502dasm.o +DASMOBJS += $(CPUOBJ)/m6502/6502dasm.o endif $(CPUOBJ)/m6502/m6502.o: $(CPUSRC)/m6502/m6502.c \ @@ -895,7 +895,7 @@ $(CPUOBJ)/m6502/m6509.o: $(CPUSRC)/m6502/m6509.c \ ifneq ($(filter M6800,$(CPUS)),) OBJDIRS += $(CPUOBJ)/m6800 CPUOBJS += $(CPUOBJ)/m6800/m6800.o -DBGOBJS += $(CPUOBJ)/m6800/6800dasm.o +DASMOBJS += $(CPUOBJ)/m6800/6800dasm.o endif $(CPUOBJ)/m6800/m6800.o: $(CPUSRC)/m6800/m6800.c \ @@ -912,7 +912,7 @@ $(CPUOBJ)/m6800/m6800.o: $(CPUSRC)/m6800/m6800.c \ ifneq ($(filter M6805,$(CPUS)),) OBJDIRS += $(CPUOBJ)/m6805 CPUOBJS += $(CPUOBJ)/m6805/m6805.o -DBGOBJS += $(CPUOBJ)/m6805/6805dasm.o +DASMOBJS += $(CPUOBJ)/m6805/6805dasm.o endif $(CPUOBJ)/m6805/m6805.o: $(CPUSRC)/m6805/m6805.c \ @@ -928,7 +928,7 @@ $(CPUOBJ)/m6805/m6805.o: $(CPUSRC)/m6805/m6805.c \ ifneq ($(filter M6809,$(CPUS)),) OBJDIRS += $(CPUOBJ)/m6809 CPUOBJS += $(CPUOBJ)/m6809/m6809.o -DBGOBJS += $(CPUOBJ)/m6809/6809dasm.o +DASMOBJS += $(CPUOBJ)/m6809/6809dasm.o endif $(CPUOBJ)/m6809/m6809.o: $(CPUSRC)/m6809/m6809.c \ @@ -945,7 +945,7 @@ $(CPUOBJ)/m6809/m6809.o: $(CPUSRC)/m6809/m6809.c \ ifneq ($(filter MC68HC11,$(CPUS)),) OBJDIRS += $(CPUOBJ)/mc68hc11 CPUOBJS += $(CPUOBJ)/mc68hc11/mc68hc11.o -DBGOBJS += $(CPUOBJ)/mc68hc11/hc11dasm.o +DASMOBJS += $(CPUOBJ)/mc68hc11/hc11dasm.o endif $(CPUOBJ)/mc68hc11/mc68hc11.o: $(CPUSRC)/mc68hc11/mc68hc11.c \ @@ -960,7 +960,7 @@ $(CPUOBJ)/mc68hc11/mc68hc11.o: $(CPUSRC)/mc68hc11/mc68hc11.c \ ifneq ($(filter M680X0,$(CPUS)),) OBJDIRS += $(CPUOBJ)/m68000 CPUOBJS += $(CPUOBJ)/m68000/m68kcpu.o $(CPUOBJ)/m68000/m68kops.o -DBGOBJS += $(CPUOBJ)/m68000/m68kdasm.o +DASMOBJS += $(CPUOBJ)/m68000/m68kdasm.o M68KMAKE = $(BUILDOUT)/m68kmake$(BUILD_EXE) endif @@ -1002,7 +1002,7 @@ $(CPUOBJ)/m68000/m68kcpu.o: $(CPUOBJ)/m68000/m68kops.c \ ifneq ($(filter DSP56156,$(CPUS)),) OBJDIRS += $(CPUOBJ)/dsp56k CPUOBJS += $(CPUOBJ)/dsp56k/dsp56k.o -DBGOBJS += $(CPUOBJ)/dsp56k/dsp56dsm.o +DASMOBJS += $(CPUOBJ)/dsp56k/dsp56dsm.o endif $(CPUOBJ)/dsp56k/dsp56k.o: $(CPUSRC)/dsp56k/dsp56k.c \ @@ -1020,8 +1020,8 @@ ifneq ($(filter PDP1,$(CPUS)),) OBJDIRS += $(CPUOBJ)/pdp1 CPUOBJS += $(CPUOBJ)/pdp1/pdp1.o CPUOBJS += $(CPUOBJ)/pdp1/tx0.o -DBGOBJS += $(CPUOBJ)/pdp1/pdp1dasm.o -DBGOBJS += $(CPUOBJ)/pdp1/tx0dasm.o +DASMOBJS += $(CPUOBJ)/pdp1/pdp1dasm.o +DASMOBJS += $(CPUOBJ)/pdp1/tx0dasm.o endif $(CPUOBJ)/pdp1/pdp1.o: $(CPUSRC)/pdp1/pdp1.c \ @@ -1041,7 +1041,7 @@ $(CPUOBJ)/pdp1/tx0dasm.o: $(CPUSRC)/pdp1/tx0.h \ ifneq ($(filter POWERPC,$(CPUS)),) OBJDIRS += $(CPUOBJ)/powerpc CPUOBJS += $(CPUOBJ)/powerpc/ppccom.o $(CPUOBJ)/powerpc/ppcfe.o $(CPUOBJ)/powerpc/ppcdrc.o $(DRCOBJ) -DBGOBJS += $(CPUOBJ)/powerpc/ppc_dasm.o +DASMOBJS += $(CPUOBJ)/powerpc/ppc_dasm.o endif $(CPUOBJ)/powerpc/ppccom.o: $(CPUSRC)/powerpc/ppc.h \ @@ -1066,13 +1066,13 @@ $(CPUOBJ)/powerpc/ppcdrc.o: $(CPUSRC)/powerpc/ppcdrc.c \ ifneq ($(filter NEC,$(CPUS)),) OBJDIRS += $(CPUOBJ)/nec CPUOBJS += $(CPUOBJ)/nec/nec.o -DBGOBJS += $(CPUOBJ)/nec/necdasm.o +DASMOBJS += $(CPUOBJ)/nec/necdasm.o endif ifneq ($(filter V30MZ,$(CPUS)),) OBJDIRS += $(CPUOBJ)/v30mz $(CPUOBJ)/nec CPUOBJS += $(CPUOBJ)/v30mz/v30mz.o -DBGOBJS += $(CPUOBJ)/nec/necdasm.o +DASMOBJS += $(CPUOBJ)/nec/necdasm.o endif $(CPUOBJ)/nec/nec.o: $(CPUSRC)/nec/nec.c \ @@ -1100,7 +1100,7 @@ $(CPUOBJ)/v30mz/v30mz.o: $(CPUSRC)/v30mz/v30mz.c \ ifneq ($(filter V60,$(CPUS)),) OBJDIRS += $(CPUOBJ)/v60 CPUOBJS += $(CPUOBJ)/v60/v60.o -DBGOBJS += $(CPUOBJ)/v60/v60d.o +DASMOBJS += $(CPUOBJ)/v60/v60d.o endif $(CPUOBJ)/v60/v60.o: $(CPUSRC)/v60/am.c \ @@ -1128,7 +1128,7 @@ $(CPUOBJ)/v60/v60.o: $(CPUSRC)/v60/am.c \ ifneq ($(filter V810,$(CPUS)),) OBJDIRS += $(CPUOBJ)/v810 CPUOBJS += $(CPUOBJ)/v810/v810.o -DBGOBJS += $(CPUOBJ)/v810/v810dasm.o +DASMOBJS += $(CPUOBJ)/v810/v810dasm.o endif $(CPUOBJ)/v810/v810.o: $(CPUSRC)/v810/v810.c \ @@ -1143,7 +1143,7 @@ $(CPUOBJ)/v810/v810.o: $(CPUSRC)/v810/v810.c \ ifneq ($(filter UPD7810,$(CPUS)),) OBJDIRS += $(CPUOBJ)/upd7810 CPUOBJS += $(CPUOBJ)/upd7810/upd7810.o -DBGOBJS += $(CPUOBJ)/upd7810/7810dasm.o +DASMOBJS += $(CPUOBJ)/upd7810/7810dasm.o endif $(CPUOBJ)/upd7810/upd7810.o: $(CPUSRC)/upd7810/upd7810.c \ @@ -1160,7 +1160,7 @@ $(CPUOBJ)/upd7810/upd7810.o: $(CPUSRC)/upd7810/upd7810.c \ ifneq ($(filter MINX,$(CPUS)),) OBJDIRS += $(CPUOBJ)/minx CPUOBJS += $(CPUOBJ)/minx/minx.o -DBGOBJS += $(CPUOBJ)/minx/minxd.o +DASMOBJS += $(CPUOBJ)/minx/minxd.o endif $(CPUOBJ)/minx/minx.o: $(CPUSRC)/minx/minx.c \ @@ -1180,7 +1180,7 @@ $(CPUOBJ)/minx/minx.o: $(CPUSRC)/minx/minx.c \ ifneq ($(filter RSP,$(CPUS)),) OBJDIRS += $(CPUOBJ)/rsp CPUOBJS += $(CPUOBJ)/rsp/rsp.o -DBGOBJS += $(CPUOBJ)/rsp/rsp_dasm.o +DASMOBJS += $(CPUOBJ)/rsp/rsp_dasm.o endif $(CPUOBJ)/rsp/rsp.o: $(CPUSRC)/rsp/rsp.c \ @@ -1195,7 +1195,7 @@ $(CPUOBJ)/rsp/rsp.o: $(CPUSRC)/rsp/rsp.c \ ifneq ($(filter SATURN,$(CPUS)),) OBJDIRS += $(CPUOBJ)/saturn CPUOBJS += $(CPUOBJ)/saturn/saturn.o -DBGOBJS += $(CPUOBJ)/saturn/saturnds.o +DASMOBJS += $(CPUOBJ)/saturn/saturnds.o endif $(CPUOBJ)/saturn/saturn.o: $(CPUSRC)/saturn/saturn.c \ @@ -1212,7 +1212,7 @@ $(CPUOBJ)/saturn/saturn.o: $(CPUSRC)/saturn/saturn.c \ ifneq ($(filter S2650,$(CPUS)),) OBJDIRS += $(CPUOBJ)/s2650 CPUOBJS += $(CPUOBJ)/s2650/s2650.o -DBGOBJS += $(CPUOBJ)/s2650/2650dasm.o +DASMOBJS += $(CPUOBJ)/s2650/2650dasm.o endif $(CPUOBJ)/s2650/s2650.o: $(CPUSRC)/s2650/s2650.c \ @@ -1228,7 +1228,7 @@ $(CPUOBJ)/s2650/s2650.o: $(CPUSRC)/s2650/s2650.c \ ifneq ($(filter SC61860,$(CPUS)),) OBJDIRS += $(CPUOBJ)/sc61860 CPUOBJS += $(CPUOBJ)/sc61860/sc61860.o -DBGOBJS += $(CPUOBJ)/sc61860/scdasm.o +DASMOBJS += $(CPUOBJ)/sc61860/scdasm.o endif $(CPUOBJ)/sc61860/sc61860.o: $(CPUSRC)/sc61860/sc61860.h \ @@ -1245,7 +1245,7 @@ $(CPUOBJ)/sc61860/sc61860.o: $(CPUSRC)/sc61860/sc61860.h \ ifneq ($(filter SM8500,$(CPUS)),) OBJDIRS += $(CPUOBJ)/sm8500 CPUOBJS += $(CPUOBJ)/sm8500/sm8500.o -DBGOBJS += $(CPUOBJ)/sm8500/sm8500d.o +DASMOBJS += $(CPUOBJ)/sm8500/sm8500d.o endif $(CPUOBJ)/sm8500/sm8500.o: $(CPUSRC)/sm8500/sm8500.c \ @@ -1262,7 +1262,7 @@ ifneq ($(filter SPC700,$(CPUS)),) SPCD = cpu/spc700 OBJDIRS += $(CPUOBJ)/spc700 CPUOBJS += $(CPUOBJ)/spc700/spc700.o -DBGOBJS += $(CPUOBJ)/spc700/spc700ds.o +DASMOBJS += $(CPUOBJ)/spc700/spc700ds.o endif $(CPUOBJ)/spc700/spc700.o: $(CPUSRC)/spc700/spc700.c \ @@ -1277,7 +1277,7 @@ $(CPUOBJ)/spc700/spc700.o: $(CPUSRC)/spc700/spc700.c \ ifneq ($(filter SSP1601,$(CPUS)),) OBJDIRS += $(CPUOBJ)/ssp1601 CPUOBJS += $(CPUOBJ)/ssp1601/ssp1601.o -DBGOBJS += $(CPUOBJ)/ssp1601/ssp1601d.o +DASMOBJS += $(CPUOBJ)/ssp1601/ssp1601d.o endif $(CPUOBJ)/ssp1610/ssp1601.o: $(CPUSRC)/ssp1601/ssp1601.c \ @@ -1292,7 +1292,7 @@ $(CPUOBJ)/ssp1610/ssp1601.o: $(CPUSRC)/ssp1601/ssp1601.c \ ifneq ($(filter TMS0980,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms0980 CPUOBJS += $(CPUOBJ)/tms0980/tms0980.o -DBGOBJS += $(CPUOBJ)/tms0980/tms0980d.o +DASMOBJS += $(CPUOBJ)/tms0980/tms0980d.o endif $(CPUOBJ)/tms0980/tms0980.o: $(CPUSRC)/tms0980/tms0980.h \ @@ -1310,7 +1310,7 @@ $(CPUOBJ)/tms0980/tms0980d.o: $(CPUSRC)/tms0980/tms0980.h \ ifneq ($(filter TMS7000,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms7000 CPUOBJS += $(CPUOBJ)/tms7000/tms7000.o -DBGOBJS += $(CPUOBJ)/tms7000/7000dasm.o +DASMOBJS += $(CPUOBJ)/tms7000/7000dasm.o endif $(CPUOBJ)/tms7000/tms7000.o: $(CPUSRC)/tms7000/tms7000.h \ @@ -1331,7 +1331,7 @@ CPUOBJS += $(CPUOBJ)/tms9900/tms9900.o CPUOBJS += $(CPUOBJ)/tms9900/tms9980a.o CPUOBJS += $(CPUOBJ)/tms9900/tms9995.o CPUOBJS += $(CPUOBJ)/tms9900/ti990_10.o -DBGOBJS += $(CPUOBJ)/tms9900/9900dasm.o +DASMOBJS += $(CPUOBJ)/tms9900/9900dasm.o endif $(CPUOBJ)/tms9900/tms9900.o: $(CPUSRC)/tms9900/tms9900.c \ @@ -1363,7 +1363,7 @@ $(CPUOBJ)/tms9900/ti990_10.o: $(CPUSRC)/tms9900/ti990_10.c \ ifneq ($(filter TMS340X0,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms34010 CPUOBJS += $(CPUOBJ)/tms34010/tms34010.o -DBGOBJS += $(CPUOBJ)/tms34010/34010dsm.o +DASMOBJS += $(CPUOBJ)/tms34010/34010dsm.o endif $(CPUOBJ)/tms34010/tms34010.o: $(CPUSRC)/tms34010/tms34010.c \ @@ -1382,7 +1382,7 @@ $(CPUOBJ)/tms34010/tms34010.o: $(CPUSRC)/tms34010/tms34010.c \ ifneq ($(filter TMS32010,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms32010 CPUOBJS += $(CPUOBJ)/tms32010/tms32010.o -DBGOBJS += $(CPUOBJ)/tms32010/32010dsm.o +DASMOBJS += $(CPUOBJ)/tms32010/32010dsm.o endif $(CPUOBJ)/tms32010/tms32010.o: $(CPUSRC)/tms32010/tms32010.c \ @@ -1397,7 +1397,7 @@ $(CPUOBJ)/tms32010/tms32010.o: $(CPUSRC)/tms32010/tms32010.c \ ifneq ($(filter TMS32025,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms32025 CPUOBJS += $(CPUOBJ)/tms32025/tms32025.o -DBGOBJS += $(CPUOBJ)/tms32025/32025dsm.o +DASMOBJS += $(CPUOBJ)/tms32025/32025dsm.o endif $(CPUOBJ)/tms32025/tms32025.o: $(CPUSRC)/tms32025/tms32025.c \ @@ -1412,7 +1412,7 @@ $(CPUOBJ)/tms32025/tms32025.o: $(CPUSRC)/tms32025/tms32025.c \ ifneq ($(filter TMS32031,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms32031 CPUOBJS += $(CPUOBJ)/tms32031/tms32031.o -DBGOBJS += $(CPUOBJ)/tms32031/dis32031.o +DASMOBJS += $(CPUOBJ)/tms32031/dis32031.o endif $(CPUOBJ)/tms32031/tms32031.o: $(CPUSRC)/tms32031/tms32031.c \ @@ -1428,7 +1428,7 @@ $(CPUOBJ)/tms32031/tms32031.o: $(CPUSRC)/tms32031/tms32031.c \ ifneq ($(filter TMS32051,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms32051 CPUOBJS += $(CPUOBJ)/tms32051/tms32051.o -DBGOBJS += $(CPUOBJ)/tms32051/dis32051.o +DASMOBJS += $(CPUOBJ)/tms32051/dis32051.o endif $(CPUOBJ)/tms32051/tms32051.o: $(CPUSRC)/tms32051/tms32051.c \ @@ -1443,6 +1443,7 @@ $(CPUOBJ)/tms32051/tms32051.o: $(CPUSRC)/tms32051/tms32051.c \ ifneq ($(filter TMS57002,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tms57002 CPUOBJS += $(CPUOBJ)/tms57002/tms57002.o +DASMOBJS += $(CPUOBJ)/tms57002/57002dsm.o TMSMAKE += $(BUILDOUT)/tmsmake$(BUILD_EXE) endif @@ -1474,7 +1475,7 @@ endif ifneq ($(filter TLCS90,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tlcs90 CPUOBJS += $(CPUOBJ)/tlcs90/tlcs90.o -#DBGOBJS += $(CPUOBJ)/tlcs90/tlcs90.o +#DASMOBJS += $(CPUOBJ)/tlcs90/tlcs90.o endif $(CPUOBJ)/tlcs90/tlcs90.o: $(CPUSRC)/tlcs90/tlcs90.c \ @@ -1489,7 +1490,7 @@ $(CPUOBJ)/tlcs90/tlcs90.o: $(CPUSRC)/tlcs90/tlcs90.c \ ifneq ($(filter TLCS900,$(CPUS)),) OBJDIRS += $(CPUOBJ)/tlcs900 CPUOBJS += $(CPUOBJ)/tlcs900/tlcs900.o -DBGOBJS += $(CPUOBJ)/tlcs900/dasm900.o +DASMOBJS += $(CPUOBJ)/tlcs900/dasm900.o endif $(CPUOBJ)/tlcs900/tlcs900.o: $(CPUSRC)/tlcs900/tlcs900.c \ @@ -1507,7 +1508,7 @@ $(CPUOBJ)/tlcs900/dasm900.o: $(CPUSRC)/tlcs900/dasm900.c ifneq ($(filter Z80,$(CPUS)),) OBJDIRS += $(CPUOBJ)/z80 CPUOBJS += $(CPUOBJ)/z80/z80.o $(CPUOBJ)/z80/z80daisy.o -DBGOBJS += $(CPUOBJ)/z80/z80dasm.o +DASMOBJS += $(CPUOBJ)/z80/z80dasm.o endif $(CPUOBJ)/z80/z80.o: $(CPUSRC)/z80/z80.c \ @@ -1522,7 +1523,7 @@ $(CPUOBJ)/z80/z80.o: $(CPUSRC)/z80/z80.c \ ifneq ($(filter LR35902,$(CPUS)),) OBJDIRS += $(CPUOBJ)/lr35902 CPUOBJS += $(CPUOBJ)/lr35902/lr35902.o -DBGOBJS += $(CPUOBJ)/lr35902/lr35902d.o +DASMOBJS += $(CPUOBJ)/lr35902/lr35902d.o endif $(CPUOBJ)/lr35902/lr35902.o: $(CPUSRC)/lr35902/lr35902.c \ @@ -1539,7 +1540,7 @@ $(CPUOBJ)/lr35902/lr35902.o: $(CPUSRC)/lr35902/lr35902.c \ ifneq ($(filter Z180,$(CPUS)),) OBJDIRS += $(CPUOBJ)/z180 $(CPUOBJ)/z80 CPUOBJS += $(CPUOBJ)/z180/z180.o $(CPUOBJ)/z80/z80daisy.o -DBGOBJS += $(CPUOBJ)/z180/z180dasm.o +DASMOBJS += $(CPUOBJ)/z180/z180dasm.o endif $(CPUOBJ)/z180/z180.o: $(CPUSRC)/z180/z180.c \ @@ -1562,7 +1563,7 @@ $(CPUOBJ)/z180/z180.o: $(CPUSRC)/z180/z180.c \ ifneq ($(filter Z8000,$(CPUS)),) OBJDIRS += $(CPUOBJ)/z8000 CPUOBJS += $(CPUOBJ)/z8000/z8000.o -DBGOBJS += $(CPUOBJ)/z8000/8000dasm.o +DASMOBJS += $(CPUOBJ)/z8000/8000dasm.o endif $(CPUOBJ)/z8000/z8000.o: $(CPUSRC)/z8000/z8000.c \ diff --git a/src/emu/cpu/cubeqcpu/cubedasm.c b/src/emu/cpu/cubeqcpu/cubedasm.c new file mode 100644 index 00000000000..0e7fc64d40b --- /dev/null +++ b/src/emu/cpu/cubeqcpu/cubedasm.c @@ -0,0 +1,305 @@ +/*************************************************************************** + + cubedasm.c + + Implementation of the Cube Quest AM2901-based CPUs + +***************************************************************************/ + +#include "debugger.h" +#include "cubeqcpu.h" +#include "driver.h" + + +/*************************************************************************** + CONSTANTS +***************************************************************************/ + +/* Am2901 Instruction Fields */ +static const char *const ins[] = +{ + "ADD ", + "SUBR ", + "SUBS ", + "OR ", + "AND ", + "NOTRS", + "EXOR ", + "EXNOR", +}; + +static const char *const src[] = +{ + "A,Q", + "A,B", + "0,Q", + "0,B", + "0,A", + "D,A", + "D,Q", + "D,0", +}; + +static const char *const dst[] = +{ + "QREG ", + "NOP ", + "RAMA ", + "RAMF ", + "RAMQD", + "RAMD ", + "RAMQU", + "RAMU ", +}; + + +/*************************************************************************** + SOUND DISASSEMBLY HOOK +***************************************************************************/ + +CPU_DISASSEMBLE( cquestsnd ) +{ + static const char *const jmps[] = + { + "JUMP ", + " ", + "JMSB ", + "JNMSB", + " ", + "JZERO", + "JOVR ", + "JLOOP", + }; + + + static const char *const latches[] = + { + "PLTCH ", + "DAC ", + "ADLATCH", + " ", + }; + + UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); + UINT32 inslow = inst & 0xffffffff; + UINT32 inshig = inst >> 32; + + int t = (inshig >> 24) & 0xff; + int b = (inshig >> 20) & 0xf; + int a = (inshig >> 16) & 0xf; + int ci = (inshig >> 15) & 1; + int i5_3 = (inshig >> 12) & 7; + int _ramen = (inshig >> 11) & 1; + int i2_0 = (inshig >> 8) & 7; + int rtnltch = (inshig >> 7) & 1; + int jmp = (inshig >> 4) & 7; + int inca = (inshig >> 3) & 1; + int i8_6 = (inshig >> 0) & 7; + int _ipram = (inslow >> 31) & 1; + int _ipwrt = (inslow >> 30) & 1; + int latch = (inslow >> 28) & 3; + int rtn = (inslow >> 27) & 1; + int _rin = (inslow >> 26) & 1; + + + sprintf(buffer, "%s %s %s %x,%x,%c %.2x %s %s %.2x %s %s %s %c %c %c", + ins[i5_3], + src[i2_0], + dst[i8_6], + a, + b, + ci ? 'C' : ' ', + _rin, + jmps[jmp], + rtn ? "RET" : " ", + t, + latches[latch], + rtnltch ? "RTLATCH" : " ", + _ramen ? "PROM" : "RAM ", + _ipram ? ' ' : 'R', + _ipwrt ? ' ' : 'W', + inca ? 'I' : ' '); + + return 1 | DASMFLAG_SUPPORTED; +} + + +/*************************************************************************** + ROTATE DISASSEMBLY HOOK +***************************************************************************/ + +CPU_DISASSEMBLE( cquestrot ) +{ + static const char *const jmps[] = + { + " ", + "JSEQ ", + "JC ", + "JSYNC ", + "JLDWAIT", + "JMSB ", + "JGEONE ", + "JZERO ", + + "JUMP ", + "JNSEQ ", + "JNC ", + "JNSYNC ", + "JNLDWAI", + "JNMSB ", + "JLTONE ", + "JNZERO ", + }; + + static const char *const youts[] = + { + " ", + " ", + "Y2LDA", + "Y2LDD", + "Y2DAD", + "Y2DIN", + "Y2R ", + "Y2D ", + }; + + static const char *const spfs[] = + { + " ", + " ", + "OP ", + "RET ", + "SQLTCH", + "SWRT ", + "DIV ", + "MULT ", + + "DRED ", + "DWRT ", + "??? ", + "??? ", + "??? ", + "??? ", + "??? ", + "??? " + }; + + UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); + UINT32 inslow = inst & 0xffffffff; + UINT32 inshig = inst >> 32; + + int t = (inshig >> 20) & 0xfff; + int jmp = (inshig >> 16) & 0xf; + int spf = (inshig >> 12) & 0xf; +// int rsrc = (inshig >> 11) & 0x1; + int yout = (inshig >> 8) & 0x7; + int sel = (inshig >> 6) & 0x3; +// int dsrc = (inshig >> 4) & 0x3; + int b = (inshig >> 0) & 0xf; + int a = (inslow >> 28) & 0xf; + int i8_6 = (inslow >> 24) & 0x7; + int ci = (inslow >> 23) & 0x1; + int i5_3 = (inslow >> 20) & 0x7; +// int _sex = (inslow >> 19) & 0x1; + int i2_0 = (inslow >> 16) & 0x7; + + sprintf(buffer, "%s %s,%s %x,%x,%c %d %s %s %s %.2x", + ins[i5_3], + src[i2_0], + dst[i8_6], + a, + b, + ci ? 'C' : ' ', + sel, + jmps[jmp], + youts[yout], + spfs[spf], + t); + + return 1 | DASMFLAG_SUPPORTED; +} + +/*************************************************************************** + LINE DRAWER DISASSEMBLY HOOK +***************************************************************************/ + +CPU_DISASSEMBLE( cquestlin ) +{ + static const char *const jmps[] = + { + " ", + "JMSB ", + "JSEQ ", + "JGTZ ", + "JC ", + "JZ ", + "?????", + "?????", + + "JUMP ", + "JNMSB", + "JNSEQ", + "JLEZ ", + "JNC ", + "JNZ ", + "?????", + "?????", + }; + + static const char *const latches[] = + { + " ", + "SEQLTCH", + "XLTCH ", + "YLTCH ", + "BGLTCH ", + "FGLTCH ", + "CLTCH ", + "ZLTCH ", + }; + + static const char *const spfs[] = + { + " ", + "FSTOP ", + "FREG ", + "FSTART", + "PWRT ", + "MULT ", + "LSTOP ", + "BRES ", + }; + + UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); + UINT32 inslow = inst & 0xffffffff; + UINT32 inshig = inst >> 32; + + int t = (inshig >> 24) & 0xff; + int jmp = (inshig >> 20) & 0xf; + int latch = (inshig >> 16) & 0x7; + int op = (inshig >> 15) & 0x1; + int spf = (inshig >> 12) & 0x7; + int b = (inshig >> 8) & 0xf; + int a = (inshig >> 4) & 0xf; + int i8_6 = (inshig >> 0) & 0x7; + int ci = (inslow >> 31) & 0x1; + int i5_3 = (inslow >> 28) & 0x7; + int _pbcs = (inslow >> 27) & 0x1; + int i2_0 = (inslow >> 24) & 0x7; + + sprintf(buffer, "%s %s,%s %x,%x %c %s %.2x %s %s %s %s", + ins[i5_3], + src[i2_0], + dst[i8_6], + a, + b, + ci ? 'C' : ' ', + jmps[jmp], + t, + latches[latch], + op ? "OP" : " ", + _pbcs ? " " : "PB", + spfs[spf]); + + return 1 | DASMFLAG_SUPPORTED; +} diff --git a/src/emu/cpu/cubeqcpu/cubeqcpu.c b/src/emu/cpu/cubeqcpu/cubeqcpu.c index 1940e90591a..9b74696acf2 100644 --- a/src/emu/cpu/cubeqcpu/cubeqcpu.c +++ b/src/emu/cpu/cubeqcpu/cubeqcpu.c @@ -15,47 +15,16 @@ #include "driver.h" +CPU_DISASSEMBLE( cquestsnd ); +CPU_DISASSEMBLE( cquestrot ); +CPU_DISASSEMBLE( cquestlin ); + + /*************************************************************************** CONSTANTS ***************************************************************************/ /* Am2901 Instruction Fields */ -static const char *const ins[] = -{ - "ADD ", - "SUBR ", - "SUBS ", - "OR ", - "AND ", - "NOTRS", - "EXOR ", - "EXNOR", -}; - -static const char *const src[] = -{ - "A,Q", - "A,B", - "0,Q", - "0,B", - "0,A", - "D,A", - "D,Q", - "D,0", -}; - -static const char *const dst[] = -{ - "QREG ", - "NOP ", - "RAMA ", - "RAMF ", - "RAMQD", - "RAMD ", - "RAMQU", - "RAMU ", -}; - enum alu_src { AQ = 0, @@ -736,77 +705,6 @@ static CPU_EXECUTE( cquestsnd ) } -/*************************************************************************** - SOUND DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( cquestsnd ) -{ - static const char *const jmps[] = - { - "JUMP ", - " ", - "JMSB ", - "JNMSB", - " ", - "JZERO", - "JOVR ", - "JLOOP", - }; - - - static const char *const latches[] = - { - "PLTCH ", - "DAC ", - "ADLATCH", - " ", - }; - - UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); - UINT32 inslow = inst & 0xffffffff; - UINT32 inshig = inst >> 32; - - int t = (inshig >> 24) & 0xff; - int b = (inshig >> 20) & 0xf; - int a = (inshig >> 16) & 0xf; - int ci = (inshig >> 15) & 1; - int i5_3 = (inshig >> 12) & 7; - int _ramen = (inshig >> 11) & 1; - int i2_0 = (inshig >> 8) & 7; - int rtnltch = (inshig >> 7) & 1; - int jmp = (inshig >> 4) & 7; - int inca = (inshig >> 3) & 1; - int i8_6 = (inshig >> 0) & 7; - int _ipram = (inslow >> 31) & 1; - int _ipwrt = (inslow >> 30) & 1; - int latch = (inslow >> 28) & 3; - int rtn = (inslow >> 27) & 1; - int _rin = (inslow >> 26) & 1; - - - sprintf(buffer, "%s %s %s %x,%x,%c %.2x %s %s %.2x %s %s %s %c %c %c\n", - ins[i5_3], - src[i2_0], - dst[i8_6], - a, - b, - ci ? 'C' : ' ', - _rin, - jmps[jmp], - rtn ? "RET" : " ", - t, - latches[latch], - rtnltch ? "RTLATCH" : " ", - _ramen ? "PROM" : "RAM ", - _ipram ? ' ' : 'R', - _ipwrt ? ' ' : 'W', - inca ? 'I' : ' '); - - return 1 | DASMFLAG_SUPPORTED; -} - - /*************************************************************************** ROTATE CORE EXECUTION LOOP ***************************************************************************/ @@ -1191,101 +1089,6 @@ static CPU_EXECUTE( cquestrot ) } -/*************************************************************************** - ROTATE DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( cquestrot ) -{ - static const char *const jmps[] = - { - " ", - "JSEQ ", - "JC ", - "JSYNC ", - "JLDWAIT", - "JMSB ", - "JGEONE ", - "JZERO ", - - "JUMP ", - "JNSEQ ", - "JNC ", - "JNSYNC ", - "JNLDWAI", - "JNMSB ", - "JLTONE ", - "JNZERO ", - }; - - static const char *const youts[] = - { - " ", - " ", - "Y2LDA", - "Y2LDD", - "Y2DAD", - "Y2DIN", - "Y2R ", - "Y2D ", - }; - - static const char *const spfs[] = - { - " ", - " ", - "OP ", - "RET ", - "SQLTCH", - "SWRT ", - "DIV ", - "MULT ", - - "DRED ", - "DWRT ", - "??? ", - "??? ", - "??? ", - "??? ", - "??? ", - "??? " - }; - - UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); - UINT32 inslow = inst & 0xffffffff; - UINT32 inshig = inst >> 32; - - int t = (inshig >> 20) & 0xfff; - int jmp = (inshig >> 16) & 0xf; - int spf = (inshig >> 12) & 0xf; -// int rsrc = (inshig >> 11) & 0x1; - int yout = (inshig >> 8) & 0x7; - int sel = (inshig >> 6) & 0x3; -// int dsrc = (inshig >> 4) & 0x3; - int b = (inshig >> 0) & 0xf; - int a = (inslow >> 28) & 0xf; - int i8_6 = (inslow >> 24) & 0x7; - int ci = (inslow >> 23) & 0x1; - int i5_3 = (inslow >> 20) & 0x7; -// int _sex = (inslow >> 19) & 0x1; - int i2_0 = (inslow >> 16) & 0x7; - - sprintf(buffer, "%s %s,%s %x,%x,%c %d %s %s %s %.2x\n", - ins[i5_3], - src[i2_0], - dst[i8_6], - a, - b, - ci ? 'C' : ' ', - sel, - jmps[jmp], - youts[yout], - spfs[spf], - t); - - return 1 | DASMFLAG_SUPPORTED; -} - /*************************************************************************** LINE DRAWER CORE EXECUTION LOOP ***************************************************************************/ @@ -1755,91 +1558,6 @@ static CPU_EXECUTE( cquestlin ) } -/*************************************************************************** - LINE DRAWER DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( cquestlin ) -{ - static const char *const jmps[] = - { - " ", - "JMSB ", - "JSEQ ", - "JGTZ ", - "JC ", - "JZ ", - "?????", - "?????", - - "JUMP ", - "JNMSB", - "JNSEQ", - "JLEZ ", - "JNC ", - "JNZ ", - "?????", - "?????", - }; - - static const char *const latches[] = - { - " ", - "SEQLTCH", - "XLTCH ", - "YLTCH ", - "BGLTCH ", - "FGLTCH ", - "CLTCH ", - "ZLTCH ", - }; - - static const char *const spfs[] = - { - " ", - "FSTOP ", - "FREG ", - "FSTART", - "PWRT ", - "MULT ", - "LSTOP ", - "BRES ", - }; - - UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); - UINT32 inslow = inst & 0xffffffff; - UINT32 inshig = inst >> 32; - - int t = (inshig >> 24) & 0xff; - int jmp = (inshig >> 20) & 0xf; - int latch = (inshig >> 16) & 0x7; - int op = (inshig >> 15) & 0x1; - int spf = (inshig >> 12) & 0x7; - int b = (inshig >> 8) & 0xf; - int a = (inshig >> 4) & 0xf; - int i8_6 = (inshig >> 0) & 0x7; - int ci = (inslow >> 31) & 0x1; - int i5_3 = (inslow >> 28) & 0x7; - int _pbcs = (inslow >> 27) & 0x1; - int i2_0 = (inslow >> 24) & 0x7; - - sprintf(buffer, "%s %s,%s %x,%x %c %s %.2x %s %s %s %s\n", - ins[i5_3], - src[i2_0], - dst[i8_6], - a, - b, - ci ? 'C' : ' ', - jmps[jmp], - t, - latches[latch], - op ? "OP" : " ", - _pbcs ? " " : "PB", - spfs[spf]); - - return 1 | DASMFLAG_SUPPORTED; -} - /************************************************************************** * Sound set_info **************************************************************************/ diff --git a/src/emu/cpu/dsp32/dsp32.c b/src/emu/cpu/dsp32/dsp32.c index 1fc853fa52d..5e4d5906580 100644 --- a/src/emu/cpu/dsp32/dsp32.c +++ b/src/emu/cpu/dsp32/dsp32.c @@ -30,6 +30,7 @@ #include "debugger.h" #include "dsp32.h" +CPU_DISASSEMBLE( dsp32c ); /*************************************************************************** @@ -401,18 +402,6 @@ static CPU_EXECUTE( dsp32c ) -/*************************************************************************** - DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( dsp32c ) -{ - extern unsigned dasm_dsp32(char *, unsigned, UINT32); - return dasm_dsp32(buffer, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)); -} - - - /*************************************************************************** PARALLEL INTERFACE WRITES ***************************************************************************/ diff --git a/src/emu/cpu/dsp32/dsp32dis.c b/src/emu/cpu/dsp32/dsp32dis.c index 47084fcf221..dca729625a1 100644 --- a/src/emu/cpu/dsp32/dsp32dis.c +++ b/src/emu/cpu/dsp32/dsp32dis.c @@ -689,3 +689,13 @@ unsigned dasm_dsp32(char *buffer, unsigned pc, UINT32 op) return 4 | flags | DASMFLAG_SUPPORTED; } + + +/*************************************************************************** + DISASSEMBLY HOOK +***************************************************************************/ + +CPU_DISASSEMBLE( dsp32c ) +{ + return dasm_dsp32(buffer, pc, oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24)); +} diff --git a/src/emu/cpu/e132xs/32xsdasm.c b/src/emu/cpu/e132xs/32xsdasm.c index 67de64d8bf8..a3ed5fd9d21 100644 --- a/src/emu/cpu/e132xs/32xsdasm.c +++ b/src/emu/cpu/e132xs/32xsdasm.c @@ -2133,3 +2133,8 @@ unsigned dasm_hyperstone(char *buffer, unsigned pc, const UINT8 *oprom, unsigned return size | flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( hyperstone_generic ) +{ + return dasm_hyperstone( buffer, pc, oprom, 0, 0 ); +} diff --git a/src/emu/cpu/esrip/esrip.c b/src/emu/cpu/esrip/esrip.c index c13895a8a87..277893e1d39 100644 --- a/src/emu/cpu/esrip/esrip.c +++ b/src/emu/cpu/esrip/esrip.c @@ -11,6 +11,8 @@ #include "deprecat.h" #include "esrip.h" +CPU_DISASSEMBLE( esrip ); + /*************************************************************************** CONSTANTS @@ -1864,87 +1866,6 @@ static CPU_EXECUTE( esrip ) } -/*************************************************************************** - DISASSEMBLY HOOK (TODO: FINISH) -***************************************************************************/ - -static CPU_DISASSEMBLE( esrip ) -{ -#if 0 - static const char* const jmp_types[] = - { - "JCT", - "JT1", - "JT2", - "JT3", - "JT4", - "JLBRM", - "J#HBLANK", - "JMP", - }; - - static const char* const njmp_types[] = - { - "JNCT", - "JNT1", - "JNT2", - "JNT3", - "JNT4", - "JNLBRM", - "J#HBLANK", - " ", - }; -#endif - - UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); - - UINT32 inst_hi = inst >> 32; - UINT32 inst_lo = inst & 0xffffffff; - - UINT16 ins = (inst_hi >> 16) & 0xffff; - UINT8 ctrl = (inst_hi >> 8) & 0xff; - UINT8 jmp_dest = (inst_lo >> 8) & 0xff; - - UINT8 jmp_ctrl = (ctrl >> 3) & 0x1f; - - UINT8 ctrl1 = (inst_lo >> 16) & 0xff; - UINT8 ctrl2 = (inst_lo >> 24) & 0xff; - UINT8 ctrl3 = (inst_hi) & 0xff; - - sprintf(buffer, "%.4x %c%c%c%c %.2x %s%s%s%s%s%s%s%s %c%s%s%s %c%c%c%c%c%c%c%c\n", - ins, - ctrl & 1 ? 'D' : ' ', - ctrl & 2 ? ' ' : 'Y', - ctrl & 4 ? 'S' : ' ', - (~jmp_ctrl & 0x18) ? 'J' : ' ', - jmp_dest, - ctrl1 & 0x01 ? " " : "I ", - ctrl1 & 0x02 ? " " : "FL", - ctrl1 & 0x04 ? "FE" : " ", - ctrl1 & 0x08 ? " " : "FR", - ctrl1 & 0x10 ? " " : "IL", - ctrl1 & 0x20 ? "IE" : " ", - ctrl1 & 0x40 ? " " : "IR", - ctrl1 & 0x80 ? " " : "IW", - - ctrl2 & 0x80 ? ' ' : 'O', - ctrl2 & 0x40 ? " " : "IXLLD", - ctrl2 & 0x20 ? " " : "IADLD", - ctrl2 & 0x10 ? " " : "SCALD", - - ctrl3 & 0x01 ? ' ' : '0', - ctrl3 & 0x02 ? ' ' : '1', - ctrl3 & 0x04 ? ' ' : '2', - ctrl3 & 0x08 ? ' ' : '3', - ctrl3 & 0x10 ? ' ' : '4', - ctrl3 & 0x20 ? ' ' : '5', - ctrl3 & 0x40 ? ' ' : '6', - ctrl3 & 0x80 ? ' ' : '7' - ); - - return 1 | DASMFLAG_SUPPORTED; -} - /************************************************************************** * set_info **************************************************************************/ diff --git a/src/emu/cpu/esrip/esripdsm.c b/src/emu/cpu/esrip/esripdsm.c new file mode 100644 index 00000000000..1e389007041 --- /dev/null +++ b/src/emu/cpu/esrip/esripdsm.c @@ -0,0 +1,92 @@ +/*************************************************************************** + + esripdsm.c + + Implementation of the Entertainment Sciences + AM29116-based Real Time Image Processor + +***************************************************************************/ + +#include "debugger.h" + + +/*************************************************************************** + DISASSEMBLY HOOK (TODO: FINISH) +***************************************************************************/ + +CPU_DISASSEMBLE( esrip ) +{ +#if 0 + static const char* const jmp_types[] = + { + "JCT", + "JT1", + "JT2", + "JT3", + "JT4", + "JLBRM", + "J#HBLANK", + "JMP", + }; + + static const char* const njmp_types[] = + { + "JNCT", + "JNT1", + "JNT2", + "JNT3", + "JNT4", + "JNLBRM", + "J#HBLANK", + " ", + }; +#endif + + UINT64 inst = BIG_ENDIANIZE_INT64(*(UINT64 *)oprom); + + UINT32 inst_hi = inst >> 32; + UINT32 inst_lo = inst & 0xffffffff; + + UINT16 ins = (inst_hi >> 16) & 0xffff; + UINT8 ctrl = (inst_hi >> 8) & 0xff; + UINT8 jmp_dest = (inst_lo >> 8) & 0xff; + + UINT8 jmp_ctrl = (ctrl >> 3) & 0x1f; + + UINT8 ctrl1 = (inst_lo >> 16) & 0xff; + UINT8 ctrl2 = (inst_lo >> 24) & 0xff; + UINT8 ctrl3 = (inst_hi) & 0xff; + + sprintf(buffer, "%.4x %c%c%c%c %.2x %s%s%s%s%s%s%s%s %c%s%s%s %c%c%c%c%c%c%c%c", + ins, + ctrl & 1 ? 'D' : ' ', + ctrl & 2 ? ' ' : 'Y', + ctrl & 4 ? 'S' : ' ', + (~jmp_ctrl & 0x18) ? 'J' : ' ', + jmp_dest, + ctrl1 & 0x01 ? " " : "I ", + ctrl1 & 0x02 ? " " : "FL", + ctrl1 & 0x04 ? "FE" : " ", + ctrl1 & 0x08 ? " " : "FR", + ctrl1 & 0x10 ? " " : "IL", + ctrl1 & 0x20 ? "IE" : " ", + ctrl1 & 0x40 ? " " : "IR", + ctrl1 & 0x80 ? " " : "IW", + + ctrl2 & 0x80 ? ' ' : 'O', + ctrl2 & 0x40 ? " " : "IXLLD", + ctrl2 & 0x20 ? " " : "IADLD", + ctrl2 & 0x10 ? " " : "SCALD", + + ctrl3 & 0x01 ? ' ' : '0', + ctrl3 & 0x02 ? ' ' : '1', + ctrl3 & 0x04 ? ' ' : '2', + ctrl3 & 0x08 ? ' ' : '3', + ctrl3 & 0x10 ? ' ' : '4', + ctrl3 & 0x20 ? ' ' : '5', + ctrl3 & 0x40 ? ' ' : '6', + ctrl3 & 0x80 ? ' ' : '7' + ); + + return 1 | DASMFLAG_SUPPORTED; +} diff --git a/src/emu/cpu/g65816/g65816ds.c b/src/emu/cpu/g65816/g65816ds.c index fb6b481b6cc..560294be2b7 100644 --- a/src/emu/cpu/g65816/g65816ds.c +++ b/src/emu/cpu/g65816/g65816ds.c @@ -345,3 +345,8 @@ unsigned g65816_disassemble(char* buff, unsigned int pc, unsigned int pb, const return length | DASMFLAG_SUPPORTED | dasm_flags; } + +CPU_DISASSEMBLE( g65816_generic ) +{ + return g65816_disassemble(buffer, (pc & 0x00ffff), (pc & 0xff0000) >> 16, oprom, 0, 0); +} diff --git a/src/emu/cpu/h83002/h8_16.c b/src/emu/cpu/h83002/h8_16.c index 2ad719446a1..faf925c7f74 100644 --- a/src/emu/cpu/h83002/h8_16.c +++ b/src/emu/cpu/h83002/h8_16.c @@ -17,6 +17,9 @@ #include "h8.h" #include "h8priv.h" +CPU_DISASSEMBLE(h8_24); +CPU_DISASSEMBLE(h8_32); + #define H8_SP (7) #define h8_mem_read8(x) memory_read_byte(h8->program, x) @@ -53,18 +56,6 @@ static void h8_check_irqs(h83xx_state *h8); extern offs_t h8_disasm(char *output, offs_t address, const UINT8 *oprom, const UINT8 *opram, UINT32 addr_mask); -// disassembly hook for varients with 24-bit address bus (e.g. H8/3044) -static CPU_DISASSEMBLE(h8_24) -{ - return h8_disasm(buffer, pc, oprom, opram, 0xffffff); -} - -// disassembly hook for full 32-bit address bus -static CPU_DISASSEMBLE(h8_32) -{ - return h8_disasm(buffer, pc, oprom, opram, 0xffffffff); -} - void h8_3002_InterruptRequest(h83xx_state *h8, UINT8 source, UINT8 state) { // don't allow clear on external interrupts diff --git a/src/emu/cpu/h83002/h8_8.c b/src/emu/cpu/h83002/h8_8.c index e754c0c4d74..b127e0259e0 100644 --- a/src/emu/cpu/h83002/h8_8.c +++ b/src/emu/cpu/h83002/h8_8.c @@ -13,6 +13,8 @@ #include "h8.h" #include "h8priv.h" +CPU_DISASSEMBLE(h8); + #define H8_SP (7) #define h8_mem_read8(x) memory_read_byte(h8->program, x) @@ -71,13 +73,6 @@ static void h8_check_irqs(h83xx_state *h8); /* implementation */ -extern offs_t h8_disasm(char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram, UINT32 addrmask); - -static CPU_DISASSEMBLE(h8) -{ - return h8_disasm(buffer, pc, oprom, opram, 0xffff); -} - static void h8_300_InterruptRequest(h83xx_state *h8, UINT8 source, UINT8 mode) { if (source>31) diff --git a/src/emu/cpu/h83002/h8disasm.c b/src/emu/cpu/h83002/h8disasm.c index 877710a2184..d01d35ab4d4 100644 --- a/src/emu/cpu/h83002/h8disasm.c +++ b/src/emu/cpu/h83002/h8disasm.c @@ -1274,4 +1274,20 @@ static UINT32 h8disasm_7(UINT32 address, UINT32 opcode, char *buffer, const UINT return size; } +CPU_DISASSEMBLE(h8) +{ + return h8_disasm(buffer, pc, oprom, opram, 0xffff); +} + +// disassembly hook for varients with 24-bit address bus (e.g. H8/3044) +CPU_DISASSEMBLE(h8_24) +{ + return h8_disasm(buffer, pc, oprom, opram, 0xffffff); +} + +// disassembly hook for full 32-bit address bus +CPU_DISASSEMBLE(h8_32) +{ + return h8_disasm(buffer, pc, oprom, opram, 0xffffffff); +} diff --git a/src/emu/cpu/i386/i386dasm.c b/src/emu/cpu/i386/i386dasm.c index a57790d6c1e..22263cd2fa6 100644 --- a/src/emu/cpu/i386/i386dasm.c +++ b/src/emu/cpu/i386/i386dasm.c @@ -2055,7 +2055,7 @@ static void decode_opcode(char *s, const I386_OPCODE *op, UINT8 op1) case GROUP: handle_modrm( modrm_string ); for( i=0; i < ARRAY_LENGTH(group_op_table); i++ ) { - if( mame_stricmp(op->mnemonic, group_op_table[i].mnemonic) == 0 ) { + if( strcmp(op->mnemonic, group_op_table[i].mnemonic) == 0 ) { decode_opcode( s, &group_op_table[i].opcode[MODRM_REG1], op1 ); return; } @@ -2137,3 +2137,18 @@ int i386_dasm_one(char *buffer, offs_t eip, const UINT8 *oprom, int mode) { return i386_dasm_one_ex(buffer, eip, oprom, mode); } + +CPU_DISASSEMBLE( x86_16 ) +{ + return i386_dasm_one_ex(buffer, pc, oprom, 16); +} + +CPU_DISASSEMBLE( x86_32 ) +{ + return i386_dasm_one_ex(buffer, pc, oprom, 32); +} + +CPU_DISASSEMBLE( x86_64 ) +{ + return i386_dasm_one_ex(buffer, pc, oprom, 64); +} diff --git a/src/emu/cpu/i960/i960.c b/src/emu/cpu/i960/i960.c index 632737cec63..bda0040d1e8 100644 --- a/src/emu/cpu/i960/i960.c +++ b/src/emu/cpu/i960/i960.c @@ -3,6 +3,8 @@ #include "i960dis.h" #include +CPU_DISASSEMBLE( i960 ); + #ifdef _MSC_VER /* logb prototype is different for MS Visual C */ #include @@ -2084,19 +2086,6 @@ static CPU_INIT( i960 ) state_save_register_device_item_array(device, 0, i960->rcache_frame_addr); } -static CPU_DISASSEMBLE( i960 ) -{ - disassemble_t dis; - - dis.IP = pc; - dis.buffer = buffer; - dis.oprom = oprom; - - i960_disassemble(&dis); - - return dis.IPinc | dis.disflags | DASMFLAG_SUPPORTED; -} - static CPU_RESET( i960 ) { i960_state_t *i960 = get_safe_token(device); diff --git a/src/emu/cpu/i960/i960dis.c b/src/emu/cpu/i960/i960dis.c index 76b1c1c08d6..183c662f381 100644 --- a/src/emu/cpu/i960/i960dis.c +++ b/src/emu/cpu/i960/i960dis.c @@ -289,3 +289,16 @@ char *i960_disassemble(disassemble_t *diss) +CPU_DISASSEMBLE( i960 ) +{ + disassemble_t dis; + + dis.IP = pc; + dis.buffer = buffer; + dis.oprom = oprom; + + i960_disassemble(&dis); + + return dis.IPinc | dis.disflags | DASMFLAG_SUPPORTED; +} + diff --git a/src/emu/cpu/jaguar/jagdasm.c b/src/emu/cpu/jaguar/jagdasm.c index 94934a3539b..b06dadd60b9 100644 --- a/src/emu/cpu/jaguar/jagdasm.c +++ b/src/emu/cpu/jaguar/jagdasm.c @@ -180,3 +180,17 @@ unsigned dasmjag(int variant, char *buffer, unsigned pc, const UINT8 *oprom) } return size | flags | DASMFLAG_SUPPORTED; } + + +CPU_DISASSEMBLE( jaguargpu ) +{ + return dasmjag(JAGUAR_VARIANT_GPU, buffer, pc, oprom); +} + +CPU_DISASSEMBLE( jaguardsp ) +{ + return dasmjag(JAGUAR_VARIANT_DSP, buffer, pc, oprom); +} + + + diff --git a/src/emu/cpu/jaguar/jaguar.c b/src/emu/cpu/jaguar/jaguar.c index d524d64ed06..a79a1de4ac6 100644 --- a/src/emu/cpu/jaguar/jaguar.c +++ b/src/emu/cpu/jaguar/jaguar.c @@ -10,6 +10,9 @@ #include "cpuexec.h" #include "jaguar.h" +CPU_DISASSEMBLE( jaguargpu ); +CPU_DISASSEMBLE( jaguardsp ); + #define LOG_GPU_IO 0 #define LOG_DSP_IO 0 @@ -556,24 +559,6 @@ static CPU_EXECUTE( jaguardsp ) -/*************************************************************************** - DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( jaguargpu ) -{ - extern unsigned dasmjag(int, char *, unsigned, const UINT8 *); - return dasmjag(JAGUAR_VARIANT_GPU, buffer, pc, oprom); -} - -static CPU_DISASSEMBLE( jaguardsp ) -{ - extern unsigned dasmjag(int, char *, unsigned, const UINT8 *); - return dasmjag(JAGUAR_VARIANT_DSP, buffer, pc, oprom); -} - - - /*************************************************************************** OPCODES ***************************************************************************/ diff --git a/src/emu/cpu/m37710/m7700ds.c b/src/emu/cpu/m37710/m7700ds.c index 2bb49ec2659..819dd7f2116 100644 --- a/src/emu/cpu/m37710/m7700ds.c +++ b/src/emu/cpu/m37710/m7700ds.c @@ -608,3 +608,9 @@ int m7700_disassemble(char* buff, unsigned int pc, unsigned int pb, const UINT8 return length | flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( m37710_generic ) +{ + return m7700_disassemble(buffer, (pc&0xffff), pc>>16, oprom, 0, 0); +} + diff --git a/src/emu/cpu/m68000/m68kdasm.c b/src/emu/cpu/m68000/m68kdasm.c index 9a896c17d52..8d04d465d85 100644 --- a/src/emu/cpu/m68000/m68kdasm.c +++ b/src/emu/cpu/m68000/m68kdasm.c @@ -3715,6 +3715,37 @@ unsigned int m68k_is_valid_instruction(unsigned int instruction, unsigned int cp } #endif +CPU_DISASSEMBLE( m68000 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68000); +} + +CPU_DISASSEMBLE( m68008 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68008); +} + +CPU_DISASSEMBLE( m68010 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68010); +} + +CPU_DISASSEMBLE( m68020 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68020); +} + +CPU_DISASSEMBLE( m68030 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68030); +} + +CPU_DISASSEMBLE( m68040 ) +{ + return m68k_disassemble_raw(buffer, pc, oprom, opram, M68K_CPU_TYPE_68040); +} + + /* ======================================================================== */ /* ============================== END OF FILE ============================= */ diff --git a/src/emu/cpu/mb86233/mb86233.c b/src/emu/cpu/mb86233/mb86233.c index f719b044ea7..87d83a6d194 100644 --- a/src/emu/cpu/mb86233/mb86233.c +++ b/src/emu/cpu/mb86233/mb86233.c @@ -16,6 +16,8 @@ #include "mb86233.h" #include "debugger.h" +CPU_DISASSEMBLE( mb86233 ); + /*************************************************************************** STRUCTURES & TYPEDEFS ***************************************************************************/ @@ -1557,20 +1559,6 @@ static CPU_EXECUTE( mb86233 ) return cycles - cpustate->icount; } -/*************************************************************************** - DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( mb86233 ) -{ - extern UINT32 dasm_mb86233(char *, UINT32); - - UINT32 op = *(UINT32 *)oprom; - op = LITTLE_ENDIANIZE_INT32(op); - return dasm_mb86233(buffer, op); -} - - /*************************************************************************** Information Setters ***************************************************************************/ diff --git a/src/emu/cpu/mb86233/mb86233d.c b/src/emu/cpu/mb86233/mb86233d.c index 75db825c20f..c75986105b1 100644 --- a/src/emu/cpu/mb86233/mb86233d.c +++ b/src/emu/cpu/mb86233/mb86233d.c @@ -772,3 +772,10 @@ unsigned dasm_mb86233(char *buffer, UINT32 opcode ) return (1 | DASMFLAG_SUPPORTED); } + +CPU_DISASSEMBLE( mb86233 ) +{ + UINT32 op = *(UINT32 *)oprom; + op = LITTLE_ENDIANIZE_INT32(op); + return dasm_mb86233(buffer, op); +} diff --git a/src/emu/cpu/mips/mips3dsm.c b/src/emu/cpu/mips/mips3dsm.c index 197c5775437..e72ad959d0d 100644 --- a/src/emu/cpu/mips/mips3dsm.c +++ b/src/emu/cpu/mips/mips3dsm.c @@ -509,3 +509,21 @@ unsigned dasmmips3(char *buffer, unsigned pc, UINT32 op) } return 4 | flags | DASMFLAG_SUPPORTED; } + + +CPU_DISASSEMBLE( mips3be ) +{ + UINT32 op = *(UINT32 *)oprom; + op = BIG_ENDIANIZE_INT32(op); + return dasmmips3(buffer, pc, op); +} + + +CPU_DISASSEMBLE( mips3le ) +{ + UINT32 op = *(UINT32 *)oprom; + op = LITTLE_ENDIANIZE_INT32(op); + return dasmmips3(buffer, pc, op); +} + + diff --git a/src/emu/cpu/mips/psxdasm.c b/src/emu/cpu/mips/psxdasm.c index 4c2ffe872bf..e5e9e50a140 100644 --- a/src/emu/cpu/mips/psxdasm.c +++ b/src/emu/cpu/mips/psxdasm.c @@ -739,3 +739,10 @@ unsigned DasmPSXCPU( DasmPSXCPU_state *state, char *buffer, UINT32 pc, const UIN } return ( opram - oldopram ) | flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( psxcpu_generic ) +{ + DasmPSXCPU_state state = {0}; + state.pc = pc; + return DasmPSXCPU( &state, buffer, pc, opram ); +} diff --git a/src/emu/cpu/mips/r3000.c b/src/emu/cpu/mips/r3000.c index fdf410ce0d5..fb98df460a2 100644 --- a/src/emu/cpu/mips/r3000.c +++ b/src/emu/cpu/mips/r3000.c @@ -9,6 +9,8 @@ #include "debugger.h" #include "r3000.h" +CPU_DISASSEMBLE( r3000be ); +CPU_DISASSEMBLE( r3000le ); #define ENABLE_OVERFLOWS 0 @@ -888,24 +890,6 @@ static CPU_EXECUTE( r3000 ) DISASSEMBLY HOOK ***************************************************************************/ -static CPU_DISASSEMBLE( r3000be ) -{ - extern unsigned dasmr3k(char *, unsigned, UINT32); - UINT32 op = *(UINT32 *)oprom; - op = BIG_ENDIANIZE_INT32(op); - return dasmr3k(buffer, pc, op); -} - - -static CPU_DISASSEMBLE( r3000le ) -{ - extern unsigned dasmr3k(char *, unsigned, UINT32); - UINT32 op = *(UINT32 *)oprom; - op = LITTLE_ENDIANIZE_INT32(op); - return dasmr3k(buffer, pc, op); -} - - /*************************************************************************** CACHE I/O diff --git a/src/emu/cpu/mips/r3kdasm.c b/src/emu/cpu/mips/r3kdasm.c index 35bcacff149..171efcc2f5a 100644 --- a/src/emu/cpu/mips/r3kdasm.c +++ b/src/emu/cpu/mips/r3kdasm.c @@ -369,3 +369,19 @@ unsigned dasmr3k(char *buffer, unsigned pc, UINT32 op) } return 4 | flags | DASMFLAG_SUPPORTED; } + + +CPU_DISASSEMBLE( r3000be ) +{ + UINT32 op = *(UINT32 *)oprom; + op = BIG_ENDIANIZE_INT32(op); + return dasmr3k(buffer, pc, op); +} + + +CPU_DISASSEMBLE( r3000le ) +{ + UINT32 op = *(UINT32 *)oprom; + op = LITTLE_ENDIANIZE_INT32(op); + return dasmr3k(buffer, pc, op); +} diff --git a/src/emu/cpu/nec/necdasm.c b/src/emu/cpu/nec/necdasm.c index 5387500c3a4..31b9ee59c61 100644 --- a/src/emu/cpu/nec/necdasm.c +++ b/src/emu/cpu/nec/necdasm.c @@ -1485,7 +1485,7 @@ static void decode_opcode(char *s, const I386_OPCODE *op, UINT8 op1 ) case GROUP: handle_modrm( modrm_string ); for( i=0; i < ARRAY_LENGTH(group_op_table); i++ ) { - if( mame_stricmp(op->mnemonic, group_op_table[i].mnemonic) == 0 ) + if( strcmp(op->mnemonic, group_op_table[i].mnemonic) == 0 ) { decode_opcode( s, &group_op_table[i].opcode[MODRM_REG1], op1 ); return; @@ -1543,3 +1543,9 @@ int necv_dasm_one(char *buffer, UINT32 eip, const UINT8 *oprom, const nec_config decode_opcode( buffer, &necv_opcode_table1[op], op ); return (pc-eip) | dasm_flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( nec_generic ) +{ + return necv_dasm_one(buffer, pc, oprom, NULL); +} + diff --git a/src/emu/cpu/powerpc/ppc_dasm.c b/src/emu/cpu/powerpc/ppc_dasm.c index 4cfa12bac5a..c399e682fff 100644 --- a/src/emu/cpu/powerpc/ppc_dasm.c +++ b/src/emu/cpu/powerpc/ppc_dasm.c @@ -1166,3 +1166,10 @@ offs_t ppc_dasm_one(char *buffer, UINT32 pc, UINT32 op) sprintf(buffer, "?"); return 4 | flags; } + +CPU_DISASSEMBLE( powerpc ) +{ + UINT32 op = *(UINT32 *)oprom; + op = BIG_ENDIANIZE_INT32(op); + return ppc_dasm_one(buffer, pc, op); +} diff --git a/src/emu/cpu/rsp/rsp.c b/src/emu/cpu/rsp/rsp.c index 63b529d6943..432ba28ded9 100644 --- a/src/emu/cpu/rsp/rsp.c +++ b/src/emu/cpu/rsp/rsp.c @@ -8,6 +8,8 @@ #include "debugger.h" #include "rsp.h" +CPU_DISASSEMBLE( rsp ); + #define LOG_INSTRUCTION_EXECUTION 0 #define SAVE_DISASM 0 #define SAVE_DMEM 0 @@ -2865,14 +2867,6 @@ static CPU_EXECUTE( rsp ) -/*****************************************************************************/ - -static CPU_DISASSEMBLE( rsp ) -{ - UINT32 op = LITTLE_ENDIANIZE_INT32(*(UINT32 *)opram); - return rsp_dasm_one(buffer, pc, op); -} - /*****************************************************************************/ static CPU_SET_INFO( rsp ) diff --git a/src/emu/cpu/rsp/rsp_dasm.c b/src/emu/cpu/rsp/rsp_dasm.c index 4a2d90614de..2839e065d23 100644 --- a/src/emu/cpu/rsp/rsp_dasm.c +++ b/src/emu/cpu/rsp/rsp_dasm.c @@ -343,3 +343,11 @@ offs_t rsp_dasm_one(char *buffer, offs_t pc, UINT32 op) return 4 | flags | DASMFLAG_SUPPORTED; } + +/*****************************************************************************/ + +CPU_DISASSEMBLE( rsp ) +{ + UINT32 op = LITTLE_ENDIANIZE_INT32(*(UINT32 *)opram); + return rsp_dasm_one(buffer, pc, op); +} diff --git a/src/emu/cpu/sh2/sh2.c b/src/emu/cpu/sh2/sh2.c index e2e6b58cf42..8496318e03f 100644 --- a/src/emu/cpu/sh2/sh2.c +++ b/src/emu/cpu/sh2/sh2.c @@ -103,6 +103,8 @@ #include "sh2.h" #include "sh2comn.h" +CPU_DISASSEMBLE( sh2 ); + #ifndef USE_SH2DRC /* speed up delay loops, bail out of tight loops */ @@ -2239,11 +2241,6 @@ static CPU_EXECUTE( sh2 ) return cycles - sh2_icount; } -static CPU_DISASSEMBLE( sh2 ) -{ - return DasmSH2( buffer, pc, (oprom[0] << 8) | oprom[1] ); -} - static CPU_INIT( sh2 ) { /* allocate the core memory */ diff --git a/src/emu/cpu/sh2/sh2dasm.c b/src/emu/cpu/sh2/sh2dasm.c index cf45d1791a5..b05dca16893 100644 --- a/src/emu/cpu/sh2/sh2dasm.c +++ b/src/emu/cpu/sh2/sh2dasm.c @@ -600,3 +600,9 @@ unsigned DasmSH2(char *buffer, unsigned pc, UINT16 opcode) } return 2 | flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( sh2 ) +{ + return DasmSH2( buffer, pc, (oprom[0] << 8) | oprom[1] ); +} + diff --git a/src/emu/cpu/sh2/sh2drc.c b/src/emu/cpu/sh2/sh2drc.c index ac9c1387eeb..e92b1cdac9f 100644 --- a/src/emu/cpu/sh2/sh2drc.c +++ b/src/emu/cpu/sh2/sh2drc.c @@ -20,6 +20,8 @@ #include "sh2comn.h" #include "eminline.h" +CPU_DISASSEMBLE( sh2 ); + #ifdef USE_SH2DRC /*************************************************************************** @@ -3171,15 +3173,6 @@ void sh2drc_add_pcflush(const device_config *device, offs_t address) } -/*------------------------------------------------- - sh2_dasm - disassemble an instruction --------------------------------------------------*/ - -static CPU_DISASSEMBLE( sh2 ) -{ - return DasmSH2( buffer, pc, (oprom[0] << 8) | oprom[1] ); -} - /*------------------------------------------------- sh2_internal_a5 - read handler for SH2 internal map diff --git a/src/emu/cpu/sh4/sh4.c b/src/emu/cpu/sh4/sh4.c index b85f23e5e2a..afb7492d20d 100644 --- a/src/emu/cpu/sh4/sh4.c +++ b/src/emu/cpu/sh4/sh4.c @@ -27,6 +27,8 @@ #include "sh4regs.h" #include "sh4comn.h" +CPU_DISASSEMBLE( sh4 ); + INLINE SH4 *get_safe_token(const device_config *device) { assert(device != NULL); @@ -3419,11 +3421,6 @@ static CPU_EXECUTE( sh4 ) return cycles - sh4->sh4_icount; } -static CPU_DISASSEMBLE( sh4 ) -{ - return DasmSH4( buffer, pc, (oprom[1] << 8) | oprom[0] ); -} - static CPU_INIT( sh4 ) { const struct sh4_config *conf = (const struct sh4_config *)device->static_config; diff --git a/src/emu/cpu/sh4/sh4dasm.c b/src/emu/cpu/sh4/sh4dasm.c index 0233d4c2724..fb49252ba75 100644 --- a/src/emu/cpu/sh4/sh4dasm.c +++ b/src/emu/cpu/sh4/sh4dasm.c @@ -809,3 +809,9 @@ unsigned DasmSH4(char *buffer, unsigned pc, UINT16 opcode) } return 2 | flags | DASMFLAG_SUPPORTED; } + +CPU_DISASSEMBLE( sh4 ) +{ + return DasmSH4( buffer, pc, (oprom[1] << 8) | oprom[0] ); +} + diff --git a/src/emu/cpu/sharc/sharc.c b/src/emu/cpu/sharc/sharc.c index 91929e28d5a..ddd22f687a8 100644 --- a/src/emu/cpu/sharc/sharc.c +++ b/src/emu/cpu/sharc/sharc.c @@ -6,6 +6,8 @@ #include "sharc.h" #include "debugger.h" +CPU_DISASSEMBLE( sharc ); + enum { SHARC_PC=1, SHARC_PCSTK, SHARC_MODE1, SHARC_MODE2, @@ -170,8 +172,6 @@ struct _SHARC_REGS }; -static CPU_DISASSEMBLE( sharc ); - static void sharc_dma_exec(SHARC_REGS *cpustate, int channel); static void check_interrupts(SHARC_REGS *cpustate); @@ -416,20 +416,6 @@ void sharc_external_dma_write(const device_config *device, UINT32 address, UINT6 } } -static CPU_DISASSEMBLE( sharc ) -{ - UINT64 op = 0; - UINT32 flags = 0; - - op = ((UINT64)oprom[0] << 0) | ((UINT64)oprom[1] << 8) | - ((UINT64)oprom[2] << 16) | ((UINT64)oprom[3] << 24) | - ((UINT64)oprom[4] << 32) | ((UINT64)oprom[5] << 40); - - flags = sharc_dasm_one(buffer, pc, op); - return 1 | flags | DASMFLAG_SUPPORTED; -} - - static CPU_INIT( sharc ) { SHARC_REGS *cpustate = get_safe_token(device); diff --git a/src/emu/cpu/sharc/sharcdsm.c b/src/emu/cpu/sharc/sharcdsm.c index 452f12e01cc..2049afe2ddd 100644 --- a/src/emu/cpu/sharc/sharcdsm.c +++ b/src/emu/cpu/sharc/sharcdsm.c @@ -1181,3 +1181,18 @@ UINT32 sharc_dasm_one(char *buffer, offs_t pc, UINT64 opcode) return flags; } + +CPU_DISASSEMBLE( sharc ) +{ + UINT64 op = 0; + UINT32 flags = 0; + + op = ((UINT64)oprom[0] << 0) | ((UINT64)oprom[1] << 8) | + ((UINT64)oprom[2] << 16) | ((UINT64)oprom[3] << 24) | + ((UINT64)oprom[4] << 32) | ((UINT64)oprom[5] << 40); + + flags = sharc_dasm_one(buffer, pc, op); + return 1 | flags | DASMFLAG_SUPPORTED; +} + + diff --git a/src/emu/cpu/ssem/ssem.c b/src/emu/cpu/ssem/ssem.c index 8e9d37fd79a..cb710f4cee5 100644 --- a/src/emu/cpu/ssem/ssem.c +++ b/src/emu/cpu/ssem/ssem.c @@ -8,6 +8,9 @@ #include "debugger.h" #include "ssem.h" +CPU_DISASSEMBLE( ssem ); + + #define SSEM_DISASM_ON_UNIMPL 0 #define SSEM_DUMP_MEM_ON_UNIMPL 0 @@ -234,16 +237,6 @@ static CPU_EXECUTE( ssem ) return cycles - cpustate->icount; } -/*****************************************************************************/ - -static CPU_DISASSEMBLE( ssem ) -{ - UINT32 op = (*(UINT8 *)(opram + 0) << 24) | - (*(UINT8 *)(opram + 1) << 16) | - (*(UINT8 *)(opram + 2) << 8) | - (*(UINT8 *)(opram + 3) << 0); - return ssem_dasm_one(buffer, pc, op); -} /*****************************************************************************/ diff --git a/src/emu/cpu/ssem/ssemdasm.c b/src/emu/cpu/ssem/ssemdasm.c index 79771df42b6..9da5eeddd72 100644 --- a/src/emu/cpu/ssem/ssemdasm.c +++ b/src/emu/cpu/ssem/ssemdasm.c @@ -73,3 +73,14 @@ offs_t ssem_dasm_one(char *buffer, offs_t pc, UINT32 op) return 4 | DASMFLAG_SUPPORTED; } + +/*****************************************************************************/ + +CPU_DISASSEMBLE( ssem ) +{ + UINT32 op = (*(UINT8 *)(opram + 0) << 24) | + (*(UINT8 *)(opram + 1) << 16) | + (*(UINT8 *)(opram + 2) << 8) | + (*(UINT8 *)(opram + 3) << 0); + return ssem_dasm_one(buffer, pc, op); +} diff --git a/src/emu/cpu/ssp1601/ssp1601.c b/src/emu/cpu/ssp1601/ssp1601.c index 38a947c51ed..523f0cc766c 100644 --- a/src/emu/cpu/ssp1601/ssp1601.c +++ b/src/emu/cpu/ssp1601/ssp1601.c @@ -20,6 +20,7 @@ #include "debugger.h" #include "ssp1601.h" +CPU_DISASSEMBLE( ssp1601 ); /* detect ops with unimplemented/invalid fields. * Useful for homebrew or if a new VR revision pops up. */ @@ -764,14 +765,6 @@ static CPU_EXECUTE( ssp1601 ) * MAME interface **************************************************************************/ -static CPU_DISASSEMBLE( ssp1601 ) -{ - //ssp1601_state_t *ssp1601_state = get_safe_token(device); - - return dasm_ssp1601(buffer, pc, oprom); -} - - static CPU_SET_INFO( ssp1601 ) { ssp1601_state_t *ssp1601_state = get_safe_token(device); diff --git a/src/emu/cpu/ssp1601/ssp1601d.c b/src/emu/cpu/ssp1601/ssp1601d.c index 61a15662606..30b8eebbff4 100644 --- a/src/emu/cpu/ssp1601/ssp1601d.c +++ b/src/emu/cpu/ssp1601/ssp1601d.c @@ -288,3 +288,12 @@ unsigned dasm_ssp1601(char *buffer, unsigned pc, const UINT8 *oprom) } // vim:ts=4 + +CPU_DISASSEMBLE( ssp1601 ) +{ + //ssp1601_state_t *ssp1601_state = get_safe_token(device); + + return dasm_ssp1601(buffer, pc, oprom); +} + + diff --git a/src/emu/cpu/tms32031/dis32031.c b/src/emu/cpu/tms32031/dis32031.c index 8c599b932d6..d7a7a1c45ea 100644 --- a/src/emu/cpu/tms32031/dis32031.c +++ b/src/emu/cpu/tms32031/dis32031.c @@ -731,3 +731,10 @@ unsigned dasm_tms32031(char *buffer, unsigned pc, UINT32 op) return 1 | flags | DASMFLAG_SUPPORTED; } + + +CPU_DISASSEMBLE( tms32031 ) +{ + UINT32 op = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24); + return dasm_tms32031(buffer, pc, op); +} diff --git a/src/emu/cpu/tms32031/tms32031.c b/src/emu/cpu/tms32031/tms32031.c index 409edf8609d..de2607042e3 100644 --- a/src/emu/cpu/tms32031/tms32031.c +++ b/src/emu/cpu/tms32031/tms32031.c @@ -10,6 +10,7 @@ #include "tms32031.h" #include "eminline.h" +CPU_DISASSEMBLE( tms32031 ); #define LOG_OPCODE_USAGE (0) @@ -535,19 +536,6 @@ static CPU_EXECUTE( tms32031 ) -/*************************************************************************** - DISASSEMBLY HOOK -***************************************************************************/ - -static CPU_DISASSEMBLE( tms32031 ) -{ - UINT32 op = oprom[0] | (oprom[1] << 8) | (oprom[2] << 16) | (oprom[3] << 24); - extern unsigned dasm_tms32031(char *, unsigned, UINT32); - return dasm_tms32031(buffer, pc, op); -} - - - /*************************************************************************** BOOT LOADER ***************************************************************************/ diff --git a/src/emu/cpu/tms57002/57002dsm.c b/src/emu/cpu/tms57002/57002dsm.c new file mode 100644 index 00000000000..eb4bb585ff3 --- /dev/null +++ b/src/emu/cpu/tms57002/57002dsm.c @@ -0,0 +1,90 @@ +#include "tms57002.h" +#include "debugger.h" + +#ifdef __GNUC__ +#define noinline __attribute__((noinline)) +#else +#define noinline /* */ +#endif + +static const char *tms57002_get_memadr(UINT32 opcode, char type) +{ + static char buff[2][10]; + static int index = 0; + char *buf; + + index = 1-index; + buf = buff[index]; + + if(((opcode & 0x400) && (type == 'c')) || (!(opcode & 0x400) && (type == 'd'))) { + if(opcode & 0x100) + sprintf(buf, "%c(%02x)", type, opcode & 0xff); + else if(opcode & 0x80) + sprintf(buf, "%c*+", type); + else + sprintf(buf, "%c*", type); + } else if(opcode & 0x200) + sprintf(buf, "%c*+", type); + else + sprintf(buf, "%c*", type); + return buf; +} + + +CPU_DISASSEMBLE(tms57002) +{ + UINT32 opcode = opram[0] | (opram[1] << 8) | (opram[2] << 16); + UINT8 fa = opcode >> 18; + char *buf = buffer; + if(fa == 0x3f) { + switch((opcode >> 11) & 0x7f) { // category 3 + +#define DASM3 +#include "cpu/tms57002/tms57002.inc" +#undef DASM3 + + default: + sprintf(buf, "unk c3 %02x", (opcode >> 11) & 0x7f); + break; + } + } else { + switch(fa) { // category 1 + case 0x00: + buf[0] = 0; + break; + +#define DASM1 +#include "cpu/tms57002/tms57002.inc" +#undef DASM1 + + default: + sprintf(buf, "unk c1 %02x", fa); + break; + } + + buf += strlen(buf); + if(buf != buffer) { + strcpy(buf, " ; "); + buf += 3; + } + + switch((opcode >> 11) & 0x7f) { // category 2 + case 0x00: + if(buf != buffer) + buf[-3] = 0; + else + sprintf(buf, "nop"); + break; + +#define DASM2 +#include "cpu/tms57002/tms57002.inc" +#undef DASM2 + + default: + sprintf(buf, "unk c2 %02x", (opcode >> 11) & 0x7f); + break; + } + } + + return 1; +} diff --git a/src/emu/cpu/tms57002/tms57002.c b/src/emu/cpu/tms57002/tms57002.c index 901a9c5b208..b64bf7555a9 100644 --- a/src/emu/cpu/tms57002/tms57002.c +++ b/src/emu/cpu/tms57002/tms57002.c @@ -1,6 +1,8 @@ #include "tms57002.h" #include "debugger.h" +CPU_DISASSEMBLE(tms57002); + #ifdef __GNUC__ #define noinline __attribute__((noinline)) #else @@ -117,87 +119,6 @@ INLINE tms57002_t *get_safe_token(const device_config *device) static void tms57002_cache_flush(tms57002_t *s); -static const char *tms57002_get_memadr(UINT32 opcode, char type) -{ - static char buff[2][10]; - static int index = 0; - char *buf; - - index = 1-index; - buf = buff[index]; - - if(((opcode & 0x400) && (type == 'c')) || (!(opcode & 0x400) && (type == 'd'))) { - if(opcode & 0x100) - sprintf(buf, "%c(%02x)", type, opcode & 0xff); - else if(opcode & 0x80) - sprintf(buf, "%c*+", type); - else - sprintf(buf, "%c*", type); - } else if(opcode & 0x200) - sprintf(buf, "%c*+", type); - else - sprintf(buf, "%c*", type); - return buf; -} - -static CPU_DISASSEMBLE(tms57002) -{ - UINT32 opcode = opram[0] | (opram[1] << 8) | (opram[2] << 16); - UINT8 fa = opcode >> 18; - char *buf = buffer; - if(fa == 0x3f) { - switch((opcode >> 11) & 0x7f) { // category 3 - -#define DASM3 -#include "cpu/tms57002/tms57002.inc" -#undef DASM3 - - default: - sprintf(buf, "unk c3 %02x", (opcode >> 11) & 0x7f); - break; - } - } else { - switch(fa) { // category 1 - case 0x00: - buf[0] = 0; - break; - -#define DASM1 -#include "cpu/tms57002/tms57002.inc" -#undef DASM1 - - default: - sprintf(buf, "unk c1 %02x", fa); - break; - } - - buf += strlen(buf); - if(buf != buffer) { - strcpy(buf, " ; "); - buf += 3; - } - - switch((opcode >> 11) & 0x7f) { // category 2 - case 0x00: - if(buf != buffer) - buf[-3] = 0; - else - sprintf(buf, "nop"); - break; - -#define DASM2 -#include "cpu/tms57002/tms57002.inc" -#undef DASM2 - - default: - sprintf(buf, "unk c2 %02x", (opcode >> 11) & 0x7f); - break; - } - } - - return 1; -} - WRITE8_DEVICE_HANDLER(tms57002_pload_w) { tms57002_t *s = get_safe_token(device); diff --git a/src/emu/cpu/v60/v60.c b/src/emu/cpu/v60/v60.c index df2ffa0f845..d377a52ebb1 100644 --- a/src/emu/cpu/v60/v60.c +++ b/src/emu/cpu/v60/v60.c @@ -199,27 +199,6 @@ INLINE v60_state *get_safe_token(const device_config *device) #define ADTMR1 reg[64] //29-31 reserved -// Register names -const char *const v60_reg_names[69] = { - "R0", "R1", "R2", "R3", - "R4", "R5", "R6", "R7", - "R8", "R9", "R10", "R11", - "R12", "R13", "R14", "R15", - "R16", "R17", "R18", "R19", - "R20", "R21", "R22", "R23", - "R24", "R25", "R26", "R27", - "R28", "AP", "FP", "SP", - "PC", "PSW","Unk","Unk", - "ISP", "L0SP", "L1SP", "L2SP", - "L3SP", "SBR","TR","SYCW", - "TKCW", "PIR", "Reserved","Reserved", - "Reserved","Reserved","Reserved","PSW2", - "ATBR0", "ATLR0", "ATBR1", "ATLR1", - "ATBR2", "ATLR2", "ATBR3", "ATLR3", - "TRMODE", "ADTR0", "ADTR1","ADTMR0", - "ADTMR1","Reserved","Reserved","Reserved" -}; - // Defines... #define NORMALIZEFLAGS(cs) \ { \ diff --git a/src/emu/cpu/v60/v60d.c b/src/emu/cpu/v60/v60d.c index ccfb8ed7a9a..df7684c171e 100644 --- a/src/emu/cpu/v60/v60d.c +++ b/src/emu/cpu/v60/v60d.c @@ -2,6 +2,27 @@ #include "debugger.h" #include "v60.h" +// Register names +const char *const v60_reg_names[69] = { + "R0", "R1", "R2", "R3", + "R4", "R5", "R6", "R7", + "R8", "R9", "R10", "R11", + "R12", "R13", "R14", "R15", + "R16", "R17", "R18", "R19", + "R20", "R21", "R22", "R23", + "R24", "R25", "R26", "R27", + "R28", "AP", "FP", "SP", + "PC", "PSW","Unk","Unk", + "ISP", "L0SP", "L1SP", "L2SP", + "L3SP", "SBR","TR","SYCW", + "TKCW", "PIR", "Reserved","Reserved", + "Reserved","Reserved","Reserved","PSW2", + "ATBR0", "ATLR0", "ATBR1", "ATLR1", + "ATBR2", "ATLR2", "ATBR3", "ATLR3", + "TRMODE", "ADTR0", "ADTR1","ADTMR0", + "ADTMR1","Reserved","Reserved","Reserved" +}; + static const UINT8 *rombase; static offs_t pcbase; diff --git a/src/emu/cpu/z8000/8000dasm.c b/src/emu/cpu/z8000/8000dasm.c index af090569a3f..09d9df43970 100644 --- a/src/emu/cpu/z8000/8000dasm.c +++ b/src/emu/cpu/z8000/8000dasm.c @@ -86,6 +86,10 @@ CPU_DISASSEMBLE( z8000 ) Z8000_exec *o; UINT32 flags = 0; + /* already initialized? */ + if(z8000_exec == NULL) + z8000_init_tables(); + GET_OP(oprom, 0, new_pc - pc); new_pc += 2; switch (pc) diff --git a/src/emu/emu.mak b/src/emu/emu.mak index ae05db0e77e..89acb4aebb1 100644 --- a/src/emu/emu.mak +++ b/src/emu/emu.mak @@ -202,7 +202,9 @@ $(LIBEMU): $(EMUOBJS) $(EMUSOUNDOBJS) $(EMUAUDIOOBJS) $(EMUDRIVEROBJS) $(EMUMACH include $(EMUSRC)/cpu/cpu.mak -$(LIBCPU): $(CPUOBJS) $(DBGOBJS) +$(LIBCPU): $(CPUOBJS) + +$(LIBDASM): $(DASMOBJS) diff --git a/src/tools/tools.mak b/src/tools/tools.mak index e08952eb2b5..62310ac7e5d 100644 --- a/src/tools/tools.mak +++ b/src/tools/tools.mak @@ -26,6 +26,7 @@ TOOLS += \ romcmp$(EXE) \ chdman$(EXE) \ jedutil$(EXE) \ + unidasm$(EXE) \ ldresample$(EXE) \ ldverify$(EXE) \ regrep$(EXE) \ @@ -75,6 +76,19 @@ jedutil$(EXE): $(JEDUTILOBJS) $(LIBUTIL) $(LIBOCORE) $(ZLIB) $(EXPAT) +#------------------------------------------------- +# unidasm +#------------------------------------------------- + +UNIDASMOBJS = \ + $(TOOLSOBJ)/unidasm.o \ + +unidasm$(EXE): $(UNIDASMOBJS) $(LIBUTIL) $(LIBOCORE) $(LIBDASM) $(ZLIB) $(EXPAT) + @echo Linking $@... + $(LD) $(LDFLAGS) $^ $(LIBS) -o $@ + + + #------------------------------------------------- # ldresample #------------------------------------------------- diff --git a/src/tools/unidasm.c b/src/tools/unidasm.c new file mode 100644 index 00000000000..b3a0d8a57e0 --- /dev/null +++ b/src/tools/unidasm.c @@ -0,0 +1,319 @@ +/*************************************************************************** + + mamedasm.c + + Generic MAME disassembler. + + Copyright Nicola Salmoria and the MAME Team. + Visit http://mamedev.org for licensing and usage restrictions. + +***************************************************************************/ + +#include "cpuintrf.h" + +CPU_DISASSEMBLE( adsp21xx ); +CPU_DISASSEMBLE( alpha8201 ); +CPU_DISASSEMBLE( arm ); +CPU_DISASSEMBLE( arm7arm ); +CPU_DISASSEMBLE( arm7thumb ); +CPU_DISASSEMBLE( asap ); +CPU_DISASSEMBLE( avr8 ); +CPU_DISASSEMBLE( ccpu ); +CPU_DISASSEMBLE( cdp1802 ); +CPU_DISASSEMBLE( cop410 ); +CPU_DISASSEMBLE( cop420 ); +CPU_DISASSEMBLE( cop444 ); +CPU_DISASSEMBLE( cp1610 ); +CPU_DISASSEMBLE( cquestsnd ); +CPU_DISASSEMBLE( cquestrot ); +CPU_DISASSEMBLE( cquestlin ); +CPU_DISASSEMBLE( dsp32c ); +CPU_DISASSEMBLE( dsp56k ); +CPU_DISASSEMBLE( hyperstone_generic ); +CPU_DISASSEMBLE( esrip ); +CPU_DISASSEMBLE( f8 ); +CPU_DISASSEMBLE( g65816_generic ); +CPU_DISASSEMBLE( h6280 ); +CPU_DISASSEMBLE( h8 ); +CPU_DISASSEMBLE( hd6309 ); +CPU_DISASSEMBLE( i4004 ); +CPU_DISASSEMBLE( i8085 ); +CPU_DISASSEMBLE( x86_16 ); +CPU_DISASSEMBLE( x86_32 ); +CPU_DISASSEMBLE( x86_64 ); +CPU_DISASSEMBLE( i860 ); +CPU_DISASSEMBLE( i960 ); +CPU_DISASSEMBLE( jaguargpu ); +CPU_DISASSEMBLE( jaguardsp ); +CPU_DISASSEMBLE( konami ); +CPU_DISASSEMBLE( lh5801 ); +CPU_DISASSEMBLE( lr35902 ); +CPU_DISASSEMBLE( m37710_generic ); +CPU_DISASSEMBLE( m6502 ); +CPU_DISASSEMBLE( m65sc02 ); +CPU_DISASSEMBLE( m65c02 ); +CPU_DISASSEMBLE( m65ce02 ); +CPU_DISASSEMBLE( m6510 ); +CPU_DISASSEMBLE( deco16 ); +CPU_DISASSEMBLE( m4510 ); +CPU_DISASSEMBLE( m6800 ); +CPU_DISASSEMBLE( m6801 ); +CPU_DISASSEMBLE( m6802 ); +CPU_DISASSEMBLE( m6803 ); +CPU_DISASSEMBLE( hd63701 ); +CPU_DISASSEMBLE( nsc8105 ); +CPU_DISASSEMBLE( m68000 ); +CPU_DISASSEMBLE( m68008 ); +CPU_DISASSEMBLE( m68010 ); +CPU_DISASSEMBLE( m68020 ); +CPU_DISASSEMBLE( m68030 ); +CPU_DISASSEMBLE( m68040 ); +CPU_DISASSEMBLE( m6805 ); +CPU_DISASSEMBLE( m6809 ); +CPU_DISASSEMBLE( mb86233 ); +CPU_DISASSEMBLE( mb88 ); +CPU_DISASSEMBLE( mcs48 ); +CPU_DISASSEMBLE( upi41 ); +CPU_DISASSEMBLE( i8051 ); +CPU_DISASSEMBLE( i8052 ); +CPU_DISASSEMBLE( i80c51 ); +CPU_DISASSEMBLE( i80c52 ); +CPU_DISASSEMBLE( ds5002fp ); +CPU_DISASSEMBLE( minx ); +CPU_DISASSEMBLE( mips3be ); +CPU_DISASSEMBLE( mips3le ); +CPU_DISASSEMBLE( psxcpu_generic ); +CPU_DISASSEMBLE( r3000be ); +CPU_DISASSEMBLE( r3000le ); +CPU_DISASSEMBLE( nec_generic ); +CPU_DISASSEMBLE( pdp1 ); +CPU_DISASSEMBLE( tx0_64kw ); +CPU_DISASSEMBLE( tx0_8kw ); +CPU_DISASSEMBLE( pic16c5x ); +CPU_DISASSEMBLE( powerpc ); +CPU_DISASSEMBLE( rsp ); +CPU_DISASSEMBLE( s2650 ); +CPU_DISASSEMBLE( saturn ); +CPU_DISASSEMBLE( sc61860 ); +CPU_DISASSEMBLE( se3208 ); +CPU_DISASSEMBLE( sh2 ); +CPU_DISASSEMBLE( sh4 ); +CPU_DISASSEMBLE( sharc ); +CPU_DISASSEMBLE( sm8500 ); +CPU_DISASSEMBLE( spc700 ); +CPU_DISASSEMBLE( ssem ); +CPU_DISASSEMBLE( ssp1601 ); +CPU_DISASSEMBLE( t11 ); +CPU_DISASSEMBLE( t90 ); +CPU_DISASSEMBLE( tlcs900 ); +CPU_DISASSEMBLE( tms0980 ); +CPU_DISASSEMBLE( tms1000 ); +CPU_DISASSEMBLE( tms1100 ); +CPU_DISASSEMBLE( tms32010 ); +CPU_DISASSEMBLE( tms32025 ); +CPU_DISASSEMBLE( tms32031 ); +CPU_DISASSEMBLE( tms32051 ); +CPU_DISASSEMBLE( tms34010 ); +CPU_DISASSEMBLE( tms34020 ); +CPU_DISASSEMBLE( tms57002 ); +CPU_DISASSEMBLE( tms7000 ); +CPU_DISASSEMBLE( upd7810 ); +CPU_DISASSEMBLE( upd7807 ); +CPU_DISASSEMBLE( upd7801 ); +CPU_DISASSEMBLE( upd78c05 ); +CPU_DISASSEMBLE( v60 ); +CPU_DISASSEMBLE( v70 ); +CPU_DISASSEMBLE( v810 ); +CPU_DISASSEMBLE( z180 ); +CPU_DISASSEMBLE( z8000 ); +CPU_DISASSEMBLE( z80 ); + + +enum _display_type +{ + _8bit, + _16be, + _16le, + _24be, + _24le, + _32be, + _32le, + _64be, + _64le +}; +typedef enum _display_type display_type; + + +typedef struct _dasm_table_entry dasm_table_entry; +struct _dasm_table_entry +{ + const char * name; + display_type display; + INT8 pcshift; + cpu_disassemble_func func; +}; + + +static const dasm_table_entry dasm_table[] = +{ + { "adsp21xx", _24le, -2, CPU_DISASSEMBLE_NAME(adsp21xx) }, + { "alpha8201", _8bit, 0, CPU_DISASSEMBLE_NAME(alpha8201) }, + { "arm", _32le, 0, CPU_DISASSEMBLE_NAME(arm) }, + { "arm7", _32le, 0, CPU_DISASSEMBLE_NAME(arm7arm) }, + { "arm7thumb", _16le, 0, CPU_DISASSEMBLE_NAME(arm7thumb) }, + { "asap", _32le, 0, CPU_DISASSEMBLE_NAME(asap) }, + { "avr8", _16le, 0, CPU_DISASSEMBLE_NAME(avr8) }, + { "ccpu", _8bit, 0, CPU_DISASSEMBLE_NAME(ccpu) }, + { "cdp1802", _8bit, 0, CPU_DISASSEMBLE_NAME(cdp1802) }, + { "cop410", _8bit, 0, CPU_DISASSEMBLE_NAME(cop410) }, + { "cop420", _8bit, 0, CPU_DISASSEMBLE_NAME(cop420) }, + { "cop444", _8bit, 0, CPU_DISASSEMBLE_NAME(cop444) }, + { "cp1610", _16be, -1, CPU_DISASSEMBLE_NAME(cp1610) }, + { "cquestsnd", _64be, -3, CPU_DISASSEMBLE_NAME(cquestsnd) }, + { "cquestrot", _64be, -3, CPU_DISASSEMBLE_NAME(cquestrot) }, + { "cquestlin", _64be, -3, CPU_DISASSEMBLE_NAME(cquestlin) }, + { "dsp32c", _32le, 0, CPU_DISASSEMBLE_NAME(dsp32c) }, + { "dsp56k", _16le, -1, CPU_DISASSEMBLE_NAME(dsp56k) }, + { "hyperstone", _16be, 0, CPU_DISASSEMBLE_NAME(hyperstone_generic) }, + { "esrip", _64be, 0, CPU_DISASSEMBLE_NAME(esrip) }, + { "f8", _8bit, 0, CPU_DISASSEMBLE_NAME(f8) }, + { "g65816", _8bit, 0, CPU_DISASSEMBLE_NAME(g65816_generic) }, + { "h6280", _8bit, 0, CPU_DISASSEMBLE_NAME(h6280) }, + { "h8", _16be, 0, CPU_DISASSEMBLE_NAME(h8) }, + { "hd6309", _8bit, 0, CPU_DISASSEMBLE_NAME(hd6309) }, + { "i386", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_32) }, + { "i4004", _8bit, 0, CPU_DISASSEMBLE_NAME(i4004) }, + { "i8085", _8bit, 0, CPU_DISASSEMBLE_NAME(i8085) }, + { "i80286", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_16) }, + { "i8086", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_16) }, + { "i960", _32le, 0, CPU_DISASSEMBLE_NAME(i960) }, + { "jaguargpu", _16be, 0, CPU_DISASSEMBLE_NAME(jaguargpu) }, + { "jaguardsp", _16be, 0, CPU_DISASSEMBLE_NAME(jaguardsp) }, + { "x86_16", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_16) }, + { "x86_32", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_32) }, + { "x86_64", _8bit, 0, CPU_DISASSEMBLE_NAME(x86_64) }, + { "konami", _8bit, 0, CPU_DISASSEMBLE_NAME(konami) }, + { "lh5801", _8bit, 0, CPU_DISASSEMBLE_NAME(lh5801) }, + { "lr35902", _8bit, 0, CPU_DISASSEMBLE_NAME(lr35902) }, + { "m37710", _8bit, 0, CPU_DISASSEMBLE_NAME(m37710_generic) }, + { "m6502", _8bit, 0, CPU_DISASSEMBLE_NAME(m6502) }, + { "m65sc02", _8bit, 0, CPU_DISASSEMBLE_NAME(m65sc02) }, + { "m65c02", _8bit, 0, CPU_DISASSEMBLE_NAME(m65c02) }, + { "m65ce02", _8bit, 0, CPU_DISASSEMBLE_NAME(m65ce02) }, + { "m6510", _8bit, 0, CPU_DISASSEMBLE_NAME(m6510) }, + { "deco16", _8bit, 0, CPU_DISASSEMBLE_NAME(deco16) }, + { "m4510", _8bit, 0, CPU_DISASSEMBLE_NAME(m4510) }, + { "m6800", _8bit, 0, CPU_DISASSEMBLE_NAME(m6800) }, + { "m6801", _8bit, 0, CPU_DISASSEMBLE_NAME(m6801) }, + { "m6802", _8bit, 0, CPU_DISASSEMBLE_NAME(m6802) }, + { "m6803", _8bit, 0, CPU_DISASSEMBLE_NAME(m6803) }, + { "hd63701", _8bit, 0, CPU_DISASSEMBLE_NAME(hd63701) }, + { "nsc8105", _8bit, 0, CPU_DISASSEMBLE_NAME(nsc8105) }, + { "m68000", _16be, 0, CPU_DISASSEMBLE_NAME(m68000) }, + { "m68008", _16be, 0, CPU_DISASSEMBLE_NAME(m68008) }, + { "m68010", _16be, 0, CPU_DISASSEMBLE_NAME(m68010) }, + { "m68020", _16be, 0, CPU_DISASSEMBLE_NAME(m68020) }, + { "m68030", _16be, 0, CPU_DISASSEMBLE_NAME(m68030) }, + { "m68040", _16be, 0, CPU_DISASSEMBLE_NAME(m68040) }, + { "m6805", _8bit, 0, CPU_DISASSEMBLE_NAME(m6805) }, + { "m6809", _8bit, 0, CPU_DISASSEMBLE_NAME(m6809) }, + { "mb86233", _32le, -2, CPU_DISASSEMBLE_NAME(mb86233) }, + { "mb88xx", _8bit, 0, CPU_DISASSEMBLE_NAME(mb88) }, + { "mcs48", _8bit, 0, CPU_DISASSEMBLE_NAME(mcs48) }, + { "upi41", _8bit, 0, CPU_DISASSEMBLE_NAME(upi41) }, + { "i8051", _8bit, 0, CPU_DISASSEMBLE_NAME(i8051) }, + { "i8052", _8bit, 0, CPU_DISASSEMBLE_NAME(i8052) }, + { "i80c51", _8bit, 0, CPU_DISASSEMBLE_NAME(i80c51) }, + { "i80c52", _8bit, 0, CPU_DISASSEMBLE_NAME(i80c52) }, + { "ds5002fp", _8bit, 0, CPU_DISASSEMBLE_NAME(ds5002fp) }, + { "minx", _8bit, 0, CPU_DISASSEMBLE_NAME(minx) }, + { "mips3be", _32be, 0, CPU_DISASSEMBLE_NAME(mips3be) }, + { "mips3le", _32le, 0, CPU_DISASSEMBLE_NAME(mips3le) }, + { "psxcpu", _32le, 0, CPU_DISASSEMBLE_NAME(psxcpu_generic) }, + { "r3000be", _32be, 0, CPU_DISASSEMBLE_NAME(r3000be) }, + { "r3000le", _32le, 0, CPU_DISASSEMBLE_NAME(r3000le) }, + { "nec", _8bit, 0, CPU_DISASSEMBLE_NAME(nec_generic) }, + { "pdp1", _32be, 0, CPU_DISASSEMBLE_NAME(pdp1) }, + { "tx0_64kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_64kw) }, + { "tx0_8kw", _32be, -2, CPU_DISASSEMBLE_NAME(tx0_8kw) }, + { "pic16c5x", _16le, -1, CPU_DISASSEMBLE_NAME(pic16c5x) }, + { "powerpc", _32be, 0, CPU_DISASSEMBLE_NAME(powerpc) }, + { "rsp", _32le, 0, CPU_DISASSEMBLE_NAME(rsp) }, + { "s2650", _8bit, 0, CPU_DISASSEMBLE_NAME(s2650) }, + { "saturn", _8bit, 0, CPU_DISASSEMBLE_NAME(saturn) }, + { "sc61860", _8bit, 0, CPU_DISASSEMBLE_NAME(sc61860) }, + { "se3208", _16le, 0, CPU_DISASSEMBLE_NAME(se3208) }, + { "sh2", _16be, 0, CPU_DISASSEMBLE_NAME(sh2) }, + { "sh4", _16le, 0, CPU_DISASSEMBLE_NAME(sh4) }, + { "sharc", _64le, -3, CPU_DISASSEMBLE_NAME(sharc) }, + { "sm8500", _8bit, 0, CPU_DISASSEMBLE_NAME(sm8500) }, + { "spc700", _8bit, 0, CPU_DISASSEMBLE_NAME(spc700) }, + { "ssem", _32le, 0, CPU_DISASSEMBLE_NAME(ssem) }, + { "ssp1601", _16be, -1, CPU_DISASSEMBLE_NAME(ssp1601) }, + { "t11", _16le, 0, CPU_DISASSEMBLE_NAME(t11) }, +// { "t90", _8bit, 0, CPU_DISASSEMBLE_NAME(t90) }, + { "tlcs900", _8bit, 0, CPU_DISASSEMBLE_NAME(tlcs900) }, + { "tms0980", _16be, 0, CPU_DISASSEMBLE_NAME(tms0980) }, + { "tms1000", _8bit, 0, CPU_DISASSEMBLE_NAME(tms1000) }, + { "tms1100", _8bit, 0, CPU_DISASSEMBLE_NAME(tms1100) }, + { "tms32010", _16be, -1, CPU_DISASSEMBLE_NAME(tms32010) }, + { "tms32025", _16be, -1, CPU_DISASSEMBLE_NAME(tms32025) }, + { "tms32031", _32le, -2, CPU_DISASSEMBLE_NAME(tms32031) }, + { "tms32051", _16le, -1, CPU_DISASSEMBLE_NAME(tms32051) }, + { "tms34010", _8bit, 3, CPU_DISASSEMBLE_NAME(tms34010) }, + { "tms34020", _8bit, 3, CPU_DISASSEMBLE_NAME(tms34020) }, + { "tms57002", _32le, -2, CPU_DISASSEMBLE_NAME(tms57002) }, + { "tms7000", _8bit, 0, CPU_DISASSEMBLE_NAME(tms7000) }, + { "upd7810", _8bit, 0, CPU_DISASSEMBLE_NAME(upd7810) }, + { "upd7807", _8bit, 0, CPU_DISASSEMBLE_NAME(upd7807) }, + { "upd7801", _8bit, 0, CPU_DISASSEMBLE_NAME(upd7801) }, + { "upd78c05", _8bit, 0, CPU_DISASSEMBLE_NAME(upd78c05) }, + { "v60", _8bit, 0, CPU_DISASSEMBLE_NAME(v60) }, + { "v70", _8bit, 0, CPU_DISASSEMBLE_NAME(v70) }, + { "v810", _16le, 0, CPU_DISASSEMBLE_NAME(v810) }, + { "z180", _8bit, 0, CPU_DISASSEMBLE_NAME(z180) }, +// { "z8000", _16be, 0, CPU_DISASSEMBLE_NAME(z8000) }, + { "z80", _8bit, 0, CPU_DISASSEMBLE_NAME(z80) }, +}; + + +void CLIB_DECL fatalerror(const char *text, ...) +{ + va_list arg; + + /* dump to the buffer; assume no one writes >2k lines this way */ + va_start(arg, text); + vfprintf(stderr, text, arg); + va_end(arg); + + exit(1); +} + + +void CLIB_DECL logerror(const char *format, ...) +{ + /* silent logerrors are allowed in disassemblers */ +} + + +void CLIB_DECL mame_printf_debug(const char *format, ...) +{ + /* silent mame_printf_debugs are allowed in disassemblers */ +} + + +int main(int argc, char *argv[]) +{ + char buffer[1024]; + UINT8 oprom[10] = { 0x12, 0x34, 0x56, 0x78 }; + offs_t basepc = 0; + int index; + +//const device_config *device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram + for (index = 0; index < ARRAY_LENGTH(dasm_table); index++) + { + int result = (*dasm_table[index].func)(NULL, buffer, basepc, oprom, oprom); + printf("%10s: (%d) %s\n", dasm_table[index].name, result & DASMFLAG_LENGTHMASK, buffer); + } + return 0; +}