diff options
Diffstat (limited to 'src/mame/acorn/atom.cpp')
-rw-r--r-- | src/mame/acorn/atom.cpp | 19 |
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)); |