summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus')
-rw-r--r--src/devices/bus/a2bus/a2pic.cpp20
-rw-r--r--src/devices/bus/abcbus/lux10828.cpp8
-rw-r--r--src/devices/bus/amiga/zorro/zorro.h4
-rw-r--r--src/devices/bus/centronics/epson_lx810l.cpp4
-rw-r--r--src/devices/bus/isa/3c505.cpp22
-rw-r--r--src/devices/bus/isa/3c505.h1
-rw-r--r--src/devices/bus/isa/omti8621.cpp108
-rw-r--r--src/devices/bus/isa/omti8621.h3
-rw-r--r--src/devices/bus/isa/sc499.cpp25
-rw-r--r--src/devices/bus/isa/sc499.h1
-rw-r--r--src/devices/bus/m5/rom.cpp63
-rw-r--r--src/devices/bus/m5/rom.h50
-rw-r--r--src/devices/bus/m5/slot.cpp276
-rw-r--r--src/devices/bus/m5/slot.h118
-rw-r--r--src/devices/bus/neogeo/bootleg_prot.cpp4
-rw-r--r--src/devices/bus/ti99_peb/bwg.cpp2
-rw-r--r--src/devices/bus/ti99_peb/hfdc.cpp4
17 files changed, 69 insertions, 644 deletions
diff --git a/src/devices/bus/a2bus/a2pic.cpp b/src/devices/bus/a2bus/a2pic.cpp
index c16ee6f2140..f47f964f192 100644
--- a/src/devices/bus/a2bus/a2pic.cpp
+++ b/src/devices/bus/a2bus/a2pic.cpp
@@ -49,11 +49,11 @@ static INPUT_PORTS_START( pic )
PORT_DIPSETTING( 0x06, "13 microseconds" )
PORT_DIPSETTING( 0x07, "15 microseconds" )
- PORT_DIPNAME( 0x08, 0x08, "Strobe polarity (SW4)" )
+ PORT_DIPNAME( 0x08, 0x00, "Strobe polarity (SW4)" )
PORT_DIPSETTING( 0x00, "Positive" )
PORT_DIPSETTING( 0x08, "Negative" )
- PORT_DIPNAME( 0x10, 0x10, "Acknowledge polarity (SW5)" )
+ PORT_DIPNAME( 0x10, 0x00, "Acknowledge polarity (SW5)" )
PORT_DIPSETTING( 0x00, "Positive" )
PORT_DIPSETTING( 0x10, "Negative" )
@@ -181,27 +181,13 @@ UINT8 a2bus_pic_device::read_cnxx(address_space &space, UINT8 offset)
UINT8 a2bus_pic_device::read_c0nx(address_space &space, UINT8 offset)
{
- UINT8 rv = 0;
-
switch (offset)
{
case 3:
return m_ctx_data_in->read();
case 4:
- rv = m_ack;
-
- // clear flip-flop
- if (m_dsw1->read() & 0x10) // negative polarity
- {
- m_ack |= 0x80;
- }
- else
- {
- m_ack &= ~0x80;
- }
-
- return rv;
+ return m_ack;
case 6: // does reading this really work?
m_irqenable = true;
diff --git a/src/devices/bus/abcbus/lux10828.cpp b/src/devices/bus/abcbus/lux10828.cpp
index e14bdf9a20e..32bc5e619bc 100644
--- a/src/devices/bus/abcbus/lux10828.cpp
+++ b/src/devices/bus/abcbus/lux10828.cpp
@@ -310,14 +310,14 @@ WRITE_LINE_MEMBER( luxor_55_10828_device::fdc_intrq_w )
m_fdc_irq = state;
m_pio->port_b_write(state << 7);
- if (state) m_maincpu->set_input_line(Z80_INPUT_LINE_BOGUSWAIT, CLEAR_LINE);
+ if (state) m_maincpu->set_input_line(Z80_INPUT_LINE_WAIT, CLEAR_LINE);
}
WRITE_LINE_MEMBER( luxor_55_10828_device::fdc_drq_w )
{
m_fdc_drq = state;
- if (state) m_maincpu->set_input_line(Z80_INPUT_LINE_BOGUSWAIT, CLEAR_LINE);
+ if (state) m_maincpu->set_input_line(Z80_INPUT_LINE_WAIT, CLEAR_LINE);
}
@@ -654,7 +654,7 @@ READ8_MEMBER( luxor_55_10828_device::fdc_r )
{
logerror("Z80 WAIT not supported by MAME core\n");
- m_maincpu->set_input_line(Z80_INPUT_LINE_BOGUSWAIT, ASSERT_LINE);
+ m_maincpu->set_input_line(Z80_INPUT_LINE_WAIT, ASSERT_LINE);
}
return m_fdc->gen_r(offset);
@@ -671,7 +671,7 @@ WRITE8_MEMBER( luxor_55_10828_device::fdc_w )
{
logerror("Z80 WAIT not supported by MAME core\n");
- m_maincpu->set_input_line(Z80_INPUT_LINE_BOGUSWAIT, ASSERT_LINE);
+ m_maincpu->set_input_line(Z80_INPUT_LINE_WAIT, ASSERT_LINE);
}
m_fdc->gen_w(offset, data);
diff --git a/src/devices/bus/amiga/zorro/zorro.h b/src/devices/bus/amiga/zorro/zorro.h
index 7a37e334ada..fb14b7f09ca 100644
--- a/src/devices/bus/amiga/zorro/zorro.h
+++ b/src/devices/bus/amiga/zorro/zorro.h
@@ -166,10 +166,8 @@
#define MCFG_EXPANSION_SLOT_ADD(_cputag, _slot_intf, _def_slot) \
MCFG_DEVICE_ADD(EXP_SLOT_TAG, EXP_SLOT, 0) \
- device_t *temp = device; \
zorro_device::set_cputag(*device, _cputag); \
- MCFG_ZORRO_SLOT_ADD(EXP_SLOT_TAG, "slot", _slot_intf, _def_slot) \
- device = temp;
+ MCFG_ZORRO_SLOT_ADD(EXP_SLOT_TAG, "slot", _slot_intf, _def_slot)
// callbacks
#define MCFG_EXPANSION_SLOT_OVR_HANDLER(_devcb) \
diff --git a/src/devices/bus/centronics/epson_lx810l.cpp b/src/devices/bus/centronics/epson_lx810l.cpp
index 77a130b26bf..fc7d557d928 100644
--- a/src/devices/bus/centronics/epson_lx810l.cpp
+++ b/src/devices/bus/centronics/epson_lx810l.cpp
@@ -26,7 +26,7 @@
*/
#include "epson_lx810l.h"
-//extern const char layout_lx800[]; /* use layout from lx800 */
+extern const char layout_lx800[]; /* use layout from lx800 */
//#define LX810LDEBUG
#ifdef LX810LDEBUG
@@ -132,7 +132,7 @@ static MACHINE_CONFIG_FRAGMENT( epson_lx810l )
MCFG_UPD7810_CO0(WRITELINE(epson_lx810l_t, co0_w))
MCFG_UPD7810_CO1(WRITELINE(epson_lx810l_t, co1_w))
-// MCFG_DEFAULT_LAYOUT(layout_lx800)
+ MCFG_DEFAULT_LAYOUT(layout_lx800)
/* video hardware (simulates paper) */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp
index 371526d29ee..2cb640e91d5 100644
--- a/src/devices/bus/isa/3c505.cpp
+++ b/src/devices/bus/isa/3c505.cpp
@@ -26,6 +26,8 @@ static int verbose = VERBOSE;
#define LOG1(d,x) { if (verbose > 0) LOG(d,x)}
#define LOG2(d,x) { if (verbose > 1) LOG(d,x)}
+#define MAINCPU "maincpu"
+
#ifdef LSB_FIRST
static UINT16 uint16_to_le(UINT16 value)
{
@@ -422,7 +424,7 @@ const char *threecom3c505_device::cpu_context()
{
static char statebuf[64]; /* string buffer containing state description */
- device_t *cpu = machine().firstcpu;
+ device_t *cpu = machine().device(MAINCPU);
osd_ticks_t t = osd_ticks();
int s = t / osd_ticks_per_second();
int ms = (t % osd_ticks_per_second()) / 1000;
@@ -440,18 +442,6 @@ const char *threecom3c505_device::cpu_context()
return statebuf;
}
-/*-------------------------------------------------
- logerror - log an error message (w/o device tags)
- -------------------------------------------------*/
-
-void threecom3c505_device::logerror(const char *format, ...) const
-{
- va_list arg;
- va_start(arg, format);
- machine().vlogerror(format, arg);
- va_end(arg);
-}
-
//**************************************************************************
// data_buffer
//**************************************************************************
@@ -865,8 +855,8 @@ void threecom3c505_device::do_receive_command()
void threecom3c505_device::set_command_pending(int state)
{
- LOG2(this,("set_command_pending %d -> %d m_wait_for_ack=%d m_wait_for_nak=%d m_rx_pending=%d",
- m_command_pending, state, m_wait_for_ack, m_wait_for_nak, m_rx_pending));
+ LOG2(this,("set_command_pending %d -> %d m_wait_for_ack=%d m_wait_for_nak=%d m_rx_pending=%d%s",
+ m_command_pending, state, m_wait_for_ack, m_wait_for_nak, m_rx_pending, state ? "" :"\n"));
//- verbose = onoff ? 1 : 2;
@@ -1667,7 +1657,7 @@ void threecom3c505_device::set_verbose(int on_off)
int threecom3c505_device::tx_data(device_t *device, const UINT8 data[], int length)
{
- LOG1(this,("threecom3c505_device::tx_data length=%d", length));
+ LOG1(device,("threecom3c505_device::tx_data length=%d", length));
return 1;
}
diff --git a/src/devices/bus/isa/3c505.h b/src/devices/bus/isa/3c505.h
index 80cdd496a03..e31317792da 100644
--- a/src/devices/bus/isa/3c505.h
+++ b/src/devices/bus/isa/3c505.h
@@ -143,7 +143,6 @@ protected:
virtual int setfilter(device_t *, int);
const char *cpu_context();
- void logerror(const char *format, ...) const;
// device-level overrides
virtual void device_start() override;
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index a1379bc229d..5f42c31200b 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -73,10 +73,6 @@ protected:
virtual void device_reset() override;
void omti_disk_config(UINT16 disk_type);
-
-private:
- void logerror(const char *format, ...) const;
-
public:
UINT16 m_type;
UINT16 m_cylinders;
@@ -689,18 +685,6 @@ void omti8621_device::set_esdi_defect_list(UINT8 lun, UINT8 head)
memset(disk->m_esdi_defect_list+6, 0xff, 5); // end of defect list
}
-/*-------------------------------------------------
- logerror - log an error message (w/o device tags)
- -------------------------------------------------*/
-
-void omti8621_device::logerror(const char *format, ...) const
-{
- va_list arg;
- va_start(arg, format);
- machine().vlogerror(format, arg);
- va_end(arg);
-}
-
/***************************************************************************
log_command - log command from a command descriptor block
***************************************************************************/
@@ -709,80 +693,83 @@ void omti8621_device::log_command(const UINT8 cdb[], const UINT16 cdb_length)
{
if (verbose > 0) {
int i;
- logerror("%s: OMTI command ", cpu_context(this));
+ char sb[100];
+ std::string text(cpu_context(this));
+ text += ": OMTI command ";
switch (cdb[0]) {
case OMTI_CMD_TEST_DRIVE_READY: // 0x00
- logerror("Test Drive Ready");
+ text += "Test Drive Ready";
break;
case OMTI_CMD_RECALIBRATE: // 0x01
- logerror("Recalibrate");
+ text += "Recalibrate";
break;
case OMTI_CMD_REQUEST_SENSE: // 0x03
- logerror("Request Sense");
+ text += "Request Sense";
break;
case OMTI_CMD_READ_VERIFY: // 0x05
- logerror("Read Verify");
+ text += "Read Verify";
break;
case OMTI_CMD_FORMAT_TRACK: // 0x06
- logerror("Format Track");
+ text += "Format Track";
break;
case OMTI_CMD_FORMAT_BAD_TRACK: // 0x07
- logerror("Format Bad Track");
+ text += "Format Bad Track";
break;
case OMTI_CMD_READ: // 0x08
- logerror("Read");
+ text += "Read";
break;
case OMTI_CMD_WRITE: // 0x0A
- logerror("Write");
+ text += "Write";
break;
case OMTI_CMD_SEEK: // 0x0B
- logerror("Seek");
+ text += "Seek";
break;
case OMTI_CMD_READ_SECTOR_BUFFER: // 0x0E
- logerror("Read Sector Buffer");
+ text += "Read Sector Buffer";
break;
case OMTI_CMD_WRITE_SECTOR_BUFFER: // 0x0F
- logerror("Write Sector Buffer");
+ text += "Write Sector Buffer";
break;
case OMTI_CMD_ASSIGN_ALTERNATE_TRACK: // 0x11
- logerror("Assign Alternate Track");
+ text += "Assign Alternate Track";
break;
case OMTI_CMD_READ_DATA_TO_BUFFER: // 0x1E
- logerror("Read Data to Buffer");
+ text += "Read Data to Buffer";
break;
case OMTI_CMD_WRITE_DATA_FROM_BUFFER: // 0x1F
- logerror("Write Data from Buffer");
+ text += "Write Data from Buffer";
break;
case OMTI_CMD_COPY: // 0x20
- logerror("Copy");
+ text += "Copy";
break;
case OMTI_CMD_READ_ESDI_DEFECT_LIST: // 0x37
- logerror("Read ESDI Defect List");
+ text += "Read ESDI Defect List";
break;
case OMTI_CMD_RAM_DIAGNOSTICS: // 0xE0
- logerror("RAM. Diagnostic");
+ text += "RAM. Diagnostic";
break;
case OMTI_CMD_CONTROLLER_INT_DIAGNOSTIC: // 0xE4
- logerror("Controller Int. Diagnostic");
+ text += "Controller Int. Diagnostic";
break;
case OMTI_CMD_READ_LONG: // 0xE5
- logerror("Read Long");
+ text += "Read Long";
break;
case OMTI_CMD_WRITE_LONG: // 0xE6
- logerror("Write Long");
+ text += "Write Long";
break;
case OMTI_CMD_READ_CONFIGURATION: // 0xEC
- logerror("Read Configuration");
+ text += "Read Configuration";
break;
case OMTI_CMD_INVALID_COMMAND: // 0xFF
- logerror("Invalid Command");
+ text += "Invalid Command";
break;
default:
- logerror("!!! Unexpected Command !!!");
+ text += "!!! Unexpected Command !!!";
}
// logerror(" (%02x, length=%02x)", cdb[0], cdb_length);
for (i = 0; i < cdb_length; i++) {
- logerror(" %02x", cdb[i]);
+ sprintf(sb, " %02x", cdb[i]);
+ text += sb;
}
switch (cdb[0]) {
@@ -793,10 +780,12 @@ void omti8621_device::log_command(const UINT8 cdb[], const UINT16 cdb_length)
case OMTI_CMD_READ_DATA_TO_BUFFER: // 0x1E
case OMTI_CMD_WRITE_DATA_FROM_BUFFER: // 0x1F
case OMTI_CMD_COPY: // 0x20
- logerror(" (diskaddr=%x count=%x)", get_disk_address(cdb), cdb[4]);
+ sprintf(sb, " (diskaddr=%x count=%x)", get_disk_address(cdb), cdb[4]);
+ text += sb;
break;
}
- logerror("\n");
+ text += "\n";
+ logerror(text.c_str());
}
}
@@ -806,18 +795,25 @@ void omti8621_device::log_command(const UINT8 cdb[], const UINT16 cdb_length)
void omti8621_device::log_data()
{
- if (verbose > 0) {
+ if (verbose > 0)
+ {
int i;
- logerror("%s: OMTI data (length=%02x)", cpu_context(this),
+ char sb[100];
+ sprintf(sb, "%s: OMTI data (length=%02x)", cpu_context(this),
data_length);
- for (i = 0; i < data_length && i < OMTI_DISK_SECTOR_SIZE; i++) {
- logerror(" %02x", data_buffer[i]);
+ std::string text(sb);
+ for (i = 0; i < data_length && i < OMTI_DISK_SECTOR_SIZE; i++)
+ {
+ sprintf(sb, " %02x", data_buffer[i]);
+ text += sb;
}
- if (i < data_length) {
- logerror(" ...");
+ if (i < data_length)
+ {
+ text += " ...";
}
- logerror("\n");
+ text += "\n";
+ logerror(text.c_str());
}
}
@@ -1355,18 +1351,6 @@ void omti_disk_image_device::omti_disk_config(UINT16 disk_type)
}
/*-------------------------------------------------
- logerror - log an error message (w/o device tags)
- -------------------------------------------------*/
-
-void omti_disk_image_device::logerror(const char *format, ...) const
-{
- va_list arg;
- va_start(arg, format);
- machine().vlogerror(format, arg);
- va_end(arg);
-}
-
-/*-------------------------------------------------
device start callback
-------------------------------------------------*/
diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h
index 7554df8ddf6..04dff836316 100644
--- a/src/devices/bus/isa/omti8621.h
+++ b/src/devices/bus/isa/omti8621.h
@@ -114,9 +114,6 @@ private:
void copy_sectors(INT32 dst_addr, INT32 src_addr, UINT8 count, UINT8 lun);
void format_track(const UINT8 * cdb);
void set_esdi_defect_list(UINT8 lun, UINT8 head);
-
- void logerror(const char *format, ...) const;
-
void log_command(const UINT8 cdb[], const UINT16 cdb_length);
void log_data();
void do_command(const UINT8 cdb[], const UINT16 cdb_length);
diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp
index 3d94caa2b2c..4effacb3394 100644
--- a/src/devices/bus/isa/sc499.cpp
+++ b/src/devices/bus/isa/sc499.cpp
@@ -409,34 +409,13 @@ const char *sc499_device::cpu_context()
{
static char statebuf[64]; /* string buffer containing state description */
- device_t *cpu = machine().firstcpu;
osd_ticks_t t = osd_ticks();
int s = t / osd_ticks_per_second();
int ms = (t % osd_ticks_per_second()) / 1000;
- /* if we have an executing CPU, output data */
- if (cpu != nullptr)
- {
- sprintf(statebuf, "%d.%03d %s pc=%08x - %s", s, ms, cpu->tag(),
- cpu->safe_pcbase(), tag());
- }
- else
- {
- sprintf(statebuf, "%d.%03d", s, ms);
- }
- return statebuf;
-}
-
-/*-------------------------------------------------
- logerror - log an error message (w/o device tags)
- -------------------------------------------------*/
+ sprintf(statebuf, "%d.%03d%s:", s, ms, tag());
-void sc499_device::logerror(const char *format, ...) const
-{
- va_list arg;
- va_start(arg, format);
- machine().vlogerror(format, arg);
- va_end(arg);
+ return statebuf;
}
/*-------------------------------------------------
diff --git a/src/devices/bus/isa/sc499.h b/src/devices/bus/isa/sc499.h
index 2b5b1ddaa6a..8c63f810073 100644
--- a/src/devices/bus/isa/sc499.h
+++ b/src/devices/bus/isa/sc499.h
@@ -80,7 +80,6 @@ private:
virtual void eop_w(int state) override;
const char *cpu_context();
- void logerror(const char *format, ...) const;
void tape_status_clear(UINT16 value);
void tape_status_set(UINT16 value);
diff --git a/src/devices/bus/m5/rom.cpp b/src/devices/bus/m5/rom.cpp
deleted file mode 100644
index bffd33df541..00000000000
--- a/src/devices/bus/m5/rom.cpp
+++ /dev/null
@@ -1,63 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli
-/***********************************************************************************************************
-
-
- M5 cart emulation
-
-
- ***********************************************************************************************************/
-
-
-#include "emu.h"
-#include "rom.h"
-
-
-//-------------------------------------------------
-// m5_rom_device - constructor
-//-------------------------------------------------
-
-const device_type M5_ROM_STD = &device_creator<m5_rom_device>;
-const device_type M5_ROM_RAM = &device_creator<m5_ram_device>;
-
-
-m5_rom_device::m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source)
- : device_t(mconfig, type, name, tag, owner, clock, shortname, source),
- device_m5_cart_interface( mconfig, *this )
-{
-}
-
-m5_rom_device::m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : device_t(mconfig, M5_ROM_STD, "M5 Standard ROM Carts", tag, owner, clock, "m5_rom", __FILE__),
- device_m5_cart_interface( mconfig, *this )
-{
-}
-
-
-m5_ram_device::m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
- : m5_rom_device(mconfig, M5_ROM_RAM, "M5 Expansion memory cart", tag, owner, clock, "m5_ram", __FILE__)
-{
-}
-
-
-/*-------------------------------------------------
- mapper specific handlers
- -------------------------------------------------*/
-
-READ8_MEMBER(m5_rom_device::read_rom)
-{
- if (offset < m_rom_size)
- return m_rom[offset];
- else
- return 0xff;
-}
-
-READ8_MEMBER(m5_ram_device::read_ram)
-{
- return m_ram[offset];
-}
-
-WRITE8_MEMBER(m5_ram_device::write_ram)
-{
- m_ram[offset] = data;
-}
diff --git a/src/devices/bus/m5/rom.h b/src/devices/bus/m5/rom.h
deleted file mode 100644
index dedd7555f1c..00000000000
--- a/src/devices/bus/m5/rom.h
+++ /dev/null
@@ -1,50 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli
-#ifndef __M5_ROM_H
-#define __M5_ROM_H
-
-#include "slot.h"
-
-
-// ======================> m5_rom_device
-
-class m5_rom_device : public device_t,
- public device_m5_cart_interface
-{
-public:
- // construction/destruction
- m5_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source);
- m5_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // device-level overrides
- virtual void device_start() override {}
- virtual void device_reset() override {}
-
- // reading and writing
- virtual DECLARE_READ8_MEMBER(read_rom) override;
-};
-
-// ======================> m5_ram_device
-
-class m5_ram_device : public m5_rom_device
-{
-public:
- // construction/destruction
- m5_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // device-level overrides
- virtual void device_start() override {}
- virtual void device_reset() override {}
-
- // reading and writing
- virtual DECLARE_READ8_MEMBER(read_ram) override;
- virtual DECLARE_WRITE8_MEMBER(write_ram) override;
-};
-
-
-// device type definition
-extern const device_type M5_ROM_STD;
-extern const device_type M5_ROM_RAM;
-
-
-#endif
diff --git a/src/devices/bus/m5/slot.cpp b/src/devices/bus/m5/slot.cpp
deleted file mode 100644
index 162d802136e..00000000000
--- a/src/devices/bus/m5/slot.cpp
+++ /dev/null
@@ -1,276 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli
-/***********************************************************************************************************
-
- M5 cart emulation
- (through slot devices)
-
- ***********************************************************************************************************/
-
-
-#include "emu.h"
-#include "slot.h"
-
-//**************************************************************************
-// GLOBAL VARIABLES
-//**************************************************************************
-
-const device_type M5_CART_SLOT = &device_creator<m5_cart_slot_device>;
-
-//**************************************************************************
-// M5 Cartridges Interface
-//**************************************************************************
-
-//-------------------------------------------------
-// device_m5_cart_interface - constructor
-//-------------------------------------------------
-
-device_m5_cart_interface::device_m5_cart_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig, device),
- m_rom(NULL),
- m_rom_size(0)
-{
-}
-
-
-//-------------------------------------------------
-// ~device_m5_cart_interface - destructor
-//-------------------------------------------------
-
-device_m5_cart_interface::~device_m5_cart_interface()
-{
-}
-
-//-------------------------------------------------
-// rom_alloc - alloc the space for the cart
-//-------------------------------------------------
-
-void device_m5_cart_interface::rom_alloc(UINT32 size, const char *tag)
-{
- if (m_rom == NULL)
- {
- m_rom = device().machine().memory().region_alloc(std::string(tag).append(M5SLOT_ROM_REGION_TAG).c_str(), size, 1, ENDIANNESS_LITTLE)->base();
- m_rom_size = size;
- }
-}
-
-
-//-------------------------------------------------
-// ram_alloc - alloc the space for the ram
-//-------------------------------------------------
-
-void device_m5_cart_interface::ram_alloc(UINT32 size)
-{
- m_ram.resize(size);
-}
-
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// m5_cart_slot_device - constructor
-//-------------------------------------------------
-m5_cart_slot_device::m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, M5_CART_SLOT, "M5 Cartridge Slot", tag, owner, clock, "m5_cart_slot", __FILE__),
- device_image_interface(mconfig, *this),
- device_slot_interface(mconfig, *this),
- m_type(M5_STD), m_cart(nullptr)
-{
-}
-
-
-//-------------------------------------------------
-// m5_cart_slot_device - destructor
-//-------------------------------------------------
-
-m5_cart_slot_device::~m5_cart_slot_device()
-{
-}
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void m5_cart_slot_device::device_start()
-{
- m_cart = dynamic_cast<device_m5_cart_interface *>(get_card_device());
-}
-
-//-------------------------------------------------
-// device_config_complete - perform any
-// operations now that the configuration is
-// complete
-//-------------------------------------------------
-
-void m5_cart_slot_device::device_config_complete()
-{
- // set brief and instance name
- update_names();
-}
-
-
-//-------------------------------------------------
-// M5 PCB
-//-------------------------------------------------
-
-struct m5_slot
-{
- int pcb_id;
- const char *slot_option;
-};
-
-// Here, we take the feature attribute from .xml (i.e. the PCB name) and we assign a unique ID to it
-static const m5_slot slot_list[] =
-{
- {EM_5,"em-5"},
- {MEM64KBI,"64kbi"},
- {MEM64KBF,"64kbf"},
- {MEM64KRX,"64krx"}
-};
-
-static int m5_get_pcb_id(const char *slot)
-{
- for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
- {
- if (!core_stricmp(slot_list[i].slot_option, slot))
- return slot_list[i].pcb_id;
- }
-
- return 0;
-}
-
-static const char *m5_get_slot(int type)
-{
- for (int i = 0; i < ARRAY_LENGTH(slot_list); i++)
- {
- if (slot_list[i].pcb_id == type)
- return slot_list[i].slot_option;
- }
-
- return "std";
-}
-
-
-/*-------------------------------------------------
- call load
- -------------------------------------------------*/
-
-bool m5_cart_slot_device::call_load()
-{
- if (m_cart)
- {
- m_type=M5_STD;
-
- if (software_entry() != NULL)
- {
- const char *pcb_name = get_feature("slot");
- //software_info *name=m_software_info_ptr;
- if (pcb_name) //is it ram cart?
- m_type = m5_get_pcb_id(m_full_software_name.c_str());
- else
- m_type=M5_STD; //standard cart(no feature line in xml)
- }
-
- if (m_type == M5_STD || m_type>2) //carts with roms
- {
-
- UINT32 size = (software_entry() == NULL) ? length() : get_software_region_length("rom");
-
- if (size > 0x5000 && m_type == M5_STD)
- {
- seterror(IMAGE_ERROR_UNSPECIFIED, "Image extends beyond the expected size for an M5 cart");
- return IMAGE_INIT_FAIL;
- }
-
- m_cart->rom_alloc(size, tag());
-
- if (software_entry() == NULL)
- fread(m_cart->get_rom_base(), size);
- else
- memcpy(m_cart->get_rom_base(), get_software_region("rom"), size);
-
- }
- if (!M5_STD)
- if (get_software_region("ram"))
- m_cart->ram_alloc(get_software_region_length("ram"));
-
-
- //printf("Type: %s\n", m5_get_slot(m_type));
- }
-
- return IMAGE_INIT_PASS;
-}
-
-
-/*-------------------------------------------------
- call softlist load
- -------------------------------------------------*/
-
-bool m5_cart_slot_device::call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry)
-{
- machine().rom_load().load_software_part_region(*this, swlist, swname, start_entry);
- return TRUE;
-}
-
-
-/*-------------------------------------------------
- get default card software
- -------------------------------------------------*/
-
-std::string m5_cart_slot_device::get_default_card_software()
-{
- std::string result;
- if (open_image_file(mconfig().options()))
- {
- const char *slot_string = "std";
- //UINT32 size = core_fsize(m_file);
- int type = M5_STD;
-
-
- slot_string = m5_get_slot(type);
-
- //printf("type: %s\n", slot_string);
- clear();
-
- result.assign(slot_string);
- return result;
- }
-
- return software_get_default_slot("std");
-}
-
-/*-------------------------------------------------
- read
- -------------------------------------------------*/
-
-READ8_MEMBER(m5_cart_slot_device::read_rom)
-{
- if (m_cart)
- return m_cart->read_rom(space, offset);
- else
- return 0xff;
-}
-
-/*-------------------------------------------------
- read
- -------------------------------------------------*/
-
-READ8_MEMBER(m5_cart_slot_device::read_ram)
-{
- if (m_cart)
- return m_cart->read_ram(space, offset);
- else
- return 0xff;
-}
-
-/*-------------------------------------------------
- write
- -------------------------------------------------*/
-
-WRITE8_MEMBER(m5_cart_slot_device::write_ram)
-{
- if (m_cart)
- m_cart->write_ram(space, offset, data);
-}
diff --git a/src/devices/bus/m5/slot.h b/src/devices/bus/m5/slot.h
deleted file mode 100644
index 177977043cf..00000000000
--- a/src/devices/bus/m5/slot.h
+++ /dev/null
@@ -1,118 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Fabio Priuli
-#ifndef __M5_SLOT_H
-#define __M5_SLOT_H
-
-/***************************************************************************
- TYPE DEFINITIONS
- ***************************************************************************/
-
-
-/* PCB */
-enum
-{
- EM_5 = 1,
- MEM64KBI,
- MEM64KBF,
- MEM64KRX
-};
-
-
-#define M5_STD 0
-
-
-// ======================> device_m5_cart_interface
-
-class device_m5_cart_interface : public device_slot_card_interface
-{
-public:
- // construction/destruction
- device_m5_cart_interface(const machine_config &mconfig, device_t &device);
- virtual ~device_m5_cart_interface();
-
- // reading and writing
- virtual DECLARE_READ8_MEMBER(read_rom) { return 0xff; }
- virtual DECLARE_READ8_MEMBER(read_ram) { return 0xff; }
- virtual DECLARE_WRITE8_MEMBER(write_ram) {}
-
- void rom_alloc(UINT32 size, const char *tag);
- void ram_alloc(UINT32 size);
- UINT8* get_rom_base() { return m_rom; }
- UINT8* get_ram_base() { return &m_ram[0]; }
- UINT32 get_rom_size() { return m_rom_size; }
- UINT32 get_ram_size() { return m_ram.size(); }
-
- void save_ram() { device().save_item(NAME(m_ram)); }
-
-protected:
- // internal state
- UINT8 *m_rom;
- UINT32 m_rom_size;
- dynamic_buffer m_ram;
-};
-
-
-// ======================> m5_cart_slot_device
-
-class m5_cart_slot_device : public device_t,
- public device_image_interface,
- public device_slot_interface
-{
-public:
- // construction/destruction
- m5_cart_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
- virtual ~m5_cart_slot_device();
-
- // device-level overrides
- virtual void device_start() override;
- virtual void device_config_complete() override;
-
- // image-level overrides
- virtual bool call_load() override;
- virtual void call_unload() override {}
- virtual bool call_softlist_load(software_list_device &swlist, const char *swname, const rom_entry *start_entry) override;
-
- int get_type() { return m_type; }
-
- void save_ram() { if (m_cart && m_cart->get_ram_size()) m_cart->save_ram(); }
-
- virtual iodevice_t image_type() const override { return IO_CARTSLOT; }
- virtual bool is_readable() const override { return 1; }
- virtual bool is_writeable() const override { return 0; }
- virtual bool is_creatable() const override { return 0; }
- virtual bool must_be_loaded() const override { return 0; }
- virtual bool is_reset_on_load() const override { return 1; }
- virtual const option_guide *create_option_guide() const override { return NULL; }
- virtual const char *image_interface() const override { return "m5_cart"; }
- virtual const char *file_extensions() const override { return "bin,rom"; }
-
- // slot interface overrides
- virtual std::string get_default_card_software() override;
-
- // reading and writing
- virtual DECLARE_READ8_MEMBER(read_rom);
- virtual DECLARE_READ8_MEMBER(read_ram);
- virtual DECLARE_WRITE8_MEMBER(write_ram);
-
-protected:
-
- int m_type;
- device_m5_cart_interface* m_cart;
-};
-
-
-
-// device type definition
-extern const device_type M5_CART_SLOT;
-
-
-/***************************************************************************
- DEVICE CONFIGURATION MACROS
- ***************************************************************************/
-
-#define M5SLOT_ROM_REGION_TAG ":cart:rom"
-
-#define MCFG_M5_CARTRIDGE_ADD(_tag,_slot_intf,_def_slot) \
- MCFG_DEVICE_ADD(_tag, M5_CART_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(_slot_intf, _def_slot, false)
-#endif
diff --git a/src/devices/bus/neogeo/bootleg_prot.cpp b/src/devices/bus/neogeo/bootleg_prot.cpp
index 145e17efa0b..8c023f00091 100644
--- a/src/devices/bus/neogeo/bootleg_prot.cpp
+++ b/src/devices/bus/neogeo/bootleg_prot.cpp
@@ -142,7 +142,8 @@ WRITE16_MEMBER( ngbootleg_prot_device::kof10th_custom_w )
//UINT16 *prom = (UINT16*)m_mainrom;
COMBINE_DATA(&m_cartridge_ram2[(0x00000/2) + (offset & 0xFFFF)]);
} else { // Write S data on-the-fly
- m_fixedrom[offset] = BITSWAP8(data,7,6,0,4,3,2,1,5);
+ UINT8 *srom = m_fixedrom;
+ srom[offset] = BITSWAP8(data,7,6,0,4,3,2,1,5);
}
}
@@ -172,7 +173,6 @@ void ngbootleg_prot_device::install_kof10th_protection (cpu_device* maincpu, neo
maincpu->space(AS_PROGRAM).install_write_handler(0x240000, 0x2fffff, write16_delegate(FUNC(ngbootleg_prot_device::kof10th_bankswitch_w),this));
memcpy(m_cartridge_ram2, cpurom + 0xe0000, 0x20000);
- save_pointer(NAME(m_fixedrom), 0x40000);
}
void ngbootleg_prot_device::decrypt_kof10th(UINT8* cpurom, UINT32 cpurom_size)
diff --git a/src/devices/bus/ti99_peb/bwg.cpp b/src/devices/bus/ti99_peb/bwg.cpp
index 4716ccedf8a..4085dcfe230 100644
--- a/src/devices/bus/ti99_peb/bwg.cpp
+++ b/src/devices/bus/ti99_peb/bwg.cpp
@@ -151,7 +151,7 @@ SETADDRESS_DBIN_MEMBER( snug_bwg_device::setaddress_dbin )
&& ((state==ASSERT_LINE && ((m_address & 0x1ff8)==0x1ff0)) // read
|| (state==CLEAR_LINE && ((m_address & 0x1ff8)==0x1ff8))); // write
- m_WDsel = m_WDsel0 && WORD_ALIGNED(m_address);
+ m_WDsel = m_WDsel0 && ((m_address & 1)==0);
// Is the RTC selected on the card? (even addr)
m_RTCsel = m_inDsrArea && m_rtc_enabled && ((m_address & 0x1fe1)==0x1fe0);
diff --git a/src/devices/bus/ti99_peb/hfdc.cpp b/src/devices/bus/ti99_peb/hfdc.cpp
index 46ca7a1b819..c3e4779c1ef 100644
--- a/src/devices/bus/ti99_peb/hfdc.cpp
+++ b/src/devices/bus/ti99_peb/hfdc.cpp
@@ -232,7 +232,7 @@ READ8Z_MEMBER(myarc_hfdc_device::readz)
if (m_dip == CLEAR_LINE) *value = m_buffer_ram[(m_ram_page[bank]<<10) | (m_address & 0x03ff)];
if (TRACE_RAM)
{
- if (WORD_ALIGNED(m_address))
+ if ((m_address & 1)==0) // only show even addresses with words
{
int valword = (((*value) << 8) | m_buffer_ram[(m_ram_page[bank]<<10) | ((m_address+1) & 0x03ff)])&0xffff;
logerror("%s: %04x[%02x] -> %04x\n", tag(), m_address & 0xffff, m_ram_page[bank], valword);
@@ -246,7 +246,7 @@ READ8Z_MEMBER(myarc_hfdc_device::readz)
*value = m_dsrrom[(m_rom_page << 12) | (m_address & 0x0fff)];
if (TRACE_ROM)
{
- if (WORD_ALIGNED(m_address))
+ if ((m_address & 1)==0) // only show even addresses with words
{
int valword = (((*value) << 8) | m_dsrrom[(m_rom_page << 12) | ((m_address + 1) & 0x0fff)])&0xffff;
logerror("%s: %04x[%02x] -> %04x\n", tag(), m_address & 0xffff, m_rom_page, valword);