apple2: introduce new accurate IWM controller and switch apple2cr1/3/4 to use it [O. Galibert, R. Belmont]

This commit is contained in:
arbee 2020-05-23 19:28:13 -04:00
parent 23e8c957e8
commit 1c684902e2
7 changed files with 78 additions and 11 deletions

View File

@ -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",

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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)
{
}

View File

@ -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; }
};

View File

@ -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");
}