mirror of
https://github.com/holub/mame
synced 2025-04-19 07:00:31 +03:00
apple2: introduce new accurate IWM controller and switch apple2cr1/3/4 to use it [O. Galibert, R. Belmont]
This commit is contained in:
parent
23e8c957e8
commit
1c684902e2
@ -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",
|
||||
|
@ -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
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
{
|
||||
}
|
||||
|
@ -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; }
|
||||
};
|
||||
|
@ -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");
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user