summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/acorn/atom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/acorn/atom.cpp')
-rw-r--r--src/mame/acorn/atom.cpp19
1 files changed, 10 insertions, 9 deletions
diff --git a/src/mame/acorn/atom.cpp b/src/mame/acorn/atom.cpp
index 9a298a67a20..b6b66f1ed4d 100644
--- a/src/mame/acorn/atom.cpp
+++ b/src/mame/acorn/atom.cpp
@@ -274,7 +274,7 @@ void atom_state::atom_mem(address_map &map)
// map(0xa000, 0xafff) // mapped by the cartslot
map(0xb000, 0xb003).mirror(0x3fc).rw(m_ppi, FUNC(i8255_device::read), FUNC(i8255_device::write));
// map(0xb400, 0xb403).rw(MC6854_TAG, FUNC(mc6854_device::read), FUNC(mc6854_device::write));
-// map(0xb404, 0xb404).portr("ECONET");
+// map(0xb404, 0xb404).portr(m_econet);
map(0xb800, 0xb80f).mirror(0x3f0).m(m_via, FUNC(via6522_device::map));
map(0xc000, 0xffff).rom().region(SY6502_TAG, 0);
}
@@ -430,7 +430,7 @@ static INPUT_PORTS_START( atom )
PORT_BIT( 0x40, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("REPT") PORT_CODE(KEYCODE_RCONTROL) PORT_CHAR(UCHAR_MAMEKEY(RCONTROL))
PORT_START("BRK") // This is a full reset - program in memory is lost
- PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BREAK") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHANGED_MEMBER(DEVICE_SELF, atom_state, trigger_reset, 0)
+ PORT_BIT( 0x01, IP_ACTIVE_LOW, IPT_KEYBOARD ) PORT_NAME("BREAK") PORT_CODE(KEYCODE_ESC) PORT_CHAR(UCHAR_MAMEKEY(F3)) PORT_CHANGED_MEMBER(DEVICE_SELF, FUNC(atom_state::trigger_reset), 0)
PORT_START("ECONET")
// station ID (0-255)
@@ -585,11 +585,8 @@ void atom_state::atom_8271_interrupt_callback(int state)
void atom_state::motor_w(int state)
{
- for (u8 i = 0; i < 2; i++)
+ for (auto &con : m_floppies)
{
- char devname[8];
- sprintf(devname, "%d", i);
- floppy_connector *con = m_fdc->subdevice<floppy_connector>(devname);
if (con)
con->get_device()->mon_w(!state);
}
@@ -710,6 +707,9 @@ void atom_state::floppy_formats(format_registration &fr)
void atom_state::atom_common(machine_config &config)
{
+ [[maybe_unused]] constexpr auto X1 = 3.579545_MHz_XTAL; // MC6847 Clock
+ constexpr auto X2 = 4_MHz_XTAL; // CPU Clock - a divider reduces it to 1MHz
+
/* basic machine hardware */
M6502(config, m_maincpu, X2/4);
@@ -758,11 +758,12 @@ void atom_state::atom(machine_config &config)
atom_common(config);
m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atom_mem);
- I8271(config, m_fdc, 0);
+ // Atom Disc Pack
+ I8271(config, m_fdc, 4_MHz_XTAL / 2);
m_fdc->intrq_wr_callback().set(FUNC(atom_state::atom_8271_interrupt_callback));
m_fdc->hdl_wr_callback().set(FUNC(atom_state::motor_w));
- FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[0], atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
+ FLOPPY_CONNECTOR(config, m_floppies[1], atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
QUICKLOAD(config, "quickload", "atm", attotime::from_seconds(2)).set_load_callback(FUNC(atom_state::quickload_cb));