diff options
Diffstat (limited to 'src/devices/bus')
-rw-r--r-- | src/devices/bus/a2bus/a2pic.cpp | 20 | ||||
-rw-r--r-- | src/devices/bus/abcbus/lux10828.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/amiga/zorro/zorro.h | 4 | ||||
-rw-r--r-- | src/devices/bus/centronics/epson_lx810l.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/isa/3c505.cpp | 22 | ||||
-rw-r--r-- | src/devices/bus/isa/3c505.h | 1 | ||||
-rw-r--r-- | src/devices/bus/isa/omti8621.cpp | 108 | ||||
-rw-r--r-- | src/devices/bus/isa/omti8621.h | 3 | ||||
-rw-r--r-- | src/devices/bus/isa/sc499.cpp | 25 | ||||
-rw-r--r-- | src/devices/bus/isa/sc499.h | 1 | ||||
-rw-r--r-- | src/devices/bus/m5/rom.cpp | 63 | ||||
-rw-r--r-- | src/devices/bus/m5/rom.h | 50 | ||||
-rw-r--r-- | src/devices/bus/m5/slot.cpp | 276 | ||||
-rw-r--r-- | src/devices/bus/m5/slot.h | 118 | ||||
-rw-r--r-- | src/devices/bus/neogeo/bootleg_prot.cpp | 4 | ||||
-rw-r--r-- | src/devices/bus/ti99_peb/bwg.cpp | 2 | ||||
-rw-r--r-- | src/devices/bus/ti99_peb/hfdc.cpp | 4 |
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); |