summaryrefslogtreecommitdiffstatshomepage
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/emu/cpu/adsp2100/2100ops.c61
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.c532
-rw-r--r--src/emu/cpu/adsp2100/adsp2100.h8
-rw-r--r--src/emu/cpu/drcbex64.c1
-rw-r--r--src/emu/cpu/drcbex86.c1
-rw-r--r--src/emu/cpu/g65816/g65816op.h12
-rw-r--r--src/emu/cpu/i86/i86.c260
-rw-r--r--src/emu/cpu/i86/i86.h99
-rw-r--r--src/emu/cpu/m37710/m37710op.h2
-rw-r--r--src/emu/cpu/minx/minx.c12
-rw-r--r--src/emu/cpu/sm8500/sm8500.c12
-rw-r--r--src/emu/cpu/tms34010/34010ops.c8
-rw-r--r--src/emu/cpu/tms34010/tms34010.c211
-rw-r--r--src/emu/cpu/tms34010/tms34010.h8
-rw-r--r--src/emu/cpuexec.c395
-rw-r--r--src/emu/cpuintrf.h189
-rw-r--r--src/emu/debug/debugcpu.c13
-rw-r--r--src/emu/debug/debugvw.c17
-rw-r--r--src/emu/debug/express.c5
-rw-r--r--src/emu/devintrf.c2
-rw-r--r--src/emu/devintrf.h2
-rw-r--r--src/emu/machine/6522via.c8
-rw-r--r--src/emu/machine/6526cia.c12
-rw-r--r--src/emu/machine/6532riot.c10
-rw-r--r--src/emu/machine/6850acia.c8
-rw-r--r--src/emu/machine/68681.c10
-rw-r--r--src/emu/machine/74123.c10
-rw-r--r--src/emu/machine/8237dma.c10
-rw-r--r--src/emu/machine/8255ppi.c10
-rw-r--r--src/emu/machine/8257dma.c12
-rw-r--r--src/emu/machine/at28c16.c10
-rw-r--r--src/emu/machine/cdp1852.c10
-rw-r--r--src/emu/machine/idectrl.c10
-rw-r--r--src/emu/machine/latch8.c10
-rw-r--r--src/emu/machine/ldcore.c10
-rw-r--r--src/emu/machine/msm6242.c10
-rw-r--r--src/emu/machine/pci.c10
-rw-r--r--src/emu/machine/pic8259.c10
-rw-r--r--src/emu/machine/pit8253.c12
-rw-r--r--src/emu/machine/smc91c9x.c12
-rw-r--r--src/emu/machine/timekpr.c26
-rw-r--r--src/emu/machine/x2212.c10
-rw-r--r--src/emu/machine/z80ctc.c10
-rw-r--r--src/emu/machine/z80dma.c10
-rw-r--r--src/emu/machine/z80pio.c10
-rw-r--r--src/emu/machine/z80sio.c10
-rw-r--r--src/emu/sndintrf.c19
-rw-r--r--src/emu/sndintrf.h2
-rw-r--r--src/emu/sound.c10
-rw-r--r--src/emu/sound/2151intf.c10
-rw-r--r--src/emu/sound/2203intf.c10
-rw-r--r--src/emu/sound/2413intf.c10
-rw-r--r--src/emu/sound/2608intf.c10
-rw-r--r--src/emu/sound/2610intf.c20
-rw-r--r--src/emu/sound/2612intf.c20
-rw-r--r--src/emu/sound/262intf.c10
-rw-r--r--src/emu/sound/3812intf.c30
-rw-r--r--src/emu/sound/5110intf.c56
-rw-r--r--src/emu/sound/5220intf.c32
-rw-r--r--src/emu/sound/aica.c18
-rw-r--r--src/emu/sound/astrocde.c12
-rw-r--r--src/emu/sound/ay8910.c60
-rw-r--r--src/emu/sound/beep.c18
-rw-r--r--src/emu/sound/bsmt2000.c12
-rw-r--r--src/emu/sound/c140.c18
-rw-r--r--src/emu/sound/c352.c18
-rw-r--r--src/emu/sound/c6280.c18
-rw-r--r--src/emu/sound/cdda.c18
-rw-r--r--src/emu/sound/cdp1869.c18
-rw-r--r--src/emu/sound/cem3394.c18
-rw-r--r--src/emu/sound/custom.c18
-rw-r--r--src/emu/sound/dac.c18
-rw-r--r--src/emu/sound/discrete.c10
-rw-r--r--src/emu/sound/dmadac.c18
-rw-r--r--src/emu/sound/es5503.c18
-rw-r--r--src/emu/sound/es5506.c20
-rw-r--r--src/emu/sound/es8712.c18
-rw-r--r--src/emu/sound/flt_rc.c14
-rw-r--r--src/emu/sound/flt_vol.c16
-rw-r--r--src/emu/sound/gaelco.c24
-rw-r--r--src/emu/sound/hc55516.c32
-rw-r--r--src/emu/sound/ics2115.c18
-rw-r--r--src/emu/sound/iremga20.c18
-rw-r--r--src/emu/sound/k005289.c18
-rw-r--r--src/emu/sound/k007232.c18
-rw-r--r--src/emu/sound/k051649.c18
-rw-r--r--src/emu/sound/k053260.c18
-rw-r--r--src/emu/sound/k054539.c18
-rw-r--r--src/emu/sound/msm5205.c18
-rw-r--r--src/emu/sound/msm5232.c16
-rw-r--r--src/emu/sound/multipcm.c18
-rw-r--r--src/emu/sound/n63701x.c14
-rw-r--r--src/emu/sound/namco.c46
-rw-r--r--src/emu/sound/namco52.c12
-rw-r--r--src/emu/sound/nes_apu.c18
-rw-r--r--src/emu/sound/nile.c18
-rw-r--r--src/emu/sound/okim6258.c16
-rw-r--r--src/emu/sound/okim6295.c12
-rw-r--r--src/emu/sound/pokey.c18
-rw-r--r--src/emu/sound/psx.c18
-rw-r--r--src/emu/sound/qsound.c18
-rw-r--r--src/emu/sound/rf5c400.c18
-rw-r--r--src/emu/sound/rf5c68.c18
-rw-r--r--src/emu/sound/s14001a.c10
-rw-r--r--src/emu/sound/saa1099.c18
-rw-r--r--src/emu/sound/samples.c18
-rw-r--r--src/emu/sound/scsp.c18
-rw-r--r--src/emu/sound/segapcm.c18
-rw-r--r--src/emu/sound/sid6581.c24
-rw-r--r--src/emu/sound/sn76477.c10
-rw-r--r--src/emu/sound/sn76496.c50
-rw-r--r--src/emu/sound/snkwave.c18
-rw-r--r--src/emu/sound/sp0250.c18
-rw-r--r--src/emu/sound/sp0256.c18
-rw-r--r--src/emu/sound/speaker.c18
-rw-r--r--src/emu/sound/st0016.c18
-rw-r--r--src/emu/sound/tiaintf.c18
-rw-r--r--src/emu/sound/tms3615.c18
-rw-r--r--src/emu/sound/tms36xx.c18
-rw-r--r--src/emu/sound/upd7759.c18
-rw-r--r--src/emu/sound/vlm5030.c18
-rw-r--r--src/emu/sound/votrax.c18
-rw-r--r--src/emu/sound/vrender0.c18
-rw-r--r--src/emu/sound/wave.c18
-rw-r--r--src/emu/sound/x1_010.c18
-rw-r--r--src/emu/sound/ymf271.c18
-rw-r--r--src/emu/sound/ymf278b.c18
-rw-r--r--src/emu/sound/ymz280b.c18
-rw-r--r--src/emu/timer.c10
-rw-r--r--src/emu/video.c10
-rw-r--r--src/emu/video/cdp1869.c10
-rw-r--r--src/emu/video/mc6845.c22
-rw-r--r--src/emu/video/voodoo.c16
-rw-r--r--src/mame/machine/fddebug.c5
-rw-r--r--src/mame/machine/naomibd.c12
135 files changed, 2083 insertions, 1671 deletions
diff --git a/src/emu/cpu/adsp2100/2100ops.c b/src/emu/cpu/adsp2100/2100ops.c
index dd7e3bee09d..6dc62fe43c3 100644
--- a/src/emu/cpu/adsp2100/2100ops.c
+++ b/src/emu/cpu/adsp2100/2100ops.c
@@ -81,22 +81,22 @@ static const INT32 constants[] =
#define MSTAT_GOMODE 0x40 /* go mode enable */
/* you must call this in order to change MSTAT */
-INLINE void set_mstat(adsp2100_state *adsp, int new_value)
+INLINE void update_mstat(adsp2100_state *adsp)
{
- if ((new_value ^ adsp->mstat) & MSTAT_BANK)
+ if ((adsp->mstat ^ adsp->mstat_prev) & MSTAT_BANK)
{
ADSPCORE temp = adsp->core;
adsp->core = adsp->alt;
adsp->alt = temp;
}
- if ((new_value ^ adsp->mstat) & MSTAT_TIMER)
+ if ((adsp->mstat ^ adsp->mstat_prev) & MSTAT_TIMER)
if (adsp->timer_fired != NULL)
- (*adsp->timer_fired)(adsp->device, (new_value & MSTAT_TIMER) != 0);
- if (new_value & MSTAT_STICKYV)
+ (*adsp->timer_fired)(adsp->device, (adsp->mstat & MSTAT_TIMER) != 0);
+ if (adsp->mstat & MSTAT_STICKYV)
adsp->astat_clear = ~(CFLAG | NFLAG | ZFLAG);
else
adsp->astat_clear = ~(CFLAG | VFLAG | NFLAG | ZFLAG);
- adsp->mstat = new_value;
+ adsp->mstat_prev = adsp->mstat;
}
@@ -291,7 +291,8 @@ INLINE void stat_stack_pop(adsp2100_state *adsp)
if (adsp->stat_sp == 0)
adsp->sstat |= STATUS_EMPTY;
}
- set_mstat(adsp, adsp->stat_stack[adsp->stat_sp][0]);
+ adsp->mstat = adsp->stat_stack[adsp->stat_sp][0];
+ update_mstat(adsp);
adsp->imask = adsp->stat_stack[adsp->stat_sp][1];
adsp->astat = adsp->stat_stack[adsp->stat_sp][2];
check_irqs(adsp);
@@ -322,6 +323,17 @@ INLINE int CONDITION(adsp2100_state *adsp, int c)
register writing
===========================================================================*/
+INLINE void update_i(adsp2100_state *adsp, int which)
+{
+ adsp->base[which] = adsp->i[which] & adsp->lmask[which];
+}
+
+INLINE void update_l(adsp2100_state *adsp, int which)
+{
+ adsp->lmask[which] = mask_table[adsp->l[which] & 0x3fff];
+ adsp->base[which] = adsp->i[which] & adsp->lmask[which];
+}
+
static void wr_inval(adsp2100_state *adsp, INT32 val) { logerror( "ADSP %04x: Writing to an invalid register!\n", adsp->ppc ); }
static void wr_ax0(adsp2100_state *adsp, INT32 val) { adsp->core.ax0.s = val; }
static void wr_ax1(adsp2100_state *adsp, INT32 val) { adsp->core.ax1.s = val; }
@@ -339,14 +351,14 @@ static void wr_mr1(adsp2100_state *adsp, INT32 val) { adsp->core.mr.mrx.mr1.s
static void wr_mr2(adsp2100_state *adsp, INT32 val) { adsp->core.mr.mrx.mr2.s = (INT8)val; }
static void wr_sr0(adsp2100_state *adsp, INT32 val) { adsp->core.sr.srx.sr0.s = val; }
static void wr_sr1(adsp2100_state *adsp, INT32 val) { adsp->core.sr.srx.sr1.s = val; }
-static void wr_i0(adsp2100_state *adsp, INT32 val) { adsp->i[0] = val & 0x3fff; adsp->base[0] = val & adsp->lmask[0]; }
-static void wr_i1(adsp2100_state *adsp, INT32 val) { adsp->i[1] = val & 0x3fff; adsp->base[1] = val & adsp->lmask[1]; }
-static void wr_i2(adsp2100_state *adsp, INT32 val) { adsp->i[2] = val & 0x3fff; adsp->base[2] = val & adsp->lmask[2]; }
-static void wr_i3(adsp2100_state *adsp, INT32 val) { adsp->i[3] = val & 0x3fff; adsp->base[3] = val & adsp->lmask[3]; }
-static void wr_i4(adsp2100_state *adsp, INT32 val) { adsp->i[4] = val & 0x3fff; adsp->base[4] = val & adsp->lmask[4]; }
-static void wr_i5(adsp2100_state *adsp, INT32 val) { adsp->i[5] = val & 0x3fff; adsp->base[5] = val & adsp->lmask[5]; }
-static void wr_i6(adsp2100_state *adsp, INT32 val) { adsp->i[6] = val & 0x3fff; adsp->base[6] = val & adsp->lmask[6]; }
-static void wr_i7(adsp2100_state *adsp, INT32 val) { adsp->i[7] = val & 0x3fff; adsp->base[7] = val & adsp->lmask[7]; }
+static void wr_i0(adsp2100_state *adsp, INT32 val) { adsp->i[0] = val & 0x3fff; update_i(adsp, 0); }
+static void wr_i1(adsp2100_state *adsp, INT32 val) { adsp->i[1] = val & 0x3fff; update_i(adsp, 1); }
+static void wr_i2(adsp2100_state *adsp, INT32 val) { adsp->i[2] = val & 0x3fff; update_i(adsp, 2); }
+static void wr_i3(adsp2100_state *adsp, INT32 val) { adsp->i[3] = val & 0x3fff; update_i(adsp, 3); }
+static void wr_i4(adsp2100_state *adsp, INT32 val) { adsp->i[4] = val & 0x3fff; update_i(adsp, 4); }
+static void wr_i5(adsp2100_state *adsp, INT32 val) { adsp->i[5] = val & 0x3fff; update_i(adsp, 5); }
+static void wr_i6(adsp2100_state *adsp, INT32 val) { adsp->i[6] = val & 0x3fff; update_i(adsp, 6); }
+static void wr_i7(adsp2100_state *adsp, INT32 val) { adsp->i[7] = val & 0x3fff; update_i(adsp, 7); }
static void wr_m0(adsp2100_state *adsp, INT32 val) { adsp->m[0] = (INT32)(val << 18) >> 18; }
static void wr_m1(adsp2100_state *adsp, INT32 val) { adsp->m[1] = (INT32)(val << 18) >> 18; }
static void wr_m2(adsp2100_state *adsp, INT32 val) { adsp->m[2] = (INT32)(val << 18) >> 18; }
@@ -355,17 +367,16 @@ static void wr_m4(adsp2100_state *adsp, INT32 val) { adsp->m[4] = (INT32)(val
static void wr_m5(adsp2100_state *adsp, INT32 val) { adsp->m[5] = (INT32)(val << 18) >> 18; }
static void wr_m6(adsp2100_state *adsp, INT32 val) { adsp->m[6] = (INT32)(val << 18) >> 18; }
static void wr_m7(adsp2100_state *adsp, INT32 val) { adsp->m[7] = (INT32)(val << 18) >> 18; }
-static void wr_l0(adsp2100_state *adsp, INT32 val) { adsp->l[0] = val & 0x3fff; adsp->lmask[0] = mask_table[val & 0x3fff]; adsp->base[0] = adsp->i[0] & adsp->lmask[0]; }
-static void wr_l1(adsp2100_state *adsp, INT32 val) { adsp->l[1] = val & 0x3fff; adsp->lmask[1] = mask_table[val & 0x3fff]; adsp->base[1] = adsp->i[1] & adsp->lmask[1]; }
-static void wr_l2(adsp2100_state *adsp, INT32 val) { adsp->l[2] = val & 0x3fff; adsp->lmask[2] = mask_table[val & 0x3fff]; adsp->base[2] = adsp->i[2] & adsp->lmask[2]; }
-static void wr_l3(adsp2100_state *adsp, INT32 val) { adsp->l[3] = val & 0x3fff; adsp->lmask[3] = mask_table[val & 0x3fff]; adsp->base[3] = adsp->i[3] & adsp->lmask[3]; }
-static void wr_l4(adsp2100_state *adsp, INT32 val) { adsp->l[4] = val & 0x3fff; adsp->lmask[4] = mask_table[val & 0x3fff]; adsp->base[4] = adsp->i[4] & adsp->lmask[4]; }
-static void wr_l5(adsp2100_state *adsp, INT32 val) { adsp->l[5] = val & 0x3fff; adsp->lmask[5] = mask_table[val & 0x3fff]; adsp->base[5] = adsp->i[5] & adsp->lmask[5]; }
-static void wr_l6(adsp2100_state *adsp, INT32 val) { adsp->l[6] = val & 0x3fff; adsp->lmask[6] = mask_table[val & 0x3fff]; adsp->base[6] = adsp->i[6] & adsp->lmask[6]; }
-static void wr_l7(adsp2100_state *adsp, INT32 val) { adsp->l[7] = val & 0x3fff; adsp->lmask[7] = mask_table[val & 0x3fff]; adsp->base[7] = adsp->i[7] & adsp->lmask[7]; }
+static void wr_l0(adsp2100_state *adsp, INT32 val) { adsp->l[0] = val & 0x3fff; update_l(adsp, 0); }
+static void wr_l1(adsp2100_state *adsp, INT32 val) { adsp->l[1] = val & 0x3fff; update_l(adsp, 1); }
+static void wr_l2(adsp2100_state *adsp, INT32 val) { adsp->l[2] = val & 0x3fff; update_l(adsp, 2); }
+static void wr_l3(adsp2100_state *adsp, INT32 val) { adsp->l[3] = val & 0x3fff; update_l(adsp, 3); }
+static void wr_l4(adsp2100_state *adsp, INT32 val) { adsp->l[4] = val & 0x3fff; update_l(adsp, 4); }
+static void wr_l5(adsp2100_state *adsp, INT32 val) { adsp->l[5] = val & 0x3fff; update_l(adsp, 5); }
+static void wr_l6(adsp2100_state *adsp, INT32 val) { adsp->l[6] = val & 0x3fff; update_l(adsp, 6); }
+static void wr_l7(adsp2100_state *adsp, INT32 val) { adsp->l[7] = val & 0x3fff; update_l(adsp, 7); }
static void wr_astat(adsp2100_state *adsp, INT32 val) { adsp->astat = val & 0x00ff; }
-static void wr_mstat(adsp2100_state *adsp, INT32 val) { set_mstat(adsp, val & adsp->mstat_mask); }
-static void wr_sstat(adsp2100_state *adsp, INT32 val) { adsp->sstat = val & 0x00ff; }
+static void wr_mstat(adsp2100_state *adsp, INT32 val) { adsp->mstat = val & adsp->mstat_mask; update_mstat(adsp); }
static void wr_imask(adsp2100_state *adsp, INT32 val) { adsp->imask = val & adsp->imask_mask; check_irqs(adsp); }
static void wr_icntl(adsp2100_state *adsp, INT32 val) { adsp->icntl = val & 0x001f; check_irqs(adsp); }
static void wr_cntr(adsp2100_state *adsp, INT32 val) { cntr_stack_push(adsp); adsp->cntr = val & 0x3fff; }
diff --git a/src/emu/cpu/adsp2100/adsp2100.c b/src/emu/cpu/adsp2100/adsp2100.c
index 19c55fb6af3..41a60973e8d 100644
--- a/src/emu/cpu/adsp2100/adsp2100.c
+++ b/src/emu/cpu/adsp2100/adsp2100.c
@@ -211,6 +211,7 @@ typedef struct
UINT32 astat;
UINT32 sstat;
UINT32 mstat;
+ UINT32 mstat_prev;
UINT32 astat_clear;
UINT32 idle;
@@ -261,10 +262,11 @@ typedef struct
adsp21xx_tx_func sport_tx_callback;
adsp21xx_timer_func timer_fired;
- /* Memory spaces */
+ /* memory spaces */
const address_space *program;
const address_space *data;
const address_space *io;
+ cpu_state_table state;
} adsp2100_state;
@@ -283,6 +285,133 @@ static UINT32 pcbucket[0x4000];
#endif
+
+/***************************************************************************
+ CPU STATE DESCRIPTION
+***************************************************************************/
+
+#define ADSP21XX_STATE_ENTRY(_name, _format, _member, _datamask, _flags) \
+ CPU_STATE_ENTRY(ADSP2100_##_name, #_name, _format, adsp2100_state, _member, _datamask, ~0, _flags)
+
+#define ADSP21XX_STATE_ENTRY_MASK(_name, _format, _member, _datamask, _flags, _validmask) \
+ CPU_STATE_ENTRY(ADSP2100_##_name, #_name, _format, adsp2100_state, _member, _datamask, _validmask, _flags)
+
+static const cpu_state_entry state_array[] =
+{
+ ADSP21XX_STATE_ENTRY(PC, "%04X", pc, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(GENPC, "%04X", pc, 0xffff, CPUSTATE_NOSHOW)
+ ADSP21XX_STATE_ENTRY(GENPCBASE, "%04X", ppc, 0xffff, CPUSTATE_NOSHOW)
+
+ ADSP21XX_STATE_ENTRY(AX0, "%04X", core.ax0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AX1, "%04X", core.ax1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AY0, "%04X", core.ay0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AY1, "%04X", core.ay1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AR, "%04X", core.ar.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AF, "%04X", core.af.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(MX0, "%04X", core.mx0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MX1, "%04X", core.mx1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MY0, "%04X", core.my0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MY1, "%04X", core.my1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR0, "%04X", core.mr.mrx.mr0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR1, "%04X", core.mr.mrx.mr1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR2, "%02X", core.mr.mrx.mr2.u, 0xff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(MF, "%04X", core.mf.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(SI, "%04X", core.si.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(SE, "%02X", core.se.u, 0xff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(SB, "%02X", core.sb.u, 0x1f, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(SR0, "%04X", core.sr.srx.sr0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(SR1, "%04X", core.sr.srx.sr0.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(AX0_SEC, "%04X", alt.ax0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AX1_SEC, "%04X", alt.ax1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AY0_SEC, "%04X", alt.ay0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AY1_SEC, "%04X", alt.ay1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AR_SEC, "%04X", alt.ar.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(AF_SEC, "%04X", alt.af.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(MX0_SEC, "%04X", alt.mx0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MX1_SEC, "%04X", alt.mx1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MY0_SEC, "%04X", alt.my0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MY1_SEC, "%04X", alt.my1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR0_SEC, "%04X", alt.mr.mrx.mr0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR1_SEC, "%04X", alt.mr.mrx.mr1.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(MR2_SEC, "%02X", alt.mr.mrx.mr2.u, 0xff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(MF_SEC, "%04X", alt.mf.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(SI_SEC, "%04X", alt.si.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(SE_SEC, "%02X", alt.se.u, 0xff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(SB_SEC, "%02X", alt.sb.u, 0x1f, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(SR0_SEC, "%04X", alt.sr.srx.sr0.u, 0xffff, 0)
+ ADSP21XX_STATE_ENTRY(SR1_SEC, "%04X", alt.sr.srx.sr0.u, 0xffff, 0)
+
+ ADSP21XX_STATE_ENTRY(I0, "%04X", i[0], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I1, "%04X", i[1], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I2, "%04X", i[2], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I3, "%04X", i[3], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I4, "%04X", i[4], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I5, "%04X", i[5], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I6, "%04X", i[6], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(I7, "%04X", i[7], 0x3fff, CPUSTATE_IMPORT)
+
+ ADSP21XX_STATE_ENTRY(L0, "%04X", l[0], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L1, "%04X", l[1], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L2, "%04X", l[2], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L3, "%04X", l[3], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L4, "%04X", l[4], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L5, "%04X", l[5], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L6, "%04X", l[6], 0x3fff, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(L7, "%04X", l[7], 0x3fff, CPUSTATE_IMPORT)
+
+ ADSP21XX_STATE_ENTRY(M0, "%04X", m[0], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M1, "%04X", m[1], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M2, "%04X", m[2], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M3, "%04X", m[3], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M4, "%04X", m[4], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M5, "%04X", m[5], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M6, "%04X", m[6], 0x3fff, CPUSTATE_IMPORT_SEXT)
+ ADSP21XX_STATE_ENTRY(M7, "%04X", m[7], 0x3fff, CPUSTATE_IMPORT_SEXT)
+
+ ADSP21XX_STATE_ENTRY(PX, "%02X", px, 0xff, 0)
+ ADSP21XX_STATE_ENTRY(CNTR, "%04X", cntr, 0x3fff, 0)
+ ADSP21XX_STATE_ENTRY(ASTAT, "%02X", astat, 0xff, 0)
+ ADSP21XX_STATE_ENTRY(SSTAT, "%02X", sstat, 0xff, 0)
+ ADSP21XX_STATE_ENTRY_MASK(MSTAT, "%01X", mstat, 0x0f, CPUSTATE_IMPORT, (1 << CHIP_TYPE_ADSP2100))
+ ADSP21XX_STATE_ENTRY_MASK(MSTAT, "%02X", mstat, 0x7f, CPUSTATE_IMPORT, ~(1 << CHIP_TYPE_ADSP2100))
+
+ ADSP21XX_STATE_ENTRY(PCSP, "%02X", pc_sp, 0xff, 0)
+ ADSP21XX_STATE_ENTRY(GENSP, "%02X", pc_sp, 0xff, CPUSTATE_NOSHOW)
+ ADSP21XX_STATE_ENTRY(CNTRSP, "%01X", cntr_sp, 0xf, 0)
+ ADSP21XX_STATE_ENTRY(STATSP, "%01X", stat_sp, 0xf, 0)
+ ADSP21XX_STATE_ENTRY(LOOPSP, "%01X", loop_sp, 0xf, 0)
+
+ ADSP21XX_STATE_ENTRY_MASK(IMASK, "%01X", imask, 0x00f, CPUSTATE_IMPORT, (1 << CHIP_TYPE_ADSP2100))
+ ADSP21XX_STATE_ENTRY_MASK(IMASK, "%02X", imask, 0x03f, CPUSTATE_IMPORT, ~((1 << CHIP_TYPE_ADSP2100) | (1 << CHIP_TYPE_ADSP2181)))
+ ADSP21XX_STATE_ENTRY_MASK(IMASK, "%03X", imask, 0x3ff, CPUSTATE_IMPORT, (1 << CHIP_TYPE_ADSP2181))
+ ADSP21XX_STATE_ENTRY(ICNTL, "%02X", icntl, 0x1f, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(IRQSTATE0, "%1u", irq_state[0], 0x1, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(IRQSTATE1, "%1u", irq_state[1], 0x1, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY(IRQSTATE2, "%1u", irq_state[2], 0x1, CPUSTATE_IMPORT)
+ ADSP21XX_STATE_ENTRY_MASK(IRQSTATE3, "%1u", irq_state[3], 0x1, CPUSTATE_IMPORT, (1 << CHIP_TYPE_ADSP2100))
+
+ ADSP21XX_STATE_ENTRY(FLAGIN, "%1u", flagin, 0x1, 0)
+ ADSP21XX_STATE_ENTRY(FLAGOUT, "%1u", flagout, 0x1, 0)
+ ADSP21XX_STATE_ENTRY(FL0, "%1u", fl0, 0x1, 0)
+ ADSP21XX_STATE_ENTRY(FL1, "%1u", fl1, 0x1, 0)
+ ADSP21XX_STATE_ENTRY(FL2, "%1u", fl2, 0x1, 0)
+};
+
+static const cpu_state_table state_table_template =
+{
+ NULL, /* pointer to the base of state (offsets are relative to this) */
+ 0, /* subtype this table refers to */
+ ARRAY_LENGTH(state_array), /* number of entries */
+ state_array /* array of entries */
+};
+
+
+
/***************************************************************************
PRIVATE FUNCTION PROTOTYPES
***************************************************************************/
@@ -544,7 +673,7 @@ static void set_irq_line(adsp2100_state *adsp, int irqline, int state)
INITIALIZATION AND SHUTDOWN
***************************************************************************/
-static adsp2100_state *adsp21xx_init(const device_config *device, cpu_irq_callback irqcallback)
+static adsp2100_state *adsp21xx_init(const device_config *device, cpu_irq_callback irqcallback, int chiptype)
{
adsp2100_state *adsp = device->token;
@@ -553,14 +682,18 @@ static adsp2100_state *adsp21xx_init(const device_config *device, cpu_irq_callba
fatalerror("creating adsp2100 tables failed");
/* set the IRQ callback */
+ adsp->chip_type = chiptype;
adsp->irq_callback = irqcallback;
- adsp->device = device;
+ adsp->device = device;
adsp->program = cpu_get_address_space(device, ADDRESS_SPACE_PROGRAM);
adsp->data = cpu_get_address_space(device, ADDRESS_SPACE_DATA);
adsp->io = cpu_get_address_space(device, ADDRESS_SPACE_IO);
-
+ /* set up the state table */
+ adsp->state = state_table_template;
+ adsp->state.baseptr = adsp;
+ adsp->state.subtypemask = 1 << chiptype;
/* set up ALU register pointers */
adsp->alu_xregs[0] = &adsp->core.ax0;
@@ -653,6 +786,7 @@ static adsp2100_state *adsp21xx_init(const device_config *device, cpu_irq_callba
state_save_register_device_item(device, 0, adsp->astat);
state_save_register_device_item(device, 0, adsp->sstat);
state_save_register_device_item(device, 0, adsp->mstat);
+ state_save_register_device_item(device, 0, adsp->mstat_prev);
state_save_register_device_item(device, 0, adsp->astat_clear);
state_save_register_device_item(device, 0, adsp->idle);
@@ -734,6 +868,7 @@ static CPU_RESET( adsp21xx )
adsp->mstat = 0;
adsp->sstat = 0x55;
adsp->idle = 0;
+ update_mstat(adsp);
/* reset stacks */
adsp->pc_sp = 0;
@@ -892,9 +1027,6 @@ static CPU_EXECUTE( adsp21xx )
check_irqs(adsp);
- /* reset the core */
- set_mstat(adsp, adsp->mstat);
-
/* count cycles and interrupt cycles */
adsp->icount = cycles;
@@ -1086,18 +1218,17 @@ static CPU_EXECUTE( adsp21xx )
break;
case 0x0c:
/* 00001100 xxxxxxxx xxxxxxxx mode control */
- temp = adsp->mstat;
if (adsp->chip_type >= CHIP_TYPE_ADSP2101)
{
- if (op & 0x000008) temp = (temp & ~MSTAT_GOMODE) | ((op << 5) & MSTAT_GOMODE);
- if (op & 0x002000) temp = (temp & ~MSTAT_INTEGER) | ((op >> 8) & MSTAT_INTEGER);
- if (op & 0x008000) temp = (temp & ~MSTAT_TIMER) | ((op >> 9) & MSTAT_TIMER);
+ if (op & 0x000008) adsp->mstat = (adsp->mstat & ~MSTAT_GOMODE) | ((op << 5) & MSTAT_GOMODE);
+ if (op & 0x002000) adsp->mstat = (adsp->mstat & ~MSTAT_INTEGER) | ((op >> 8) & MSTAT_INTEGER);
+ if (op & 0x008000) adsp->mstat = (adsp->mstat & ~MSTAT_TIMER) | ((op >> 9) & MSTAT_TIMER);
}
- if (op & 0x000020) temp = (temp & ~MSTAT_BANK) | ((op >> 4) & MSTAT_BANK);
- if (op & 0x000080) temp = (temp & ~MSTAT_REVERSE) | ((op >> 5) & MSTAT_REVERSE);
- if (op & 0x000200) temp = (temp & ~MSTAT_STICKYV) | ((op >> 6) & MSTAT_STICKYV);
- if (op & 0x000800) temp = (temp & ~MSTAT_SATURATE) | ((op >> 7) & MSTAT_SATURATE);
- set_mstat(adsp, temp);
+ if (op & 0x000020) adsp->mstat = (adsp->mstat & ~MSTAT_BANK) | ((op >> 4) & MSTAT_BANK);
+ if (op & 0x000080) adsp->mstat = (adsp->mstat & ~MSTAT_REVERSE) | ((op >> 5) & MSTAT_REVERSE);
+ if (op & 0x000200) adsp->mstat = (adsp->mstat & ~MSTAT_STICKYV) | ((op >> 6) & MSTAT_STICKYV);
+ if (op & 0x000800) adsp->mstat = (adsp->mstat & ~MSTAT_SATURATE) | ((op >> 7) & MSTAT_SATURATE);
+ update_mstat(adsp);
break;
case 0x0d:
/* 00001101 0000xxxx xxxxxxxx internal data move */
@@ -1641,6 +1772,58 @@ extern CPU_DISASSEMBLE( adsp21xx );
+/***************************************************************************
+ STATE HANDLING CALLBACKS
+***************************************************************************/
+
+static CPU_IMPORT_STATE( adsp21xx )
+{
+ adsp2100_state *adsp = device->token;
+ switch (entry->index)
+ {
+ case ADSP2100_MSTAT:
+ update_mstat(adsp);
+ break;
+
+ case ADSP2100_IMASK:
+ case ADSP2100_ICNTL:
+ case ADSP2100_IRQSTATE0:
+ case ADSP2100_IRQSTATE1:
+ case ADSP2100_IRQSTATE2:
+ case ADSP2100_IRQSTATE3:
+ check_irqs(adsp);
+ break;
+
+ case ADSP2100_I0:
+ case ADSP2100_I1:
+ case ADSP2100_I2:
+ case ADSP2100_I3:
+ case ADSP2100_I4:
+ case ADSP2100_I5:
+ case ADSP2100_I6:
+ case ADSP2100_I7:
+ update_i(adsp, entry->index - ADSP2100_I0);
+ break;
+
+ case ADSP2100_L0:
+ case ADSP2100_L1:
+ case ADSP2100_L2:
+ case ADSP2100_L3:
+ case ADSP2100_L4:
+ case ADSP2100_L5:
+ case ADSP2100_L6:
+ case ADSP2100_L7:
+ update_l(adsp, entry->index - ADSP2100_L0);
+ break;
+
+ default:
+ fatalerror("CPU_IMPORT_STATE(adsp21xx) called for unexpected value\n");
+ break;
+ }
+}
+
+
+
/**************************************************************************
* Generic set_info
**************************************************************************/
@@ -1651,104 +1834,8 @@ static CPU_SET_INFO( adsp21xx )
switch (state)
{
/* --- the following bits of info are set as 64-bit signed integers --- */
- case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + ADSP2100_PC: adsp->pc = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_AX0: wr_ax0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_AX1: wr_ax1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY0: wr_ay0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY1: wr_ay1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_AR: wr_ar(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_AF: adsp->core.af.u = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_MX0: wr_mx0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MX1: wr_mx1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY0: wr_my0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY1: wr_my1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR0: wr_mr0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR1: wr_mr1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR2: wr_mr2(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MF: adsp->core.mf.u = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_SI: wr_si(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_SE: wr_se(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_SB: wr_sb(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR0: wr_sr0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR1: wr_sr1(adsp, info->i); break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_AX0_SEC: adsp->alt.ax0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AX1_SEC: adsp->alt.ax1.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY0_SEC: adsp->alt.ay0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY1_SEC: adsp->alt.ay1.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AR_SEC: adsp->alt.ar.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AF_SEC: adsp->alt.af.u = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_MX0_SEC: adsp->alt.mx0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MX1_SEC: adsp->alt.mx1.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY0_SEC: adsp->alt.my0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY1_SEC: adsp->alt.my1.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR0_SEC: adsp->alt.mr.mrx.mr0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR1_SEC: adsp->alt.mr.mrx.mr1.s = info->i; adsp->alt.mr.mrx.mr2.s = (INT16)info->i >> 15; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR2_SEC: adsp->alt.mr.mrx.mr2.s = (INT8)info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MF_SEC: adsp->alt.mf.u = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_SI_SEC: adsp->alt.si.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SE_SEC: adsp->alt.se.s = (INT8)info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SB_SEC: adsp->alt.sb.s = (INT32)(info->i << 27) >> 27; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR0_SEC: adsp->alt.sr.srx.sr0.s = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR1_SEC: adsp->alt.sr.srx.sr1.s = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_I0: wr_i0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I1: wr_i1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I2: wr_i2(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I3: wr_i3(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I4: wr_i4(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I5: wr_i5(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I6: wr_i6(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_I7: wr_i7(adsp, info->i); break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_L0: wr_l0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L1: wr_l1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L2: wr_l2(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L3: wr_l3(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L4: wr_l4(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L5: wr_l5(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L6: wr_l6(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_L7: wr_l7(adsp, info->i); break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_M0: wr_m0(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M1: wr_m1(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M2: wr_m2(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M3: wr_m3(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M4: wr_m4(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M5: wr_m5(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M6: wr_m6(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_M7: wr_m7(adsp, info->i); break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_PX: wr_px(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_CNTR: adsp->cntr = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_ASTAT: wr_astat(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_SSTAT: wr_sstat(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_MSTAT: wr_mstat(adsp, info->i); break;
-
- case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + ADSP2100_PCSP: adsp->pc_sp = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_CNTRSP: adsp->cntr_sp = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_STATSP: adsp->stat_sp = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_LOOPSP: adsp->loop_sp = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_IMASK: wr_imask(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_ICNTL: wr_icntl(adsp, info->i); break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE0: adsp->irq_state[0] = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE1: adsp->irq_state[1] = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE2: adsp->irq_state[2] = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE3: adsp->irq_state[3] = info->i; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_FLAGIN: adsp->flagin = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FLAGOUT: adsp->flagout = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL0: adsp->fl0 = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL1: adsp->fl1 = info->i; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL2: adsp->fl2 = info->i; break;
+ case CPUINFO_INT_PC: adsp->pc = info->i; break;
+ case CPUINFO_INT_SP: adsp->pc_sp = info->i; break;
}
}
@@ -1786,104 +1873,8 @@ static CPU_GET_INFO( adsp21xx )
case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break;
case CPUINFO_INT_PREVIOUSPC: info->i = adsp->ppc; break;
- case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + ADSP2100_PC: info->i = adsp->pc; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_AX0: info->i = adsp->core.ax0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AX1: info->i = adsp->core.ax1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY0: info->i = adsp->core.ay0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY1: info->i = adsp->core.ay1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AR: info->i = adsp->core.ar.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AF: info->i = adsp->core.af.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_MX0: info->i = adsp->core.mx0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MX1: info->i = adsp->core.mx1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY0: info->i = adsp->core.my0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY1: info->i = adsp->core.my1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR0: info->i = adsp->core.mr.mrx.mr0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR1: info->i = adsp->core.mr.mrx.mr1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR2: info->i = adsp->core.mr.mrx.mr2.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MF: info->i = adsp->core.mf.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_SI: info->i = adsp->core.si.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SE: info->i = adsp->core.se.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SB: info->i = adsp->core.sb.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR0: info->i = adsp->core.sr.srx.sr0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR1: info->i = adsp->core.sr.srx.sr1.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_AX0_SEC: info->i = adsp->alt.ax0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AX1_SEC: info->i = adsp->alt.ax1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY0_SEC: info->i = adsp->alt.ay0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AY1_SEC: info->i = adsp->alt.ay1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AR_SEC: info->i = adsp->alt.ar.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_AF_SEC: info->i = adsp->alt.af.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_MX0_SEC: info->i = adsp->alt.mx0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MX1_SEC: info->i = adsp->alt.mx1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY0_SEC: info->i = adsp->alt.my0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MY1_SEC: info->i = adsp->alt.my1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR0_SEC: info->i = adsp->alt.mr.mrx.mr0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR1_SEC: info->i = adsp->alt.mr.mrx.mr1.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MR2_SEC: info->i = adsp->alt.mr.mrx.mr2.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MF_SEC: info->i = adsp->alt.mf.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_SI_SEC: info->i = adsp->alt.si.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SE_SEC: info->i = adsp->alt.se.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SB_SEC: info->i = adsp->alt.sb.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR0_SEC: info->i = adsp->alt.sr.srx.sr0.u; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SR1_SEC: info->i = adsp->alt.sr.srx.sr1.u; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_I0: info->i = adsp->i[0]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I1: info->i = adsp->i[1]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I2: info->i = adsp->i[2]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I3: info->i = adsp->i[3]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I4: info->i = adsp->i[4]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I5: info->i = adsp->i[5]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I6: info->i = adsp->i[6]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_I7: info->i = adsp->i[7]; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_L0: info->i = adsp->l[0]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L1: info->i = adsp->l[1]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L2: info->i = adsp->l[2]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L3: info->i = adsp->l[3]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L4: info->i = adsp->l[4]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L5: info->i = adsp->l[5]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L6: info->i = adsp->l[6]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_L7: info->i = adsp->l[7]; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_M0: info->i = adsp->m[0]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M1: info->i = adsp->m[1]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M2: info->i = adsp->m[2]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M3: info->i = adsp->m[3]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M4: info->i = adsp->m[4]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M5: info->i = adsp->m[5]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M6: info->i = adsp->m[6]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_M7: info->i = adsp->m[7]; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_PX: info->i = adsp->px; break;
- case CPUINFO_INT_REGISTER + ADSP2100_CNTR: info->i = adsp->cntr; break;
- case CPUINFO_INT_REGISTER + ADSP2100_ASTAT: info->i = adsp->astat; break;
- case CPUINFO_INT_REGISTER + ADSP2100_SSTAT: info->i = adsp->sstat; break;
- case CPUINFO_INT_REGISTER + ADSP2100_MSTAT: info->i = adsp->mstat; break;
-
- case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + ADSP2100_PCSP: info->i = adsp->pc_sp; break;
- case CPUINFO_INT_REGISTER + ADSP2100_CNTRSP: info->i = adsp->cntr_sp; break;
- case CPUINFO_INT_REGISTER + ADSP2100_STATSP: info->i = adsp->stat_sp; break;
- case CPUINFO_INT_REGISTER + ADSP2100_LOOPSP: info->i = adsp->loop_sp; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_IMASK: info->i = adsp->imask; break;
- case CPUINFO_INT_REGISTER + ADSP2100_ICNTL: info->i = adsp->icntl; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE0: info->i = adsp->irq_state[0]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE1: info->i = adsp->irq_state[1]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE2: info->i = adsp->irq_state[2]; break;
- case CPUINFO_INT_REGISTER + ADSP2100_IRQSTATE3: info->i = adsp->irq_state[3]; break;
-
- case CPUINFO_INT_REGISTER + ADSP2100_FLAGIN: info->i = adsp->flagin; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FLAGOUT: info->i = adsp->flagout; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL0: info->i = adsp->fl0; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL1: info->i = adsp->fl1; break;
- case CPUINFO_INT_REGISTER + ADSP2100_FL2: info->i = adsp->fl2; break;
+ case CPUINFO_INT_PC: info->i = adsp->pc; break;
+ case CPUINFO_INT_SP: info->i = adsp->pc_sp; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_SET_INFO: /* set per CPU */ break;
@@ -1893,7 +1884,9 @@ static CPU_GET_INFO( adsp21xx )
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(adsp21xx); break;
case CPUINFO_PTR_BURN: info->burn = NULL; break;
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(adsp21xx); break;
+ case CPUINFO_FCT_IMPORT_STATE: info->import_state = CPU_IMPORT_STATE_NAME(adsp21xx); break;
case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &adsp->icount; break;
+ case CPUINFO_PTR_STATE_TABLE: info->state_table = &adsp->state; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: /* set per CPU */ break;
@@ -1913,103 +1906,6 @@ static CPU_GET_INFO( adsp21xx )
adsp->astat & 0x02 ? 'N':'.',
adsp->astat & 0x01 ? 'Z':'.');
break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_PC: sprintf(info->s, "PC: %04X", adsp->pc); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_AX0: sprintf(info->s, "AX0: %04X", adsp->core.ax0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AX1: sprintf(info->s, "AX1: %04X", adsp->core.ax1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AY0: sprintf(info->s, "AY0: %04X", adsp->core.ay0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AY1: sprintf(info->s, "AY1: %04X", adsp->core.ay1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AR: sprintf(info->s, "AR: %04X", adsp->core.ar.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AF: sprintf(info->s, "AF: %04X", adsp->core.af.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_MX0: sprintf(info->s, "MX0: %04X", adsp->core.mx0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MX1: sprintf(info->s, "MX1: %04X", adsp->core.mx1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MY0: sprintf(info->s, "MY0: %04X", adsp->core.my0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MY1: sprintf(info->s, "MY1: %04X", adsp->core.my1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR0: sprintf(info->s, "MR0: %04X", adsp->core.mr.mrx.mr0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR1: sprintf(info->s, "MR1: %04X", adsp->core.mr.mrx.mr1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR2: sprintf(info->s, "MR2: %02X", adsp->core.mr.mrx.mr2.u & 0x00ff); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MF: sprintf(info->s, "MF: %04X", adsp->core.mf.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_SI: sprintf(info->s, "SI: %04X", adsp->core.si.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SE: sprintf(info->s, "SE: %02X ", adsp->core.se.u & 0x00ff); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SB: sprintf(info->s, "SB: %02X ", adsp->core.sb.u & 0x001f); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SR0: sprintf(info->s, "SR0: %04X", adsp->core.sr.srx.sr0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SR1: sprintf(info->s, "SR1: %04X", adsp->core.sr.srx.sr1.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_AX0_SEC: sprintf(info->s, "AX0_SEC: %04X", adsp->alt.ax0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AX1_SEC: sprintf(info->s, "AX1_SEC: %04X", adsp->alt.ax1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AY0_SEC: sprintf(info->s, "AY0_SEC: %04X", adsp->alt.ay0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AY1_SEC: sprintf(info->s, "AY1_SEC: %04X", adsp->alt.ay1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AR_SEC: sprintf(info->s, "AR_SEC: %04X", adsp->alt.ar.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_AF_SEC: sprintf(info->s, "AF_SEC: %04X", adsp->alt.af.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_MX0_SEC: sprintf(info->s, "MX0_SEC: %04X", adsp->alt.mx0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MX1_SEC: sprintf(info->s, "MX1_SEC: %04X", adsp->alt.mx1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MY0_SEC: sprintf(info->s, "MY0_SEC: %04X", adsp->alt.my0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MY1_SEC: sprintf(info->s, "MY1_SEC: %04X", adsp->alt.my1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR0_SEC: sprintf(info->s, "MR0_SEC: %04X", adsp->alt.mr.mrx.mr0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR1_SEC: sprintf(info->s, "MR1_SEC: %04X", adsp->alt.mr.mrx.mr1.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MR2_SEC: sprintf(info->s, "MR2_SEC: %02X", adsp->alt.mr.mrx.mr2.u & 0x00ff); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MF_SEC: sprintf(info->s, "MF_SEC: %04X", adsp->alt.mf.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_SI_SEC: sprintf(info->s, "SI_SEC: %04X", adsp->alt.si.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SE_SEC: sprintf(info->s, "SE_SEC: %02X ", adsp->alt.se.u & 0x00ff); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SB_SEC: sprintf(info->s, "SB_SEC: %02X ", adsp->alt.sb.u & 0x001f); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SR0_SEC: sprintf(info->s, "SR0_SEC: %04X", adsp->alt.sr.srx.sr0.u); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SR1_SEC: sprintf(info->s, "SR1_SEC: %04X", adsp->alt.sr.srx.sr1.u); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_I0: sprintf(info->s, "I0: %04X", adsp->i[0]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I1: sprintf(info->s, "I1: %04X", adsp->i[1]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I2: sprintf(info->s, "I2: %04X", adsp->i[2]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I3: sprintf(info->s, "I3: %04X", adsp->i[3]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I4: sprintf(info->s, "I4: %04X", adsp->i[4]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I5: sprintf(info->s, "I5: %04X", adsp->i[5]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I6: sprintf(info->s, "I6: %04X", adsp->i[6]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_I7: sprintf(info->s, "I7: %04X", adsp->i[7]); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_L0: sprintf(info->s, "L0: %04X", adsp->l[0]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L1: sprintf(info->s, "L1: %04X", adsp->l[1]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L2: sprintf(info->s, "L2: %04X", adsp->l[2]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L3: sprintf(info->s, "L3: %04X", adsp->l[3]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L4: sprintf(info->s, "L4: %04X", adsp->l[4]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L5: sprintf(info->s, "L5: %04X", adsp->l[5]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L6: sprintf(info->s, "L6: %04X", adsp->l[6]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_L7: sprintf(info->s, "L7: %04X", adsp->l[7]); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_M0: sprintf(info->s, "M0: %04X", adsp->m[0]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M1: sprintf(info->s, "M1: %04X", adsp->m[1]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M2: sprintf(info->s, "M2: %04X", adsp->m[2]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M3: sprintf(info->s, "M3: %04X", adsp->m[3]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M4: sprintf(info->s, "M4: %04X", adsp->m[4]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M5: sprintf(info->s, "M5: %04X", adsp->m[5]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M6: sprintf(info->s, "M6: %04X", adsp->m[6]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_M7: sprintf(info->s, "M7: %04X", adsp->m[7]); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_PX: sprintf(info->s, "PX: %02X ", adsp->px); break;
- case CPUINFO_STR_REGISTER + ADSP2100_CNTR: sprintf(info->s, "CNTR:%04X", adsp->cntr); break;
- case CPUINFO_STR_REGISTER + ADSP2100_ASTAT: sprintf(info->s, "ASTA:%02X ", adsp->astat); break;
- case CPUINFO_STR_REGISTER + ADSP2100_SSTAT: sprintf(info->s, "SSTA:%02X ", adsp->sstat); break;
- case CPUINFO_STR_REGISTER + ADSP2100_MSTAT: sprintf(info->s, "MSTA:%02X ", adsp->mstat); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_PCSP: sprintf(info->s, "PCSP:%02X ", adsp->pc_sp); break;
- case CPUINFO_STR_REGISTER + ADSP2100_CNTRSP: sprintf(info->s, "CTSP:%01X ", adsp->cntr_sp); break;
- case CPUINFO_STR_REGISTER + ADSP2100_STATSP: sprintf(info->s, "STSP:%01X ", adsp->stat_sp); break;
- case CPUINFO_STR_REGISTER + ADSP2100_LOOPSP: sprintf(info->s, "LPSP:%01X ", adsp->loop_sp); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_IMASK: sprintf(info->s, "IMSK:%03X ", adsp->imask); break;
- case CPUINFO_STR_REGISTER + ADSP2100_ICNTL: sprintf(info->s, "ICTL:%02X ", adsp->icntl); break;
- case CPUINFO_STR_REGISTER + ADSP2100_IRQSTATE0: sprintf(info->s, "IRQ0:%X ", adsp->irq_state[0]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_IRQSTATE1: sprintf(info->s, "IRQ1:%X ", adsp->irq_state[1]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_IRQSTATE2: sprintf(info->s, "IRQ2:%X ", adsp->irq_state[2]); break;
- case CPUINFO_STR_REGISTER + ADSP2100_IRQSTATE3: sprintf(info->s, "IRQ3:%X ", adsp->irq_state[3]); break;
-
- case CPUINFO_STR_REGISTER + ADSP2100_FLAGIN: sprintf(info->s, "FI: %X ", adsp->flagin); break;
- case CPUINFO_STR_REGISTER + ADSP2100_FLAGOUT: sprintf(info->s, "FO: %X ", adsp->flagout); break;
- case CPUINFO_STR_REGISTER + ADSP2100_FL0: sprintf(info->s, "FL0: %X ", adsp->fl0); break;
- case CPUINFO_STR_REGISTER + ADSP2100_FL1: sprintf(info->s, "FL1: %X ", adsp->fl1); break;
- case CPUINFO_STR_REGISTER + ADSP2100_FL2: sprintf(info->s, "FL2: %X ", adsp->fl2); break;
}
}
@@ -2034,8 +1930,7 @@ static void adsp21xx_load_boot_data(UINT8 *srcdata, UINT32 *dstdata)
static CPU_INIT( adsp2100 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2100;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2100);
adsp->mstat_mask = 0x0f;
adsp->imask_mask = 0x0f;
}
@@ -2091,8 +1986,7 @@ CPU_GET_INFO( adsp2100 )
static CPU_INIT( adsp2101 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2101;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2101);
adsp->mstat_mask = 0x7f;
adsp->imask_mask = 0x3f;
}
@@ -2161,8 +2055,7 @@ CPU_GET_INFO( adsp2101 )
static CPU_INIT( adsp2104 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2104;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2104);
adsp->mstat_mask = 0x7f;
adsp->imask_mask = 0x3f;
}
@@ -2236,8 +2129,7 @@ CPU_GET_INFO( adsp2104 )
static CPU_INIT( adsp2105 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2105;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2105);
adsp->mstat_mask = 0x7f;
adsp->imask_mask = 0x3f;
}
@@ -2305,8 +2197,7 @@ CPU_GET_INFO( adsp2105 )
static CPU_INIT( adsp2115 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2115;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2115);
adsp->mstat_mask = 0x7f;
adsp->imask_mask = 0x3f;
}
@@ -2380,8 +2271,7 @@ CPU_GET_INFO( adsp2115 )
static CPU_INIT( adsp2181 )
{
- adsp2100_state *adsp = adsp21xx_init(device, irqcallback);
- adsp->chip_type = CHIP_TYPE_ADSP2181;
+ adsp2100_state *adsp = adsp21xx_init(device, irqcallback, CHIP_TYPE_ADSP2181);
adsp->mstat_mask = 0x7f;
adsp->imask_mask = 0x3ff;
}
diff --git a/src/emu/cpu/adsp2100/adsp2100.h b/src/emu/cpu/adsp2100/adsp2100.h
index 1b4be0b17c3..c05183ad4b7 100644
--- a/src/emu/cpu/adsp2100/adsp2100.h
+++ b/src/emu/cpu/adsp2100/adsp2100.h
@@ -30,7 +30,7 @@ typedef void (*adsp21xx_timer_func)(const device_config *device, int enable);
enum
{
- ADSP2100_PC=1,
+ ADSP2100_PC,
ADSP2100_AX0, ADSP2100_AX1, ADSP2100_AY0, ADSP2100_AY1, ADSP2100_AR, ADSP2100_AF,
ADSP2100_MX0, ADSP2100_MX1, ADSP2100_MY0, ADSP2100_MY1, ADSP2100_MR0, ADSP2100_MR1, ADSP2100_MR2, ADSP2100_MF,
ADSP2100_SI, ADSP2100_SE, ADSP2100_SB, ADSP2100_SR0, ADSP2100_SR1,
@@ -43,7 +43,11 @@ enum
ADSP2100_FLAGIN, ADSP2100_FLAGOUT, ADSP2100_FL0, ADSP2100_FL1, ADSP2100_FL2,
ADSP2100_AX0_SEC, ADSP2100_AX1_SEC, ADSP2100_AY0_SEC, ADSP2100_AY1_SEC, ADSP2100_AR_SEC, ADSP2100_AF_SEC,
ADSP2100_MX0_SEC, ADSP2100_MX1_SEC, ADSP2100_MY0_SEC, ADSP2100_MY1_SEC, ADSP2100_MR0_SEC, ADSP2100_MR1_SEC, ADSP2100_MR2_SEC, ADSP2100_MF_SEC,
- ADSP2100_SI_SEC, ADSP2100_SE_SEC, ADSP2100_SB_SEC, ADSP2100_SR0_SEC, ADSP2100_SR1_SEC
+ ADSP2100_SI_SEC, ADSP2100_SE_SEC, ADSP2100_SB_SEC, ADSP2100_SR0_SEC, ADSP2100_SR1_SEC,
+
+ ADSP2100_GENPC = REG_GENPC,
+ ADSP2100_GENSP = REG_GENSP,
+ ADSP2100_GENPCBASE = REG_GENPCBASE
};
enum
diff --git a/src/emu/cpu/drcbex64.c b/src/emu/cpu/drcbex64.c
index 4ebbbe907c1..bb293eb16dc 100644
--- a/src/emu/cpu/drcbex64.c
+++ b/src/emu/cpu/drcbex64.c
@@ -175,7 +175,6 @@
#include "debugger.h"
#include "x86emit.h"
#include "eminline.h"
-#undef REG_SP
#include "x86log.h"
#include <math.h>
#include <stddef.h>
diff --git a/src/emu/cpu/drcbex86.c b/src/emu/cpu/drcbex86.c
index 3f4dd2e5790..5413b144159 100644
--- a/src/emu/cpu/drcbex86.c
+++ b/src/emu/cpu/drcbex86.c
@@ -91,7 +91,6 @@
#include "debugger.h"
#include "x86emit.h"
#include "eminline.h"
-#undef REG_SP
#include "x86log.h"
#include <math.h>
#include <stddef.h>
diff --git a/src/emu/cpu/g65816/g65816op.h b/src/emu/cpu/g65816/g65816op.h
index 13196a5e92b..a45c250983c 100644
--- a/src/emu/cpu/g65816/g65816op.h
+++ b/src/emu/cpu/g65816/g65816op.h
@@ -2351,9 +2351,9 @@ TABLE_FUNCTION(uint, get_reg, (g65816i_cpu_struct *cpustate, int regnum))
case G65816_A: return REGISTER_B | REGISTER_A;
case G65816_X: return REGISTER_X;
case G65816_Y: return REGISTER_Y;
- case REG_SP: return REGISTER_S;
+ case REG_GENSP: return REGISTER_S;
case G65816_S: return REGISTER_S;
- case REG_PC: return REGISTER_PC;
+ case REG_GENPC: return REGISTER_PC;
case G65816_PC: return REGISTER_PC;
case G65816_PB: return REGISTER_PB >> 16;
case G65816_DB: return REGISTER_DB >> 16;
@@ -2361,7 +2361,7 @@ TABLE_FUNCTION(uint, get_reg, (g65816i_cpu_struct *cpustate, int regnum))
case G65816_P: return g65816i_get_reg_p(cpustate);
case G65816_NMI_STATE: return LINE_NMI;
case G65816_IRQ_STATE: return LINE_IRQ;
- case REG_PREVIOUSPC: return REGISTER_PPC;
+ case REG_GENPCBASE: return REGISTER_PPC;
}
return 0;
}
@@ -2372,11 +2372,11 @@ TABLE_FUNCTION(void, set_reg, (g65816i_cpu_struct *cpustate, int regnum, uint va
{
switch(regnum)
{
- case REG_PC: case G65816_PC: REGISTER_PC = MAKE_UINT_16(val); break;
+ case REG_GENPC: case G65816_PC: REGISTER_PC = MAKE_UINT_16(val); break;
#if FLAG_SET_E
- case REG_SP: case G65816_S: REGISTER_S = MAKE_UINT_8(val) | 0x100; break;
+ case REG_GENSP: case G65816_S: REGISTER_S = MAKE_UINT_8(val) | 0x100; break;
#else
- case REG_SP: case G65816_S: REGISTER_S = MAKE_UINT_16(val); break;
+ case REG_GENSP: case G65816_S: REGISTER_S = MAKE_UINT_16(val); break;
#endif
case G65816_P: g65816i_set_reg_p(cpustate, val); break;
#if FLAG_SET_M
diff --git a/src/emu/cpu/i86/i86.c b/src/emu/cpu/i86/i86.c
index 58f5ac48db3..639c0f6b2d6 100644
--- a/src/emu/cpu/i86/i86.c
+++ b/src/emu/cpu/i86/i86.c
@@ -50,6 +50,9 @@ struct _i8086_state
INT8 irq_state;
INT8 test_state; /* PJB 03/05 */
INT32 extra_cycles; /* extra cycles for interrupts */
+
+ UINT16 ip;
+ UINT32 sp;
memory_interface mem;
@@ -57,6 +60,7 @@ struct _i8086_state
const address_space *program;
const address_space *io;
int icount;
+ cpu_state_table state;
unsigned prefix_base; /* base address of the latest prefix segment */
char seg_prefix; /* prefix segment indicator */
@@ -65,6 +69,55 @@ struct _i8086_state
};
+/***************************************************************************
+ CPU STATE DESCRIPTION
+***************************************************************************/
+
+#define I86_STATE_ENTRY(_name, _format, _member, _datamask, _flags) \
+ CPU_STATE_ENTRY(I8086_##_name, #_name, _format, i8086_state, _member, _datamask, ~0, _flags)
+
+static const cpu_state_entry state_array[] =
+{
+ I86_STATE_ENTRY(GENPC, "%9s", pc, 0xfffff, CPUSTATE_IMPORT)
+ I86_STATE_ENTRY(GENPCBASE, "%08X", pc, 0xfffff, CPUSTATE_NOSHOW) /* not implemented */
+ I86_STATE_ENTRY(IP, "%04X", ip, 0xffff, CPUSTATE_IMPORT | CPUSTATE_EXPORT)
+
+ I86_STATE_ENTRY(FLAGS, "%04X", flags, 0xffff, CPUSTATE_NOSHOW | CPUSTATE_IMPORT | CPUSTATE_EXPORT)
+
+ I86_STATE_ENTRY(AX, "%04X", regs.w[AX], 0xffff, 0)
+ I86_STATE_ENTRY(BX, "%04X", regs.w[BX], 0xffff, 0)
+ I86_STATE_ENTRY(CX, "%04X", regs.w[CX], 0xffff, 0)
+ I86_STATE_ENTRY(DX, "%04X", regs.w[DX], 0xffff, 0)
+ I86_STATE_ENTRY(SI, "%04X", regs.w[SI], 0xffff, 0)
+ I86_STATE_ENTRY(DI, "%04X", regs.w[DI], 0xffff, 0)
+ I86_STATE_ENTRY(BP, "%04X", regs.w[BP], 0xffff, 0)
+ I86_STATE_ENTRY(SP, "%04X", regs.w[SP], 0xffff, 0)
+ I86_STATE_ENTRY(GENSP, "%9s", sp, 0xfffff, CPUSTATE_IMPORT | CPUSTATE_EXPORT)
+
+ I86_STATE_ENTRY(AL, "%02X", regs.b[AL], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(BL, "%02X", regs.b[BL], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(CL, "%02X", regs.b[CL], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(DL, "%02X", regs.b[DL], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(AH, "%02X", regs.b[AH], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(BH, "%02X", regs.b[BH], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(CH, "%02X", regs.b[CH], 0xff, CPUSTATE_NOSHOW)
+ I86_STATE_ENTRY(DH, "%02X", regs.b[DH], 0xff, CPUSTATE_NOSHOW)
+
+ I86_STATE_ENTRY(CS, "%04X", sregs[CS], 0xffff, CPUSTATE_IMPORT)
+ I86_STATE_ENTRY(DS, "%04X", sregs[DS], 0xffff, CPUSTATE_IMPORT)
+ I86_STATE_ENTRY(ES, "%04X", sregs[ES], 0xffff, CPUSTATE_IMPORT)
+ I86_STATE_ENTRY(SS, "%04X", sregs[SS], 0xffff, CPUSTATE_IMPORT)
+};
+
+static const cpu_state_table state_table_template =
+{
+ NULL, /* pointer to the base of state (offsets are relative to this) */
+ 0, /* subtype this table refers to */
+ ARRAY_LENGTH(state_array), /* number of entries */
+ state_array /* array of entries */
+};
+
+
#include "i86time.c"
@@ -152,6 +205,11 @@ static CPU_INIT( i8086 )
cpustate->program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
cpustate->io = memory_find_address_space(device, ADDRESS_SPACE_IO);
+ /* set up the state table */
+ cpustate->state = state_table_template;
+ cpustate->state.baseptr = cpustate;
+ cpustate->state.subtypemask = 1;
+
i8086_state_register(device);
configure_memory_16bit(cpustate);
}
@@ -170,12 +228,15 @@ static CPU_RESET( i8086 )
i8086_state *cpustate = device->token;
cpu_irq_callback save_irqcallback;
memory_interface save_mem;
+ cpu_state_table save_state;
save_irqcallback = cpustate->irq_callback;
save_mem = cpustate->mem;
+ save_state = cpustate->state;
memset(cpustate, 0, sizeof(*cpustate));
cpustate->irq_callback = save_irqcallback;
cpustate->mem = save_mem;
+ cpustate->state = save_state;
cpustate->device = device;
cpustate->program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
cpustate->io = memory_find_address_space(device, ADDRESS_SPACE_IO);
@@ -225,11 +286,6 @@ static CPU_EXECUTE( i8086 )
{
i8086_state *cpustate = device->token;
- cpustate->base[CS] = SegBase(CS);
- cpustate->base[DS] = SegBase(DS);
- cpustate->base[ES] = SegBase(ES);
- cpustate->base[SS] = SegBase(SS);
-
/* copy over the cycle counts if they're not correct */
if (timing.id != 8086)
timing = i8086_cycles;
@@ -286,11 +342,6 @@ static CPU_EXECUTE( i80186 )
{
i8086_state *cpustate = device->token;
- cpustate->base[CS] = SegBase(CS);
- cpustate->base[DS] = SegBase(DS);
- cpustate->base[ES] = SegBase(ES);
- cpustate->base[SS] = SegBase(SS);
-
/* copy over the cycle counts if they're not correct */
if (timing.id != 80186)
timing = i80186_cycles;
@@ -324,56 +375,123 @@ static CPU_EXECUTE( i80186 )
/**************************************************************************
- * Generic set_info
+ * STATE IMPORT/EXPORT
**************************************************************************/
-static CPU_SET_INFO( i8086 )
+static CPU_IMPORT_STATE( i8086 )
{
i8086_state *cpustate = device->token;
- switch (state)
+ switch (entry->index)
{
- /* --- the following bits of info are set as 64-bit signed integers --- */
- case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(cpustate, 0, info->i); break;
- case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(cpustate, INPUT_LINE_NMI, info->i); break;
- case CPUINFO_INT_INPUT_STATE + INPUT_LINE_TEST: set_test_line(cpustate, info->i); break; /* PJB 03/05 */
-
- case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + I8086_PC:
- if (info->i - cpustate->base[CS] >= 0x10000)
+ case I8086_GENPC:
+ if (cpustate->pc - cpustate->base[CS] >= 0x10000)
{
- cpustate->base[CS] = info->i & 0xffff0;
+ cpustate->base[CS] = cpustate->pc & 0xffff0;
cpustate->sregs[CS] = cpustate->base[CS] >> 4;
}
- cpustate->pc = info->i;
break;
- case CPUINFO_INT_REGISTER + I8086_IP: cpustate->pc = cpustate->base[CS] + info->i; break;
- case CPUINFO_INT_SP:
- if (info->i - cpustate->base[SS] < 0x10000)
- {
- cpustate->regs.w[SP] = info->i - cpustate->base[SS];
- }
- else
+
+ case I8086_IP:
+ cpustate->pc = cpustate->base[CS] + cpustate->ip;
+ break;
+
+ case I8086_GENSP:
+ if (cpustate->sp - cpustate->base[SS] >= 0x10000)
{
- cpustate->base[SS] = info->i & 0xffff0;
+ cpustate->base[SS] = cpustate->sp & 0xffff0;
cpustate->sregs[SS] = cpustate->base[SS] >> 4;
- cpustate->regs.w[SP] = info->i & 0x0000f;
}
+ cpustate->regs.w[SP] = cpustate->sp - cpustate->base[SS];
+ break;
+
+ case I8086_FLAGS:
+ ExpandFlags(cpustate->flags);
+ break;
+
+ case I8086_ES:
+ cpustate->base[ES] = SegBase(ES);
+ break;
+
+ case I8086_CS:
+ cpustate->base[CS] = SegBase(CS);
+ break;
+
+ case I8086_SS:
+ cpustate->base[SS] = SegBase(SS);
+ break;
+
+ case I8086_DS:
+ cpustate->base[DS] = SegBase(DS);
+ break;
+
+ default:
+ fatalerror("CPU_IMPORT_STATE(i8086) called for unexpected value\n");
break;
- case CPUINFO_INT_REGISTER + I8086_SP: cpustate->regs.w[SP] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_FLAGS: cpustate->flags = info->i; ExpandFlags(info->i); break;
- case CPUINFO_INT_REGISTER + I8086_AX: cpustate->regs.w[AX] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_CX: cpustate->regs.w[CX] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_DX: cpustate->regs.w[DX] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_BX: cpustate->regs.w[BX] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_BP: cpustate->regs.w[BP] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_SI: cpustate->regs.w[SI] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_DI: cpustate->regs.w[DI] = info->i; break;
- case CPUINFO_INT_REGISTER + I8086_ES: cpustate->sregs[ES] = info->i; cpustate->base[ES] = SegBase(ES); break;
- case CPUINFO_INT_REGISTER + I8086_CS: cpustate->sregs[CS] = info->i; cpustate->base[CS] = SegBase(CS); break;
- case CPUINFO_INT_REGISTER + I8086_SS: cpustate->sregs[SS] = info->i; cpustate->base[SS] = SegBase(SS); break;
- case CPUINFO_INT_REGISTER + I8086_DS: cpustate->sregs[DS] = info->i; cpustate->base[DS] = SegBase(DS); break;
- case CPUINFO_INT_REGISTER + I8086_VECTOR: cpustate->int_vector = info->i; break;
+ }
+}
+
+
+static CPU_EXPORT_STATE( i8086 )
+{
+ i8086_state *cpustate = device->token;
+
+ switch (entry->index)
+ {
+ case I8086_IP:
+ cpustate->ip = cpustate->pc - cpustate->base[CS];
+ break;
+
+ case I8086_FLAGS:
+ cpustate->flags = CompressFlags();
+ break;
+
+ case I8086_GENSP:
+ cpustate->sp = cpustate->base[SS] + cpustate->regs.w[SP];
+ break;
+
+ default:
+ fatalerror("CPU_EXPORT_STATE(i8086) called for unexpected value\n");
+ break;
+ }
+}
+
+
+static CPU_EXPORT_STRING( i8086 )
+{
+ i8086_state *cpustate = device->token;
+
+ switch (entry->index)
+ {
+ case I8086_GENPC:
+ sprintf(string, "%04X:%04X", cpustate->sregs[CS] & 0xffff, (cpustate->pc - cpustate->base[CS]) & 0xffff);
+ break;
+
+ case I8086_GENSP:
+ sprintf(string, "%04X:%04X", cpustate->sregs[SS] & 0xffff, cpustate->regs.w[SP] & 0xffff);
+ break;
+
+ default:
+ fatalerror("CPU_EXPORT_STRING(i8086) called for unexpected value\n");
+ break;
+ }
+}
+
+
+/**************************************************************************
+ * Generic set_info
+ **************************************************************************/
+
+static CPU_SET_INFO( i8086 )
+{
+ i8086_state *cpustate = device->token;
+
+ switch (state)
+ {
+ /* --- the following bits of info are set as 64-bit signed integers --- */
+ case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(cpustate, 0, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + INPUT_LINE_NMI: set_irq_line(cpustate, INPUT_LINE_NMI, info->i); break;
+ case CPUINFO_INT_INPUT_STATE + INPUT_LINE_TEST: set_test_line(cpustate, info->i); break; /* PJB 03/05 */
}
}
@@ -418,34 +536,19 @@ CPU_GET_INFO( i8086 )
case CPUINFO_INT_PREVIOUSPC: info->i = cpustate->prevpc; break;
- case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + I8086_PC: info->i = cpustate->pc; break;
- case CPUINFO_INT_REGISTER + I8086_IP: info->i = cpustate->pc - cpustate->base[CS]; break;
- case CPUINFO_INT_SP: info->i = cpustate->base[SS] + cpustate->regs.w[SP]; break;
- case CPUINFO_INT_REGISTER + I8086_SP: info->i = cpustate->regs.w[SP]; break;
- case CPUINFO_INT_REGISTER + I8086_FLAGS: cpustate->flags = CompressFlags(); info->i = cpustate->flags; break;
- case CPUINFO_INT_REGISTER + I8086_AX: info->i = cpustate->regs.w[AX]; break;
- case CPUINFO_INT_REGISTER + I8086_CX: info->i = cpustate->regs.w[CX]; break;
- case CPUINFO_INT_REGISTER + I8086_DX: info->i = cpustate->regs.w[DX]; break;
- case CPUINFO_INT_REGISTER + I8086_BX: info->i = cpustate->regs.w[BX]; break;
- case CPUINFO_INT_REGISTER + I8086_BP: info->i = cpustate->regs.w[BP]; break;
- case CPUINFO_INT_REGISTER + I8086_SI: info->i = cpustate->regs.w[SI]; break;
- case CPUINFO_INT_REGISTER + I8086_DI: info->i = cpustate->regs.w[DI]; break;
- case CPUINFO_INT_REGISTER + I8086_ES: info->i = cpustate->sregs[ES]; break;
- case CPUINFO_INT_REGISTER + I8086_CS: info->i = cpustate->sregs[CS]; break;
- case CPUINFO_INT_REGISTER + I8086_SS: info->i = cpustate->sregs[SS]; break;
- case CPUINFO_INT_REGISTER + I8086_DS: info->i = cpustate->sregs[DS]; break;
- case CPUINFO_INT_REGISTER + I8086_VECTOR: info->i = cpustate->int_vector; break;
-
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(i8086); break;
- case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(i8086); break;
+ case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(i8086); break;
case CPUINFO_PTR_RESET: info->reset = CPU_RESET_NAME(i8086); break;
- case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(i8086); break;
+ case CPUINFO_PTR_EXIT: info->exit = CPU_EXIT_NAME(i8086); break;
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(i8086); break;
- case CPUINFO_PTR_BURN: info->burn = NULL; break;
- case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(i8086); break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break;
+ case CPUINFO_PTR_BURN: info->burn = NULL; break;
+ case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(i8086); break;
+ case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &cpustate->icount; break;
+ case CPUINFO_PTR_STATE_TABLE: info->state_table = &cpustate->state; break;
+ case CPUINFO_FCT_IMPORT_STATE: info->import_state = CPU_IMPORT_STATE_NAME(i8086); break;
+ case CPUINFO_FCT_EXPORT_STATE: info->export_state = CPU_EXPORT_STATE_NAME(i8086); break;
+ case CPUINFO_FCT_EXPORT_STRING: info->export_string = CPU_EXPORT_STRING_NAME(i8086);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "8086"); break;
@@ -474,23 +577,6 @@ CPU_GET_INFO( i8086 )
cpustate->flags & 0x0002 ? 'N' : '.',
cpustate->flags & 0x0001 ? 'C' : '.');
break;
-
- case CPUINFO_STR_REGISTER + I8086_PC: sprintf(info->s, "PC:%04X", cpustate->pc); break;
- case CPUINFO_STR_REGISTER + I8086_IP: sprintf(info->s, "IP: %04X", cpustate->pc - cpustate->base[CS]); break;
- case CPUINFO_STR_REGISTER + I8086_SP: sprintf(info->s, "SP: %04X", cpustate->regs.w[SP]); break;
- case CPUINFO_STR_REGISTER + I8086_FLAGS: sprintf(info->s, "F:%04X", cpustate->flags); break;
- case CPUINFO_STR_REGISTER + I8086_AX: sprintf(info->s, "AX:%04X", cpustate->regs.w[AX]); break;
- case CPUINFO_STR_REGISTER + I8086_CX: sprintf(info->s, "CX:%04X", cpustate->regs.w[CX]); break;
- case CPUINFO_STR_REGISTER + I8086_DX: sprintf(info->s, "DX:%04X", cpustate->regs.w[DX]); break;
- case CPUINFO_STR_REGISTER + I8086_BX: sprintf(info->s, "BX:%04X", cpustate->regs.w[BX]); break;
- case CPUINFO_STR_REGISTER + I8086_BP: sprintf(info->s, "BP:%04X", cpustate->regs.w[BP]); break;
- case CPUINFO_STR_REGISTER + I8086_SI: sprintf(info->s, "SI: %04X", cpustate->regs.w[SI]); break;
- case CPUINFO_STR_REGISTER + I8086_DI: sprintf(info->s, "DI: %04X", cpustate->regs.w[DI]); break;
- case CPUINFO_STR_REGISTER + I8086_ES: sprintf(info->s, "ES:%04X", cpustate->sregs[ES]); break;
- case CPUINFO_STR_REGISTER + I8086_CS: sprintf(info->s, "CS:%04X", cpustate->sregs[CS]); break;
- case CPUINFO_STR_REGISTER + I8086_SS: sprintf(info->s, "SS:%04X", cpustate->sregs[SS]); break;
- case CPUINFO_STR_REGISTER + I8086_DS: sprintf(info->s, "DS:%04X", cpustate->sregs[DS]); break;
- case CPUINFO_STR_REGISTER + I8086_VECTOR: sprintf(info->s, "V:%02X", cpustate->int_vector); break;
}
}
diff --git a/src/emu/cpu/i86/i86.h b/src/emu/cpu/i86/i86.h
index 5f38c87521b..be66b5da320 100644
--- a/src/emu/cpu/i86/i86.h
+++ b/src/emu/cpu/i86/i86.h
@@ -1,44 +1,55 @@
-/* ASG 971222 -- rewrote this interface */
-#pragma once
-
-#ifndef __I86INTF_H__
-#define __I86INTF_H__
-
-#include "cpuintrf.h"
-
-#define INPUT_LINE_TEST 20 /* PJB 03/05 */
-
-enum
-{
- I8086_PC=0,
- I8086_IP,
- I8086_AX,
- I8086_CX,
- I8086_DX,
- I8086_BX,
- I8086_SP,
- I8086_BP,
- I8086_SI,
- I8086_DI,
- I8086_FLAGS,
- I8086_ES,
- I8086_CS,
- I8086_SS,
- I8086_DS,
- I8086_VECTOR
-};
-
-/* Public functions */
-CPU_GET_INFO( i8086 );
-#define CPU_I8086 CPU_GET_INFO_NAME( i8086 )
-
-CPU_GET_INFO( i8088 );
-#define CPU_I8088 CPU_GET_INFO_NAME( i8088 )
-
-CPU_GET_INFO( i80186 );
-#define CPU_I80186 CPU_GET_INFO_NAME( i80186 )
-
-CPU_GET_INFO( i80188 );
-#define CPU_I80188 CPU_GET_INFO_NAME( i80188 )
-
-#endif /* __I86INTF_H__ */
+/* ASG 971222 -- rewrote this interface */
+#pragma once
+
+#ifndef __I86INTF_H__
+#define __I86INTF_H__
+
+#include "cpuintrf.h"
+
+#define INPUT_LINE_TEST 20 /* PJB 03/05 */
+
+enum
+{
+ I8086_IP,
+ I8086_AX,
+ I8086_CX,
+ I8086_DX,
+ I8086_BX,
+ I8086_SP,
+ I8086_BP,
+ I8086_SI,
+ I8086_DI,
+ I8086_AL,
+ I8086_CL,
+ I8086_DL,
+ I8086_BL,
+ I8086_AH,
+ I8086_CH,
+ I8086_DH,
+ I8086_BH,
+ I8086_FLAGS,
+ I8086_ES,
+ I8086_CS,
+ I8086_SS,
+ I8086_DS,
+ I8086_VECTOR,
+
+ I8086_GENPC = REG_GENPC,
+ I8086_GENSP = REG_GENSP,
+ I8086_GENPCBASE = REG_GENPCBASE
+};
+
+/* Public functions */
+CPU_GET_INFO( i8086 );
+#define CPU_I8086 CPU_GET_INFO_NAME( i8086 )
+
+CPU_GET_INFO( i8088 );
+#define CPU_I8088 CPU_GET_INFO_NAME( i8088 )
+
+CPU_GET_INFO( i80186 );
+#define CPU_I80186 CPU_GET_INFO_NAME( i80186 )
+
+CPU_GET_INFO( i80188 );
+#define CPU_I80188 CPU_GET_INFO_NAME( i80188 )
+
+#endif /* __I86INTF_H__ */
diff --git a/src/emu/cpu/m37710/m37710op.h b/src/emu/cpu/m37710/m37710op.h
index 8dd36694f86..5e84c6ceba6 100644
--- a/src/emu/cpu/m37710/m37710op.h
+++ b/src/emu/cpu/m37710/m37710op.h
@@ -2903,7 +2903,7 @@ TABLE_FUNCTION(uint, get_reg, (m37710i_cpu_struct *cpustate, int regnum))
case M37710_D: return REG_D;
case M37710_P: return m37710i_get_reg_p(cpustate);
case M37710_IRQ_STATE: return LINE_IRQ;
- case REG_PREVIOUSPC: return REG_PPC;
+ case REG_GENPCBASE: return REG_PPC;
}
return 0;
}
diff --git a/src/emu/cpu/minx/minx.c b/src/emu/cpu/minx/minx.c
index 74a5615fca2..3d5c65d1021 100644
--- a/src/emu/cpu/minx/minx.c
+++ b/src/emu/cpu/minx/minx.c
@@ -214,9 +214,9 @@ static unsigned minx_get_reg( int regnum )
{
switch( regnum )
{
- case REG_PC: return GET_MINX_PC;
+ case REG_GENPC: return GET_MINX_PC;
case MINX_PC: return regs.PC;
- case REG_SP:
+ case REG_GENSP:
case MINX_SP: return regs.SP;
case MINX_BA: return regs.BA;
case MINX_HL: return regs.HL;
@@ -239,9 +239,9 @@ static void minx_set_reg( int regnum, unsigned val )
{
switch( regnum )
{
- case REG_PC: break;
+ case REG_GENPC: break;
case MINX_PC: regs.PC = val; break;
- case REG_SP:
+ case REG_GENSP:
case MINX_SP: regs.SP = val; break;
case MINX_BA: regs.BA = val; break;
case MINX_HL: regs.HL = val; break;
@@ -322,8 +322,8 @@ CPU_GET_INFO( minx )
case CPUINFO_INT_ADDRBUS_WIDTH + ADDRESS_SPACE_IO: info->i = 0; break;
case CPUINFO_INT_ADDRBUS_SHIFT + ADDRESS_SPACE_IO: info->i = 0; break;
case CPUINFO_INT_INPUT_STATE + 0: info->i = 0; break;
- case CPUINFO_INT_REGISTER + REG_PC: info->i = GET_MINX_PC; break;
- case CPUINFO_INT_REGISTER + REG_SP:
+ case CPUINFO_INT_REGISTER + REG_GENPC: info->i = GET_MINX_PC; break;
+ case CPUINFO_INT_REGISTER + REG_GENSP:
case CPUINFO_INT_REGISTER + MINX_PC:
case CPUINFO_INT_REGISTER + MINX_SP:
case CPUINFO_INT_REGISTER + MINX_BA:
diff --git a/src/emu/cpu/sm8500/sm8500.c b/src/emu/cpu/sm8500/sm8500.c
index a737af4f20f..505309fed8a 100644
--- a/src/emu/cpu/sm8500/sm8500.c
+++ b/src/emu/cpu/sm8500/sm8500.c
@@ -271,9 +271,9 @@ unsigned sm8500_get_reg( sm8500_state *cpustate, int regnum )
{
switch( regnum )
{
- case REG_PC:
+ case REG_GENPC:
case SM8500_PC: return cpustate->PC;
- case REG_SP:
+ case REG_GENSP:
case SM8500_SP: return ( cpustate->SYS & 0x40 ) ? cpustate->SP : cpustate->SP & 0xFF ;
case SM8500_PS: return ( cpustate->PS0 << 8 ) | cpustate->PS1;
case SM8500_SYS16: return cpustate->SYS;
@@ -311,9 +311,9 @@ static void sm8500_set_reg( sm8500_state *cpustate, int regnum, unsigned val )
{
switch( regnum )
{
- case REG_PC:
+ case REG_GENPC:
case SM8500_PC: cpustate->PC = val; break;
- case REG_SP:
+ case REG_GENSP:
case SM8500_SP: cpustate->SP = val; break;
case SM8500_PS: sm8500_set_reg( cpustate, SM8500_PS0, ( val >> 8 ) & 0xFF ); sm8500_set_reg( cpustate, SM8500_PS1, val & 0xFF ); break;
case SM8500_SYS16: cpustate->SYS = val; break;
@@ -497,8 +497,8 @@ CPU_GET_INFO( sm8500 )
case CPUINFO_INT_REGISTER + SM8500_P2C:
case CPUINFO_INT_REGISTER + SM8500_P3C:
info->i = sm8500_get_reg( cpustate, state - CPUINFO_INT_REGISTER ); break;
- case CPUINFO_INT_REGISTER + REG_PC: info->i = sm8500_get_reg( cpustate, SM8500_PC ); break;
- case CPUINFO_INT_REGISTER + REG_SP: info->i = sm8500_get_reg( cpustate, SM8500_SP ); break;
+ case CPUINFO_INT_REGISTER + REG_GENPC: info->i = sm8500_get_reg( cpustate, SM8500_PC ); break;
+ case CPUINFO_INT_REGISTER + REG_GENSP: info->i = sm8500_get_reg( cpustate, SM8500_SP ); break;
case CPUINFO_INT_PREVIOUSPC: info->i = 0x0000; break;
diff --git a/src/emu/cpu/tms34010/34010ops.c b/src/emu/cpu/tms34010/34010ops.c
index e1b68b206fb..6c84915ddee 100644
--- a/src/emu/cpu/tms34010/34010ops.c
+++ b/src/emu/cpu/tms34010/34010ops.c
@@ -88,7 +88,7 @@ static void unimpl(tms34010_state *tms, UINT16 op)
return;
PUSH(tms, tms->pc);
- PUSH(tms, GET_ST(tms));
+ PUSH(tms, tms->st);
RESET_ST(tms);
tms->pc = RLONG(tms, 0xfffffc20);
COUNT_UNKNOWN_CYCLES(tms,16);
@@ -1562,7 +1562,7 @@ static void getpc_b (tms34010_state *tms, UINT16 op) { GETPC(B); }
#define GETST(R) \
{ \
- R##REG(tms,DSTREG(op)) = GET_ST(tms); \
+ R##REG(tms,DSTREG(op)) = tms->st; \
COUNT_CYCLES(tms,1); \
}
static void getst_a (tms34010_state *tms, UINT16 op) { GETST(A); }
@@ -1844,7 +1844,7 @@ static void popst(tms34010_state *tms, UINT16 op)
static void pushst(tms34010_state *tms, UINT16 op)
{
- PUSH(tms, GET_ST(tms));
+ PUSH(tms, tms->st);
COUNT_CYCLES(tms,2);
}
@@ -1892,7 +1892,7 @@ static void trap(tms34010_state *tms, UINT16 op)
if (t)
{
PUSH(tms, tms->pc);
- PUSH(tms, GET_ST(tms));
+ PUSH(tms, tms->st);
}
RESET_ST(tms);
tms->pc = RLONG(tms, 0xffffffe0-(t<<5));
diff --git a/src/emu/cpu/tms34010/tms34010.c b/src/emu/cpu/tms34010/tms34010.c
index 610a94cd3c6..1fa5378092a 100644
--- a/src/emu/cpu/tms34010/tms34010.c
+++ b/src/emu/cpu/tms34010/tms34010.c
@@ -45,6 +45,7 @@ typedef struct _tms34010_state tms34010_state;
struct _tms34010_state
{
UINT32 pc;
+ UINT32 ppc;
UINT32 st;
void (*pixel_write)(tms34010_state *tms, offs_t offset, UINT32 data);
UINT32 (*pixel_read)(tms34010_state *tms, offs_t offset);
@@ -76,13 +77,15 @@ struct _tms34010_state
XY xy;
} regs[31];
- /* for the 34010, we only copy 32 of these into the new state */
UINT16 IOregs[64];
+
+ cpu_state_table state;
};
#include "34010ops.h"
+
/***************************************************************************
GLOBAL VARIABLES
***************************************************************************/
@@ -98,6 +101,7 @@ static TIMER_CALLBACK( scanline_callback );
static STATE_POSTLOAD( tms34010_state_postload );
+
/***************************************************************************
MACROS
***************************************************************************/
@@ -188,14 +192,68 @@ static STATE_POSTLOAD( tms34010_state_postload );
/***************************************************************************
- INLINE SHORTCUTS
+ CPU STATE DESCRIPTION
***************************************************************************/
-/* Combine indiviual flags into the Status Register */
-INLINE UINT32 GET_ST(tms34010_state *tms)
+#define TMS340X0_STATE_ENTRY(_name, _format, _member, _datamask, _flags) \
+ CPU_STATE_ENTRY(TMS34010_##_name, #_name, _format, tms34010_state, _member, _datamask, ~0, _flags)
+
+static const cpu_state_entry state_array[] =
{
- return tms->st;
-}
+ TMS340X0_STATE_ENTRY(PC, "%08X", pc, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(GENPC, "%08X", pc, 0xffffffff, CPUSTATE_NOSHOW)
+ TMS340X0_STATE_ENTRY(GENPCBASE, "%08X", ppc, 0xffffffff, CPUSTATE_NOSHOW)
+
+ TMS340X0_STATE_ENTRY(SP, "%08X", regs[15].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(GENSP, "%08X", regs[15].reg, 0xffffffff, CPUSTATE_NOSHOW)
+
+ TMS340X0_STATE_ENTRY(ST, "%08X", st, 0xffffffff, 0)
+
+ TMS340X0_STATE_ENTRY(A0, "%08X", regs[0].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A1, "%08X", regs[1].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A2, "%08X", regs[2].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A3, "%08X", regs[3].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A4, "%08X", regs[4].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A5, "%08X", regs[5].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A6, "%08X", regs[6].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A7, "%08X", regs[7].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A8, "%08X", regs[8].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A9, "%08X", regs[9].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A10, "%08X", regs[10].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A11, "%08X", regs[11].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A12, "%08X", regs[12].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A13, "%08X", regs[13].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(A14, "%08X", regs[14].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B0, "%08X", regs[30-0].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B1, "%08X", regs[30-1].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B2, "%08X", regs[30-2].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B3, "%08X", regs[30-3].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B4, "%08X", regs[30-4].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B5, "%08X", regs[30-5].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B6, "%08X", regs[30-6].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B7, "%08X", regs[30-7].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B8, "%08X", regs[30-8].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B9, "%08X", regs[30-9].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B10, "%08X", regs[30-10].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B11, "%08X", regs[30-11].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B12, "%08X", regs[30-12].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B13, "%08X", regs[30-13].reg, 0xffffffff, 0)
+ TMS340X0_STATE_ENTRY(B14, "%08X", regs[30-14].reg, 0xffffffff, 0)
+};
+
+static const cpu_state_table state_table_template =
+{
+ NULL, /* pointer to the base of state (offsets are relative to this) */
+ 0, /* subtype this table refers to */
+ ARRAY_LENGTH(state_array), /* number of entries */
+ state_array /* array of entries */
+};
+
+
+
+/***************************************************************************
+ INLINE SHORTCUTS
+***************************************************************************/
/* Break up Status Register into indiviual flags */
INLINE void SET_ST(tms34010_state *tms, UINT32 st)
@@ -326,7 +384,7 @@ static UINT32 read_pixel_shiftreg(tms34010_state *tms, offs_t offset)
***************************************************************************/
/* No Raster Op + No Transparency */
-#define WP(T,m1,m2) \
+#define WP(T,m1,m2) \
UINT32 a = TOBYTE(offset & 0xfffffff0); \
UINT32 pix = TMS34010_RDMEM_WORD(T,a); \
UINT32 shiftcount = offset & m1; \
@@ -363,7 +421,7 @@ static UINT32 read_pixel_shiftreg(tms34010_state *tms, offs_t offset)
TMS34010_WRMEM_WORD(T, a, pix); \
/* Raster Op + Transparency */
-#define WP_R_T(T,m1,m2) \
+#define WP_R_T(T,m1,m2) \
UINT32 a = TOBYTE(offset & 0xfffffff0); \
UINT32 pix = TMS34010_RDMEM_WORD(T,a); \
UINT32 shiftcount = offset & m1; \
@@ -540,7 +598,7 @@ static void check_interrupt(tms34010_state *tms)
if (!(IOREG(tms, REG_HSTCTLH) & 0x0200))
{
PUSH(tms, tms->pc);
- PUSH(tms, GET_ST(tms));
+ PUSH(tms, tms->st);
}
/* leap to the vector */
@@ -596,7 +654,7 @@ static void check_interrupt(tms34010_state *tms)
if (vector)
{
PUSH(tms, tms->pc);
- PUSH(tms, GET_ST(tms));
+ PUSH(tms, tms->st);
RESET_ST(tms);
tms->pc = RLONG(tms, vector);
COUNT_CYCLES(tms,16);
@@ -624,7 +682,12 @@ static CPU_INIT( tms34010 )
tms->irq_callback = irqcallback;
tms->device = device;
tms->program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
- tms->screen = device_list_find_by_tag(device->machine->config->devicelist, VIDEO_SCREEN, configdata->screen_tag);
+ tms->screen = devtag_get_device(device->machine, VIDEO_SCREEN, configdata->screen_tag);
+
+ /* set up the state table */
+ tms->state = state_table_template;
+ tms->state.baseptr = tms;
+ tms->state.subtypemask = 1;
/* allocate a scanline timer and set it to go off at the start */
tms->scantimer = timer_alloc(device->machine, scanline_callback, tms);
@@ -656,6 +719,7 @@ static CPU_RESET( tms34010 )
UINT16 *shiftreg = tms->shiftreg;
cpu_irq_callback save_irqcallback = tms->irq_callback;
emu_timer *save_scantimer = tms->scantimer;
+ cpu_state_table savetable = tms->state;
memset(tms, 0, sizeof(*tms));
@@ -666,6 +730,7 @@ static CPU_RESET( tms34010 )
tms->scantimer = save_scantimer;
tms->device = device;
tms->program = memory_find_address_space(device, ADDRESS_SPACE_PROGRAM);
+ tms->state = savetable;
/* fetch the initial PC and reset the state */
tms->pc = RLONG(tms, 0xffffffe0) & 0xfffffff0;
@@ -777,7 +842,9 @@ static CPU_EXECUTE( tms34010 )
{
do
{
- UINT16 op = ROPCODE(tms);
+ UINT16 op;
+ tms->ppc = tms->pc;
+ op = ROPCODE(tms);
(*opcode_table[op >> 4])(tms, op);
} while (tms->icount > 0);
}
@@ -786,11 +853,8 @@ static CPU_EXECUTE( tms34010 )
do
{
UINT16 op;
- if ((tms->device->machine->debug_flags & DEBUG_FLAG_CALL_HOOK) != 0)
- {
- tms->st = GET_ST(tms);
- debugger_instruction_hook(tms->device, tms->pc);
- }
+ debugger_instruction_hook(tms->device, tms->pc);
+ tms->ppc = tms->pc;
op = ROPCODE(tms);
(*opcode_table[op >> 4])(tms, op);
} while (tms->icount > 0);
@@ -1657,42 +1721,6 @@ static CPU_SET_INFO( tms34010 )
/* --- the following bits of info are set as 64-bit signed integers --- */
case CPUINFO_INT_INPUT_STATE + 0: set_irq_line(tms, 0, info->i); break;
case CPUINFO_INT_INPUT_STATE + 1: set_irq_line(tms, 1, info->i); break;
-
- case CPUINFO_INT_PC: tms->pc = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_PC: tms->pc = info->i; break;
- case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + TMS34010_SP: SP(tms) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_ST: tms->st = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A0: AREG(tms, 0) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A1: AREG(tms, 1) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A2: AREG(tms, 2) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A3: AREG(tms, 3) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A4: AREG(tms, 4) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A5: AREG(tms, 5) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A6: AREG(tms, 6) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A7: AREG(tms, 7) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A8: AREG(tms, 8) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A9: AREG(tms, 9) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A10: AREG(tms, 10) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A11: AREG(tms, 11) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A12: AREG(tms, 12) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A13: AREG(tms, 13) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_A14: AREG(tms, 14) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B0: BREG(tms, 0) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B1: BREG(tms, 1) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B2: BREG(tms, 2) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B3: BREG(tms, 3) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B4: BREG(tms, 4) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B5: BREG(tms, 5) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B6: BREG(tms, 6) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B7: BREG(tms, 7) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B8: BREG(tms, 8) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B9: BREG(tms, 9) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B10: BREG(tms, 10) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B11: BREG(tms, 11) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B12: BREG(tms, 12) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B13: BREG(tms, 13) = info->i; break;
- case CPUINFO_INT_REGISTER + TMS34010_B14: BREG(tms, 14) = info->i; break;
}
}
@@ -1733,44 +1761,6 @@ CPU_GET_INFO( tms34010 )
case CPUINFO_INT_INPUT_STATE + 0: info->i = (IOREG(tms, REG_INTPEND) & TMS34010_INT1) ? ASSERT_LINE : CLEAR_LINE; break;
case CPUINFO_INT_INPUT_STATE + 1: info->i = (IOREG(tms, REG_INTPEND) & TMS34010_INT2) ? ASSERT_LINE : CLEAR_LINE; break;
- case CPUINFO_INT_PREVIOUSPC: /* not implemented */ break;
-
- case CPUINFO_INT_PC:
- case CPUINFO_INT_REGISTER + TMS34010_PC: info->i = tms->pc; break;
- case CPUINFO_INT_SP:
- case CPUINFO_INT_REGISTER + TMS34010_SP: info->i = SP(tms); break;
- case CPUINFO_INT_REGISTER + TMS34010_ST: info->i = tms->st; break;
- case CPUINFO_INT_REGISTER + TMS34010_A0: info->i = AREG(tms, 0); break;
- case CPUINFO_INT_REGISTER + TMS34010_A1: info->i = AREG(tms, 1); break;
- case CPUINFO_INT_REGISTER + TMS34010_A2: info->i = AREG(tms, 2); break;
- case CPUINFO_INT_REGISTER + TMS34010_A3: info->i = AREG(tms, 3); break;
- case CPUINFO_INT_REGISTER + TMS34010_A4: info->i = AREG(tms, 4); break;
- case CPUINFO_INT_REGISTER + TMS34010_A5: info->i = AREG(tms, 5); break;
- case CPUINFO_INT_REGISTER + TMS34010_A6: info->i = AREG(tms, 6); break;
- case CPUINFO_INT_REGISTER + TMS34010_A7: info->i = AREG(tms, 7); break;
- case CPUINFO_INT_REGISTER + TMS34010_A8: info->i = AREG(tms, 8); break;
- case CPUINFO_INT_REGISTER + TMS34010_A9: info->i = AREG(tms, 9); break;
- case CPUINFO_INT_REGISTER + TMS34010_A10: info->i = AREG(tms, 10); break;
- case CPUINFO_INT_REGISTER + TMS34010_A11: info->i = AREG(tms, 11); break;
- case CPUINFO_INT_REGISTER + TMS34010_A12: info->i = AREG(tms, 12); break;
- case CPUINFO_INT_REGISTER + TMS34010_A13: info->i = AREG(tms, 13); break;
- case CPUINFO_INT_REGISTER + TMS34010_A14: info->i = AREG(tms, 14); break;
- case CPUINFO_INT_REGISTER + TMS34010_B0: info->i = BREG(tms, 0); break;
- case CPUINFO_INT_REGISTER + TMS34010_B1: info->i = BREG(tms, 1); break;
- case CPUINFO_INT_REGISTER + TMS34010_B2: info->i = BREG(tms, 2); break;
- case CPUINFO_INT_REGISTER + TMS34010_B3: info->i = BREG(tms, 3); break;
- case CPUINFO_INT_REGISTER + TMS34010_B4: info->i = BREG(tms, 4); break;
- case CPUINFO_INT_REGISTER + TMS34010_B5: info->i = BREG(tms, 5); break;
- case CPUINFO_INT_REGISTER + TMS34010_B6: info->i = BREG(tms, 6); break;
- case CPUINFO_INT_REGISTER + TMS34010_B7: info->i = BREG(tms, 7); break;
- case CPUINFO_INT_REGISTER + TMS34010_B8: info->i = BREG(tms, 8); break;
- case CPUINFO_INT_REGISTER + TMS34010_B9: info->i = BREG(tms, 9); break;
- case CPUINFO_INT_REGISTER + TMS34010_B10: info->i = BREG(tms, 10); break;
- case CPUINFO_INT_REGISTER + TMS34010_B11: info->i = BREG(tms, 11); break;
- case CPUINFO_INT_REGISTER + TMS34010_B12: info->i = BREG(tms, 12); break;
- case CPUINFO_INT_REGISTER + TMS34010_B13: info->i = BREG(tms, 13); break;
- case CPUINFO_INT_REGISTER + TMS34010_B14: info->i = BREG(tms, 14); break;
-
/* --- the following bits of info are returned as pointers to data or functions --- */
case CPUINFO_PTR_SET_INFO: info->setinfo = CPU_SET_INFO_NAME(tms34010); break;
case CPUINFO_PTR_INIT: info->init = CPU_INIT_NAME(tms34010); break;
@@ -1779,7 +1769,8 @@ CPU_GET_INFO( tms34010 )
case CPUINFO_PTR_EXECUTE: info->execute = CPU_EXECUTE_NAME(tms34010); break;
case CPUINFO_PTR_BURN: info->burn = NULL; break;
case CPUINFO_PTR_DISASSEMBLE: info->disassemble = CPU_DISASSEMBLE_NAME(tms34010); break;
- case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms->icount; break;
+ case CPUINFO_PTR_INSTRUCTION_COUNTER: info->icount = &tms->icount; break;
+ case CPUINFO_PTR_STATE_TABLE: info->state_table = &tms->state; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
case CPUINFO_STR_NAME: strcpy(info->s, "TMS34010"); break;
@@ -1809,40 +1800,6 @@ CPU_GET_INFO( tms34010 )
tms->st & 0x00000002 ? 'F':'.',
tms->st & 0x00000001 ? 'F':'.');
break;
-
- case CPUINFO_STR_REGISTER + TMS34010_PC: sprintf(info->s, "PC :%08X", tms->pc); break;
- case CPUINFO_STR_REGISTER + TMS34010_SP: sprintf(info->s, "SP :%08X", AREG(tms, 15)); break;
- case CPUINFO_STR_REGISTER + TMS34010_ST: sprintf(info->s, "ST :%08X", tms->st); break;
- case CPUINFO_STR_REGISTER + TMS34010_A0: sprintf(info->s, "A0 :%08X", AREG(tms, 0)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A1: sprintf(info->s, "A1 :%08X", AREG(tms, 1)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A2: sprintf(info->s, "A2 :%08X", AREG(tms, 2)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A3: sprintf(info->s, "A3 :%08X", AREG(tms, 3)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A4: sprintf(info->s, "A4 :%08X", AREG(tms, 4)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A5: sprintf(info->s, "A5 :%08X", AREG(tms, 5)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A6: sprintf(info->s, "A6 :%08X", AREG(tms, 6)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A7: sprintf(info->s, "A7 :%08X", AREG(tms, 7)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A8: sprintf(info->s, "A8 :%08X", AREG(tms, 8)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A9: sprintf(info->s, "A9 :%08X", AREG(tms, 9)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A10: sprintf(info->s,"A10:%08X", AREG(tms, 10)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A11: sprintf(info->s,"A11:%08X", AREG(tms, 11)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A12: sprintf(info->s,"A12:%08X", AREG(tms, 12)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A13: sprintf(info->s,"A13:%08X", AREG(tms, 13)); break;
- case CPUINFO_STR_REGISTER + TMS34010_A14: sprintf(info->s,"A14:%08X", AREG(tms, 14)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B0: sprintf(info->s, "B0 :%08X", BREG(tms, 0)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B1: sprintf(info->s, "B1 :%08X", BREG(tms, 1)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B2: sprintf(info->s, "B2 :%08X", BREG(tms, 2)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B3: sprintf(info->s, "B3 :%08X", BREG(tms, 3)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B4: sprintf(info->s, "B4 :%08X", BREG(tms, 4)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B5: sprintf(info->s, "B5 :%08X", BREG(tms, 5)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B6: sprintf(info->s, "B6 :%08X", BREG(tms, 6)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B7: sprintf(info->s, "B7 :%08X", BREG(tms, 7)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B8: sprintf(info->s, "B8 :%08X", BREG(tms, 8)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B9: sprintf(info->s, "B9 :%08X", BREG(tms, 9)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B10: sprintf(info->s,"B10:%08X", BREG(tms, 10)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B11: sprintf(info->s,"B11:%08X", BREG(tms, 11)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B12: sprintf(info->s,"B12:%08X", BREG(tms, 12)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B13: sprintf(info->s,"B13:%08X", BREG(tms, 13)); break;
- case CPUINFO_STR_REGISTER + TMS34010_B14: sprintf(info->s,"B14:%08X", BREG(tms, 14)); break;
}
}
@@ -1856,8 +1813,6 @@ CPU_GET_INFO( tms34020 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case CPUINFO_INT_CONTEXT_SIZE: info->i = sizeof(tms34010_state); break;
- case CPUINFO_INT_CLOCK_MULTIPLIER: info->i = 1; break;
case CPUINFO_INT_CLOCK_DIVIDER: info->i = 4; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
diff --git a/src/emu/cpu/tms34010/tms34010.h b/src/emu/cpu/tms34010/tms34010.h
index 34ce3ad7e25..7a3499aed90 100644
--- a/src/emu/cpu/tms34010/tms34010.h
+++ b/src/emu/cpu/tms34010/tms34010.h
@@ -19,7 +19,7 @@
/* register indexes for get_reg and set_reg */
enum
{
- TMS34010_PC = 1,
+ TMS34010_PC,
TMS34010_SP,
TMS34010_ST,
TMS34010_A0,
@@ -51,7 +51,11 @@ enum
TMS34010_B11,
TMS34010_B12,
TMS34010_B13,
- TMS34010_B14
+ TMS34010_B14,
+
+ TMS34010_GENPC = REG_GENPC,
+ TMS34010_GENSP = REG_GENSP,
+ TMS34010_GENPCBASE = REG_GENPCBASE
};
diff --git a/src/emu/cpuexec.c b/src/emu/cpuexec.c
index 097499eebe5..75c9281319f 100644
--- a/src/emu/cpuexec.c
+++ b/src/emu/cpuexec.c
@@ -88,6 +88,10 @@ struct _cpu_class_data
UINT32 cycles_per_second; /* cycles per second, adjusted for multipliers */
attoseconds_t attoseconds_per_cycle; /* attoseconds per adjusted clock cycle */
+ /* internal state reflection */
+ const cpu_state_table *state; /* pointer to the base table */
+ const cpu_state_entry *regstate[MAX_REGS];/* pointer to the state entry for each register */
+
/* these below are hacks to support multiple interrupts per frame */
INT32 iloops; /* number of interrupts remaining this frame */
emu_timer * partial_frame_timer; /* the timer that triggers partial frame interrupts */
@@ -118,7 +122,12 @@ static TIMER_CALLBACK( triggertime_callback );
static TIMER_CALLBACK( empty_event_queue );
static IRQ_CALLBACK( standard_irq_callback );
static void register_save_states(const device_config *device);
-
+static UINT64 get_register_value(const device_config *device, void *baseptr, const cpu_state_entry *entry);
+static void set_register_value(const device_config *device, void *baseptr, const cpu_state_entry *entry, UINT64 value);
+static void get_register_string_value(const device_config *device, void *baseptr, const cpu_state_entry *entry, char *dest);
+#ifdef UNUSED_FUNCTION
+static int get_register_string_max_width(const device_config *device, void *baseptr, const cpu_state_entry *entry);
+#endif
/***************************************************************************
@@ -430,6 +439,25 @@ static DEVICE_START( cpu )
inputline->curvector = inputline->vector;
}
update_clock_information(device);
+
+ /* fetch information about the CPU states */
+ classdata->state = cpu_get_state_table(device);
+ if (classdata->state != NULL)
+ {
+ int stateindex;
+
+ /* loop over all states specified, and work with any that apply */
+ for (stateindex = 0; stateindex < classdata->state->entrycount; stateindex++)
+ {
+ const cpu_state_entry *entry = &classdata->state->entrylist[stateindex];
+ if (entry->validmask == 0 || (entry->validmask & classdata->state->subtypemask) != 0)
+ {
+ assert(entry->index < MAX_REGS);
+ assert(classdata->regstate[entry->index] == NULL);
+ classdata->regstate[entry->index] = entry;
+ }
+ }
+ }
/* if no state registered for saving, we can't save */
if (num_regs == 0)
@@ -544,6 +572,20 @@ static DEVICE_SET_INFO( cpu )
/* no parameters to set */
default:
+ /* if we have a state pointer, we can handle some stuff for free */
+ if (device->token != NULL)
+ {
+ const cpu_class_data *classdata = cpu_get_class_data(device);
+ if (classdata->state != NULL)
+ {
+ if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
+ {
+ set_register_value(device, classdata->state->baseptr, classdata->regstate[state - CPUINFO_INT_REGISTER], info->i);
+ return;
+ }
+ }
+ }
+
/* integer data */
if (state >= DEVINFO_INT_FIRST && state <= DEVINFO_INT_LAST)
{
@@ -593,6 +635,27 @@ DEVICE_GET_INFO( cpu )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(cpu); break;
default:
+ /* if we have a state pointer, we can handle some stuff for free */
+ if (device->token != NULL)
+ {
+ const cpu_class_data *classdata = cpu_get_class_data(device);
+ if (classdata->state != NULL)
+ {
+ if (state >= CPUINFO_INT_REGISTER && state <= CPUINFO_INT_REGISTER_LAST)
+ {
+ info->i = get_register_value(device, classdata->state->baseptr, classdata->regstate[state - CPUINFO_INT_REGISTER]);
+ return;
+ }
+ else if (state >= CPUINFO_STR_REGISTER && state <= CPUINFO_STR_REGISTER_LAST)
+ {
+ cinfo.s = info->s;
+ get_register_string_value(device, classdata->state->baseptr, classdata->regstate[state - CPUINFO_STR_REGISTER], cinfo.s);
+ info->s = cinfo.s;
+ return;
+ }
+ }
+ }
+
/* integer data */
if (state >= DEVINFO_INT_FIRST && state <= DEVINFO_INT_LAST)
{
@@ -1471,3 +1534,333 @@ static void register_save_states(const device_config *device)
}
}
+
+/*-------------------------------------------------
+ get_register_value - return a register value
+ of a CPU using the state table
+-------------------------------------------------*/
+
+static UINT64 get_register_value(const device_config *device, void *baseptr, const cpu_state_entry *entry)
+{
+ void *dataptr;
+ UINT64 result;
+
+ /* NULL entry returns 0 */
+ if (entry == NULL || baseptr == NULL)
+ return 0;
+
+ /* if we have an exporter, call it now */
+ if ((entry->flags & CPUSTATE_EXPORT) != 0)
+ {
+ cpu_state_io_func exportcb = (cpu_state_io_func)device_get_info_fct(device, CPUINFO_FCT_EXPORT_STATE);
+ assert(exportcb != NULL);
+ (*exportcb)(device, baseptr, entry);
+ }
+
+ /* pick up the value */
+ dataptr = (UINT8 *)baseptr + entry->dataoffs;
+ switch (entry->datasize)
+ {
+ default:
+ case 1: result = *(UINT8 *)dataptr; break;
+ case 2: result = *(UINT16 *)dataptr; break;
+ case 4: result = *(UINT32 *)dataptr; break;
+ case 8: result = *(UINT64 *)dataptr; break;
+ }
+ return result & entry->mask;
+}
+
+
+/*-------------------------------------------------
+ set_register_value - set the value of a
+ CPU register using the state table
+-------------------------------------------------*/
+
+static void set_register_value(const device_config *device, void *baseptr, const cpu_state_entry *entry, UINT64 value)
+{
+ void *dataptr;
+
+ /* NULL entry is a no-op */
+ if (entry == NULL || baseptr == NULL)
+ return;
+
+ /* apply the mask */
+ value &= entry->mask;
+
+ /* sign-extend if necessary */
+ if ((entry->flags & CPUSTATE_IMPORT_SEXT) != 0 && value > (entry->mask >> 1))
+ value |= ~entry->mask;
+
+ /* store the value */
+ dataptr = (UINT8 *)baseptr + entry->dataoffs;
+ switch (entry->datasize)
+ {
+ default:
+ case 1: *(UINT8 *)dataptr = value; break;
+ case 2: *(UINT16 *)dataptr = value; break;
+ case 4: *(UINT32 *)dataptr = value; break;
+ case 8: *(UINT64 *)dataptr = value; break;
+ }
+
+ /* if we have an importer, call it now */
+ if ((entry->flags & CPUSTATE_IMPORT) != 0)
+ {
+ cpu_state_io_func importcb = (cpu_state_io_func)device_get_info_fct(device, CPUINFO_FCT_IMPORT_STATE);
+ assert(importcb != NULL);
+ (*importcb)(device, baseptr, entry);
+ }
+}
+
+
+/*-------------------------------------------------
+ get_register_string_value - return a string
+ representation of a CPU register using the
+ state table
+-------------------------------------------------*/
+
+static void get_register_string_value(const device_config *device, void *baseptr, const cpu_state_entry *entry, char *dest)
+{
+ static const UINT64 decdivisor[] = {
+ 1, 10, 100, 1000, 10000, 100000, 1000000, 10000000, 100000000, 1000000000,
+ U64(10000000000), U64(100000000000), U64(1000000000000),
+ U64(10000000000000), U64(100000000000000), U64(1000000000000000),
+ U64(10000000000000000), U64(100000000000000000), U64(1000000000000000000),
+ U64(10000000000000000000)
+ };
+ static const char hexchars[] = "0123456789ABCDEF";
+ int leadzero = 0, width = 0, percent = 0, explicitsign = 0, hitnonzero = 0, reset;
+ const char *fptr;
+ UINT64 result;
+
+ /* NULL entry does nothing */
+ if (entry == NULL || entry->symbol == NULL || entry->format == NULL)
+ return;
+
+ /* fetch the data */
+ result = get_register_value(device, baseptr, entry);
+
+ /* start with the basics */
+ dest += sprintf(dest, "%s%s:", (entry->flags & CPUSTATE_NOSHOW) ? "~" : "", entry->symbol);
+
+ /* parse the format */
+ reset = TRUE;
+ for (fptr = entry->format; *fptr != 0; fptr++)
+ {
+ int digitnum;
+
+ /* reset any accumulated state */
+ if (reset)
+ leadzero = width = percent = explicitsign = reset = 0;
+
+ /* if we're not within a format, then anything other than a % outputs directly */
+ if (!percent && *fptr != '%')
+ {
+ *dest++ = *fptr;
+ continue;
+ }
+
+ /* handle each character in turn */
+ switch (*fptr)
+ {
+ /* % starts a format; %% outputs a single % */
+ case '%':
+ if (!percent)
+ percent = TRUE;
+ else
+ {
+ *dest++ = *fptr;
+ percent = FALSE;
+ }
+ break;
+
+ /* 0 means insert leading 0s, unless it follows another width digit */
+ case '0':
+ if (width == 0)
+ leadzero = TRUE;
+ else
+ width *= 10;
+ break;
+
+ /* 1-9 accumulate into the width */
+ case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ width = width * 10 + (*fptr - '0');
+ break;
+
+ /* + means explicit sign */
+ case '+':
+ explicitsign = TRUE;
+ break;
+
+ /* X outputs as hexadecimal */
+ case 'X':
+ if (width == 0)
+ fatalerror("Width required for %%X formats\n");
+ hitnonzero = FALSE;
+ while (leadzero && width > 16)
+ {
+ *dest++ = ' ';
+ width--;
+ }
+ for (digitnum = 15; digitnum >= 0; digitnum--)
+ {
+ int digit = (result >> (4 * digitnum)) & 0x0f;
+ if (digit != 0)
+ *dest++ = hexchars[digit];
+ else if (hitnonzero || (leadzero && digitnum < width) || digitnum == 0)
+ *dest++ = '0';
+ hitnonzero |= digit;
+ }
+ reset = TRUE;
+ break;
+
+ /* d outputs as signed decimal */
+ case 'd':
+ if (width == 0)
+ fatalerror("Width required for %%d formats\n");
+ if ((result & entry->mask) > (entry->mask >> 1))
+ {
+ result = -result & entry->mask;
+ *dest++ = '-';
+ width--;
+ }
+ else if (explicitsign)
+ {
+ *dest++ = '+';
+ width--;
+ }
+ /* fall through to unsigned case */
+
+ /* u outputs as unsigned decimal */
+ case 'u':
+ if (width == 0)
+ fatalerror("Width required for %%u formats\n");
+ hitnonzero = FALSE;
+ while (leadzero && width > ARRAY_LENGTH(decdivisor))
+ {
+ *dest++ = ' ';
+ width--;
+ }
+ for (digitnum = ARRAY_LENGTH(decdivisor); digitnum >= 0; digitnum--)
+ {
+ int digit = (result >= decdivisor[digitnum]) ? (result / decdivisor[digitnum]) % 10 : 0;
+ if (digit != 0)
+ *dest++ = '0' + digit;
+ else if (hitnonzero || (leadzero && digitnum < width) || digitnum == 0)
+ *dest++ = '0';
+ hitnonzero |= digit;
+ }
+ reset = TRUE;
+ break;
+
+ /* s is a custom format */
+ case 's':
+ {
+ cpu_string_io_func exportstring = (cpu_string_io_func)device_get_info_fct(device, CPUINFO_FCT_EXPORT_STRING);
+ assert(exportstring != NULL);
+ (*exportstring)(device, baseptr, entry, dest);
+ dest += strlen(dest);
+ break;
+ }
+
+ /* other formats unknown */
+ default:
+ fatalerror("Unknown format character '%c'\n", *fptr);
+ break;
+ }
+ }
+ *dest = 0;
+}
+
+
+/*-------------------------------------------------
+ get_register_string_max_width - return the
+ maximum width of a string described by a
+ format
+-------------------------------------------------*/
+
+#ifdef UNUSED_FUNCTION
+static int get_register_string_max_width(const device_config *device, void *baseptr, const cpu_state_entry *entry)
+{
+ int leadzero = 0, width = 0, percent = 0, explicitsign = 0, reset;
+ int totalwidth = 0;
+ const char *fptr;
+
+ /* NULL entry does nothing */
+ if (entry == NULL || entry->symbol == NULL || entry->format == NULL)
+ return 0;
+
+ /* parse the format */
+ reset = TRUE;
+ for (fptr = entry->format; *fptr != 0; fptr++)
+ {
+ /* reset any accumulated state */
+ if (reset)
+ leadzero = width = percent = explicitsign = reset = 0;
+
+ /* if we're not within a format, then anything other than a % outputs directly */
+ if (!percent && *fptr != '%')
+ {
+ totalwidth++;
+ continue;
+ }
+
+ /* handle each character in turn */
+ switch (*fptr)
+ {
+ /* % starts a format; %% outputs a single % */
+ case '%':
+ if (!percent)
+ percent = TRUE;
+ else
+ {
+ totalwidth++;
+ percent = FALSE;
+ }
+ break;
+
+ /* 0 means insert leading 0s, unless it follows another width digit */
+ case '0':
+ if (width == 0)
+ leadzero = TRUE;
+ else
+ width *= 10;
+ break;
+
+ /* 1-9 accumulate into the width */
+ case '1': case '2': case '3': case '4': case '5':
+ case '6': case '7': case '8': case '9':
+ width = width * 10 + (*fptr - '0');
+ break;
+
+ /* + means explicit sign */
+ case '+':
+ explicitsign = TRUE;
+ break;
+
+ /* X outputs as hexadecimal */
+ /* d outputs as signed decimal */
+ /* u outputs as unsigned decimal */
+ /* s outputs as custom format */
+ case 'X':
+ case 'd':
+ case 'u':
+ case 's':
+ totalwidth += width;
+ reset = TRUE;
+ break;
+
+ if (width == 0)
+ fatalerror("Width required for %%d formats\n");
+ totalwidth += width;
+ break;
+
+ /* other formats unknown */
+ default:
+ fatalerror("Unknown format character '%c'\n", *fptr);
+ break;
+ }
+ }
+ return totalwidth;
+}
+#endif
diff --git a/src/emu/cpuintrf.h b/src/emu/cpuintrf.h
index 55f850dd117..3e707357341 100644
--- a/src/emu/cpuintrf.h
+++ b/src/emu/cpuintrf.h
@@ -18,6 +18,7 @@
#include "memory.h"
#include "watchdog.h"
#include "state.h"
+#include <stddef.h>
// mingw has this defined for 32-bit compiles
@@ -67,7 +68,11 @@ enum
/* Maximum number of registers of any CPU */
enum
{
- MAX_REGS = 256
+ MAX_REGS = 256,
+
+ REG_GENPCBASE = MAX_REGS - 1,
+ REG_GENPC = MAX_REGS - 2,
+ REG_GENSP = MAX_REGS - 3
};
@@ -101,14 +106,14 @@ enum
CPUINFO_INT_PAGE_SHIFT, /* R/O: size of a page log 2 (i.e., 12=4096), or 0 if paging not supported */
CPUINFO_INT_PAGE_SHIFT_LAST = CPUINFO_INT_PAGE_SHIFT + ADDRESS_SPACES - 1,
- CPUINFO_INT_SP, /* R/W: the current stack pointer value */
- CPUINFO_INT_PC, /* R/W: the current PC value */
- CPUINFO_INT_PREVIOUSPC, /* R/W: the previous PC value */
CPUINFO_INT_INPUT_STATE, /* R/W: states for each input line */
CPUINFO_INT_INPUT_STATE_LAST = CPUINFO_INT_INPUT_STATE + MAX_INPUT_LINES - 1,
CPUINFO_INT_OUTPUT_STATE, /* R/W: states for each output line */
CPUINFO_INT_OUTPUT_STATE_LAST = CPUINFO_INT_OUTPUT_STATE + MAX_OUTPUT_LINES - 1,
CPUINFO_INT_REGISTER, /* R/W: values of up to MAX_REGs registers */
+ CPUINFO_INT_SP = CPUINFO_INT_REGISTER + REG_GENSP, /* R/W: the current stack pointer value */
+ CPUINFO_INT_PC = CPUINFO_INT_REGISTER + REG_GENPC, /* R/W: the current PC value */
+ CPUINFO_INT_PREVIOUSPC = CPUINFO_INT_REGISTER + REG_GENPCBASE, /* R/W: the previous PC value */
CPUINFO_INT_REGISTER_LAST = CPUINFO_INT_REGISTER + MAX_REGS - 1,
CPUINFO_INT_CPU_SPECIFIC = 0x08000, /* R/W: CPU-specific values start here */
@@ -121,7 +126,7 @@ enum
/* R/O: int *icount */
CPUINFO_PTR_INTERNAL_MEMORY_MAP, /* R/O: const addrmap_token *map */
CPUINFO_PTR_INTERNAL_MEMORY_MAP_LAST = CPUINFO_PTR_INTERNAL_MEMORY_MAP + ADDRESS_SPACES - 1,
- CPUINFO_PTR_DEBUG_REGISTER_LIST, /* R/O: int *list: list of registers for the debugger */
+ CPUINFO_PTR_STATE_TABLE, /* R/O: cpu_state_table *state */
CPUINFO_PTR_CPU_SPECIFIC = DEVINFO_PTR_DEVICE_SPECIFIC, /* R/W: CPU-specific values start here */
@@ -142,6 +147,10 @@ enum
CPUINFO_PTR_READOP, /* R/O: int (*readop)(const device_config *device, UINT32 offset, int size, UINT64 *value) */
CPUINFO_PTR_DEBUG_INIT, /* R/O: void (*debug_init)(const device_config *device) */
CPUINFO_PTR_VALIDITY_CHECK, /* R/O: int (*validity_check)(const game_driver *driver, const void *config) */
+ CPUINFO_FCT_IMPORT_STATE, /* R/O: void (*import_state)(const device_config *device, void *baseptr, const cpu_state_entry *entry) */
+ CPUINFO_FCT_EXPORT_STATE, /* R/O: void (*export_state)(const device_config *device, void *baseptr, const cpu_state_entry *entry) */
+ CPUINFO_FCT_IMPORT_STRING, /* R/O: void (*import_string)(const device_config *device, void *baseptr, const cpu_state_entry *entry, const char *format, char *string) */
+ CPUINFO_FCT_EXPORT_STRING, /* R/O: void (*export_string)(const device_config *device, void *baseptr, const cpu_state_entry *entry, const char *format, char *string) */
CPUINFO_FCT_CPU_SPECIFIC = DEVINFO_FCT_DEVICE_SPECIFIC, /* R/W: CPU-specific values start here */
@@ -164,24 +173,6 @@ enum
};
-/* get_reg/set_reg constants */
-enum
-{
- /* This value is passed to cpu_get_reg to retrieve the previous
- * program counter value, ie. before a CPU emulation started
- * to fetch opcodes and arguments for the current instrution. */
- REG_PREVIOUSPC = CPUINFO_INT_PREVIOUSPC - CPUINFO_INT_REGISTER,
-
- /* This value is passed to cpu_get_reg to retrieve the current
- * program counter value. */
- REG_PC = CPUINFO_INT_PC - CPUINFO_INT_REGISTER,
-
- /* This value is passed to cpu_get_reg to retrieve the current
- * stack pointer value. */
- REG_SP = CPUINFO_INT_SP - CPUINFO_INT_REGISTER
-};
-
-
/* Translation intentions */
#define TRANSLATE_TYPE_MASK 0x03 /* read write or fetch */
#define TRANSLATE_USER_MASK 0x04 /* user mode or fully privileged */
@@ -208,6 +199,13 @@ enum
#define DASMFLAG_STEP_OVER_EXTRA(x) ((x) << DASMFLAG_OVERINSTSHIFT)
+/* state table flags */
+#define CPUSTATE_NOSHOW 0x01 /* don't display this entry in the registers view */
+#define CPUSTATE_IMPORT 0x02 /* call the import function after writing new data */
+#define CPUSTATE_IMPORT_SEXT 0x04 /* sign-extend the data when writing new data */
+#define CPUSTATE_EXPORT 0x08 /* call the export function prior to fetching the data */
+
+
/***************************************************************************
MACROS
@@ -215,62 +213,78 @@ enum
#define IRQ_CALLBACK(func) int func(const device_config *device, int irqline)
-#define CPU_GET_INFO_NAME(name) cpu_get_info_##name
-#define CPU_GET_INFO(name) void CPU_GET_INFO_NAME(name)(const device_config *device, UINT32 state, cpuinfo *info)
-#define CPU_GET_INFO_CALL(name) CPU_GET_INFO_NAME(name)(device, state, info)
+#define CPU_GET_INFO_NAME(name) cpu_get_info_##name
+#define CPU_GET_INFO(name) void CPU_GET_INFO_NAME(name)(const device_config *device, UINT32 state, cpuinfo *info)
+#define CPU_GET_INFO_CALL(name) CPU_GET_INFO_NAME(name)(device, state, info)
-#define CPU_SET_INFO_NAME(name) cpu_set_info_##name
-#define CPU_SET_INFO(name) void CPU_SET_INFO_NAME(name)(const device_config *device, UINT32 state, cpuinfo *info)
-#define CPU_SET_INFO_CALL(name) CPU_SET_INFO_NAME(name)(device, state, info)
+#define CPU_SET_INFO_NAME(name) cpu_set_info_##name
+#define CPU_SET_INFO(name) void CPU_SET_INFO_NAME(name)(const device_config *device, UINT32 state, cpuinfo *info)
+#define CPU_SET_INFO_CALL(name) CPU_SET_INFO_NAME(name)(device, state, info)
-#define CPU_INIT_NAME(name) cpu_init_##name
-#define CPU_INIT(name) void CPU_INIT_NAME(name)(const device_config *device, cpu_irq_callback irqcallback)
-#define CPU_INIT_CALL(name) CPU_INIT_NAME(name)(device, irqcallback)
+#define CPU_INIT_NAME(name) cpu_init_##name
+#define CPU_INIT(name) void CPU_INIT_NAME(name)(const device_config *device, cpu_irq_callback irqcallback)
+#define CPU_INIT_CALL(name) CPU_INIT_NAME(name)(device, irqcallback)
-#define CPU_RESET_NAME(name) cpu_reset_##name
-#define CPU_RESET(name) void CPU_RESET_NAME(name)(const device_config *device)
-#define CPU_RESET_CALL(name) CPU_RESET_NAME(name)(device)
+#define CPU_RESET_NAME(name) cpu_reset_##name
+#define CPU_RESET(name) void CPU_RESET_NAME(name)(const device_config *device)
+#define CPU_RESET_CALL(name) CPU_RESET_NAME(name)(device)
-#define CPU_EXIT_NAME(name) cpu_exit_##name
-#define CPU_EXIT(name) void CPU_EXIT_NAME(name)(const device_config *device)
-#define CPU_EXIT_CALL(name) CPU_EXIT_NAME(name)(device)
+#define CPU_EXIT_NAME(name) cpu_exit_##name
+#define CPU_EXIT(name) void CPU_EXIT_NAME(name)(const device_config *device)
+#define CPU_EXIT_CALL(name) CPU_EXIT_NAME(name)(device)
-#define CPU_EXECUTE_NAME(name) cpu_execute_##name
-#define CPU_EXECUTE(name) int CPU_EXECUTE_NAME(name)(const device_config *device, int cycles)
-#define CPU_EXECUTE_CALL(name) CPU_EXECUTE_NAME(name)(device, cycles)
+#define CPU_EXECUTE_NAME(name) cpu_execute_##name
+#define CPU_EXECUTE(name) int CPU_EXECUTE_NAME(name)(const device_config *device, int cycles)
+#define CPU_EXECUTE_CALL(name) CPU_EXECUTE_NAME(name)(device, cycles)
-#define CPU_BURN_NAME(name) cpu_burn_##name
-#define CPU_BURN(name) void CPU_BURN_NAME(name)(const device_config *device, int cycles)
-#define CPU_BURN_CALL(name) CPU_BURN_NAME(name)(device, cycles)
+#define CPU_BURN_NAME(name) cpu_burn_##name
+#define CPU_BURN(name) void CPU_BURN_NAME(name)(const device_config *device, int cycles)
+#define CPU_BURN_CALL(name) CPU_BURN_NAME(name)(device, cycles)
-#define CPU_TRANSLATE_NAME(name) cpu_translate_##name
-#define CPU_TRANSLATE(name) int CPU_TRANSLATE_NAME(name)(const device_config *device, int space, int intention, offs_t *address)
-#define CPU_TRANSLATE_CALL(name) CPU_TRANSLATE_NAME(name)(device, space, intention, address)
+#define CPU_TRANSLATE_NAME(name) cpu_translate_##name
+#define CPU_TRANSLATE(name) int CPU_TRANSLATE_NAME(name)(const device_config *device, int space, int intention, offs_t *address)
+#define CPU_TRANSLATE_CALL(name) CPU_TRANSLATE_NAME(name)(device, space, intention, address)
-#define CPU_READ_NAME(name) cpu_read_##name
-#define CPU_READ(name) int CPU_READ_NAME(name)(const device_config *device, int space, UINT32 offset, int size, UINT64 *value)
-#define CPU_READ_CALL(name) CPU_READ_NAME(name)(device, space, offset, size, value)
+#define CPU_READ_NAME(name) cpu_read_##name
+#define CPU_READ(name) int CPU_READ_NAME(name)(const device_config *device, int space, UINT32 offset, int size, UINT64 *value)
+#define CPU_READ_CALL(name) CPU_READ_NAME(name)(device, space, offset, size, value)
-#define CPU_WRITE_NAME(name) cpu_write_##name
-#define CPU_WRITE(name) int CPU_WRITE_NAME(name)(const device_config *device, int space, UINT32 offset, int size, UINT64 value)
-#define CPU_WRITE_CALL(name) CPU_WRITE_NAME(name)(device, space, offset, size, value)
+#define CPU_WRITE_NAME(name) cpu_write_##name
+#define CPU_WRITE(name) int CPU_WRITE_NAME(name)(const device_config *device, int space, UINT32 offset, int size, UINT64 value)
+#define CPU_WRITE_CALL(name) CPU_WRITE_NAME(name)(device, space, offset, size, value)
-#define CPU_READOP_NAME(name) cpu_readop_##name
-#define CPU_READOP(name) int CPU_READOP_NAME(name)(const device_config *device, UINT32 offset, int size, UINT64 *value)
-#define CPU_READOP_CALL(name) CPU_READOP_NAME(name)(device, offset, size, value)
+#define CPU_READOP_NAME(name) cpu_readop_##name
+#define CPU_READOP(name) int CPU_READOP_NAME(name)(const device_config *device, UINT32 offset, int size, UINT64 *value)
+#define CPU_READOP_CALL(name) CPU_READOP_NAME(name)(device, offset, size, value)
-#define CPU_DEBUG_INIT_NAME(name) cpu_debug_init_##name
-#define CPU_DEBUG_INIT(name) void CPU_DEBUG_INIT_NAME(name)(const device_config *device)
-#define CPU_DEBUG_INIT_CALL(name) CPU_DEBUG_INIT_NAME(name)(device)
+#define CPU_DEBUG_INIT_NAME(name) cpu_debug_init_##name
+#define CPU_DEBUG_INIT(name) void CPU_DEBUG_INIT_NAME(name)(const device_config *device)
+#define CPU_DEBUG_INIT_CALL(name) CPU_DEBUG_INIT_NAME(name)(device)
-#define CPU_DISASSEMBLE_NAME(name) cpu_disassemble_##name
-#define CPU_DISASSEMBLE(name) offs_t CPU_DISASSEMBLE_NAME(name)(const device_config *device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram)
-#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(device, buffer, pc, oprom, opram)
+#define CPU_DISASSEMBLE_NAME(name) cpu_disassemble_##name
+#define CPU_DISASSEMBLE(name) offs_t CPU_DISASSEMBLE_NAME(name)(const device_config *device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram)
+#define CPU_DISASSEMBLE_CALL(name) CPU_DISASSEMBLE_NAME(name)(device, buffer, pc, oprom, opram)
#define CPU_VALIDITY_CHECK_NAME(name) cpu_validity_check_##name
#define CPU_VALIDITY_CHECK(name) int CPU_VALIDITY_CHECK_NAME(name)(const game_driver *driver, const void *config)
#define CPU_VALIDITY_CHECK_CALL(name) CPU_VALIDITY_CHECK_NAME(name)(driver, config)
+#define CPU_IMPORT_STATE_NAME(name) cpu_state_import_##name
+#define CPU_IMPORT_STATE(name) void CPU_IMPORT_STATE_NAME(name)(const device_config *device, void *baseptr, const cpu_state_entry *entry)
+#define CPU_IMPORT_STATE_CALL(name) CPU_IMPORT_STATE_NAME(name)(device, baseptr, entry)
+
+#define CPU_EXPORT_STATE_NAME(name) cpu_state_export_##name
+#define CPU_EXPORT_STATE(name) void CPU_EXPORT_STATE_NAME(name)(const device_config *device, void *baseptr, const cpu_state_entry *entry)
+#define CPU_EXPORT_STATE_CALL(name) CPU_EXPORT_STATE_NAME(name)(device, baseptr, entry)
+
+#define CPU_IMPORT_STRING_NAME(name) cpu_string_import_##name
+#define CPU_IMPORT_STRING(name) void CPU_IMPORT_STRING_NAME(name)(const device_config *device, void *baseptr, const cpu_state_entry *entry, char *string)
+#define CPU_IMPORT_STRING_CALL(name) CPU_IMPORT_STRING_NAME(name)(device, baseptr, entry, string)
+
+#define CPU_EXPORT_STRING_NAME(name) cpu_string_export_##name
+#define CPU_EXPORT_STRING(name) void CPU_EXPORT_STRING_NAME(name)(const device_config *device, void *baseptr, const cpu_state_entry *entry, char *string)
+#define CPU_EXPORT_STRING_CALL(name) CPU_EXPORT_STRING_NAME(name)(device, baseptr, entry, string)
+
#define cpu_get_index(cpu) device_list_index((cpu)->machine->config->devicelist, CPU, (cpu)->tag)
@@ -294,11 +308,11 @@ enum
#define cpu_get_logaddr_width(cpu, space) device_get_info_int(cpu, CPUINFO_INT_LOGADDR_WIDTH + (space))
#define cpu_get_page_shift(cpu, space) device_get_info_int(cpu, CPUINFO_INT_PAGE_SHIFT + (space))
#define cpu_get_reg(cpu, reg) device_get_info_int(cpu, CPUINFO_INT_REGISTER + (reg))
-#define cpu_get_previouspc(cpu) ((offs_t)cpu_get_reg(cpu, REG_PREVIOUSPC))
-#define cpu_get_pc(cpu) ((offs_t)cpu_get_reg(cpu, REG_PC))
-#define cpu_get_sp(cpu) cpu_get_reg(cpu, REG_SP)
+#define cpu_get_previouspc(cpu) ((offs_t)cpu_get_reg(cpu, REG_GENPCBASE))
+#define cpu_get_pc(cpu) ((offs_t)cpu_get_reg(cpu, REG_GENPC))
+#define cpu_get_sp(cpu) cpu_get_reg(cpu, REG_GENSP)
#define cpu_get_icount_ptr(cpu) (int *)device_get_info_ptr(cpu, CPUINFO_PTR_INSTRUCTION_COUNTER)
-#define cpu_get_debug_register_list(cpu) device_get_info_ptr(cpu, CPUINFO_PTR_DEBUG_REGISTER_LIST)
+#define cpu_get_state_table(cpu) (const cpu_state_table *)device_get_info_ptr(cpu, CPUINFO_PTR_STATE_TABLE)
#define cpu_get_name(cpu) device_get_info_string(cpu, CPUINFO_STR_NAME)
#define cpu_get_core_family(cpu) device_get_info_string(cpu, CPUINFO_STR_CORE_FAMILY)
#define cpu_get_core_version(cpu) device_get_info_string(cpu, CPUINFO_STR_CORE_VERSION)
@@ -316,6 +330,10 @@ enum
#define cputag_get_address_space(mach, tag, space) cpu_get_address_space(cputag_get_cpu(mach, tag), space)
+#define CPU_STATE_ENTRY(_index, _symbol, _format, _struct, _member, _datamask, _validmask, _flags) \
+ { _index, _validmask, offsetof(_struct, _member), _datamask, sizeof(((_struct *)0)->_member), _flags, _symbol, _format },
+
+
/***************************************************************************
TYPE DEFINITIONS
@@ -325,8 +343,9 @@ enum
typedef struct _cpu_debug_data cpu_debug_data;
-/* forward declaration of this union */
+/* forward declaration of types */
typedef union _cpuinfo cpuinfo;
+typedef struct _cpu_state_entry cpu_state_entry;
/* define the various callback functions */
@@ -346,6 +365,33 @@ typedef int (*cpu_readop_func)(const device_config *device, UINT32 offset, int s
typedef void (*cpu_debug_init_func)(const device_config *device);
typedef offs_t (*cpu_disassemble_func)(const device_config *device, char *buffer, offs_t pc, const UINT8 *oprom, const UINT8 *opram);
typedef int (*cpu_validity_check_func)(const game_driver *driver, const void *config);
+typedef void (*cpu_state_io_func)(const device_config *device, void *baseptr, const cpu_state_entry *entry);
+typedef void (*cpu_string_io_func)(const device_config *device, void *baseptr, const cpu_state_entry *entry, char *string);
+
+
+/* structure describing a single item of exposed CPU state */
+struct _cpu_state_entry
+{
+ UINT32 index; /* state index this entry applies to */
+ UINT32 validmask; /* mask for which CPU subtypes this entry is valid */
+ FPTR dataoffs; /* offset to the data, relative to the baseptr */
+ UINT64 mask; /* mask applied to the data */
+ UINT8 datasize; /* size of the data item in memory */
+ UINT8 flags; /* flags */
+ const char * symbol; /* symbol for display; all lower-case version for expressions */
+ const char * format; /* supported formats */
+};
+
+
+/* structure describing a table of exposed CPU state */
+typedef struct _cpu_state_table cpu_state_table;
+struct _cpu_state_table
+{
+ void * baseptr; /* pointer to the base of state (offsets are relative to this) */
+ UINT32 subtypemask; /* mask of subtypes that apply to this CPU */
+ UINT32 entrycount; /* number of entries */
+ const cpu_state_entry * entrylist; /* array of entries */
+};
/* a cpu_type is just a pointer to the CPU's get_info function */
@@ -373,7 +419,12 @@ union _cpuinfo
cpu_debug_init_func debug_init; /* CPUINFO_PTR_DEBUG_INIT */
cpu_disassemble_func disassemble; /* CPUINFO_PTR_DISASSEMBLE */
cpu_validity_check_func validity_check; /* CPUINFO_PTR_VALIDITY_CHECK */
+ cpu_state_io_func import_state; /* CPUINFO_FCT_IMPORT_STATE */
+ cpu_state_io_func export_state; /* CPUINFO_FCT_EXPORT_STATE */
+ cpu_string_io_func import_string; /* CPUINFO_FCT_IMPORT_STRING */
+ cpu_string_io_func export_string; /* CPUINFO_FCT_EXPORT_STRING */
int * icount; /* CPUINFO_PTR_INSTRUCTION_COUNTER */
+ const cpu_state_table * state_table; /* CPUINFO_PTR_STATE_TABLE */
const addrmap8_token * internal_map8; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
const addrmap16_token * internal_map16; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
const addrmap32_token * internal_map32; /* CPUINFO_PTR_INTERNAL_MEMORY_MAP */
@@ -385,8 +436,8 @@ union _cpuinfo
typedef struct _cpu_class_header cpu_class_header;
struct _cpu_class_header
{
- cpu_debug_data * debug; /* debugging data */
- const address_space * space[ADDRESS_SPACES]; /* address spaces */
+ cpu_debug_data * debug; /* debugging data */
+ const address_space * space[ADDRESS_SPACES]; /* address spaces */
/* table of core functions */
cpu_set_info_func set_info;
diff --git a/src/emu/debug/debugcpu.c b/src/emu/debug/debugcpu.c
index 95ecfc666cc..bcc993bb4e4 100644
--- a/src/emu/debug/debugcpu.c
+++ b/src/emu/debug/debugcpu.c
@@ -79,12 +79,6 @@ struct _debugcpu_private
/***************************************************************************
- LOCAL VARIABLES
-***************************************************************************/
-
-
-
-/***************************************************************************
FUNCTION PROTOTYPES
***************************************************************************/
@@ -214,7 +208,6 @@ void debug_cpu_init(running_machine *machine)
info->symtable = symtable_alloc(global->symtable, (void *)cpu);
/* add a global symbol for the current instruction pointer */
- symtable_add_register(info->symtable, "curpc", NULL, get_current_pc, 0);
symtable_add_register(info->symtable, "cycles", NULL, get_cycles, NULL);
if (classheader->space[ADDRESS_SPACE_PROGRAM] != NULL)
symtable_add_register(info->symtable, "logunmap", (void *)classheader->space[ADDRESS_SPACE_PROGRAM], get_logunmap, set_logunmap);
@@ -249,6 +242,10 @@ void debug_cpu_init(running_machine *machine)
/* add the symbol to the table */
symtable_add_register(info->symtable, symname, (void *)(FPTR)regnum, get_cpu_reg, set_cpu_reg);
}
+
+ /* if no curpc, add one */
+ if (symtable_find(info->symtable, "curpc") == NULL)
+ symtable_add_register(info->symtable, "curpc", NULL, get_current_pc, 0);
}
/* first CPU is visible by default */
@@ -319,7 +316,7 @@ int debug_cpu_within_instruction_hook(running_machine *machine)
int debug_cpu_is_stopped(running_machine *machine)
{
debugcpu_private *global = machine->debugcpu_data;
- return global->execution_state == EXECUTION_STATE_STOPPED;
+ return (global != NULL) ? (global->execution_state == EXECUTION_STATE_STOPPED) : FALSE;
}
diff --git a/src/emu/debug/debugvw.c b/src/emu/debug/debugvw.c
index 7c60e86b0a0..97ddbb37ed8 100644
--- a/src/emu/debug/debugvw.c
+++ b/src/emu/debug/debugvw.c
@@ -1185,12 +1185,12 @@ static void registers_view_recompute(debug_view *view)
{
debug_view_registers *regdata = view->extra_data;
int regnum, maxtaglen, maxvallen;
- const int *list;
+ const cpu_state_table *table;
/* if no CPU, reset to the first one */
if (regdata->device == NULL)
regdata->device = view->machine->cpu[0];
- list = cpu_get_debug_register_list(regdata->device);
+ table = cpu_get_state_table(regdata->device);
/* reset the view parameters */
view->topleft.y = 0;
@@ -1264,15 +1264,20 @@ static void registers_view_recompute(debug_view *view)
int regid;
/* identify the register id */
- regid = list ? list[regnum] : regnum;
- if (regid < 0)
- break;
+ if (table != NULL)
+ {
+ if (regnum >= table->entrycount)
+ break;
+ regid = table->entrylist[regnum].index;
+ }
+ else
+ regid = regnum;
/* retrieve the string for this register */
str = cpu_get_reg_string(regdata->device, regid);
/* did we get a string? */
- if (str && str[0] != '\0' && str[0] != '~')
+ if (str != NULL && str[0] != 0 && str[0] != '~')
registers_view_add_register(view, regid, str);
}
diff --git a/src/emu/debug/express.c b/src/emu/debug/express.c
index ccba47c0547..61c20861abc 100644
--- a/src/emu/debug/express.c
+++ b/src/emu/debug/express.c
@@ -1953,6 +1953,8 @@ int symtable_add(symbol_table *table, const char *name, const symbol_entry *entr
int strindex;
int all_digits, i;
+ assert_always(entry->table == table, "Mismatched symbol tables");
+
/* we cannot add numeric symbols */
all_digits = TRUE;
for (i = 0; name[i]; i++)
@@ -2018,6 +2020,7 @@ int symtable_add_register(symbol_table *table, const char *name, void *symref, s
symbol.type = SMT_REGISTER;
symbol.info.reg.getter = getter;
symbol.info.reg.setter = setter;
+ symbol.table = table;
return symtable_add(table, name, &symbol);
}
@@ -2036,6 +2039,7 @@ int symtable_add_function(symbol_table *table, const char *name, void *symref, U
symbol.info.func.minparams = minparams;
symbol.info.func.maxparams = maxparams;
symbol.info.func.execute = execute;
+ symbol.table = table;
return symtable_add(table, name, &symbol);
}
@@ -2052,6 +2056,7 @@ int symtable_add_value(symbol_table *table, const char *name, UINT64 value)
symbol.ref = NULL;
symbol.type = SMT_VALUE;
symbol.info.gen.value = value;
+ symbol.table = table;
return symtable_add(table, name, &symbol);
}
diff --git a/src/emu/devintrf.c b/src/emu/devintrf.c
index d35216b9330..36586bdb22a 100644
--- a/src/emu/devintrf.c
+++ b/src/emu/devintrf.c
@@ -50,7 +50,7 @@ static void device_list_reset(running_machine *machine);
a temporary string buffer
-------------------------------------------------*/
-INLINE char *get_temp_string_buffer(void)
+char *get_temp_string_buffer(void)
{
char *string = &temp_string_pool[temp_string_pool_index++ % TEMP_STRING_POOL_ENTRIES][0];
string[0] = 0;
diff --git a/src/emu/devintrf.h b/src/emu/devintrf.h
index d805b9cf0f9..b7cb0c17ad5 100644
--- a/src/emu/devintrf.h
+++ b/src/emu/devintrf.h
@@ -212,7 +212,7 @@ union _deviceinfo
INT64 i; /* generic integers */
void * p; /* generic pointers */
genf * f; /* generic function pointers */
- const char * s; /* generic strings */
+ char * s; /* generic strings */
device_set_info_func set_info; /* DEVINFO_FCT_SET_INFO */
device_start_func start; /* DEVINFO_FCT_START */
diff --git a/src/emu/machine/6522via.c b/src/emu/machine/6522via.c
index 45ed7bec0a2..4418111badf 100644
--- a/src/emu/machine/6522via.c
+++ b/src/emu/machine/6522via.c
@@ -1219,10 +1219,10 @@ DEVICE_GET_INFO(via6522)
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(via6522); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "6522 VIA"; break;
- case DEVINFO_STR_FAMILY: info->s = "6522 VIA"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "6522 VIA"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "6522 VIA"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
case DEVINFO_STR_CREDITS: /* Nothing */ break;
}
}
diff --git a/src/emu/machine/6526cia.c b/src/emu/machine/6526cia.c
index 27a0b45ae3b..783933d84a4 100644
--- a/src/emu/machine/6526cia.c
+++ b/src/emu/machine/6526cia.c
@@ -854,10 +854,10 @@ DEVICE_GET_INFO(cia6526r1)
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(cia); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "6526 CIA rev1"; break;
- case DEVINFO_STR_FAMILY: info->s = "6526 CIA"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "6526 CIA rev1"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "6526 CIA"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
case DEVINFO_STR_CREDITS: /* Nothing */ break;
}
}
@@ -872,7 +872,7 @@ DEVICE_GET_INFO(cia6526r2)
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "6526 CIA rev2"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "6526 CIA rev2"); break;
default: DEVICE_GET_INFO_CALL(cia6526r1); break;
}
}
@@ -887,7 +887,7 @@ DEVICE_GET_INFO(cia8520)
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "8520 CIA"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "8520 CIA"); break;
default: DEVICE_GET_INFO_CALL(cia6526r1); break;
}
}
diff --git a/src/emu/machine/6532riot.c b/src/emu/machine/6532riot.c
index e651e1fe674..99591077548 100644
--- a/src/emu/machine/6532riot.c
+++ b/src/emu/machine/6532riot.c
@@ -518,10 +518,10 @@ DEVICE_GET_INFO( riot6532 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(riot6532);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "6532 (RIOT)"; break;
- case DEVINFO_STR_FAMILY: info->s = "I/O devices"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "6532 (RIOT)"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "I/O devices"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/6850acia.c b/src/emu/machine/6850acia.c
index 1851ab7d5f4..fbf90aa4f8a 100644
--- a/src/emu/machine/6850acia.c
+++ b/src/emu/machine/6850acia.c
@@ -862,10 +862,10 @@ DEVICE_GET_INFO( acia6850 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(acia6850); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "6850 ACIA"; break;
- case DEVINFO_STR_FAMILY: info->s = "6850 ACIA"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "6850 ACIA"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "6850 ACIA"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
case DEVINFO_STR_CREDITS: /* Nothing */ break;
}
}
diff --git a/src/emu/machine/68681.c b/src/emu/machine/68681.c
index 4c9efae0857..44143127a16 100644
--- a/src/emu/machine/68681.c
+++ b/src/emu/machine/68681.c
@@ -640,10 +640,10 @@ DEVICE_GET_INFO(duart68681)
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(duart68681);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "DUART 68681"; break;
- case DEVINFO_STR_FAMILY: info->s = "DUART"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "DUART 68681"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "DUART"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/74123.c b/src/emu/machine/74123.c
index 4258ca896cb..475281eb5b0 100644
--- a/src/emu/machine/74123.c
+++ b/src/emu/machine/74123.c
@@ -244,10 +244,10 @@ DEVICE_GET_INFO( ttl74123 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(ttl74123); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "74123"; break;
- case DEVINFO_STR_FAMILY: info->s = "TTL"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "74123"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "TTL"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/8237dma.c b/src/emu/machine/8237dma.c
index 2a56252635f..ebb659aa6f5 100644
--- a/src/emu/machine/8237dma.c
+++ b/src/emu/machine/8237dma.c
@@ -440,11 +440,11 @@ DEVICE_GET_INFO( dma8237 ) {
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(dma8237); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Intel DMA8237"; break;
- case DEVINFO_STR_FAMILY: info->s = "DMA8237"; break;
- case DEVINFO_STR_VERSION: info->s = "1.00"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright the MAME and MESS Teams"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Intel DMA8237"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "DMA8237"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.00"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright the MAME and MESS Teams"); break;
}
}
diff --git a/src/emu/machine/8255ppi.c b/src/emu/machine/8255ppi.c
index 9a2dc39e598..7e191d61bf4 100644
--- a/src/emu/machine/8255ppi.c
+++ b/src/emu/machine/8255ppi.c
@@ -581,11 +581,11 @@ DEVICE_GET_INFO(ppi8255) {
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(ppi8255); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Intel PPI8255"; break;
- case DEVINFO_STR_FAMILY: info->s = "PPI8255"; break;
- case DEVINFO_STR_VERSION: info->s = "1.00"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright the MAME and MESS Teams"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Intel PPI8255"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "PPI8255"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.00"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright the MAME and MESS Teams"); break;
}
}
diff --git a/src/emu/machine/8257dma.c b/src/emu/machine/8257dma.c
index 5587389816d..e508302fe5b 100644
--- a/src/emu/machine/8257dma.c
+++ b/src/emu/machine/8257dma.c
@@ -413,7 +413,7 @@ DEVICE_GET_INFO( dma8257 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(dma8257_t); break;
+ case DEVINFO_INT_TOKEN_BYTES: info->i = sizeof(dma8257_t); break;
case DEVINFO_INT_INLINE_CONFIG_BYTES: info->i = 0; break;
case DEVINFO_INT_CLASS: info->i = DEVICE_CLASS_PERIPHERAL; break;
@@ -424,10 +424,10 @@ DEVICE_GET_INFO( dma8257 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(dma8257);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "DMA8257"; break;
- case DEVINFO_STR_FAMILY: info->s = "DMA controllers"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "DMA8257"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "DMA controllers"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/at28c16.c b/src/emu/machine/at28c16.c
index 567d64f9dbb..c96a8aa1ace 100644
--- a/src/emu/machine/at28c16.c
+++ b/src/emu/machine/at28c16.c
@@ -230,10 +230,10 @@ DEVICE_GET_INFO(at28c16)
case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME(at28c16); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "AT28C16"; break;
- case DEVINFO_STR_FAMILY: info->s = "EEPROM"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "AT28C16"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "EEPROM"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/cdp1852.c b/src/emu/machine/cdp1852.c
index e660ca5803d..404ebdaf7ae 100644
--- a/src/emu/machine/cdp1852.c
+++ b/src/emu/machine/cdp1852.c
@@ -202,10 +202,10 @@ DEVICE_GET_INFO( cdp1852 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(cdp1852); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "RCA CDP1852"; break;
- case DEVINFO_STR_FAMILY: info->s = "RCA CDP1800"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "RCA CDP1852"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "RCA CDP1800"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/idectrl.c b/src/emu/machine/idectrl.c
index 907f4b90f3e..75df5adf936 100644
--- a/src/emu/machine/idectrl.c
+++ b/src/emu/machine/idectrl.c
@@ -1824,10 +1824,10 @@ DEVICE_GET_INFO( ide_controller )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(ide_controller);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "IDE Controller"; break;
- case DEVINFO_STR_FAMILY: info->s = "Disk Controller"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "IDE Controller"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Disk Controller"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/latch8.c b/src/emu/machine/latch8.c
index 8079328ae5f..7fd9b840bf2 100644
--- a/src/emu/machine/latch8.c
+++ b/src/emu/machine/latch8.c
@@ -260,10 +260,10 @@ DEVICE_GET_INFO( latch8 )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(latch8);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "8 bit latch"; break;
- case DEVINFO_STR_FAMILY: info->s = "Latches"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "8 bit latch"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Latches"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/ldcore.c b/src/emu/machine/ldcore.c
index a03e0bd7e42..337856fd30b 100644
--- a/src/emu/machine/ldcore.c
+++ b/src/emu/machine/ldcore.c
@@ -1634,10 +1634,10 @@ DEVICE_GET_INFO( laserdisc )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(laserdisc); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = (intf != NULL) ? intf->name : "Unknown Laserdisc Player"; break;
- case DEVINFO_STR_FAMILY: info->s = "Laserdisc Player"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, (intf != NULL) ? intf->name : "Unknown Laserdisc Player"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Laserdisc Player"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/msm6242.c b/src/emu/machine/msm6242.c
index 201e8c260b3..04b2a637ac0 100644
--- a/src/emu/machine/msm6242.c
+++ b/src/emu/machine/msm6242.c
@@ -183,11 +183,11 @@ DEVICE_GET_INFO( msm6242 )
case DEVINFO_FCT_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "OKI MSM6242"; break;
- case DEVINFO_STR_FAMILY: info->s = "MSM6242 RTC"; break;
- case DEVINFO_STR_VERSION: info->s = "1.00"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "OKI MSM6242"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "MSM6242 RTC"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.00"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/pci.c b/src/emu/machine/pci.c
index fa165a6ba33..e62b65db9e3 100644
--- a/src/emu/machine/pci.c
+++ b/src/emu/machine/pci.c
@@ -274,10 +274,10 @@ DEVICE_GET_INFO( pci_bus )
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(pci_bus);break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "PCI Bus"; break;
- case DEVINFO_STR_FAMILY: info->s = "Peripherial Bus"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "PCI Bus"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Peripherial Bus"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/pic8259.c b/src/emu/machine/pic8259.c
index 71215bc5e74..494d05e1f0b 100644
--- a/src/emu/machine/pic8259.c
+++ b/src/emu/machine/pic8259.c
@@ -450,11 +450,11 @@ DEVICE_GET_INFO( pic8259 ) {
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(pic8259); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Intel PIC8259"; break;
- case DEVINFO_STR_FAMILY: info->s = "PIC8259"; break;
- case DEVINFO_STR_VERSION: info->s = "1.00"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright the MAME and MESS Teams"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Intel PIC8259"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "PIC8259"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.00"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright the MAME and MESS Teams"); break;
}
}
diff --git a/src/emu/machine/pit8253.c b/src/emu/machine/pit8253.c
index 45350e6c56a..a09714de099 100644
--- a/src/emu/machine/pit8253.c
+++ b/src/emu/machine/pit8253.c
@@ -1142,11 +1142,11 @@ DEVICE_GET_INFO( pit8253 ) {
case DEVINFO_FCT_RESET: info->reset = DEVICE_RESET_NAME(pit8253); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Intel PIT8253"; break;
- case DEVINFO_STR_FAMILY: info->s = "PIT8253"; break;
- case DEVINFO_STR_VERSION: info->s = "1.00"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright the MAME and MESS Teams"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Intel PIT8253"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "PIT8253"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.00"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright the MAME and MESS Teams"); break;
}
}
@@ -1154,7 +1154,7 @@ DEVICE_GET_INFO( pit8253 ) {
DEVICE_GET_INFO( pit8254 ) {
switch ( state ) {
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case DEVINFO_STR_NAME: info->s = "Intel PIT8254"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Intel PIT8254"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(pit8254); break;
diff --git a/src/emu/machine/smc91c9x.c b/src/emu/machine/smc91c9x.c
index c70ee86374d..0a8c07d56c3 100644
--- a/src/emu/machine/smc91c9x.c
+++ b/src/emu/machine/smc91c9x.c
@@ -624,10 +624,10 @@ static DEVICE_GET_INFO( smc91c9x )
/* --- the following bits of info are returned as NULL-terminated strings --- */
case DEVINFO_STR_NAME: /* provided by subclasses */ break;
- case DEVINFO_STR_FAMILY: info->s = "SMC91C9X Ethernet Controller";break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "SMC91C9X Ethernet Controller");break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -636,7 +636,7 @@ DEVICE_GET_INFO( smc91c94 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "SMC91C94"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "SMC91C94"); break;
default: DEVICE_GET_INFO_CALL(smc91c9x); break;
}
}
@@ -646,7 +646,7 @@ DEVICE_GET_INFO( smc91c96 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "SMC91C96"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "SMC91C96"); break;
default: DEVICE_GET_INFO_CALL(smc91c9x); break;
}
}
diff --git a/src/emu/machine/timekpr.c b/src/emu/machine/timekpr.c
index ed7d4fc103d..695e04ea3e3 100644
--- a/src/emu/machine/timekpr.c
+++ b/src/emu/machine/timekpr.c
@@ -481,11 +481,11 @@ static DEVICE_GET_INFO(timekeeper)
case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME(timekeeper); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Timekeeper"; break;
- case DEVINFO_STR_FAMILY: info->s = "EEPROM"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Timekeeper"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "EEPROM"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -494,12 +494,12 @@ DEVICE_GET_INFO( m48t02 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "M48T02"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "M48T02"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t02); break;
- default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
}
}
@@ -508,12 +508,12 @@ DEVICE_GET_INFO( m48t35 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "M48T35"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "M48T35"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t35); break;
- default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
}
}
@@ -522,12 +522,12 @@ DEVICE_GET_INFO( m48t58 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "M48T58"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "M48T58"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(m48t58); break;
- default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
}
}
@@ -536,11 +536,11 @@ DEVICE_GET_INFO( mk48t08 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "MK48T08"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "MK48T08"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(mk48t08); break;
- default: DEVICE_GET_INFO_CALL(timekeeper); break;
+ default: DEVICE_GET_INFO_CALL(timekeeper); break;
}
}
diff --git a/src/emu/machine/x2212.c b/src/emu/machine/x2212.c
index 9b92dd32b52..7a30e5f9722 100644
--- a/src/emu/machine/x2212.c
+++ b/src/emu/machine/x2212.c
@@ -178,10 +178,10 @@ DEVICE_GET_INFO(x2212)
case DEVINFO_FCT_NVRAM: info->nvram = DEVICE_NVRAM_NAME(x2212); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "X2212"; break;
- case DEVINFO_STR_FAMILY: info->s = "EEPROM"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "X2212"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "EEPROM"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/z80ctc.c b/src/emu/machine/z80ctc.c
index 3d020b2cc9f..77928b8a5bd 100644
--- a/src/emu/machine/z80ctc.c
+++ b/src/emu/machine/z80ctc.c
@@ -545,11 +545,11 @@ DEVICE_GET_INFO( z80ctc )
case DEVINFO_FCT_IRQ_RETI: info->f = (genf *)z80ctc_irq_reti; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Zilog Z80 CTC"; break;
- case DEVINFO_STR_FAMILY: info->s = "Z80"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Zilog Z80 CTC"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Z80"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/z80dma.c b/src/emu/machine/z80dma.c
index fe520e91b29..69ca4b2cb8d 100644
--- a/src/emu/machine/z80dma.c
+++ b/src/emu/machine/z80dma.c
@@ -511,11 +511,11 @@ DEVICE_GET_INFO( z80dma )
case DEVINFO_FCT_IRQ_RETI: info->f = (genf *)z80dma_irq_reti; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Z80DMA"; break;
- case DEVINFO_STR_FAMILY: info->s = "DMA controllers"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Z80DMA"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "DMA controllers"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/z80pio.c b/src/emu/machine/z80pio.c
index 58da4a6891d..1b882908709 100644
--- a/src/emu/machine/z80pio.c
+++ b/src/emu/machine/z80pio.c
@@ -610,11 +610,11 @@ DEVICE_GET_INFO( z80pio )
case DEVINFO_FCT_IRQ_RETI: info->f = (genf *)z80pio_irq_reti; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Zilog Z80 PIO"; break;
- case DEVINFO_STR_FAMILY: info->s = "Z80"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Zilog Z80 PIO"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Z80"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/machine/z80sio.c b/src/emu/machine/z80sio.c
index ea2ea63f21d..8798783aeb7 100644
--- a/src/emu/machine/z80sio.c
+++ b/src/emu/machine/z80sio.c
@@ -840,11 +840,11 @@ DEVICE_GET_INFO( z80sio )
case DEVINFO_FCT_IRQ_RETI: info->f = (genf *)z80sio_irq_reti; break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Zilog Z80 SIO"; break;
- case DEVINFO_STR_FAMILY: info->s = "Z80"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Zilog Z80 SIO"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Z80"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sndintrf.c b/src/emu/sndintrf.c
index 5571f8098a0..31512ab96d2 100644
--- a/src/emu/sndintrf.c
+++ b/src/emu/sndintrf.c
@@ -753,10 +753,11 @@ genf *sndnum_get_info_fct(int sndnum, UINT32 state)
const char *sndnum_get_info_string(int sndnum, UINT32 state)
{
+ extern char *get_temp_string_buffer(void);
sndinfo info;
VERIFY_SNDNUM(sndnum_get_info_string);
- info.s = NULL;
+ info.s = get_temp_string_buffer();
(*sound[sndnum].intf.get_info)(sound[sndnum].device, state, &info);
return info.s;
}
@@ -862,12 +863,13 @@ genf *sndti_get_info_fct(sound_type sndtype, int sndindex, UINT32 state)
const char *sndti_get_info_string(sound_type sndtype, int sndindex, UINT32 state)
{
+ extern char *get_temp_string_buffer(void);
sndinfo info;
int sndnum;
VERIFY_SNDTI(sndti_get_info_string);
sndnum = sound_matrix[sndtype][sndindex] - 1;
- info.s = NULL;
+ info.s = get_temp_string_buffer();
(*sound[sndnum].intf.get_info)(sound[sndnum].device, state, &info);
return info.s;
}
@@ -986,11 +988,12 @@ genf *sndtype_get_info_fct(sound_type sndtype, UINT32 state)
const char *sndtype_get_info_string(sound_type sndtype, UINT32 state)
{
+ extern char *get_temp_string_buffer(void);
snd_class_header *classheader = &snd_type_header[sndtype];
sndinfo info;
VERIFY_SNDTYPE(sndtype_get_info_string);
- info.s = NULL;
+ info.s = get_temp_string_buffer();
(*classheader->get_info)(NULL, state, &info);
return info.s;
}
@@ -1030,10 +1033,10 @@ static SND_GET_INFO( dummy_sound )
case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Dummy"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Dummy"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Dummy"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Dummy"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sndintrf.h b/src/emu/sndintrf.h
index 08d9502ccc5..6cd4f5f90bb 100644
--- a/src/emu/sndintrf.h
+++ b/src/emu/sndintrf.h
@@ -235,7 +235,7 @@ union _sndinfo
INT64 i; /* generic integers */
void * p; /* generic pointers */
genf * f; /* generic function pointers */
- const char *s; /* generic strings */
+ char * s; /* generic strings */
snd_set_info_func set_info; /* SNDINFO_PTR_SET_INFO */
snd_start_func start; /* SNDINFO_PTR_START */
diff --git a/src/emu/sound.c b/src/emu/sound.c
index db52ac20671..e4e687af078 100644
--- a/src/emu/sound.c
+++ b/src/emu/sound.c
@@ -878,11 +878,11 @@ DEVICE_GET_INFO( speaker_output )
case DEVINFO_FCT_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Speaker"; break;
- case DEVINFO_STR_FAMILY: info->s = "Sound"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Speaker"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Sound"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2151intf.c b/src/emu/sound/2151intf.c
index e3abe82f63a..bff659efc07 100644
--- a/src/emu/sound/2151intf.c
+++ b/src/emu/sound/2151intf.c
@@ -230,10 +230,10 @@ SND_GET_INFO( ym2151 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2151 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2151"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2151"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2203intf.c b/src/emu/sound/2203intf.c
index 5f106ebdb4c..056cb1065f8 100644
--- a/src/emu/sound/2203intf.c
+++ b/src/emu/sound/2203intf.c
@@ -349,10 +349,10 @@ SND_GET_INFO( ym2203 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2203 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2203"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2203"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2413intf.c b/src/emu/sound/2413intf.c
index a957994aa4a..2830cc5141c 100644
--- a/src/emu/sound/2413intf.c
+++ b/src/emu/sound/2413intf.c
@@ -177,10 +177,10 @@ SND_GET_INFO( ym2413 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2413 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2413"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2413"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2608intf.c b/src/emu/sound/2608intf.c
index 12b6d5b2eef..3f88f733f15 100644
--- a/src/emu/sound/2608intf.c
+++ b/src/emu/sound/2608intf.c
@@ -317,10 +317,10 @@ SND_GET_INFO( ym2608 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2608 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2608"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2608"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2610intf.c b/src/emu/sound/2610intf.c
index 1ac4fa5b240..1b6563b5c1b 100644
--- a/src/emu/sound/2610intf.c
+++ b/src/emu/sound/2610intf.c
@@ -503,11 +503,11 @@ SND_GET_INFO( ym2610 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2610 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2610"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2610"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
#endif
@@ -540,11 +540,11 @@ SND_GET_INFO( ym2610b )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2610 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2610B"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2610B"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/2612intf.c b/src/emu/sound/2612intf.c
index 4fcf173843a..ec77d93bdbb 100644
--- a/src/emu/sound/2612intf.c
+++ b/src/emu/sound/2612intf.c
@@ -370,11 +370,11 @@ SND_GET_INFO( ym2612 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2612 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM2612"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2612"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -406,11 +406,11 @@ SND_GET_INFO( ym3438 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym2612 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM3438"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM3438"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/262intf.c b/src/emu/sound/262intf.c
index e8ed4df69d3..793ba451823 100644
--- a/src/emu/sound/262intf.c
+++ b/src/emu/sound/262intf.c
@@ -181,11 +181,11 @@ SND_GET_INFO( ymf262 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ymf262 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YMF262"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMF262"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/3812intf.c b/src/emu/sound/3812intf.c
index ee81eb60c89..f108d9b67ff 100644
--- a/src/emu/sound/3812intf.c
+++ b/src/emu/sound/3812intf.c
@@ -182,11 +182,11 @@ SND_GET_INFO( ym3812 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym3812 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM3812"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM3812"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -352,11 +352,11 @@ SND_GET_INFO( ym3526 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ym3526 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YM3526"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM3526"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -566,11 +566,11 @@ SND_GET_INFO( y8950 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( y8950 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Y8950"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Y8950"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/5110intf.c b/src/emu/sound/5110intf.c
index 08288ee48a0..e02149b71a4 100644
--- a/src/emu/sound/5110intf.c
+++ b/src/emu/sound/5110intf.c
@@ -298,20 +298,20 @@ SND_GET_INFO( tms5110 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case SNDINFO_INT_ALIAS: info->i = SOUND_TMS5110; break;
+ case SNDINFO_INT_ALIAS: info->i = SOUND_TMS5110; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms5110 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5110 ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tms5110 ); break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( tms5110 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms5110 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5110 ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tms5110 ); break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( tms5110 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "TMS5110"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI Speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5110"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TI Speech"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -319,9 +319,9 @@ SND_GET_INFO( tms5100 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5100 ); break;
- case SNDINFO_STR_NAME: info->s = "TMS5100"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5100 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5100"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
@@ -329,9 +329,9 @@ SND_GET_INFO( tms5110a )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5110a ); break;
- case SNDINFO_STR_NAME: info->s = "TMS5100A"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5110a ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5100A"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
@@ -339,9 +339,9 @@ SND_GET_INFO( cd2801 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( cd2801 ); break;
- case SNDINFO_STR_NAME: info->s = "CD2801"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( cd2801 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "CD2801"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
@@ -349,9 +349,9 @@ SND_GET_INFO( tmc0281 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tmc0281 ); break;
- case SNDINFO_STR_NAME: info->s = "TMS5100"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tmc0281 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5100"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
@@ -359,9 +359,9 @@ SND_GET_INFO( cd2802 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( cd2802 ); break;
- case SNDINFO_STR_NAME: info->s = "CD2802"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( cd2802 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "CD2802"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
@@ -369,9 +369,9 @@ SND_GET_INFO( m58817 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( m58817 ); break;
- case SNDINFO_STR_NAME: info->s = "M58817"; break;
- default: SND_GET_INFO_CALL(tms5110); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( m58817 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "M58817"); break;
+ default: SND_GET_INFO_CALL(tms5110); break;
}
}
diff --git a/src/emu/sound/5220intf.c b/src/emu/sound/5220intf.c
index 1534ef3c8d1..4586b423937 100644
--- a/src/emu/sound/5220intf.c
+++ b/src/emu/sound/5220intf.c
@@ -254,20 +254,20 @@ SND_GET_INFO( tms5220 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case SNDINFO_INT_ALIAS: info->i = SOUND_TMS5220; break;
+ case SNDINFO_INT_ALIAS: info->i = SOUND_TMS5220; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms5220 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5220 ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tms5220 ); break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( tms5220 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms5220 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5220 ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tms5220 ); break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( tms5220 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "TMS5220"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI Speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5220"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TI Speech"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -276,9 +276,9 @@ SND_GET_INFO( tmc0285 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5200 ); break;
- case SNDINFO_STR_NAME: info->s = "TMC0285"; break;
- default: SND_GET_INFO_CALL( tms5220 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5200 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMC0285"); break;
+ default: SND_GET_INFO_CALL( tms5220 ); break;
}
}
#endif
@@ -288,9 +288,9 @@ SND_GET_INFO( tms5200 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5200 ); break;
- case SNDINFO_STR_NAME: info->s = "TMS5200"; break;
- default: SND_GET_INFO_CALL( tms5220 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms5200 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS5200"); break;
+ default: SND_GET_INFO_CALL( tms5220 ); break;
}
}
#endif
diff --git a/src/emu/sound/aica.c b/src/emu/sound/aica.c
index df537127560..79751093268 100644
--- a/src/emu/sound/aica.c
+++ b/src/emu/sound/aica.c
@@ -1384,17 +1384,17 @@ SND_GET_INFO( aica )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( aica ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( aica ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( aica ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( aica ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "AICA"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Sega/Yamaha custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "AICA"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Sega/Yamaha custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/astrocde.c b/src/emu/sound/astrocde.c
index 2585c088a7a..ccf0202fb12 100644
--- a/src/emu/sound/astrocde.c
+++ b/src/emu/sound/astrocde.c
@@ -342,14 +342,14 @@ SND_GET_INFO( astrocade )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( astrocade ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( astrocade ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( astrocade ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Astrocade"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Bally"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "2.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Astrocade"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Bally"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "2.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/ay8910.c b/src/emu/sound/ay8910.c
index d84919fe986..bdf22cfea72 100644
--- a/src/emu/sound/ay8910.c
+++ b/src/emu/sound/ay8910.c
@@ -867,20 +867,20 @@ SND_GET_INFO( ay8910 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case SNDINFO_INT_ALIAS: info->i = SOUND_AY8910; break;
+ case SNDINFO_INT_ALIAS: info->i = SOUND_AY8910; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ay8910 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( ay8910 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ay8910 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( ay8910 ); break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ay8910 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "AY-3-8910A"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "PSG"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "AY-3-8910A"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "PSG"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -888,9 +888,9 @@ SND_GET_INFO( ay8912 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
- case SNDINFO_STR_NAME: info->s = "AY-3-8912A"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "AY-3-8912A"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -898,9 +898,9 @@ SND_GET_INFO( ay8913 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
- case SNDINFO_STR_NAME: info->s = "AY-3-8913A"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "AY-3-8913A"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -908,9 +908,9 @@ SND_GET_INFO( ay8930 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
- case SNDINFO_STR_NAME: info->s = "AY8930"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ay8910 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "AY8930"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -918,9 +918,9 @@ SND_GET_INFO( ym2149 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
- case SNDINFO_STR_NAME: info->s = "YM2149"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM2149"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -928,9 +928,9 @@ SND_GET_INFO( ym3439 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
- case SNDINFO_STR_NAME: info->s = "YM3439"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YM3439"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -938,9 +938,9 @@ SND_GET_INFO( ymz284 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
- case SNDINFO_STR_NAME: info->s = "YMZ284"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMZ284"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
@@ -948,9 +948,9 @@ SND_GET_INFO( ymz294 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
- case SNDINFO_STR_NAME: info->s = "YMZ294"; break;
- default: SND_GET_INFO_CALL(ay8910); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ym2149 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMZ294"); break;
+ default: SND_GET_INFO_CALL(ay8910); break;
}
}
diff --git a/src/emu/sound/beep.c b/src/emu/sound/beep.c
index e8d3767b0ad..e57f3b49cfe 100644
--- a/src/emu/sound/beep.c
+++ b/src/emu/sound/beep.c
@@ -182,16 +182,16 @@ SND_GET_INFO( beep )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( beep ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( beep ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( beep ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( beep ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Beep"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Beep"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright The MESS Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Beep"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Beep"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright The MESS Team"); break;
}
}
diff --git a/src/emu/sound/bsmt2000.c b/src/emu/sound/bsmt2000.c
index def48e4da10..74d3e18428d 100644
--- a/src/emu/sound/bsmt2000.c
+++ b/src/emu/sound/bsmt2000.c
@@ -504,14 +504,14 @@ SND_GET_INFO( bsmt2000 )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( bsmt2000 ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( bsmt2000 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( bsmt2000 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "BSMT2000"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Data East Wavetable"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "BSMT2000"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Data East Wavetable"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/c140.c b/src/emu/sound/c140.c
index 548c1be45f4..a70718de926 100644
--- a/src/emu/sound/c140.c
+++ b/src/emu/sound/c140.c
@@ -516,17 +516,17 @@ SND_GET_INFO( c140 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c140 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( c140 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c140 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( c140 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "C140"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco PCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "C140"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco PCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/c352.c b/src/emu/sound/c352.c
index c14304fe932..05ad81b6d3e 100644
--- a/src/emu/sound/c352.c
+++ b/src/emu/sound/c352.c
@@ -593,17 +593,17 @@ SND_GET_INFO( c352 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c352 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( c352 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c352 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( c352 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "C352"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco PCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "C352"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco PCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/c6280.c b/src/emu/sound/c6280.c
index 82c1f035a98..72ac1adaa4f 100644
--- a/src/emu/sound/c6280.c
+++ b/src/emu/sound/c6280.c
@@ -350,17 +350,17 @@ SND_GET_INFO( c6280 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c6280 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( c6280 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( c6280 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( c6280 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "HuC6280"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "????"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "HuC6280"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "????"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/cdda.c b/src/emu/sound/cdda.c
index 009d099f0a6..04ee0a9185a 100644
--- a/src/emu/sound/cdda.c
+++ b/src/emu/sound/cdda.c
@@ -316,17 +316,17 @@ SND_GET_INFO( cdda )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cdda ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( cdda ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cdda ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( cdda ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "CD/DA"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "CD Audio"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "CD/DA"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "CD Audio"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/cdp1869.c b/src/emu/sound/cdp1869.c
index 8dc3af14a4c..9b9afe6bed5 100644
--- a/src/emu/sound/cdp1869.c
+++ b/src/emu/sound/cdp1869.c
@@ -188,16 +188,16 @@ SND_GET_INFO( cdp1869 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cdp1869 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( cdp1869 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cdp1869 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( cdp1869 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "CDP1869"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "RCA CDP1869"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "CDP1869"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "RCA CDP1869"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/cem3394.c b/src/emu/sound/cem3394.c
index 5f058f641a4..38d89b87a46 100644
--- a/src/emu/sound/cem3394.c
+++ b/src/emu/sound/cem3394.c
@@ -577,17 +577,17 @@ SND_GET_INFO( cem3394 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cem3394 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( cem3394 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( cem3394 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( cem3394 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "CEM3394"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Analog Synth"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "CEM3394"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Analog Synth"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/custom.c b/src/emu/sound/custom.c
index e2edec48088..3cbe58283b0 100644
--- a/src/emu/sound/custom.c
+++ b/src/emu/sound/custom.c
@@ -74,17 +74,17 @@ SND_GET_INFO( custom )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( custom ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( custom ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( custom ); break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( custom ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( custom ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( custom ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( custom ); break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( custom ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Custom"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "None"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Custom"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "None"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/dac.c b/src/emu/sound/dac.c
index fa30aefc338..39fc9d0a8e4 100644
--- a/src/emu/sound/dac.c
+++ b/src/emu/sound/dac.c
@@ -171,17 +171,17 @@ SND_GET_INFO( dac )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( dac ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( dac ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( dac ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( dac ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "DAC"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI Speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "DAC"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "DAC"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/discrete.c b/src/emu/sound/discrete.c
index 0de541d2aa4..31131344bc6 100644
--- a/src/emu/sound/discrete.c
+++ b/src/emu/sound/discrete.c
@@ -764,11 +764,11 @@ SND_GET_INFO( discrete )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( discrete ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Discrete"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Analog"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Discrete"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Analog"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/dmadac.c b/src/emu/sound/dmadac.c
index 9e2eeffb2d8..dd72f1d48d7 100644
--- a/src/emu/sound/dmadac.c
+++ b/src/emu/sound/dmadac.c
@@ -251,17 +251,17 @@ SND_GET_INFO( dmadac )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( dmadac ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( dmadac ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( dmadac ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( dmadac ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "DMA-driven DAC"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "DAC"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "DMA-driven DAC"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "DAC"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/es5503.c b/src/emu/sound/es5503.c
index 2cf6f3c1903..571e3769fd7 100644
--- a/src/emu/sound/es5503.c
+++ b/src/emu/sound/es5503.c
@@ -534,17 +534,17 @@ SND_GET_INFO( es5503 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( es5503 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( es5503 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( es5503 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( es5503 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ES5503"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Ensoniq ES550x"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright R. Belmont"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ES5503"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Ensoniq ES550x"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright R. Belmont"); break;
}
}
diff --git a/src/emu/sound/es5506.c b/src/emu/sound/es5506.c
index 42812101117..daefc39e724 100644
--- a/src/emu/sound/es5506.c
+++ b/src/emu/sound/es5506.c
@@ -2167,11 +2167,11 @@ SND_GET_INFO( es5505 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( es5505 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ES5505"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Ensoniq Wavetable"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ES5505"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Ensoniq Wavetable"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -2202,11 +2202,11 @@ SND_GET_INFO( es5506 )
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( es5506 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ES5506"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Ensoniq Wavetable"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ES5506"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Ensoniq Wavetable"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/es8712.c b/src/emu/sound/es8712.c
index 79113f528a1..312ff7e65ef 100644
--- a/src/emu/sound/es8712.c
+++ b/src/emu/sound/es8712.c
@@ -452,17 +452,17 @@ SND_GET_INFO( es8712 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( es8712 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( es8712 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( es8712 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( es8712 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( es8712 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( es8712 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ES8712"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Excellent Systems ADPCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ES8712"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Excellent Systems ADPCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/flt_rc.c b/src/emu/sound/flt_rc.c
index 5fbb5bba61c..c87f2367f78 100644
--- a/src/emu/sound/flt_rc.c
+++ b/src/emu/sound/flt_rc.c
@@ -134,15 +134,15 @@ SND_GET_INFO( filter_rc )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( filter_rc ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( filter_rc ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "RC Filter"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Filters"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "RC Filter"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Filters"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/flt_vol.c b/src/emu/sound/flt_vol.c
index c2457e5199b..111b076f97f 100644
--- a/src/emu/sound/flt_vol.c
+++ b/src/emu/sound/flt_vol.c
@@ -65,16 +65,16 @@ SND_GET_INFO( filter_volume )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( filter_volume ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( filter_volume ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( filter_volume ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Volume Filter"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Filters"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Volume Filter"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Filters"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/gaelco.c b/src/emu/sound/gaelco.c
index e72357ded8a..41cf7f0d67e 100644
--- a/src/emu/sound/gaelco.c
+++ b/src/emu/sound/gaelco.c
@@ -319,14 +319,14 @@ SND_GET_INFO( gaelco_gae1 )
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( gaelco_gae1 ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( gaelco_gae1 ); break;
case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( gaelco ); break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Gaelco GAE1"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Gaelco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Gaelco GAE1"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Gaelco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -355,14 +355,14 @@ SND_GET_INFO( gaelco_cg1v )
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( gaelco_cg1v ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( gaelco_cg1v ); break;
case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( gaelco ); break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Gaelco CG1V"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Gaelco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Gaelco CG1V"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Gaelco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/hc55516.c b/src/emu/sound/hc55516.c
index e6e6d24fc70..41d1d4abc1b 100644
--- a/src/emu/sound/hc55516.c
+++ b/src/emu/sound/hc55516.c
@@ -339,18 +339,18 @@ SND_GET_INFO( hc55516 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case SNDINFO_INT_ALIAS: info->i = SOUND_HC55516; break;
+ case SNDINFO_INT_ALIAS: info->i = SOUND_HC55516; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_START: info->start = SND_START_NAME( hc55516 ); break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( hc55516 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( hc55516 ); break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( hc55516 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "HC-55516"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "CVSD"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "2.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "HC-55516"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "CVSD"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "2.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -359,10 +359,10 @@ SND_GET_INFO( mc3417 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( mc3417 ); break;
- case SNDINFO_PTR_RESET: /* chip has no reset pin */ break;
- case SNDINFO_STR_NAME: info->s = "MC3417"; break;
- default: SND_GET_INFO_CALL(hc55516); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( mc3417 ); break;
+ case SNDINFO_PTR_RESET: /* chip has no reset pin */ break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "MC3417"); break;
+ default: SND_GET_INFO_CALL(hc55516); break;
}
}
@@ -371,9 +371,9 @@ SND_GET_INFO( mc3418 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( mc3418 ); break;
- case SNDINFO_PTR_RESET: /* chip has no reset pin */ break;
- case SNDINFO_STR_NAME: info->s = "MC3418"; break;
- default: SND_GET_INFO_CALL(hc55516); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( mc3418 ); break;
+ case SNDINFO_PTR_RESET: /* chip has no reset pin */ break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "MC3418"); break;
+ default: SND_GET_INFO_CALL(hc55516); break;
}
}
diff --git a/src/emu/sound/ics2115.c b/src/emu/sound/ics2115.c
index eb205991ac2..c89e3634bb0 100644
--- a/src/emu/sound/ics2115.c
+++ b/src/emu/sound/ics2115.c
@@ -556,17 +556,17 @@ SND_GET_INFO( ics2115 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ics2115 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ics2115 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ics2115 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ics2115 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ics2115 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ics2115 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ICS2115"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "ICS"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.01"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ICS2115"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "ICS"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.01"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/iremga20.c b/src/emu/sound/iremga20.c
index 0bd4dba1297..f89e2e406fa 100644
--- a/src/emu/sound/iremga20.c
+++ b/src/emu/sound/iremga20.c
@@ -288,17 +288,17 @@ SND_GET_INFO( iremga20 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( iremga20 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( iremga20 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( iremga20 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( iremga20 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( iremga20 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( iremga20 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Irem GA20"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Irem custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Irem GA20"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Irem custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/k005289.c b/src/emu/sound/k005289.c
index a969c59ac91..e2ef977611e 100644
--- a/src/emu/sound/k005289.c
+++ b/src/emu/sound/k005289.c
@@ -268,17 +268,17 @@ SND_GET_INFO( k005289 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k005289 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( k005289 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k005289 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( k005289 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "K005289"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Konami custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "K005289"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Konami custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/k007232.c b/src/emu/sound/k007232.c
index a984dccddf6..47b06e7d709 100644
--- a/src/emu/sound/k007232.c
+++ b/src/emu/sound/k007232.c
@@ -494,17 +494,17 @@ SND_GET_INFO( k007232 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k007232 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( k007232 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k007232 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( k007232 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "K007232"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Konami custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "K007232"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Konami custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/k051649.c b/src/emu/sound/k051649.c
index 2a5a7e4240d..4814d4cc403 100644
--- a/src/emu/sound/k051649.c
+++ b/src/emu/sound/k051649.c
@@ -239,17 +239,17 @@ SND_GET_INFO( k051649 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k051649 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( k051649 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( k051649 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k051649 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( k051649 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( k051649 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "K051649"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Konami custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "K051649"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Konami custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/k053260.c b/src/emu/sound/k053260.c
index b6bf0ef40ae..7c889863a6e 100644
--- a/src/emu/sound/k053260.c
+++ b/src/emu/sound/k053260.c
@@ -482,17 +482,17 @@ SND_GET_INFO( k053260 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k053260 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( k053260 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( k053260); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k053260 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( k053260 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( k053260); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "K053260"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Konami custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "K053260"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Konami custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/k054539.c b/src/emu/sound/k054539.c
index 09f51782ed2..69e7d57391b 100644
--- a/src/emu/sound/k054539.c
+++ b/src/emu/sound/k054539.c
@@ -715,17 +715,17 @@ SND_GET_INFO( k054539 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k054539 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( k054539 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( k054539 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( k054539 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "K054539"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Konami custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "K054539"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Konami custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/msm5205.c b/src/emu/sound/msm5205.c
index b203f3b49f4..fd7e04c6ced 100644
--- a/src/emu/sound/msm5205.c
+++ b/src/emu/sound/msm5205.c
@@ -318,17 +318,17 @@ SND_GET_INFO( msm5205 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( msm5205 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( msm5205 );break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( msm5205 );break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( msm5205 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( msm5205 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( msm5205 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "MSM5205"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "ADPCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "MSM5205"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "ADPCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/msm5232.c b/src/emu/sound/msm5232.c
index ac2f83dc7a5..249be4e314b 100644
--- a/src/emu/sound/msm5232.c
+++ b/src/emu/sound/msm5232.c
@@ -848,17 +848,17 @@ SND_GET_INFO( msm5232 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( msm5232 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( msm5232 ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( msm5232 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( msm5232 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( msm5232 ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( msm5232 ); break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( msm5232 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "MSM5232"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Oki Tone"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "MSM5232"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Oki Tone"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/multipcm.c b/src/emu/sound/multipcm.c
index cfa23cf974a..55255981199 100644
--- a/src/emu/sound/multipcm.c
+++ b/src/emu/sound/multipcm.c
@@ -709,17 +709,17 @@ SND_GET_INFO( multipcm )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( multipcm ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( multipcm ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( multipcm ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( multipcm ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Sega/Yamaha 315-5560"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Sega custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "2.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Sega/Yamaha 315-5560"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Sega custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "2.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/n63701x.c b/src/emu/sound/n63701x.c
index a4c0bb1fe4e..f7935cbdbdc 100644
--- a/src/emu/sound/n63701x.c
+++ b/src/emu/sound/n63701x.c
@@ -177,15 +177,15 @@ SND_GET_INFO( namco_63701x )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco_63701x ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( namco_63701x ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Namco 63701X"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Namco 63701X"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/namco.c b/src/emu/sound/namco.c
index f0584237f89..883906aa422 100644
--- a/src/emu/sound/namco.c
+++ b/src/emu/sound/namco.c
@@ -820,17 +820,17 @@ SND_GET_INFO( namco )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( namco ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( namco ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Namco"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Namco"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -856,15 +856,15 @@ SND_GET_INFO( namco_15xx )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco_15xx ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( namco ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Namco 15XX"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Namco 15XX"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -890,15 +890,15 @@ SND_GET_INFO( namco_cus30 )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco_cus30 ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( namco ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Namco CUS30"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Namco CUS30"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/namco52.c b/src/emu/sound/namco52.c
index c2bee47c0a3..4c587eda65d 100644
--- a/src/emu/sound/namco52.c
+++ b/src/emu/sound/namco52.c
@@ -217,15 +217,15 @@ SND_GET_INFO( namco_52xx )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( namco_52xx ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( namco_52xx ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( namco_52xx ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Namco 52XX"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Namco custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Namco 52XX"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Namco custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/nes_apu.c b/src/emu/sound/nes_apu.c
index a96741bb5e4..839c5f71df4 100644
--- a/src/emu/sound/nes_apu.c
+++ b/src/emu/sound/nes_apu.c
@@ -776,17 +776,17 @@ SND_GET_INFO( nesapu )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( nesapu ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( nesapu ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( nesapu ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( nesapu ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "N2A03"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Nintendo custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "N2A03"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Nintendo custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/nile.c b/src/emu/sound/nile.c
index 32c9bf11927..188b9d4bf2b 100644
--- a/src/emu/sound/nile.c
+++ b/src/emu/sound/nile.c
@@ -252,17 +252,17 @@ SND_GET_INFO( nile )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( nile ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( nile ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( nile ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( nile ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "NiLe"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Seta custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "NiLe"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Seta custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/okim6258.c b/src/emu/sound/okim6258.c
index ed061176e6b..1ffa1db9757 100644
--- a/src/emu/sound/okim6258.c
+++ b/src/emu/sound/okim6258.c
@@ -478,16 +478,16 @@ SND_GET_INFO( okim6258 )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME(okim6258); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME(okim6258); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME(okim6258); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME(okim6258); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME(okim6258); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "OKI6258"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "OKI ADPCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "OKI6258"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "OKI ADPCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/okim6295.c b/src/emu/sound/okim6295.c
index 3feaa850f39..a4253c46fef 100644
--- a/src/emu/sound/okim6295.c
+++ b/src/emu/sound/okim6295.c
@@ -670,15 +670,15 @@ SND_GET_INFO( okim6295 )
/* --- the following bits of info are returned as pointers to data or functions --- */
case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( okim6295 ); break;
case SNDINFO_PTR_START: info->start = SND_START_NAME( okim6295 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( okim6295 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "OKI6295"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "OKI ADPCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "OKI6295"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "OKI ADPCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/pokey.c b/src/emu/sound/pokey.c
index 2d576a4f22d..2ecafef7f1e 100644
--- a/src/emu/sound/pokey.c
+++ b/src/emu/sound/pokey.c
@@ -1529,17 +1529,17 @@ SND_GET_INFO( pokey )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( pokey ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( pokey ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( pokey ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( pokey ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "POKEY"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Atari custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "4.51"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "POKEY"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Atari custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "4.51"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/psx.c b/src/emu/sound/psx.c
index f126e4151ad..7c965529fb3 100644
--- a/src/emu/sound/psx.c
+++ b/src/emu/sound/psx.c
@@ -686,17 +686,17 @@ SND_GET_INFO( psxspu )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( psxspu ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( psxspu ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( psxspu ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( psxspu ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SPU"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Sony custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SPU"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Sony custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/qsound.c b/src/emu/sound/qsound.c
index 8c0ff014bdf..1b22b009c41 100644
--- a/src/emu/sound/qsound.c
+++ b/src/emu/sound/qsound.c
@@ -385,17 +385,17 @@ SND_GET_INFO( qsound )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( qsound ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( qsound ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( qsound ); break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( qsound ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( qsound ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( qsound ); break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Q-Sound"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Capcom custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Q-Sound"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Capcom custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/rf5c400.c b/src/emu/sound/rf5c400.c
index 708bba8bef4..b93b1636252 100644
--- a/src/emu/sound/rf5c400.c
+++ b/src/emu/sound/rf5c400.c
@@ -582,16 +582,16 @@ SND_GET_INFO( rf5c400 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( rf5c400 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( rf5c400 ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( rf5c400 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( rf5c400 ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "RF5C400"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Ricoh PCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team & hoot development team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "RF5C400"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Ricoh PCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team & hoot development team"); break;
}
}
diff --git a/src/emu/sound/rf5c68.c b/src/emu/sound/rf5c68.c
index 8cad4434b18..a5c6023167a 100644
--- a/src/emu/sound/rf5c68.c
+++ b/src/emu/sound/rf5c68.c
@@ -243,17 +243,17 @@ SND_GET_INFO( rf5c68 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( rf5c68 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( rf5c68 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( rf5c68 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( rf5c68 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "RF5C68"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Ricoh PCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "RF5C68"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Ricoh PCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/s14001a.c b/src/emu/sound/s14001a.c
index ca0f63ce0b3..8fc3d79de45 100644
--- a/src/emu/sound/s14001a.c
+++ b/src/emu/sound/s14001a.c
@@ -639,10 +639,10 @@ SND_GET_INFO( s14001a )
case SNDINFO_PTR_START: info->start = SND_START_NAME( s14001a ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "S14001A"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TSI S14001A"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.31"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Jonathan Gevaryahu"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "S14001A"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TSI S14001A"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.31"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Jonathan Gevaryahu"); break;
}
}
diff --git a/src/emu/sound/saa1099.c b/src/emu/sound/saa1099.c
index 1d0f931ff4b..127a64edc3b 100644
--- a/src/emu/sound/saa1099.c
+++ b/src/emu/sound/saa1099.c
@@ -506,17 +506,17 @@ SND_GET_INFO( saa1099 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( saa1099 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( saa1099 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( saa1099 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( saa1099 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SAA1099"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Philips"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SAA1099"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Philips"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/samples.c b/src/emu/sound/samples.c
index e04b16f9ea8..499f7351c51 100644
--- a/src/emu/sound/samples.c
+++ b/src/emu/sound/samples.c
@@ -598,17 +598,17 @@ SND_GET_INFO( samples )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( samples ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( samples ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( samples ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( samples ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Samples"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Big Hack"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Samples"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Big Hack"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/scsp.c b/src/emu/sound/scsp.c
index 6c6aad26316..3375fb5e975 100644
--- a/src/emu/sound/scsp.c
+++ b/src/emu/sound/scsp.c
@@ -1387,17 +1387,17 @@ SND_GET_INFO( scsp )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( scsp ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( scsp ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( scsp ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( scsp ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SCSP"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Sega/Yamaha custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "2.1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SCSP"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Sega/Yamaha custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "2.1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/segapcm.c b/src/emu/sound/segapcm.c
index 3dbb0e1cd84..61b8cbc6d17 100644
--- a/src/emu/sound/segapcm.c
+++ b/src/emu/sound/segapcm.c
@@ -146,16 +146,16 @@ SND_GET_INFO( segapcm )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( segapcm ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( segapcm ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( segapcm ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( segapcm ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Sega PCM"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Sega custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Sega PCM"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Sega custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/sid6581.c b/src/emu/sound/sid6581.c
index 72886adac34..c83c9f2ccb1 100644
--- a/src/emu/sound/sid6581.c
+++ b/src/emu/sound/sid6581.c
@@ -115,17 +115,17 @@ SND_GET_INFO( sid6581 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sid6581 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sid6581 ); break;
- case SNDINFO_PTR_STOP: info->stop = NULL; break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( sid ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sid6581 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sid6581 ); break;
+ case SNDINFO_PTR_STOP: info->stop = NULL; break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( sid ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SID6581"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "SID"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright The MESS Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SID6581"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "SID"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright The MESS Team"); break;
}
}
@@ -135,11 +135,11 @@ SND_GET_INFO( sid8580 )
switch (state)
{
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sid8580 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sid8580 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SID8580"; break;
- default: SND_GET_INFO_CALL(sid6581); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SID8580"); break;
+ default: SND_GET_INFO_CALL(sid6581); break;
}
}
diff --git a/src/emu/sound/sn76477.c b/src/emu/sound/sn76477.c
index 1306e2fdd65..3ba5f6dc41a 100644
--- a/src/emu/sound/sn76477.c
+++ b/src/emu/sound/sn76477.c
@@ -2476,11 +2476,11 @@ SND_GET_INFO( sn76477 )
{
case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76477 ); break;
case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( sn76477 ); break;
- case SNDINFO_STR_NAME: info->s = "SN76477"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Analog"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "2.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SN76477"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Analog"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "2.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/sn76496.c b/src/emu/sound/sn76496.c
index 7ecd307b051..7b8819269b4 100644
--- a/src/emu/sound/sn76496.c
+++ b/src/emu/sound/sn76496.c
@@ -392,20 +392,20 @@ SND_GET_INFO( sn76496 )
switch (state)
{
/* --- the following bits of info are returned as 64-bit signed integers --- */
- case SNDINFO_INT_ALIAS: info->i = SOUND_SN76496; break;
+ case SNDINFO_INT_ALIAS: info->i = SOUND_SN76496; break;
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sn76496 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76496 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sn76496 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76496 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SN76496"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI PSG"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SN76496"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TI PSG"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -413,9 +413,9 @@ SND_GET_INFO( sn76489 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76489 ); break;
- case SNDINFO_STR_NAME: info->s = "SN76489"; break;
- default: SND_GET_INFO_CALL(sn76496); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76489 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SN76489"); break;
+ default: SND_GET_INFO_CALL(sn76496); break;
}
}
@@ -423,9 +423,9 @@ SND_GET_INFO( sn76489a )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76489a ); break;
- case SNDINFO_STR_NAME: info->s = "SN76489A"; break;
- default: SND_GET_INFO_CALL(sn76496); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76489a ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SN76489A"); break;
+ default: SND_GET_INFO_CALL(sn76496); break;
}
}
@@ -433,9 +433,9 @@ SND_GET_INFO( sn76494 )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76494 ); break;
- case SNDINFO_STR_NAME: info->s = "SN76494"; break;
- default: SND_GET_INFO_CALL(sn76496); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sn76494 ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SN76494"); break;
+ default: SND_GET_INFO_CALL(sn76496); break;
}
}
@@ -443,9 +443,9 @@ SND_GET_INFO( gamegear )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( gamegear ); break;
- case SNDINFO_STR_NAME: info->s = "Game Gear PSG"; break;
- default: SND_GET_INFO_CALL(sn76496); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( gamegear ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Game Gear PSG"); break;
+ default: SND_GET_INFO_CALL(sn76496); break;
}
}
@@ -453,8 +453,8 @@ SND_GET_INFO( smsiii )
{
switch (state)
{
- case SNDINFO_PTR_START: info->start = SND_START_NAME( smsiii ); break;
- case SNDINFO_STR_NAME: info->s = "SMSIII PSG"; break;
- default: SND_GET_INFO_CALL(sn76496); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( smsiii ); break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SMSIII PSG"); break;
+ default: SND_GET_INFO_CALL(sn76496); break;
}
}
diff --git a/src/emu/sound/snkwave.c b/src/emu/sound/snkwave.c
index 14205b09ecb..621ee12337a 100644
--- a/src/emu/sound/snkwave.c
+++ b/src/emu/sound/snkwave.c
@@ -179,16 +179,16 @@ SND_GET_INFO( snkwave )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( snkwave ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( snkwave ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( snkwave ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( snkwave ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SNK Wave"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "SNK Wave"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SNK Wave"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "SNK Wave"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/sp0250.c b/src/emu/sound/sp0250.c
index 90f31bd044e..8074aeb0878 100644
--- a/src/emu/sound/sp0250.c
+++ b/src/emu/sound/sp0250.c
@@ -241,17 +241,17 @@ SND_GET_INFO( sp0250 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sp0250 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sp0250 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sp0250 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sp0250 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SP0250"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "GI speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.1"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SP0250"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "GI speech"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.1"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/sp0256.c b/src/emu/sound/sp0256.c
index fc595277ea5..deedd736bd3 100644
--- a/src/emu/sound/sp0256.c
+++ b/src/emu/sound/sp0256.c
@@ -1362,17 +1362,17 @@ SND_GET_INFO( sp0256 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sp0256 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( sp0256 ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( sp0256 ); break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( sp0256 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( sp0256 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( sp0256 ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( sp0256 ); break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( sp0256 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "SP0256"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "GI"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Joseph Zbiciak, tim lindner"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "SP0256"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "GI"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Joseph Zbiciak, tim lindner"); break;
}
}
diff --git a/src/emu/sound/speaker.c b/src/emu/sound/speaker.c
index 3f636d184bc..cf2c154c83a 100644
--- a/src/emu/sound/speaker.c
+++ b/src/emu/sound/speaker.c
@@ -89,16 +89,16 @@ SND_GET_INFO( speaker )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( speaker ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( speaker ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( speaker ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( speaker ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Speaker"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Speaker"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright The MESS Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Speaker"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Speaker"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright The MESS Team"); break;
}
}
diff --git a/src/emu/sound/st0016.c b/src/emu/sound/st0016.c
index 724623a171c..83b64ae11ce 100644
--- a/src/emu/sound/st0016.c
+++ b/src/emu/sound/st0016.c
@@ -161,17 +161,17 @@ SND_GET_INFO( st0016 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( st0016 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( st0016 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( st0016 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( st0016 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "ST0016"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Seta custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "ST0016"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Seta custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/tiaintf.c b/src/emu/sound/tiaintf.c
index 8688ae7708d..7278b52bbb0 100644
--- a/src/emu/sound/tiaintf.c
+++ b/src/emu/sound/tiaintf.c
@@ -69,17 +69,17 @@ SND_GET_INFO( tia )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tia ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tia ); break;
- case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tia ); break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tia ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tia ); break;
+ case SNDINFO_PTR_STOP: info->stop = SND_STOP_NAME( tia ); break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "TIA"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Atari custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TIA"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Atari custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/tms3615.c b/src/emu/sound/tms3615.c
index 8e18fa42353..5b923472b42 100644
--- a/src/emu/sound/tms3615.c
+++ b/src/emu/sound/tms3615.c
@@ -110,16 +110,16 @@ SND_GET_INFO( tms3615 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms3615 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms3615 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms3615 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms3615 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "TMS3615"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI PSG"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS3615"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TI PSG"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/tms36xx.c b/src/emu/sound/tms36xx.c
index bb5db06e715..bbb4a875f33 100644
--- a/src/emu/sound/tms36xx.c
+++ b/src/emu/sound/tms36xx.c
@@ -544,17 +544,17 @@ SND_GET_INFO( tms36xx )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms36xx ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( tms36xx ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( tms36xx ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( tms36xx ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "TMS36XX"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "TI PSG"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "TMS36XX"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "TI PSG"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/upd7759.c b/src/emu/sound/upd7759.c
index 63e83e6cff1..7b3b285d863 100644
--- a/src/emu/sound/upd7759.c
+++ b/src/emu/sound/upd7759.c
@@ -791,17 +791,17 @@ SND_GET_INFO( upd7759 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( upd7759 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( upd7759 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( upd7759 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( upd7759 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( upd7759 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( upd7759 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "UPD7759"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "NEC ADPCM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "UPD7759"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "NEC ADPCM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/vlm5030.c b/src/emu/sound/vlm5030.c
index 723fd1496da..8cdbfd5b763 100644
--- a/src/emu/sound/vlm5030.c
+++ b/src/emu/sound/vlm5030.c
@@ -714,17 +714,17 @@ SND_GET_INFO( vlm5030 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( vlm5030 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( vlm5030 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( vlm5030 );break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( vlm5030 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( vlm5030 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( vlm5030 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "VLM5030"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "VLM speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "VLM5030"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "VLM speech"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/votrax.c b/src/emu/sound/votrax.c
index eaaf9ac7d3c..285fed95fc9 100644
--- a/src/emu/sound/votrax.c
+++ b/src/emu/sound/votrax.c
@@ -175,17 +175,17 @@ SND_GET_INFO( votrax )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( votrax ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( votrax ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( votrax ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( votrax ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Votrax SC-01"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Votrax speech"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Votrax SC-01"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Votrax speech"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/vrender0.c b/src/emu/sound/vrender0.c
index 30118770557..95e64b6d0c2 100644
--- a/src/emu/sound/vrender0.c
+++ b/src/emu/sound/vrender0.c
@@ -258,17 +258,17 @@ SND_GET_INFO( vrender0 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( vrender0 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( vrender0 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( vrender0 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( vrender0 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "VRender0"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "???"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "VRender0"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "???"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/wave.c b/src/emu/sound/wave.c
index bc452a9565e..2456f4caa3f 100644
--- a/src/emu/sound/wave.c
+++ b/src/emu/sound/wave.c
@@ -89,16 +89,16 @@ SND_GET_INFO( wave )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( wave ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( wave ); break;
- case SNDINFO_PTR_STOP: /* nothing */ break;
- case SNDINFO_PTR_RESET: /* nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( wave ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( wave ); break;
+ case SNDINFO_PTR_STOP: /* nothing */ break;
+ case SNDINFO_PTR_RESET: /* nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "Cassette"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Cassette"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright The MESS Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "Cassette"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Cassette"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright The MESS Team"); break;
}
}
diff --git a/src/emu/sound/x1_010.c b/src/emu/sound/x1_010.c
index 8883dd68977..0d00d72fefe 100644
--- a/src/emu/sound/x1_010.c
+++ b/src/emu/sound/x1_010.c
@@ -304,17 +304,17 @@ SND_GET_INFO( x1_010 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( x1_010 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( x1_010 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( x1_010 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( x1_010 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "X1-010"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Seta custom"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "X1-010"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Seta custom"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/ymf271.c b/src/emu/sound/ymf271.c
index 2e63e266656..a1c755c8e2d 100644
--- a/src/emu/sound/ymf271.c
+++ b/src/emu/sound/ymf271.c
@@ -1829,16 +1829,16 @@ SND_GET_INFO( ymf271 )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymf271 ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ymf271 ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ymf271 ); break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymf271 ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ymf271 ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: info->reset = SND_RESET_NAME( ymf271 ); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YMF271"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMF271"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/ymf278b.c b/src/emu/sound/ymf278b.c
index 0c40142d493..47c52ca04ef 100644
--- a/src/emu/sound/ymf278b.c
+++ b/src/emu/sound/ymf278b.c
@@ -808,17 +808,17 @@ SND_GET_INFO( ymf278b )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymf278b ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ymf278b ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymf278b ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ymf278b ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YMF278B"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha FM"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMF278B"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha FM"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/sound/ymz280b.c b/src/emu/sound/ymz280b.c
index 61c3dd59e7c..8a4435a5e4d 100644
--- a/src/emu/sound/ymz280b.c
+++ b/src/emu/sound/ymz280b.c
@@ -1118,17 +1118,17 @@ SND_GET_INFO( ymz280b )
/* --- the following bits of info are returned as 64-bit signed integers --- */
/* --- the following bits of info are returned as pointers to data or functions --- */
- case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymz280b ); break;
- case SNDINFO_PTR_START: info->start = SND_START_NAME( ymz280b ); break;
- case SNDINFO_PTR_STOP: /* Nothing */ break;
- case SNDINFO_PTR_RESET: /* Nothing */ break;
+ case SNDINFO_PTR_SET_INFO: info->set_info = SND_SET_INFO_NAME( ymz280b ); break;
+ case SNDINFO_PTR_START: info->start = SND_START_NAME( ymz280b ); break;
+ case SNDINFO_PTR_STOP: /* Nothing */ break;
+ case SNDINFO_PTR_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case SNDINFO_STR_NAME: info->s = "YMZ280B"; break;
- case SNDINFO_STR_CORE_FAMILY: info->s = "Yamaha Wavetable"; break;
- case SNDINFO_STR_CORE_VERSION: info->s = "1.0"; break;
- case SNDINFO_STR_CORE_FILE: info->s = __FILE__; break;
- case SNDINFO_STR_CORE_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case SNDINFO_STR_NAME: strcpy(info->s, "YMZ280B"); break;
+ case SNDINFO_STR_CORE_FAMILY: strcpy(info->s, "Yamaha Wavetable"); break;
+ case SNDINFO_STR_CORE_VERSION: strcpy(info->s, "1.0"); break;
+ case SNDINFO_STR_CORE_FILE: strcpy(info->s, __FILE__); break;
+ case SNDINFO_STR_CORE_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/timer.c b/src/emu/timer.c
index b0dd3487b82..7b21f45cf49 100644
--- a/src/emu/timer.c
+++ b/src/emu/timer.c
@@ -1290,10 +1290,10 @@ DEVICE_GET_INFO( timer )
case DEVINFO_FCT_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Generic"; break;
- case DEVINFO_STR_FAMILY: info->s = "Timer"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Generic"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Timer"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/video.c b/src/emu/video.c
index a5343af5249..baec345afe5 100644
--- a/src/emu/video.c
+++ b/src/emu/video.c
@@ -1334,11 +1334,11 @@ DEVICE_GET_INFO( video_screen )
case DEVINFO_FCT_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Raster"; break;
- case DEVINFO_STR_FAMILY: info->s = "Video Screen"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Raster"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Video Screen"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/video/cdp1869.c b/src/emu/video/cdp1869.c
index 879b74983ab..d242b6a9924 100644
--- a/src/emu/video/cdp1869.c
+++ b/src/emu/video/cdp1869.c
@@ -872,10 +872,10 @@ DEVICE_GET_INFO( cdp1869_video )
case DEVINFO_FCT_RESET: /* Nothing */ break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "RCA CDP1869"; break;
- case DEVINFO_STR_FAMILY: info->s = "RCA CDP1800"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "RCA CDP1869"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "RCA CDP1800"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/emu/video/mc6845.c b/src/emu/video/mc6845.c
index 862a934f0cb..bc033e5babb 100644
--- a/src/emu/video/mc6845.c
+++ b/src/emu/video/mc6845.c
@@ -916,11 +916,11 @@ DEVICE_GET_INFO( mc6845 )
case DEVINFO_FCT_VALIDITY_CHECK: info->validity_check = DEVICE_VALIDITY_CHECK_NAME(mc6845); break;
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Motorola 6845"; break;
- case DEVINFO_STR_FAMILY: info->s = "MC6845 CRTC"; break;
- case DEVINFO_STR_VERSION: info->s = "1.61"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Motorola 6845"); break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "MC6845 CRTC"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.61"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
@@ -930,7 +930,7 @@ DEVICE_GET_INFO( mc6845_1 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Motorla 6845-1"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Motorla 6845-1"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(mc6845_1); break;
@@ -945,7 +945,7 @@ DEVICE_GET_INFO( c6545_1 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "MOS Technology 6545-1"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "MOS Technology 6545-1"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(c6545_1); break;
@@ -960,7 +960,7 @@ DEVICE_GET_INFO( r6545_1 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Rockwell 6545-1"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Rockwell 6545-1"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(r6545_1); break;
@@ -975,7 +975,7 @@ DEVICE_GET_INFO( h46505 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Hitachi 46505"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Hitachi 46505"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(h46505); break;
@@ -990,7 +990,7 @@ DEVICE_GET_INFO( hd6845 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Hitachi 6845"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Hitachi 6845"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(hd6845); break;
@@ -1005,7 +1005,7 @@ DEVICE_GET_INFO( sy6545_1 )
switch (state)
{
/* --- the following bits of info are returned as NULL-terminated strings --- */
- case DEVINFO_STR_NAME: info->s = "Synertek 6545-1"; break;
+ case DEVINFO_STR_NAME: strcpy(info->s, "Synertek 6545-1"); break;
/* --- the following bits of info are returned as pointers to data or functions --- */
case DEVINFO_FCT_START: info->start = DEVICE_START_NAME(sy6545_1); break;
diff --git a/src/emu/video/voodoo.c b/src/emu/video/voodoo.c
index a22a7e549b8..01464cbddac 100644
--- a/src/emu/video/voodoo.c
+++ b/src/emu/video/voodoo.c
@@ -4682,16 +4682,16 @@ DEVICE_GET_INFO( voodoo )
switch (config->type)
{
default:
- case VOODOO_1: info->s = "3dfx Voodoo Graphics"; break;
- case VOODOO_2: info->s = "3dfx Voodoo 2"; break;
- case VOODOO_BANSHEE: info->s = "3dfx Voodoo Banshee"; break;
- case VOODOO_3: info->s = "3dfx Voodoo 3"; break;
+ case VOODOO_1: strcpy(info->s, "3dfx Voodoo Graphics");break;
+ case VOODOO_2: strcpy(info->s, "3dfx Voodoo 2"); break;
+ case VOODOO_BANSHEE: strcpy(info->s, "3dfx Voodoo Banshee"); break;
+ case VOODOO_3: strcpy(info->s, "3dfx Voodoo 3"); break;
}
break;
- case DEVINFO_STR_FAMILY: info->s = "3dfx Voodoo Graphics"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "3dfx Voodoo Graphics");break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}
diff --git a/src/mame/machine/fddebug.c b/src/mame/machine/fddebug.c
index 6ba4a9b10df..690dda9549b 100644
--- a/src/mame/machine/fddebug.c
+++ b/src/mame/machine/fddebug.c
@@ -109,7 +109,6 @@
#include "deprecat.h"
#include "machine/fd1094.h"
#include "cpu/m68000/m68kcpu.h"
-#undef REG_PC
#include "debug/debugcmd.h"
#include "debug/debugcon.h"
@@ -1041,7 +1040,7 @@ static void execute_fdpc(running_machine *machine, int ref, int params, const ch
newpc = cpu_get_pc(cpu);
/* set the new PC */
- cpu_set_reg(cpu, REG_PC, newpc);
+ cpu_set_reg(cpu, REG_GENPC, newpc);
/* recompute around that */
instruction_hook(cpu, newpc);
@@ -1094,7 +1093,7 @@ static void execute_fdsearch(running_machine *machine, int ref, int params, cons
}
/* set this as our current PC and run the instruction hook */
- cpu_set_reg(space->cpu, REG_PC, pc);
+ cpu_set_reg(space->cpu, REG_GENPC, pc);
if (instruction_hook(space->cpu, pc))
break;
}
diff --git a/src/mame/machine/naomibd.c b/src/mame/machine/naomibd.c
index 23b699a416f..2c110a7357d 100644
--- a/src/mame/machine/naomibd.c
+++ b/src/mame/machine/naomibd.c
@@ -631,13 +631,13 @@ DEVICE_GET_INFO( naomibd )
switch (config->type)
{
default:
- case ROM_BOARD: info->s = "Naomi Rom Board"; break;
- case DIMM_BOARD: info->s = "Naomi Dimm Board"; break;
+ case ROM_BOARD: strcpy(info->s, "Naomi Rom Board"); break;
+ case DIMM_BOARD: strcpy(info->s, "Naomi Dimm Board"); break;
}
break;
- case DEVINFO_STR_FAMILY: info->s = "Naomi plug-in board"; break;
- case DEVINFO_STR_VERSION: info->s = "1.0"; break;
- case DEVINFO_STR_SOURCE_FILE: info->s = __FILE__; break;
- case DEVINFO_STR_CREDITS: info->s = "Copyright Nicola Salmoria and the MAME Team"; break;
+ case DEVINFO_STR_FAMILY: strcpy(info->s, "Naomi plug-in board"); break;
+ case DEVINFO_STR_VERSION: strcpy(info->s, "1.0"); break;
+ case DEVINFO_STR_SOURCE_FILE: strcpy(info->s, __FILE__); break;
+ case DEVINFO_STR_CREDITS: strcpy(info->s, "Copyright Nicola Salmoria and the MAME Team"); break;
}
}