summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author David Haywood <mamehaze@users.noreply.github.com>2015-10-12 22:21:21 +0100
committer David Haywood <mamehaze@users.noreply.github.com>2015-10-12 22:21:21 +0100
commit3b785a1ffec1f3baa5e22e176a4edbe3d2529c08 (patch)
treee3b96a427d7624a3f131081b601f1aa846391885
parent542259a5e20fb0d2b99db1714edd264bfab916e1 (diff)
parent450d182b9f7151ca6fcb57bb66f4758e7701edbd (diff)
Merge branch 'master' of https://github.com/mamedev/mame
-rw-r--r--scripts/src/bus.lua19
-rw-r--r--scripts/target/mame/mess.lua15
-rw-r--r--src/devices/bus/tiki100/8088.c152
-rw-r--r--src/devices/bus/tiki100/8088.h55
-rw-r--r--src/devices/bus/tiki100/exp.c177
-rw-r--r--src/devices/bus/tiki100/exp.h154
-rw-r--r--src/devices/machine/atahle.c15
-rw-r--r--src/devices/machine/idehd.c2
-rw-r--r--src/devices/sound/digitalk.c2
-rw-r--r--src/mame/drivers/tiki100.c25
-rw-r--r--src/mame/includes/tiki100.h5
11 files changed, 596 insertions, 25 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index 643bf0e9101..777862802dc 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -1101,6 +1101,21 @@ end
---------------------------------------------------
--
+--@src/devices/bus/tiki100/exp.h,BUSES["TIKI100"] = true
+---------------------------------------------------
+
+if (BUSES["TIKI100"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/bus/tiki100/exp.c",
+ MAME_DIR .. "src/devices/bus/tiki100/exp.h",
+ MAME_DIR .. "src/devices/bus/tiki100/8088.c",
+ MAME_DIR .. "src/devices/bus/tiki100/8088.h",
+ }
+end
+
+
+---------------------------------------------------
+--
--@src/devices/bus/tvc/tvc.h,BUSES["TVC"] = true
---------------------------------------------------
@@ -2018,10 +2033,10 @@ if (BUSES["TI99X"]~=null) then
MAME_DIR .. "src/devices/bus/ti99x/mecmouse.h",
MAME_DIR .. "src/devices/bus/ti99x/ti99defs.h",
MAME_DIR .. "src/devices/bus/ti99x/videowrp.c",
- MAME_DIR .. "src/devices/bus/ti99x/videowrp.h",
+ MAME_DIR .. "src/devices/bus/ti99x/videowrp.h",
}
end
-
+
---------------------------------------------------
--
--@src/devices/bus/ti99_peb/peribox.h,BUSES["TI99PEB"] = true
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index 03cfa350280..a6841a0384e 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -645,6 +645,7 @@ BUSES["SNES_CTRL"] = true
BUSES["SPC1000"] = true
BUSES["TI99PEB"] = true
BUSES["TI99X"] = true
+BUSES["TIKI100"] = true
BUSES["TVC"] = true
BUSES["VBOY"] = true
BUSES["VC4000"] = true
@@ -1231,9 +1232,9 @@ files {
}
createMESSProjects(_target, _subtarget, "canon")
-files {
- MAME_DIR .. "src/mame/drivers/cat.c",
- MAME_DIR .. "src/mame/drivers/x07.c",
+files {
+ MAME_DIR .. "src/mame/drivers/cat.c",
+ MAME_DIR .. "src/mame/drivers/x07.c",
MAME_DIR .. "src/mame/drivers/canon_s80.c",
}
@@ -1640,8 +1641,8 @@ files {
}
createMESSProjects(_target, _subtarget, "heurikon")
-files {
- MAME_DIR .. "src/mame/drivers/hk68v10.c",
+files {
+ MAME_DIR .. "src/mame/drivers/hk68v10.c",
}
createMESSProjects(_target, _subtarget, "intel")
@@ -1803,8 +1804,8 @@ files {
}
createMESSProjects(_target, _subtarget, "mizar")
-files {
- MAME_DIR .. "src/mame/drivers/mzr8105.c",
+files {
+ MAME_DIR .. "src/mame/drivers/mzr8105.c",
}
createMESSProjects(_target, _subtarget, "morrow")
diff --git a/src/devices/bus/tiki100/8088.c b/src/devices/bus/tiki100/8088.c
new file mode 100644
index 00000000000..919f1d836aa
--- /dev/null
+++ b/src/devices/bus/tiki100/8088.c
@@ -0,0 +1,152 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 8/16 8088/8087 expansion card emulation
+
+**********************************************************************/
+
+#include "8088.h"
+
+
+
+//**************************************************************************
+// MACROS/CONSTANTS
+//**************************************************************************
+
+#define I8088_TAG "u3"
+
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type TIKI100_8088 = &device_creator<tiki100_8088_t>;
+
+
+//-------------------------------------------------
+// ROM( tiki100_8088 )
+//-------------------------------------------------
+
+ROM_START( tiki100_8088 )
+ ROM_REGION( 0x1000, I8088_TAG, 0 )
+ ROM_LOAD( "boot 1.0.u3", 0x0000, 0x1000, CRC(436974aa) SHA1(837087b3ab982d047e4f15799fef3daa37dd6c01) )
+
+ ROM_REGION( 0x100, "u26", 0 )
+ ROM_LOAD( "53ls140.u26", 0x000, 0x100, CRC(fc5902e1) SHA1(afb9cb54ab6fc449e7544ddb3cbebc3770c4f937) )
+ROM_END
+
+
+//-------------------------------------------------
+// rom_region - device-specific ROM region
+//-------------------------------------------------
+
+const rom_entry *tiki100_8088_t::device_rom_region() const
+{
+ return ROM_NAME( tiki100_8088 );
+}
+
+
+static ADDRESS_MAP_START( i8088_mem, AS_PROGRAM, 8, tiki100_8088_t )
+ AM_RANGE(0xff000, 0xfffff) AM_ROM AM_REGION(I8088_TAG, 0)
+ADDRESS_MAP_END
+
+
+static ADDRESS_MAP_START( i8088_io, AS_IO, 8, tiki100_8088_t )
+ AM_RANGE(0x7f, 0x7f) AM_READWRITE(read, write)
+ADDRESS_MAP_END
+
+
+//-------------------------------------------------
+// MACHINE_CONFIG_FRAGMENT( tiki100_8088 )
+//-------------------------------------------------
+
+static MACHINE_CONFIG_FRAGMENT( tiki100_8088 )
+ MCFG_CPU_ADD("maincpu", I8088, 4000000)
+ MCFG_CPU_PROGRAM_MAP(i8088_mem)
+ MCFG_CPU_IO_MAP(i8088_io)
+MACHINE_CONFIG_END
+
+
+//-------------------------------------------------
+// machine_config_additions - device-specific
+// machine configurations
+//-------------------------------------------------
+
+machine_config_constructor tiki100_8088_t::device_mconfig_additions() const
+{
+ return MACHINE_CONFIG_NAME( tiki100_8088 );
+}
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// tiki100_8088_t - constructor
+//-------------------------------------------------
+
+tiki100_8088_t::tiki100_8088_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_8088, "TIKI-100 8/16", tag, owner, clock, "tiki100_8088", __FILE__),
+ device_tiki100bus_card_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_8088_t::device_start()
+{
+}
+
+
+//-------------------------------------------------
+// device_reset - device-specific reset
+//-------------------------------------------------
+
+void tiki100_8088_t::device_reset()
+{
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_r - I/O read
+//-------------------------------------------------
+
+UINT8 tiki100_8088_t::tiki100_iorq_r(address_space &space, offs_t offset, UINT8 data)
+{
+ return data;
+}
+
+
+//-------------------------------------------------
+// tiki100bus_iorq_w - I/O write
+//-------------------------------------------------
+
+void tiki100_8088_t::tiki100_iorq_w(address_space &space, offs_t offset, UINT8 data)
+{
+}
+
+
+//-------------------------------------------------
+// read -
+//-------------------------------------------------
+
+READ8_MEMBER( tiki100_8088_t::read )
+{
+ return 0xff;
+}
+
+
+//-------------------------------------------------
+// write -
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_8088_t::write )
+{
+}
diff --git a/src/devices/bus/tiki100/8088.h b/src/devices/bus/tiki100/8088.h
new file mode 100644
index 00000000000..edc4607570c
--- /dev/null
+++ b/src/devices/bus/tiki100/8088.h
@@ -0,0 +1,55 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 8/16 8088/8087 expansion card emulation
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __TIKI100_8088__
+#define __TIKI100_8088__
+
+#include "emu.h"
+#include "bus/tiki100/exp.h"
+#include "cpu/i86/i86.h"
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> tiki100_8088_t
+
+class tiki100_8088_t : public device_t,
+ public device_tiki100bus_card_interface
+{
+public:
+ // construction/destruction
+ tiki100_8088_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // optional information overrides
+ virtual const rom_entry *device_rom_region() const;
+ virtual machine_config_constructor device_mconfig_additions() const;
+
+ DECLARE_READ8_MEMBER( read );
+ DECLARE_WRITE8_MEMBER( write );
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+ virtual void device_reset();
+
+ // device_tiki100bus_card_interface overrides
+ virtual UINT8 tiki100_iorq_r(address_space &space, offs_t offset, UINT8 data);
+ virtual void tiki100_iorq_w(address_space &space, offs_t offset, UINT8 data);
+};
+
+
+// device type definition
+extern const device_type TIKI100_8088;
+
+
+#endif
diff --git a/src/devices/bus/tiki100/exp.c b/src/devices/bus/tiki100/exp.c
new file mode 100644
index 00000000000..c0461282fdf
--- /dev/null
+++ b/src/devices/bus/tiki100/exp.c
@@ -0,0 +1,177 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 expansion bus emulation
+
+**********************************************************************/
+
+#include "exp.h"
+
+
+//**************************************************************************
+// DEVICE DEFINITIONS
+//**************************************************************************
+
+const device_type TIKI100_BUS = &device_creator<tiki100_bus_t>;
+const device_type TIKI100_BUS_SLOT = &device_creator<tiki100_bus_slot_t>;
+
+
+
+//**************************************************************************
+// LIVE DEVICE
+//**************************************************************************
+
+//-------------------------------------------------
+// tiki100_bus_slot_t - constructor
+//-------------------------------------------------
+
+tiki100_bus_slot_t::tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_BUS_SLOT, "TIKI-100 expansion bus slot", tag, owner, clock, "tiki100bus_slot", __FILE__),
+ device_slot_interface(mconfig, *this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_bus_slot_t::device_start()
+{
+ m_bus = machine().device<tiki100_bus_t>(TIKI100_BUS_TAG);
+ device_tiki100bus_card_interface *dev = dynamic_cast<device_tiki100bus_card_interface *>(get_card_device());
+ if (dev) m_bus->add_card(dev);
+}
+
+
+//-------------------------------------------------
+// tiki100_bus_t - constructor
+//-------------------------------------------------
+
+tiki100_bus_t::tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
+ device_t(mconfig, TIKI100_BUS, "TIKI-100 expansion bus", tag, owner, clock, "tiki100bus", __FILE__),
+ m_irq_cb(*this),
+ m_nmi_cb(*this)
+{
+}
+
+
+//-------------------------------------------------
+// device_start - device-specific startup
+//-------------------------------------------------
+
+void tiki100_bus_t::device_start()
+{
+ // resolve callbacks
+ m_irq_cb.resolve_safe();
+ m_nmi_cb.resolve_safe();
+}
+
+
+//-------------------------------------------------
+// add_card - add card
+//-------------------------------------------------
+
+void tiki100_bus_t::add_card(device_tiki100bus_card_interface *card)
+{
+ m_device_list.append(*card);
+
+ card->m_bus = this;
+}
+
+
+//-------------------------------------------------
+// mrq_r - memory read
+//-------------------------------------------------
+
+UINT8 tiki100_bus_t::mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis)
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ data &= entry->tiki100_mrq_r(space, offset, data, mdis);
+ entry = entry->next();
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// mrq_w - memory write
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_bus_t::mrq_w )
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ entry->tiki100_mrq_w(space, offset, data);
+ entry = entry->next();
+ }
+}
+
+
+//-------------------------------------------------
+// iorq_r - I/O read
+//-------------------------------------------------
+
+UINT8 tiki100_bus_t::iorq_r(address_space &space, offs_t offset, UINT8 data)
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ data &= entry->tiki100_iorq_r(space, offset, data);
+ entry = entry->next();
+ }
+
+ return data;
+}
+
+
+//-------------------------------------------------
+// iorq_w - I/O write
+//-------------------------------------------------
+
+WRITE8_MEMBER( tiki100_bus_t::iorq_w )
+{
+ device_tiki100bus_card_interface *entry = m_device_list.first();
+
+ while (entry)
+ {
+ entry->tiki100_iorq_w(space, offset, data);
+ entry = entry->next();
+ }
+}
+
+
+
+//**************************************************************************
+// DEVICE TIKI-100 BUS CARD INTERFACE
+//**************************************************************************
+
+//-------------------------------------------------
+// device_tiki100bus_card_interface - constructor
+//-------------------------------------------------
+
+device_tiki100bus_card_interface::device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device) :
+ device_slot_card_interface(mconfig, device)
+{
+ m_slot = dynamic_cast<tiki100_bus_slot_t *>(device.owner());
+}
+
+
+//-------------------------------------------------
+// SLOT_INTERFACE( tiki100_cards )
+//-------------------------------------------------
+
+// slot devices
+#include "8088.h"
+
+SLOT_INTERFACE_START( tiki100_cards )
+ SLOT_INTERFACE("8088", TIKI100_8088)
+SLOT_INTERFACE_END
diff --git a/src/devices/bus/tiki100/exp.h b/src/devices/bus/tiki100/exp.h
new file mode 100644
index 00000000000..7e3b3f39333
--- /dev/null
+++ b/src/devices/bus/tiki100/exp.h
@@ -0,0 +1,154 @@
+// license:BSD-3-Clause
+// copyright-holders:Curt Coder
+/**********************************************************************
+
+ TIKI-100 expansion bus emulation
+
+**********************************************************************
+
+
+**********************************************************************/
+
+#pragma once
+
+#ifndef __TIKI100_BUS__
+#define __TIKI100_BUS__
+
+#include "emu.h"
+
+
+
+//**************************************************************************
+// CONSTANTS
+//**************************************************************************
+
+#define TIKI100_BUS_TAG "tiki100bus"
+
+
+
+//**************************************************************************
+// INTERFACE CONFIGURATION MACROS
+//**************************************************************************
+
+#define MCFG_TIKI100_BUS_ADD() \
+ MCFG_DEVICE_ADD(TIKI100_BUS_TAG, TIKI100_BUS, 0)
+
+#define MCFG_TIKI100_BUS_SLOT_ADD(_tag, _def_slot) \
+ MCFG_DEVICE_ADD(_tag, TIKI100_BUS_SLOT, 0) \
+ MCFG_DEVICE_SLOT_INTERFACE(tiki100_cards, _def_slot, false)
+
+
+#define MCFG_TIKI100_BUS_IRQ_CALLBACK(_write) \
+ devcb = &tiki100_bus_t::set_irq_wr_callback(*device, DEVCB_##_write);
+
+#define MCFG_TIKI100_BUS_NMI_CALLBACK(_write) \
+ devcb = &tiki100_bus_t::set_nmi_wr_callback(*device, DEVCB_##_write);
+
+
+
+//**************************************************************************
+// TYPE DEFINITIONS
+//**************************************************************************
+
+// ======================> tiki100_bus_slot_t
+
+class tiki100_bus_t;
+
+class tiki100_bus_slot_t : public device_t,
+ public device_slot_interface
+{
+public:
+ // construction/destruction
+ tiki100_bus_slot_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+
+ // device-level overrides
+ virtual void device_start();
+
+private:
+ // configuration
+ tiki100_bus_t *m_bus;
+};
+
+
+// device type definition
+extern const device_type TIKI100_BUS_SLOT;
+
+
+class device_tiki100bus_card_interface;
+
+
+// ======================> tiki100_bus_t
+
+class tiki100_bus_t : public device_t
+{
+public:
+ // construction/destruction
+ tiki100_bus_t(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
+ ~tiki100_bus_t() { m_device_list.detach_all(); }
+
+ template<class _Object> static devcb_base &set_irq_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_irq_cb.set_callback(object); }
+ template<class _Object> static devcb_base &set_nmi_wr_callback(device_t &device, _Object object) { return downcast<tiki100_bus_t &>(device).m_nmi_cb.set_callback(object); }
+
+ void add_card(device_tiki100bus_card_interface *card);
+
+ // computer interface
+ UINT8 mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis);
+ DECLARE_WRITE8_MEMBER( mrq_w );
+
+ UINT8 iorq_r(address_space &space, offs_t offset, UINT8 data);
+ DECLARE_WRITE8_MEMBER( iorq_w );
+
+ // peripheral interface
+ DECLARE_WRITE_LINE_MEMBER( irq_w ) { m_irq_cb(state); }
+ DECLARE_WRITE_LINE_MEMBER( nmi_w ) { m_nmi_cb(state); }
+
+protected:
+ // device-level overrides
+ virtual void device_start();
+
+private:
+ devcb_write_line m_irq_cb;
+ devcb_write_line m_nmi_cb;
+
+ simple_list<device_tiki100bus_card_interface> m_device_list;
+};
+
+
+// device type definition
+extern const device_type TIKI100_BUS;
+
+
+// ======================> device_tiki100bus_card_interface
+
+// class representing interface-specific live tiki100bus card
+class device_tiki100bus_card_interface : public device_slot_card_interface
+{
+ friend class tiki100_bus_t;
+
+public:
+ // construction/destruction
+ device_tiki100bus_card_interface(const machine_config &mconfig, device_t &device);
+ virtual ~device_tiki100bus_card_interface() { }
+
+ device_tiki100bus_card_interface *next() const { return m_next; }
+
+ // memory access
+ virtual UINT8 tiki100_mrq_r(address_space &space, offs_t offset, UINT8 data, bool &mdis) { mdis = 1; return data; };
+ virtual void tiki100_mrq_w(address_space &space, offs_t offset, UINT8 data) { };
+
+ // I/O access
+ virtual UINT8 tiki100_iorq_r(address_space &space, offs_t offset, UINT8 data) { return data; };
+ virtual void tiki100_iorq_w(address_space &space, offs_t offset, UINT8 data) { };
+
+ tiki100_bus_t *m_bus;
+ tiki100_bus_slot_t *m_slot;
+
+ device_tiki100bus_card_interface *m_next;
+};
+
+
+SLOT_INTERFACE_EXTERN( tiki100_cards );
+
+
+
+#endif
diff --git a/src/devices/machine/atahle.c b/src/devices/machine/atahle.c
index 3a1599a3eed..c5351994ea2 100644
--- a/src/devices/machine/atahle.c
+++ b/src/devices/machine/atahle.c
@@ -346,16 +346,19 @@ int ata_hle_device::bit_to_mode(UINT16 word)
return -1;
}
+// Return the currently selected single word dma mode, -1 if none selected
int ata_hle_device::single_word_dma_mode()
{
return bit_to_mode(m_identify_buffer[62]);
}
+// Return the currently selected multi word dma mode, -1 if none selected
int ata_hle_device::multi_word_dma_mode()
{
return bit_to_mode(m_identify_buffer[63]);
}
+// Return the currently selected ultra dma mode, -1 if none selected
int ata_hle_device::ultra_dma_mode()
{
return bit_to_mode(m_identify_buffer[88]);
@@ -459,7 +462,7 @@ void ata_hle_device::read_buffer_empty()
m_status &= ~IDE_STATUS_DRQ;
- if (multi_word_dma_mode() >= 0)
+ if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
set_dmarq(CLEAR_LINE);
fill_buffer();
@@ -471,7 +474,7 @@ void ata_hle_device::write_buffer_full()
m_status &= ~IDE_STATUS_DRQ;
- if (multi_word_dma_mode() >= 0)
+ if ((multi_word_dma_mode() >= 0) || (ultra_dma_mode() >= 0))
set_dmarq(CLEAR_LINE);
process_buffer();
@@ -547,6 +550,10 @@ UINT16 ata_hle_device::read_dma()
{
logerror( "%s: %s dev %d read_dma ignored (!DMARQ)\n", machine().describe_context(), tag(), dev() );
}
+ else if (!m_dmarq && ultra_dma_mode() >= 0)
+ {
+ logerror("%s: %s dev %d read_dma ignored (!DMARQ)\n", machine().describe_context(), tag(), dev());
+ }
else if (m_status & IDE_STATUS_BSY)
{
logerror( "%s: %s dev %d read_dma ignored (BSY)\n", machine().describe_context(), tag(), dev() );
@@ -767,6 +774,10 @@ void ata_hle_device::write_dma( UINT16 data )
{
logerror( "%s: %s dev %d write_dma %04x ignored (!DMARQ)\n", machine().describe_context(), tag(), dev(), data );
}
+ else if (!m_dmarq && ultra_dma_mode() >= 0)
+ {
+ logerror("%s: %s dev %d write_dma %04x ignored (!DMARQ)\n", machine().describe_context(), tag(), dev(), data);
+ }
else if (m_status & IDE_STATUS_BSY)
{
logerror( "%s: %s dev %d write_dma %04x ignored (BSY)\n", machine().describe_context(), tag(), dev(), data );
diff --git a/src/devices/machine/idehd.c b/src/devices/machine/idehd.c
index aa5517a1a3e..afc6de0c3de 100644
--- a/src/devices/machine/idehd.c
+++ b/src/devices/machine/idehd.c
@@ -149,7 +149,7 @@ void ata_mass_storage_device::ide_build_identify_device()
m_identify_buffer[85] = 0x00; /* 85: command set/feature enabled */
m_identify_buffer[86] = 0x00; /* 86: command set/feature enabled */
m_identify_buffer[87] = 0x00; /* 87: command set/feature default */
- m_identify_buffer[88] = 0x00; /* 88: additional DMA modes */
+ m_identify_buffer[88] = 0x00; /* 88: additional DMA modes (ultra dma) */
m_identify_buffer[89] = 0x00; /* 89: time required for security erase unit completion */
m_identify_buffer[90] = 0x00; /* 90: time required for enhanced security erase unit completion */
m_identify_buffer[91] = 0x00; /* 91: current advanced power management value */
diff --git a/src/devices/sound/digitalk.c b/src/devices/sound/digitalk.c
index dcd0a965408..7f240879d53 100644
--- a/src/devices/sound/digitalk.c
+++ b/src/devices/sound/digitalk.c
@@ -516,6 +516,7 @@ void digitalker_device::digitalker_step()
return;
}
} else if(m_stop_after == 1) {
+ digitalker_set_intr(1);
m_bpos = 0xffff;
m_zero_count = 81920;
m_stop_after = 2;
@@ -525,7 +526,6 @@ void digitalker_device::digitalker_step()
m_repeats = 0;
} else {
m_stop_after = 0;
- digitalker_set_intr(1);
}
}
diff --git a/src/mame/drivers/tiki100.c b/src/mame/drivers/tiki100.c
index 2503d624ee4..a35c9f1fc67 100644
--- a/src/mame/drivers/tiki100.c
+++ b/src/mame/drivers/tiki100.c
@@ -26,18 +26,18 @@
*/
#include "includes/tiki100.h"
-#include "bus/rs232/rs232.h"
/* Memory Banking */
READ8_MEMBER( tiki100_state::read )
{
- int mdis = 1;
+ bool mdis = 1;
+
+ UINT8 data = m_exp->mrq_r(space, offset, 0xff, mdis);
+
offs_t prom_addr = mdis << 5 | m_vire << 4 | m_rome << 3 | (offset >> 13);
UINT8 prom = m_prom->base()[prom_addr] ^ 0xff;
- UINT8 data = 0xff;
-
if (prom & ROM0)
{
data = m_rom->base()[offset & 0x3fff];
@@ -65,7 +65,7 @@ READ8_MEMBER( tiki100_state::read )
WRITE8_MEMBER( tiki100_state::write )
{
- int mdis = 1;
+ bool mdis = 1;
offs_t prom_addr = mdis << 5 | m_vire << 4 | m_rome << 3 | (offset >> 13);
UINT8 prom = m_prom->base()[prom_addr] ^ 0xff;
@@ -80,6 +80,8 @@ WRITE8_MEMBER( tiki100_state::write )
{
m_ram->pointer()[offset] = data;
}
+
+ m_exp->mrq_w(space, offset, data);
}
/* Read/Write Handlers */
@@ -621,6 +623,13 @@ static MACHINE_CONFIG_START( tiki100, tiki100_state )
MCFG_PALETTE_ADD("palette", 16)
// pixel clock 20.01782 MHz
+ MCFG_TIKI100_BUS_ADD()
+ //MCFG_TIKI100_BUS_IRQ_CALLBACK()
+ //MCFG_TIKI100_BUS_NMI_CALLBACK()
+ MCFG_TIKI100_BUS_SLOT_ADD("slot1", "8088")
+ MCFG_TIKI100_BUS_SLOT_ADD("slot2", NULL)
+ MCFG_TIKI100_BUS_SLOT_ADD("slot3", NULL)
+
/* devices */
MCFG_Z80DART_ADD(Z80DART_TAG, XTAL_8MHz/4, 0, 0, 0, 0 )
MCFG_Z80DART_OUT_TXDA_CB(DEVWRITELINE(RS232_A_TAG, rs232_port_device, write_txd))
@@ -706,12 +715,6 @@ ROM_START( tiki100 )
ROM_REGION( 0x100, "u4", 0 )
ROM_LOAD( "53ls140.u4", 0x000, 0x100, CRC(894b756f) SHA1(429e10de0e0e749246895801b18186ff514c12bc) )
-
- ROM_REGION( 0x1000, "8088", 0 )
- ROM_LOAD( "boot 1.0.u3", 0x0000, 0x1000, CRC(436974aa) SHA1(837087b3ab982d047e4f15799fef3daa37dd6c01) )
-
- ROM_REGION( 0x100, "8088_proms", 0 )
- ROM_LOAD( "53ls140.u26", 0x000, 0x100, CRC(fc5902e1) SHA1(afb9cb54ab6fc449e7544ddb3cbebc3770c4f937) )
ROM_END
/* System Drivers */
diff --git a/src/mame/includes/tiki100.h b/src/mame/includes/tiki100.h
index cf1f9707a88..3536a7d31fa 100644
--- a/src/mame/includes/tiki100.h
+++ b/src/mame/includes/tiki100.h
@@ -5,9 +5,10 @@
#ifndef __TIKI100__
#define __TIKI100__
-
#include "emu.h"
#include "bus/centronics/ctronics.h"
+#include "bus/rs232/rs232.h"
+#include "bus/tiki100/exp.h"
#include "cpu/z80/z80.h"
#include "cpu/z80/z80daisy.h"
#include "formats/tiki100_dsk.h"
@@ -53,6 +54,7 @@ public:
m_floppy1(*this, FD1797_TAG":1"),
m_cassette(*this, CASSETTE_TAG),
m_centronics(*this, CENTRONICS_TAG),
+ m_exp(*this, TIKI100_BUS_TAG),
m_rom(*this, Z80_TAG),
m_prom(*this, "u4"),
m_video_ram(*this, "video_ram"),
@@ -83,6 +85,7 @@ public:
required_device<floppy_connector> m_floppy1;
required_device<cassette_image_device> m_cassette;
required_device<centronics_device> m_centronics;
+ required_device<tiki100_bus_t> m_exp;
required_memory_region m_rom;
required_memory_region m_prom;
optional_shared_ptr<UINT8> m_video_ram;