summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author arbee <rb6502@users.noreply.github.com>2020-05-23 19:28:13 -0400
committer arbee <rb6502@users.noreply.github.com>2020-05-23 19:28:13 -0400
commit1c684902e29cea17232ad763956a9865fa651e69 (patch)
tree59e0f6dba1a3c364d1504f25c33d7c513937c115
parent23e8c957e839a7e2d76f38132258490ed1f20d03 (diff)
apple2: introduce new accurate IWM controller and switch apple2cr1/3/4 to use it [O. Galibert, R. Belmont]
-rw-r--r--scripts/src/bus.lua2
-rw-r--r--scripts/src/machine.lua55
-rw-r--r--scripts/target/mame/arcade.lua5
-rw-r--r--scripts/target/mame/mess.lua5
-rw-r--r--src/devices/machine/applefdc.cpp4
-rw-r--r--src/devices/machine/applefdc.h10
-rw-r--r--src/mame/drivers/apple2e.cpp8
7 files changed, 78 insertions, 11 deletions
diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua
index 90ba83740a2..0130cf9e40e 100644
--- a/scripts/src/bus.lua
+++ b/scripts/src/bus.lua
@@ -2286,6 +2286,8 @@ if (BUSES["A2BUS"]~=null) then
MAME_DIR .. "src/devices/bus/a2bus/a2applicard.h",
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.cpp",
MAME_DIR .. "src/devices/bus/a2bus/a2hsscsi.h",
+ MAME_DIR .. "src/devices/bus/a2bus/a2iwm.cpp",
+ MAME_DIR .. "src/devices/bus/a2bus/a2iwm.h",
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.cpp",
MAME_DIR .. "src/devices/bus/a2bus/a2ultraterm.h",
MAME_DIR .. "src/devices/bus/a2bus/a2pic.cpp",
diff --git a/scripts/src/machine.lua b/scripts/src/machine.lua
index 8e582b648a4..e9a8fda147e 100644
--- a/scripts/src/machine.lua
+++ b/scripts/src/machine.lua
@@ -4352,3 +4352,58 @@ if (MACHINES["CXD1185"]~=null) then
MAME_DIR .. "src/devices/machine/cxd1185.h",
}
end
+
+---------------------------------------------------
+--
+--@src/devices/machine/applefdc.h,MACHINES["APPLE_FDINTF"] = true
+---------------------------------------------------
+if (MACHINES["APPLE_FDINTF"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/applefdintf.cpp",
+ MAME_DIR .. "src/devices/machine/applefdintf.h",
+ }
+end
+
+---------------------------------------------------
+ --
+ --@src/devices/machine/iwm.h,MACHINES["IWM"] = true
+ ---------------------------------------------------
+ if (MACHINES["IWM"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/iwm.cpp",
+ MAME_DIR .. "src/devices/machine/iwm.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/swim1.h,MACHINES["SWIM1"] = true
+---------------------------------------------------
+if (MACHINES["SWIM1"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/swim1.cpp",
+ MAME_DIR .. "src/devices/machine/swim1.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/swim2.h,MACHINES["SWIM2"] = true
+---------------------------------------------------
+if (MACHINES["SWIM2"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/swim2.cpp",
+ MAME_DIR .. "src/devices/machine/swim2.h",
+ }
+end
+
+---------------------------------------------------
+--
+--@src/devices/machine/swim3.h,MACHINES["SWIM3"] = true
+---------------------------------------------------
+if (MACHINES["SWIM3"]~=null) then
+ files {
+ MAME_DIR .. "src/devices/machine/swim3.cpp",
+ MAME_DIR .. "src/devices/machine/swim3.h",
+ }
+end \ No newline at end of file
diff --git a/scripts/target/mame/arcade.lua b/scripts/target/mame/arcade.lua
index cd8fcdb4463..5f8c5023a28 100644
--- a/scripts/target/mame/arcade.lua
+++ b/scripts/target/mame/arcade.lua
@@ -675,6 +675,11 @@ MACHINES["FDC37C665GT"] = true
MACHINES["STEPPERS"] = true
--MACHINES["CORVUSHD"] = true
--MACHINES["WOZFDC"] = true
+--MACHINES["APPLE_FDINTF"] = true
+--MACHINES["IWM"] = true
+--MACHINES["SWIM1"] = true
+--MACHINES["SWIM2"] = true
+--MACHINES["SWIM3"] = true
--MACHINES["DIABLO_HD"] = true
MACHINES["PCI9050"] = true
MACHINES["TMS1024"] = true
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua
index bf83b93d972..061c6118e24 100644
--- a/scripts/target/mame/mess.lua
+++ b/scripts/target/mame/mess.lua
@@ -717,6 +717,11 @@ MACHINES["STRATA"] = true
MACHINES["STEPPERS"] = true
MACHINES["CORVUSHD"] = true
MACHINES["WOZFDC"] = true
+MACHINES["APPLE_FDINTF"] = true
+MACHINES["IWM"] = true
+MACHINES["SWIM1"] = true
+MACHINES["SWIM2"] = true
+MACHINES["SWIM3"] = true
MACHINES["DIABLO_HD"] = true
MACHINES["TMS1024"] = true
MACHINES["NSC810"] = true
diff --git a/src/devices/machine/applefdc.cpp b/src/devices/machine/applefdc.cpp
index 2e4cfb1266e..da817ccb1d8 100644
--- a/src/devices/machine/applefdc.cpp
+++ b/src/devices/machine/applefdc.cpp
@@ -578,9 +578,9 @@ applefdc_device::applefdc_device(const machine_config &mconfig, const char *tag,
IWM - Used on early Macs
***************************************************************************/
-DEFINE_DEVICE_TYPE(LEGACY_IWM, iwm_device, "iwml", "Apple IWM (Integrated Woz Machine) (legacy)")
+DEFINE_DEVICE_TYPE(LEGACY_IWM, legacy_iwm_device, "iwml", "Apple IWM (Integrated Woz Machine) (legacy)")
-iwm_device::iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+legacy_iwm_device::legacy_iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: applefdc_base_device(APPLEFDC_IWM, mconfig, LEGACY_IWM, tag, owner, clock)
{
}
diff --git a/src/devices/machine/applefdc.h b/src/devices/machine/applefdc.h
index 43ff81d8d77..cf8f06f4cb9 100644
--- a/src/devices/machine/applefdc.h
+++ b/src/devices/machine/applefdc.h
@@ -31,7 +31,7 @@
#define APPLEFDC_PH3 0x08
DECLARE_DEVICE_TYPE(LEGACY_APPLEFDC, applefdc_device)
-DECLARE_DEVICE_TYPE(LEGACY_IWM, iwm_device)
+DECLARE_DEVICE_TYPE(LEGACY_IWM, legacy_iwm_device)
@@ -135,16 +135,16 @@ public:
IWM - Used on early Macs
***************************************************************************/
-class iwm_device : public applefdc_base_device
+class legacy_iwm_device : public applefdc_base_device
{
public:
- iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, const applefdc_interface *intrf)
- : iwm_device(mconfig, tag, owner, (uint32_t)0)
+ legacy_iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, const applefdc_interface *intrf)
+ : legacy_iwm_device(mconfig, tag, owner, (uint32_t)0)
{
set_config(intrf);
}
- iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ legacy_iwm_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
static constexpr feature_type imperfect_features() { return feature::DISK; }
};
diff --git a/src/mame/drivers/apple2e.cpp b/src/mame/drivers/apple2e.cpp
index 978d6eecd09..dc500f37c91 100644
--- a/src/mame/drivers/apple2e.cpp
+++ b/src/mame/drivers/apple2e.cpp
@@ -158,7 +158,7 @@ Address bus A0-A11 is Y0-Y11
#include "bus/a2bus/4play.h"
#include "bus/a2bus/computereyes2.h"
#include "bus/a2bus/byte8251.h"
-
+#include "bus/a2bus/a2iwm.h"
#include "bus/a2gameio/gameio.h"
#include "bus/rs232/rs232.h"
@@ -285,7 +285,7 @@ public:
required_device<address_map_bank_device> m_lcbank;
optional_device<mos6551_device> m_acia1, m_acia2;
optional_device<applefdc_base_device> m_laserudc;
- optional_device<iwm_device> m_iicpiwm;
+ optional_device<legacy_iwm_device> m_iicpiwm;
required_device<ds1315_device> m_ds1315;
TIMER_DEVICE_CALLBACK_MEMBER(apple2_interrupt);
@@ -4560,7 +4560,7 @@ void apple2e_state::apple2c_iwm(machine_config &config)
apple2c(config);
config.device_remove("sl6");
- A2BUS_IWM_FDC(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus);
+ A2BUS_IWM(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus);
}
void apple2e_state::apple2c_mem(machine_config &config)
@@ -4571,7 +4571,7 @@ void apple2e_state::apple2c_mem(machine_config &config)
m_maincpu->set_dasm_override(FUNC(apple2e_state::dasm_trampoline));
config.device_remove("sl6");
- A2BUS_IWM_FDC(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus);
+ A2BUS_IWM(config, "sl6", A2BUS_7M_CLOCK).set_onboard(m_a2bus);
m_ram->set_default_size("128K").set_extra_options("128K, 384K, 640K, 896K, 1152K");
}