summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author AJR <ariedlmayer@gmail.com>2025-07-25 22:33:32 -0400
committer AJR <ariedlmayer@gmail.com>2025-07-25 22:33:32 -0400
commitfda3d4f99eb4c868c77bf21650372bc72b8e6ca6 (patch)
tree6bf63bcad009a5fd59fc18f7ac87c0f6611c35c6
parent2f1d8bf0d40aa420c5f02e1ba1dc5842a5dacd1c (diff)
a8sio: Hook up ready line (even though the host merely ties it to Vcc)
-rw-r--r--src/devices/bus/a800/a8sio.cpp6
-rw-r--r--src/devices/bus/a800/a8sio.h1
-rw-r--r--src/mame/atari/atari400.cpp15
3 files changed, 17 insertions, 5 deletions
diff --git a/src/devices/bus/a800/a8sio.cpp b/src/devices/bus/a800/a8sio.cpp
index 522b36e32c8..bd712d013c4 100644
--- a/src/devices/bus/a800/a8sio.cpp
+++ b/src/devices/bus/a800/a8sio.cpp
@@ -132,6 +132,12 @@ void a8sio_device::motor_w(int state)
m_device->motor_w(state);
}
+void a8sio_device::ready_w(int state)
+{
+ if (m_device)
+ m_device->ready_w(state);
+}
+
void a8sio_device::proceed_w(int state)
{
m_out_proceed_cb(state);
diff --git a/src/devices/bus/a800/a8sio.h b/src/devices/bus/a800/a8sio.h
index dab1665c5e8..cafd39e4e97 100644
--- a/src/devices/bus/a800/a8sio.h
+++ b/src/devices/bus/a800/a8sio.h
@@ -69,6 +69,7 @@ public:
void command_w(int state); // pin 7
void motor_w(int state); // pin 8
void proceed_w(int state); // pin 9
+ void ready_w(int state); // pin 10
void audio_in_w(uint8_t data); // pin 11
void interrupt_w(int state); // pin 13
diff --git a/src/mame/atari/atari400.cpp b/src/mame/atari/atari400.cpp
index 059f3bd49b7..ca54fe7a304 100644
--- a/src/mame/atari/atari400.cpp
+++ b/src/mame/atari/atari400.cpp
@@ -275,6 +275,7 @@ public:
, m_ram(*this, RAM_TAG)
, m_pia(*this, "pia")
, m_dac(*this, "dac")
+ , m_sio(*this, "sio")
, m_region_maincpu(*this, "maincpu")
, m_cartleft(*this, "cartleft")
, m_cart_rd4_view(*this, "cart_rd4_view")
@@ -331,6 +332,7 @@ protected:
optional_device<ram_device> m_ram;
optional_device<pia6821_device> m_pia;
optional_device<dac_bit_interface> m_dac;
+ optional_device<a8sio_device> m_sio;
required_memory_region m_region_maincpu;
optional_device<a800_cart_slot_device> m_cartleft;
memory_view m_cart_rd4_view, m_cart_rd5_view;
@@ -1729,6 +1731,9 @@ void a400_state::machine_start()
{
save_item(NAME(m_cart_rd4_enabled));
save_item(NAME(m_cart_rd5_enabled));
+
+ if (m_sio.found())
+ m_sio->ready_w(1);
}
void a1200xl_state::machine_start()
@@ -2027,8 +2032,8 @@ void a400_state::atari_common(machine_config &config)
m_pokey->pot_r<5>().set(m_ctrl[2], FUNC(vcs_control_port_device::read_pot_x));
m_pokey->pot_r<6>().set(m_ctrl[3], FUNC(vcs_control_port_device::read_pot_y));
m_pokey->pot_r<7>().set(m_ctrl[3], FUNC(vcs_control_port_device::read_pot_x));
- m_pokey->oclk_w().set("sio", FUNC(a8sio_device::clock_out_w));
- m_pokey->sod_w().set("sio", FUNC(a8sio_device::data_out_w));
+ m_pokey->oclk_w().set(m_sio, FUNC(a8sio_device::clock_out_w));
+ m_pokey->sod_w().set(m_sio, FUNC(a8sio_device::data_out_w));
DAC_1BIT(config, "dac", 0).add_route(ALL_OUTPUTS, "speaker", 0.03);
@@ -2049,12 +2054,12 @@ void a400_state::atari_common(machine_config &config)
m_pia->writepa_handler().set(FUNC(a400_state::djoy_0_1_w));
m_pia->readpb_handler().set(FUNC(a400_state::djoy_2_3_r));
m_pia->writepb_handler().set(FUNC(a400_state::djoy_2_3_w));
- m_pia->ca2_handler().set("sio", FUNC(a8sio_device::motor_w));
- m_pia->cb2_handler().set("sio", FUNC(a8sio_device::command_w));
+ m_pia->ca2_handler().set(m_sio, FUNC(a8sio_device::motor_w));
+ m_pia->cb2_handler().set(m_sio, FUNC(a8sio_device::command_w));
m_pia->irqa_handler().set("mainirq", FUNC(input_merger_device::in_w<1>));
m_pia->irqb_handler().set("mainirq", FUNC(input_merger_device::in_w<2>));
- a8sio_device &sio(A8SIO(config, "sio", "fdc"));
+ a8sio_device &sio(A8SIO(config, m_sio, "fdc"));
//sio.clock_in().set(m_pokey, FUNC(pokey_device::bclk_w));
sio.data_in().set(m_pokey, FUNC(pokey_device::sid_w));
sio.proceed().set(m_pia, FUNC(pia6821_device::ca1_w));