summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers
diff options
context:
space:
mode:
author smf- <smf-@users.noreply.github.com>2022-05-17 13:28:41 +0100
committer smf- <smf-@users.noreply.github.com>2022-05-18 18:37:50 +0100
commit1158318356a5724eb8a888026dbada448a029b9b (patch)
tree41e7f48bad8a87c96cabacba15f8e4bfc0b5bdb6 /src/mame/drivers
parent0d57bab2e427de3608584e231eb969d40c963f2a (diff)
removed some unnecessary 6821 readca1_handler/readca2_handler/readcb1_handler hookups [smf]
Diffstat (limited to 'src/mame/drivers')
-rw-r--r--src/mame/drivers/alfaskop41xx.cpp12
-rw-r--r--src/mame/drivers/arachnid.cpp12
-rw-r--r--src/mame/drivers/by17.cpp40
-rw-r--r--src/mame/drivers/by35.cpp40
-rw-r--r--src/mame/drivers/calomega.cpp41
-rw-r--r--src/mame/drivers/cmi.cpp9
-rw-r--r--src/mame/drivers/e100.cpp17
-rw-r--r--src/mame/drivers/eacc.cpp11
-rw-r--r--src/mame/drivers/eurocom2.cpp38
-rw-r--r--src/mame/drivers/exorciser.cpp9
-rw-r--r--src/mame/drivers/mekd3.cpp54
-rw-r--r--src/mame/drivers/mekd4.cpp38
-rw-r--r--src/mame/drivers/pegasus.cpp13
-rw-r--r--src/mame/drivers/pet.cpp3
-rw-r--r--src/mame/drivers/s8.cpp9
-rw-r--r--src/mame/drivers/s9.cpp9
-rw-r--r--src/mame/drivers/starrider.cpp4
-rw-r--r--src/mame/drivers/swtpc09.cpp2
-rw-r--r--src/mame/drivers/tavernie.cpp9
19 files changed, 62 insertions, 308 deletions
diff --git a/src/mame/drivers/alfaskop41xx.cpp b/src/mame/drivers/alfaskop41xx.cpp
index 60f4562ab75..cacc30138fc 100644
--- a/src/mame/drivers/alfaskop41xx.cpp
+++ b/src/mame/drivers/alfaskop41xx.cpp
@@ -373,7 +373,7 @@ void alfaskop4110_state::alfaskop4110(machine_config &config)
m_screen->set_screen_update("crtc", FUNC(mc6845_device::screen_update));
PIA6821(config, m_mic_pia, 0); // Main board PIA
- m_mic_pia->readcb1_handler().set([this](offs_t offset) -> uint8_t { LOGMIC("<-MIC PIA: CB1 read\n"); return 0;});
+ m_mic_pia->cb1_w(0);
m_mic_pia->cb2_handler().set([this](offs_t offset, uint8_t data) { LOGMIC("->MIC PIA: CB2 write %d\n", data); });
/*
@@ -431,18 +431,18 @@ void alfaskop4110_state::alfaskop4110(machine_config &config)
return 0;
});
m_mic_pia->readpb_handler().set([this](offs_t offset) -> uint8_t { LOGMIC("<-MIC PIA: Port B read\n"); return 0;});
- m_mic_pia->readca1_handler().set([this](offs_t offset) -> uint8_t { LOGMIC("<-MIC PIA: CA1 read\n"); return 0;});
- m_mic_pia->readca2_handler().set([this](offs_t offset) -> uint8_t { LOGMIC("<-MIC PIA: CA2 read\n"); return 0;});
+ m_mic_pia->ca1_w(0);
+ m_mic_pia->ca2_w(0);
PIA6821(config, m_dia_pia, 0); // Display PIA, controls how the CRTC accesses memory etc
- m_dia_pia->readcb1_handler().set([this](offs_t offset) -> uint8_t { LOGDIA("DIA PIA: CB1_r\n"); return 0;});
+ m_dia_pia->cb1_w(0);
m_dia_pia->cb2_handler().set([this](offs_t offset, uint8_t data) { LOGDIA("DIA PIA: CB2_w %d\n", data); });
m_dia_pia->writepa_handler().set([this](offs_t offset, uint8_t data) { LOGDIA("DIA PIA: PA_w %02x\n", data); });
m_dia_pia->writepb_handler().set([this](offs_t offset, uint8_t data) { LOGDIA("DIA PIA: PB_w %02x\n", data); });
m_dia_pia->readpa_handler().set([this](offs_t offset) -> uint8_t { LOGDIA("DIA PIA: PA_r\n"); return 0;});
m_dia_pia->readpb_handler().set([this](offs_t offset) -> uint8_t { LOGDIA("DIA PIA: PB_r\n"); return 0;});
- m_dia_pia->readca1_handler().set([this](offs_t offset) -> uint8_t { LOGDIA("DIA PIA: CA1_r\n"); return 0;});
- m_dia_pia->readca2_handler().set([this](offs_t offset) -> uint8_t { LOGDIA("DIA PIA: CA2_r\n"); return 0;});
+ m_dia_pia->ca1_w(0);
+ m_dia_pia->ca2_w(0);
ACIA6850(config, m_kbd_acia, 0);
//CLOCK(config, "acia_clock", ACIA_CLOCK).signal_handler().set(FUNC(alfaskop4110_state::write_acia_clock));
diff --git a/src/mame/drivers/arachnid.cpp b/src/mame/drivers/arachnid.cpp
index 4dde1e1838d..f2b65143876 100644
--- a/src/mame/drivers/arachnid.cpp
+++ b/src/mame/drivers/arachnid.cpp
@@ -183,7 +183,6 @@ private:
DECLARE_WRITE_LINE_MEMBER( pia_u4_pcb_w );
uint8_t pia_u17_pa_r();
- DECLARE_READ_LINE_MEMBER( pia_u17_pca_r );
void pia_u17_pb_w(uint8_t data);
DECLARE_WRITE_LINE_MEMBER( pia_u17_pcb_w );
@@ -434,15 +433,6 @@ uint8_t arachnid_state::pia_u17_pa_r()
return data;
}
-READ_LINE_MEMBER( arachnid_state::pia_u17_pca_r )
-{
- // CA1 - 1000 HZ Input
-
- uint8_t data = 1;
-
- return data;
-}
-
void arachnid_state::pia_u4_pa_w(uint8_t data)
{
// PA0 thru PA7 Pulses to Switch Matrix Part I
@@ -521,7 +511,7 @@ void arachnid_state::arachnid(machine_config &config)
PIA6821(config, m_pia_u17, 0);
m_pia_u17->readpa_handler().set(FUNC(arachnid_state::pia_u17_pa_r));
- m_pia_u17->readca1_handler().set(FUNC(arachnid_state::pia_u17_pca_r));
+ m_pia_u17->ca1_w(1); // CA1 - 1000 HZ Input
m_pia_u17->writepb_handler().set(FUNC(arachnid_state::pia_u17_pb_w));
m_pia_u17->cb2_handler().set(FUNC(arachnid_state::pia_u17_pcb_w));
diff --git a/src/mame/drivers/by17.cpp b/src/mame/drivers/by17.cpp
index 4806583c8b5..85e8c4cba18 100644
--- a/src/mame/drivers/by17.cpp
+++ b/src/mame/drivers/by17.cpp
@@ -94,9 +94,7 @@ private:
uint8_t m_u11a = 0U;
uint8_t m_u11b = 0U;
bool m_u10_ca2 = false;
- bool m_u10_cb1 = false;
bool m_u10_cb2 = false;
- bool m_u11_ca1 = false;
bool m_u11_cb2 = false;
uint8_t m_segment[6]{};
uint8_t m_lamp_decode = 0U;
@@ -132,11 +130,8 @@ private:
uint8_t nibble_nvram_r(offs_t offset);
void nibble_nvram_w(offs_t offset, uint8_t data);
DECLARE_READ_LINE_MEMBER(u10_ca1_r);
- DECLARE_READ_LINE_MEMBER(u10_cb1_r);
DECLARE_WRITE_LINE_MEMBER(u10_ca2_w);
DECLARE_WRITE_LINE_MEMBER(u10_cb2_w);
- DECLARE_READ_LINE_MEMBER(u11_ca1_r);
- DECLARE_READ_LINE_MEMBER(u11_cb1_r);
DECLARE_WRITE_LINE_MEMBER(u11_cb2_w);
TIMER_DEVICE_CALLBACK_MEMBER(timer_z_freq);
@@ -561,10 +556,6 @@ READ_LINE_MEMBER( by17_state::u10_ca1_r )
{
return m_io_test->read() & 0x01;
}
-READ_LINE_MEMBER( by17_state::u10_cb1_r )
-{
- return m_u10_cb1;
-}
WRITE_LINE_MEMBER( by17_state::u10_ca2_w )
{
@@ -595,17 +586,6 @@ WRITE_LINE_MEMBER( by17_state::u10_cb2_w )
m_u10_cb2 = state;
}
-READ_LINE_MEMBER( by17_state::u11_ca1_r )
-{
- return m_u11_ca1;
-}
-
-READ_LINE_MEMBER( by17_state::u11_cb1_r )
-{
- /* Pin 32 on MPU J5 AID connector tied low */
- return 0;
-}
-
WRITE_LINE_MEMBER( by17_state::u11_cb2_w )
{
m_u11_cb2 = state;
@@ -825,8 +805,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_z_freq )
m_zero_crossing_active_timer->adjust(attotime::from_usec(700));
- m_u10_cb1 = true;
- m_pia_u10->cb1_w(m_u10_cb1);
+ m_pia_u10->cb1_w(true);
/*** Zero Crossing - power to all Lamp SCRs is cut off and reset ***/
@@ -837,8 +816,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_z_pulse )
{
/*** Line Power to DC Zero Crossing has ended ***/
- m_u10_cb1 = false;
- m_pia_u10->cb1_w(m_u10_cb1);
+ m_pia_u10->cb1_w(false);
}
// 555 timer for display refresh
@@ -853,14 +831,12 @@ TIMER_DEVICE_CALLBACK_MEMBER( by17_state::u11_timer )
m_display_refresh_timer->adjust(attotime::from_usec(2850));
- m_u11_ca1 = true;
- m_pia_u11->ca1_w(m_u11_ca1);
+ m_pia_u11->ca1_w(true);
}
TIMER_DEVICE_CALLBACK_MEMBER( by17_state::timer_d_pulse )
{
- m_u11_ca1 = false;
- m_pia_u11->ca1_w(m_u11_ca1);
+ m_pia_u11->ca1_w(false);
}
@@ -992,9 +968,7 @@ void by17_state::machine_start()
save_item(NAME(m_u11a));
save_item(NAME(m_u11b));
save_item(NAME(m_u10_ca2));
- save_item(NAME(m_u10_cb1));
save_item(NAME(m_u10_cb2));
- save_item(NAME(m_u11_ca1));
save_item(NAME(m_u11_cb2));
save_item(NAME(m_segment));
save_item(NAME(m_lamp_decode));
@@ -1038,7 +1012,7 @@ void by17_state::by17(machine_config &config)
m_pia_u10->readpb_handler().set(FUNC(by17_state::u10_b_r));
m_pia_u10->writepb_handler().set(FUNC(by17_state::u10_b_w));
m_pia_u10->readca1_handler().set(FUNC(by17_state::u10_ca1_r));
- m_pia_u10->readcb1_handler().set(FUNC(by17_state::u10_cb1_r));
+ m_pia_u10->cb1_w(false);
m_pia_u10->ca2_handler().set(FUNC(by17_state::u10_ca2_w));
m_pia_u10->cb2_handler().set(FUNC(by17_state::u10_cb2_w));
m_pia_u10->irqa_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
@@ -1050,8 +1024,8 @@ void by17_state::by17(machine_config &config)
m_pia_u11->readpa_handler().set(FUNC(by17_state::u11_a_r));
m_pia_u11->writepa_handler().set(FUNC(by17_state::u11_a_w));
m_pia_u11->writepb_handler().set(FUNC(by17_state::u11_b_w));
- m_pia_u11->readca1_handler().set(FUNC(by17_state::u11_ca1_r));
- m_pia_u11->readcb1_handler().set(FUNC(by17_state::u11_cb1_r));
+ m_pia_u11->ca1_w(false);
+ m_pia_u11->cb1_w(0); /* Pin 32 on MPU J5 AID connector tied low */
m_pia_u11->ca2_handler().set_output("led0");
m_pia_u11->cb2_handler().set(FUNC(by17_state::u11_cb2_w));
m_pia_u11->irqa_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
diff --git a/src/mame/drivers/by35.cpp b/src/mame/drivers/by35.cpp
index 1b50434d7af..13b56fcc3ce 100644
--- a/src/mame/drivers/by35.cpp
+++ b/src/mame/drivers/by35.cpp
@@ -216,11 +216,8 @@ protected:
uint8_t nibble_nvram_r(offs_t offset);
void nibble_nvram_w(offs_t offset, uint8_t data);
DECLARE_READ_LINE_MEMBER(u10_ca1_r);
- DECLARE_READ_LINE_MEMBER(u10_cb1_r);
DECLARE_WRITE_LINE_MEMBER(u10_ca2_w);
DECLARE_WRITE_LINE_MEMBER(u10_cb2_w);
- DECLARE_READ_LINE_MEMBER(u11_ca1_r);
- DECLARE_READ_LINE_MEMBER(u11_cb1_r);
DECLARE_WRITE_LINE_MEMBER(u11_cb2_w);
virtual void machine_start() override;
virtual void machine_reset() override;
@@ -241,9 +238,7 @@ protected:
private:
bool m_u10_ca2 = false;
- bool m_u10_cb1 = false;
bool m_u10_cb2 = false;
- bool m_u11_ca1 = false;
bool m_u11_cb2 = false;
bool m_7d = false;
uint8_t m_segment[6]{};
@@ -1095,10 +1090,6 @@ READ_LINE_MEMBER( by35_state::u10_ca1_r )
{
return m_io_test->read() & 0x01;
}
-READ_LINE_MEMBER( by35_state::u10_cb1_r )
-{
- return m_u10_cb1;
-}
WRITE_LINE_MEMBER( by35_state::u10_ca2_w )
{
@@ -1129,17 +1120,6 @@ WRITE_LINE_MEMBER( by35_state::u10_cb2_w )
m_u10_cb2 = state;
}
-READ_LINE_MEMBER( by35_state::u11_ca1_r )
-{
- return m_u11_ca1;
-}
-
-READ_LINE_MEMBER( by35_state::u11_cb1_r )
-{
- /* Pin 32 on MPU J5 AID connector tied low */
- return 0;
-}
-
WRITE_LINE_MEMBER( by35_state::u11_cb2_w )
{
// Handle sound
@@ -1383,8 +1363,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_z_freq )
m_zero_crossing_active_timer->adjust(attotime::from_usec(700));
- m_u10_cb1 = true;
- m_pia_u10->cb1_w(m_u10_cb1);
+ m_pia_u10->cb1_w(true);
/*** Zero Crossing - power to all Lamp SCRs is cut off and reset ***/
@@ -1394,8 +1373,7 @@ TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_z_pulse )
{
/*** Line Power to DC Zero Crossing has ended ***/
- m_u10_cb1 = false;
- m_pia_u10->cb1_w(m_u10_cb1);
+ m_pia_u10->cb1_w(false);
}
// 555 timer for display refresh
@@ -1410,14 +1388,12 @@ TIMER_DEVICE_CALLBACK_MEMBER( by35_state::u11_timer )
m_display_refresh_timer->adjust(attotime::from_usec(2850));
- m_u11_ca1 = true;
- m_pia_u11->ca1_w(m_u11_ca1);
+ m_pia_u11->ca1_w(true);
}
TIMER_DEVICE_CALLBACK_MEMBER( by35_state::timer_d_pulse )
{
- m_u11_ca1 = false;
- m_pia_u11->ca1_w(m_u11_ca1);
+ m_pia_u11->ca1_w(false);
}
by35_state::solenoid_feature_data const by35_state::s_solenoid_features_default =
@@ -1492,9 +1468,7 @@ void by35_state::machine_start()
save_item(NAME(m_u11a));
save_item(NAME(m_u11b));
save_item(NAME(m_u10_ca2));
- save_item(NAME(m_u10_cb1));
save_item(NAME(m_u10_cb2));
- save_item(NAME(m_u11_ca1));
save_item(NAME(m_u11_cb2));
save_item(NAME(m_7d));
save_item(NAME(m_segment));
@@ -1536,7 +1510,7 @@ void by35_state::by35(machine_config &config)
m_pia_u10->readpb_handler().set(FUNC(by35_state::u10_b_r));
m_pia_u10->writepb_handler().set(FUNC(by35_state::u10_b_w));
m_pia_u10->readca1_handler().set(FUNC(by35_state::u10_ca1_r));
- m_pia_u10->readcb1_handler().set(FUNC(by35_state::u10_cb1_r));
+ m_pia_u10->cb1_w(false);
m_pia_u10->ca2_handler().set(FUNC(by35_state::u10_ca2_w));
m_pia_u10->cb2_handler().set(FUNC(by35_state::u10_cb2_w));
m_pia_u10->irqa_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
@@ -1548,8 +1522,8 @@ void by35_state::by35(machine_config &config)
m_pia_u11->readpa_handler().set(FUNC(by35_state::u11_a_r));
m_pia_u11->writepa_handler().set(FUNC(by35_state::u11_a_w));
m_pia_u11->writepb_handler().set(FUNC(by35_state::u11_b_w));
- m_pia_u11->readca1_handler().set(FUNC(by35_state::u11_ca1_r));
- m_pia_u11->readcb1_handler().set(FUNC(by35_state::u11_cb1_r));
+ m_pia_u11->ca1_w(false);
+ m_pia_u11->cb1_w(0); /* Pin 32 on MPU J5 AID connector tied low */
m_pia_u11->ca2_handler().set_output("led0");
m_pia_u11->cb2_handler().set(FUNC(by35_state::u11_cb2_w));
m_pia_u11->irqa_handler().set_inputline(m_maincpu, M6800_IRQ_LINE);
diff --git a/src/mame/drivers/calomega.cpp b/src/mame/drivers/calomega.cpp
index f635bb0b5d7..4c86e7f9c96 100644
--- a/src/mame/drivers/calomega.cpp
+++ b/src/mame/drivers/calomega.cpp
@@ -890,44 +890,29 @@ TIMER_DEVICE_CALLBACK_MEMBER( calomega_state::timer_2 )
// logerror("Timer_2 event : state=%d\n", m_timer);
}
-READ_LINE_MEMBER(calomega_state::timer_r)
-{
- // logerror("timer_1 read : state=%d\n", m_timer);
- return m_timer;
-}
-
WRITE_LINE_MEMBER(calomega_state::vblank0_w)
{
- m_vblank = state;
m_pia[0]->read(0);
m_pia[0]->read(0);
m_pia[1]->cb1_w(state);
// m_pia[1]->read(3); // CRB
- // logerror("V_BLANK_0 event : state=%d\n", m_vblank);
+ // logerror("V_BLANK_0 event : state=%d\n", state);
}
WRITE_LINE_MEMBER(calomega_state::vblank1_w)
{
- m_vblank = state;
m_pia[0]->read(2);
m_pia[0]->cb1_w(state);
- // logerror("V_BLANK_1 event (sale ): state=%d\n", m_vblank);
+ // logerror("V_BLANK_1 event (sale ): state=%d\n", state);
}
WRITE_LINE_MEMBER(calomega_state::vblank2_w)
{
- m_vblank = state;
m_pia[1]->read(0);
m_pia[1]->read(0);
m_pia[1]->cb1_w(state);
- // logerror("V_BLANK_2 event : state=%d\n", m_vblank);
-}
-
-READ_LINE_MEMBER(calomega_state::vblank_r)
-{
- // logerror("V_BLANK read : state=%d\n", m_vblank);
- return m_vblank;
+ // logerror("V_BLANK_2 event : state=%d\n", state);
}
WRITE_LINE_MEMBER(calomega_state::pia1_cb2_w)
@@ -948,10 +933,6 @@ void calomega_state::dummy_pia_w(uint8_t data)
m_pia_data = data;
}
-READ_LINE_MEMBER(calomega_state::dummy_pia_line_r)
-{
- return false;
-}
WRITE_LINE_MEMBER(calomega_state::dummy_pia_line_w)
{
}
@@ -4614,8 +4595,8 @@ void calomega_state::sys903(machine_config &config)
m_pia[0]->readpb_handler().set(FUNC(calomega_state::dummy_pia_r)); // Debug: some dipsw maybe???
m_pia[0]->writepa_handler().set(FUNC(calomega_state::dummy_pia_w)); // Debug: to assign lamps/counters/solenids/hopper????
m_pia[0]->writepb_handler().set(FUNC(calomega_state::lamps_903a_w));
- m_pia[0]->readca1_handler().set(FUNC(calomega_state::timer_r)); // Timer Interrupt Ack. (CPU -> PIA)
- m_pia[0]->readcb1_handler().set(FUNC(calomega_state::timer_r)); // Timer Interrupt Ack. (CPU -> PIA)
+ m_pia[0]->ca1_w(0); // Timer Interrupt Ack. (CPU -> PIA)
+ m_pia[0]->cb1_w(0); // Timer Interrupt Ack. (CPU -> PIA)
m_pia[0]->irqa_handler().set_inputline("maincpu", M6502_IRQ_LINE); // Timer Interrupt Event. (PIA -> CPU)
m_pia[0]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); // Timer Interrupt Event. (PIA -> CPU)
@@ -4626,7 +4607,7 @@ void calomega_state::sys903(machine_config &config)
m_pia[1]->writepb_handler().set(FUNC(calomega_state::s903_mux_w)); // Mux. Scan Lines.(Upper nibble) - Hopper b0-b1 (Lower Nibble).
m_pia[1]->ca2_handler().set(FUNC(calomega_state::dummy_pia_line_w)); // M4 pulsed out
m_pia[1]->cb2_handler().set(FUNC(calomega_state::dummy_pia_line_w)); // M5 pulsed out
- m_pia[1]->readcb1_handler().set(FUNC(calomega_state::vblank_r)); // V_BLANK Interrupt Ack. (CPU -> PIA)
+ m_pia[1]->cb1_w(0); // V_BLANK Interrupt Ack. (CPU -> PIA)
m_pia[1]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); // V_BLANK Interrupt Event. (PIA -> CPU)
// video hardware
@@ -4687,8 +4668,8 @@ void calomega_state::sys903kb(machine_config &config)
m_pia[0]->readpb_handler().set(FUNC(calomega_state::dummy_pia_r)); // Debug: some dipsw maybe???
m_pia[0]->writepa_handler().set(FUNC(calomega_state::dummy_pia_w)); // Debug: to assign lamps/counters/solenids/hopper????
m_pia[0]->writepb_handler().set(FUNC(calomega_state::lamps_903a_w));
- m_pia[0]->readca1_handler().set(FUNC(calomega_state::timer_r)); // Timer Interrupt Ack. (CPU -> PIA)
- m_pia[0]->readcb1_handler().set(FUNC(calomega_state::timer_r)); // Timer Interrupt Ack. (CPU -> PIA)
+ m_pia[0]->ca1_w(0); // Timer Interrupt Ack. (CPU -> PIA)
+ m_pia[0]->cb1_w(0); // Timer Interrupt Ack. (CPU -> PIA)
m_pia[0]->irqa_handler().set_inputline("maincpu", M6502_IRQ_LINE); // Timer Interrupt Event. (PIA -> CPU)
m_pia[0]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); // Timer Interrupt Event. (PIA -> CPU)
@@ -4699,7 +4680,7 @@ void calomega_state::sys903kb(machine_config &config)
m_pia[1]->writepb_handler().set(FUNC(calomega_state::s903_mux_w)); // Mux. Scan Lines.(Upper nibble) - Hopper b0-b1 (Lower Nibble).
m_pia[1]->ca2_handler().set(FUNC(calomega_state::dummy_pia_line_w)); // M4 pulsed out
m_pia[1]->cb2_handler().set(FUNC(calomega_state::dummy_pia_line_w)); // M5 pulsed out
- m_pia[1]->readcb1_handler().set(FUNC(calomega_state::vblank_r)); // V_BLANK Interrupt Ack. (CPU -> PIA)
+ m_pia[1]->cb1_w(0); // V_BLANK Interrupt Ack. (CPU -> PIA)
m_pia[1]->irqb_handler().set_inputline("maincpu", M6502_IRQ_LINE); // V_BLANK Interrupt Event. (PIA -> CPU)
// video hardware
@@ -4822,8 +4803,8 @@ void calomega_state::sys906(machine_config &config)
PIA6821(config.replace(), m_pia[1], 0);
m_pia[1]->readpa_handler().set(FUNC(calomega_state::pia1_ain_r)); // Mux. Button read.
m_pia[1]->readpb_handler().set(FUNC(calomega_state::pia1_bin_r));
- m_pia[1]->readca1_handler().set(FUNC(calomega_state::timer_r)); // Timer Interrupt Ack. (CPU -> PIA)
- m_pia[1]->readcb1_handler().set(FUNC(calomega_state::vblank_r)); // V_BLANK Interrupt Ack. (CPU -> PIA)
+ m_pia[1]->ca1_w(0); // Timer Interrupt Ack. (CPU -> PIA)
+ m_pia[1]->cb1_w(0); // V_BLANK Interrupt Ack. (CPU -> PIA)
m_pia[1]->writepa_handler().set(FUNC(calomega_state::pia1_aout_w)); // Mux. Scan lines
m_pia[1]->writepb_handler().set(FUNC(calomega_state::pia1_bout_w)); // Lamps 1 to 8
m_pia[1]->cb2_handler().set(FUNC(calomega_state::pia1_cb2_w)); // V_BLANK interrupt line input (from Vertical Synch)
diff --git a/src/mame/drivers/cmi.cpp b/src/mame/drivers/cmi.cpp
index 3bdb97c515d..9f42eef286a 100644
--- a/src/mame/drivers/cmi.cpp
+++ b/src/mame/drivers/cmi.cpp
@@ -335,7 +335,6 @@ public:
DECLARE_WRITE_LINE_MEMBER( cmi02_ptm_irq );
DECLARE_WRITE_LINE_MEMBER( cmi02_ptm_o2 );
DECLARE_WRITE_LINE_MEMBER( cmi02_pia2_irqa_w );
- DECLARE_READ_LINE_MEMBER( cmi02_pia2_ca1_r );
DECLARE_WRITE_LINE_MEMBER( cmi02_pia2_cb2_w );
uint8_t cmi07_r();
@@ -1583,12 +1582,6 @@ WRITE_LINE_MEMBER( cmi_state::cmi02_pia2_irqa_w )
set_interrupt(CPU_2, IRQ_ADINT_LEVEL, state ? ASSERT_LINE : CLEAR_LINE);
}
-READ_LINE_MEMBER( cmi_state::cmi02_pia2_ca1_r )
-{
- LOG("%s: cmi02_pia2_ca1_r: %d\n", machine().describe_context(), 0);
- return 0;
-}
-
WRITE_LINE_MEMBER( cmi_state::cmi02_pia2_cb2_w )
{
LOG("%s: cmi02_pia2_cb2_w: %d\n", machine().describe_context(), state);
@@ -2197,7 +2190,7 @@ void cmi_state::cmi2x(machine_config &config)
PIA6821(config, m_cmi02_pia[1]); // pia_cmi02_2_config
m_cmi02_pia[1]->irqa_handler().set(FUNC(cmi_state::cmi02_pia2_irqa_w));
- m_cmi02_pia[1]->readca1_handler().set(FUNC(cmi_state::cmi02_pia2_ca1_r));
+ m_cmi02_pia[1]->ca1_w(0);
m_cmi02_pia[1]->cb2_handler().set(FUNC(cmi_state::cmi02_pia2_cb2_w));
PTM6840(config, m_cmi02_ptm, SYSTEM_CAS_CLOCK);
diff --git a/src/mame/drivers/e100.cpp b/src/mame/drivers/e100.cpp
index 2ac709df04e..4615775cd09 100644
--- a/src/mame/drivers/e100.cpp
+++ b/src/mame/drivers/e100.cpp
@@ -174,8 +174,6 @@ private:
void pia1_kbA_w(uint8_t data);
uint8_t pia1_kbB_r();
void pia1_kbB_w(uint8_t data);
- DECLARE_READ_LINE_MEMBER( pia1_ca1_r );
- DECLARE_READ_LINE_MEMBER( pia1_cb1_r );
DECLARE_WRITE_LINE_MEMBER( pia1_ca2_w);
DECLARE_WRITE_LINE_MEMBER( pia1_cb2_w);
TIMER_DEVICE_CALLBACK_MEMBER(rtc_w);
@@ -393,17 +391,6 @@ uint8_t e100_state::pia1_kbB_r()
return m_pia1_B;
}
-READ_LINE_MEMBER(e100_state::pia1_ca1_r)
-{
- // TODO: Make this a slot device for time meassurements
- return ASSERT_LINE; // Default is handshake for serial port TODO: Fix RS 232 handshake as default
-}
-
-READ_LINE_MEMBER(e100_state::pia1_cb1_r)
-{
- return m_rs232->rxd_r();
-}
-
WRITE_LINE_MEMBER(e100_state::pia1_ca2_w)
{
// TODO: Make this a slot device to trigger time meassurements
@@ -563,8 +550,7 @@ void e100_state::e100(machine_config &config)
m_pia1->readpa_handler().set(FUNC(e100_state::pia1_kbA_r));
m_pia1->writepb_handler().set(FUNC(e100_state::pia1_kbB_w));
m_pia1->readpb_handler().set(FUNC(e100_state::pia1_kbB_r));
- m_pia1->readca1_handler().set(FUNC(e100_state::pia1_ca1_r));
- m_pia1->readcb1_handler().set(FUNC(e100_state::pia1_cb1_r));
+ m_pia1->ca1_w(ASSERT_LINE); // TODO: Make this a slot device for time meassurements. Default is handshake for serial port TODO: Fix RS 232 handshake as default
m_pia1->ca2_handler().set(FUNC(e100_state::pia1_ca2_w));
m_pia1->cb2_handler().set(FUNC(e100_state::pia1_cb2_w));
@@ -574,6 +560,7 @@ void e100_state::e100(machine_config &config)
/* Serial port support */
RS232_PORT(config, m_rs232, default_rs232_devices, nullptr);
+ m_rs232->rxd_handler().set(m_pia1, FUNC(pia6821_device::cb1_w));
SPEAKER(config, "mono").front_center();
/* Cassette support - E100 uses 300 baud Kansas City Standard with 1200/2400 Hz modulation */
diff --git a/src/mame/drivers/eacc.cpp b/src/mame/drivers/eacc.cpp
index e96bded660a..fcc892d8dcf 100644
--- a/src/mame/drivers/eacc.cpp
+++ b/src/mame/drivers/eacc.cpp
@@ -75,7 +75,6 @@ protected:
virtual void machine_start() override;
private:
- DECLARE_READ_LINE_MEMBER( cb1_r );
DECLARE_READ_LINE_MEMBER( distance_r );
DECLARE_READ_LINE_MEMBER( fuel_sensor_r );
uint8_t keyboard_r();
@@ -149,6 +148,7 @@ INPUT_PORTS_END
void eacc_state::machine_reset()
{
m_cb2 = 0;
+ m_pia->cb1_w(1);
}
void eacc_state::machine_start()
@@ -165,7 +165,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(eacc_state::cb1_timer)
{
m_cb1 ^= 1; // 15hz
if (m_cb2)
- m_maincpu->set_input_line(M6802_IRQ_LINE, ASSERT_LINE);
+ m_pia->cb1_w(m_cb1);
}
TIMER_DEVICE_CALLBACK_MEMBER(eacc_state::nmi_timer)
@@ -177,11 +177,6 @@ TIMER_DEVICE_CALLBACK_MEMBER(eacc_state::nmi_timer)
}
}
-READ_LINE_MEMBER( eacc_state::cb1_r )
-{
- return (m_cb2) ? m_cb1 : 1;
-}
-
READ_LINE_MEMBER( eacc_state::distance_r )
{
return machine().rand() & 1; // needs random pulses to simulate movement
@@ -195,6 +190,7 @@ READ_LINE_MEMBER( eacc_state::fuel_sensor_r )
WRITE_LINE_MEMBER( eacc_state::cb2_w )
{
m_cb2 = state;
+ m_pia->cb1_w((m_cb2) ? m_cb1 : 1);
}
uint8_t eacc_state::keyboard_r()
@@ -264,7 +260,6 @@ void eacc_state::eacc(machine_config &config)
PIA6821(config, m_pia, 0);
m_pia->readpb_handler().set(FUNC(eacc_state::keyboard_r));
m_pia->readca1_handler().set(FUNC(eacc_state::distance_r));
- m_pia->readcb1_handler().set(FUNC(eacc_state::cb1_r));
m_pia->readca2_handler().set(FUNC(eacc_state::fuel_sensor_r));
m_pia->writepa_handler().set(FUNC(eacc_state::segment_w));
m_pia->writepb_handler().set(FUNC(eacc_state::digit_w));
diff --git a/src/mame/drivers/eurocom2.cpp b/src/mame/drivers/eurocom2.cpp
index 2bf55d6a0d2..a81ff72a3db 100644
--- a/src/mame/drivers/eurocom2.cpp
+++ b/src/mame/drivers/eurocom2.cpp
@@ -95,9 +95,6 @@ protected:
uint8_t kbd_get();
void kbd_put(u8 data);
- DECLARE_READ_LINE_MEMBER(pia1_ca1_r);
- DECLARE_READ_LINE_MEMBER(pia1_ca2_r);
- DECLARE_READ_LINE_MEMBER(pia1_cb1_r);
DECLARE_WRITE_LINE_MEMBER(pia1_cb2_w);
void eurocom2_map(address_map &map);
@@ -110,7 +107,7 @@ protected:
emu_timer *m_sst = nullptr;
floppy_image_device *m_floppy = nullptr;
- bool m_sst_state = false, m_kbd_ready = false;
+ bool m_sst_state = false;
bitmap_ind16 m_tmpbmp;
uint8_t m_vico[2]{};
@@ -142,8 +139,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(waveterm_kbh_w);
void pia3_pb_w(uint8_t data);
- DECLARE_READ_LINE_MEMBER(pia3_ca1_r);
- DECLARE_READ_LINE_MEMBER(pia3_ca2_r);
DECLARE_WRITE_LINE_MEMBER(pia3_cb2_w);
uint8_t waveterm_adc();
@@ -225,20 +220,6 @@ void eurocom2_state::vico_w(offs_t offset, uint8_t data)
}
-READ_LINE_MEMBER(eurocom2_state::pia1_ca2_r)
-{
- LOGDBG("PIA1 CA2 == %d (SST Q14)\n", m_sst_state);
-
- return m_sst_state;
-}
-
-READ_LINE_MEMBER(eurocom2_state::pia1_cb1_r)
-{
- LOGDBG("PIA1 CB1 == %d (SST Q6)\n", m_sst_state);
-
- return m_sst_state;
-}
-
WRITE_LINE_MEMBER(eurocom2_state::pia1_cb2_w)
{
LOG("PIA1 CB2 <- %d (SST reset)\n", state);
@@ -249,12 +230,7 @@ void eurocom2_state::device_timer(emu_timer &timer, device_timer_id id, int para
{
m_sst_state = !m_sst_state;
m_pia1->ca2_w(m_sst_state);
-}
-
-
-READ_LINE_MEMBER(eurocom2_state::pia1_ca1_r)
-{
- return m_kbd_ready;
+ m_pia1->cb1_w(m_sst_state);
}
/* bit 7 may be connected to something else -- see section 6.2 of Eurocom manual */
@@ -265,7 +241,6 @@ uint8_t eurocom2_state::kbd_get()
void eurocom2_state::kbd_put(u8 data)
{
- m_kbd_ready = true;
m_kbd_data = data;
m_pia1->ca1_w(false);
m_pia1->ca1_w(true);
@@ -407,7 +382,7 @@ INPUT_PORTS_END
void eurocom2_state::machine_reset()
{
- m_kbd_ready = false;
+ m_pia1->ca1_w(false);
m_floppy = nullptr;
if (ioport("S1")->read() & 0x80)
@@ -452,9 +427,8 @@ void eurocom2_state::eurocom2(machine_config &config)
keyboard.set_keyboard_callback(FUNC(eurocom2_state::kbd_put));
PIA6821(config, m_pia1, 0);
- m_pia1->readca1_handler().set(FUNC(eurocom2_state::pia1_ca1_r)); // keyboard strobe
- m_pia1->readca2_handler().set(FUNC(eurocom2_state::pia1_ca2_r)); // SST output Q14
- m_pia1->readcb1_handler().set(FUNC(eurocom2_state::pia1_cb1_r)); // SST output Q6
+ m_pia1->ca2_w(m_sst_state); // SST output Q14
+ m_pia1->cb1_w(m_sst_state); // SST output Q6
m_pia1->cb2_handler().set(FUNC(eurocom2_state::pia1_cb2_w)); // SST reset input
m_pia1->readpa_handler().set(FUNC(eurocom2_state::kbd_get));
// m_pia1->readpb_handler().set(FUNC(eurocom2_state::kbd_get));
@@ -493,8 +467,6 @@ void waveterm_state::waveterm(machine_config &config)
// m_pia3->readpa_handler().set(FUNC(waveterm_state::pia3_pa_r));
// m_pia3->writepa_handler().set(FUNC(waveterm_state::pia3_pa_w));
m_pia3->writepb_handler().set(FUNC(waveterm_state::pia3_pb_w));
-// m_pia3->readca1_handler().set(FUNC(waveterm_state::pia3_ca1_r));
-// m_pia3->readca2_handler().set(FUNC(waveterm_state::pia3_ca2_r));
m_pia3->readcb1_handler().set_ioport("FP");
// m_pia3->cb2_handler().set(FUNC(waveterm_state::pia3_cb2_w));
diff --git a/src/mame/drivers/exorciser.cpp b/src/mame/drivers/exorciser.cpp
index 2e0fc629ea9..6373e9a9b6c 100644
--- a/src/mame/drivers/exorciser.cpp
+++ b/src/mame/drivers/exorciser.cpp
@@ -232,7 +232,6 @@ private:
u8 m_stop_enabled;
void pia_lpt_pa_w(u8 data);
- int pia_lpt_ca1_r();
void pia_lpt_ca2_w(int state);
uint8_t pia_lpt_pb_r();
uint8_t m_printer_data;
@@ -549,12 +548,6 @@ void exorciser_state::pia_lpt_pa_w(u8 data)
m_printer_data = data;
}
-int exorciser_state::pia_lpt_ca1_r()
-{
- // External parallel printer busy input.
- return 0;
-}
-
void exorciser_state::pia_lpt_ca2_w(int state)
{
// External parallel printer data ready.
@@ -706,7 +699,7 @@ void exorciser_state::exorciser(machine_config &config)
// MEX68PI Parallel printer port
PIA6821(config, m_pia_lpt, 0);
m_pia_lpt->writepa_handler().set(FUNC(exorciser_state::pia_lpt_pa_w));
- m_pia_lpt->readca1_handler().set(FUNC(exorciser_state::pia_lpt_ca1_r));
+ m_pia_lpt->ca1_w(0); // External parallel printer busy input.
m_pia_lpt->ca2_handler().set(FUNC(exorciser_state::pia_lpt_ca2_w));
m_pia_lpt->readpb_handler().set(FUNC(exorciser_state::pia_lpt_pb_r));
diff --git a/src/mame/drivers/mekd3.cpp b/src/mame/drivers/mekd3.cpp
index b2af8114a30..753345c1932 100644
--- a/src/mame/drivers/mekd3.cpp
+++ b/src/mame/drivers/mekd3.cpp
@@ -183,8 +183,6 @@ private:
void led_segment_w(uint8_t data);
TIMER_DEVICE_CALLBACK_MEMBER(led_update);
void page_w(uint8_t data);
- void trace_timer_w(uint8_t data);
- uint8_t trace_timer_r();
required_device<m6802_cpu_device> m_maincpu;
required_device<ram_device> m_ram;
@@ -198,7 +196,6 @@ private:
uint8_t m_rom_page;
uint8_t m_ram_page;
- uint8_t m_trace;
uint8_t m_segment;
uint8_t m_digit;
@@ -251,9 +248,6 @@ private:
MC6845_UPDATE_ROW(update_row);
uint8_t r2_pia_pa_r();
uint8_t r2_pia_pb_r();
- DECLARE_WRITE_LINE_MEMBER(r2_hsync_changed);
- DECLARE_WRITE_LINE_MEMBER(r2_vsync_changed);
- DECLARE_READ_LINE_MEMBER(r2_pia_cb1_r);
optional_device<mc6845_device> m_mc6845;
optional_device<palette_device> m_palette;
optional_device<screen_device> m_screen;
@@ -265,7 +259,6 @@ private:
optional_ioport m_r2_display_format;
void kbd_put(uint8_t data);
uint8_t m_term_data;
- bool m_r2_vsync;
};
@@ -466,23 +459,6 @@ void mekd3_state::page_w(uint8_t data)
/***********************************************************
- Trace timer
-
-************************************************************/
-
-void mekd3_state::trace_timer_w(uint8_t data)
-{
- m_trace = data;
- m_kpd_pia->ca1_w(data);
-}
-
-uint8_t mekd3_state::trace_timer_r()
-{
- return m_trace;
-}
-
-/***********************************************************
-
Keypad
************************************************************/
@@ -810,22 +786,6 @@ uint8_t mekd3_state::r2_pia_pb_r()
return (display_format << 6) | mode;
}
-WRITE_LINE_MEMBER(mekd3_state::r2_hsync_changed)
-{
- m_r2_pia->cb2_w(state);
-}
-
-WRITE_LINE_MEMBER(mekd3_state::r2_vsync_changed)
-{
- m_r2_vsync = state;
- m_r2_pia->cb1_w(state);
-}
-
-READ_LINE_MEMBER(mekd3_state::r2_pia_cb1_r)
-{
- return m_r2_vsync;
-}
-
MC6845_UPDATE_ROW(mekd3_state::update_row)
{
const pen_t *pen = m_palette->pens();
@@ -906,7 +866,6 @@ void mekd3_state::machine_start()
save_item(NAME(m_rom_page));
save_item(NAME(m_ram_page));
- save_item(NAME(m_trace));
save_item(NAME(m_segment));
save_item(NAME(m_digit));
save_item(NAME(m_cts));
@@ -918,7 +877,6 @@ void mekd3_state::machine_start()
save_item(NAME(m_cass_txbit));
save_item(NAME(m_cass_last_txbit));
save_item(NAME(m_term_data));
- save_item(NAME(m_r2_vsync));
}
void mekd3_state::machine_reset()
@@ -950,8 +908,7 @@ void mekd3_state::machine_reset()
// MEK68R2
m_r2_pia->ca1_w(ASSERT_LINE);
m_r2_pia->ca2_w(ASSERT_LINE);
- m_r2_vsync = 0;
- m_r2_pia->cb1_w(m_r2_vsync);
+ m_r2_pia->cb1_w(0);
m_r2_pia->cb2_w(0);
}
@@ -998,14 +955,14 @@ void mekd3_state::mekd3(machine_config &config)
m_kpd_pia->readcb1_handler().set(FUNC(mekd3_state::keypad_cb1_r));
m_kpd_pia->writepa_handler().set(FUNC(mekd3_state::led_segment_w));
m_kpd_pia->writepb_handler().set(FUNC(mekd3_state::led_digit_w));
- m_kpd_pia->readca1_handler().set(FUNC(mekd3_state::trace_timer_r));
+ m_kpd_pia->ca1_w(0);
m_kpd_pia->irqa_handler().set(m_mainnmi, FUNC(input_merger_device::in_w<0>));
m_kpd_pia->irqb_handler().set(m_mainnmi, FUNC(input_merger_device::in_w<1>));
// CP1, CP2, /CTG, /CTC are available at SK1, and not used here.
MC6846(config, m_mc6846, XTAL_MEKD3 / 4); // Same as the cpu clock
m_mc6846->out_port().set(FUNC(mekd3_state::page_w));
- m_mc6846->cto().set(FUNC(mekd3_state::trace_timer_w));
+ m_mc6846->cto().set(m_kpd_pia, FUNC(pia6821_device::ca1_w)); // trace timer
m_mc6846->irq().set(m_mainirq, FUNC(input_merger_device::in_w<0>));
// MEK68IO
@@ -1072,8 +1029,8 @@ void mekd3_state::mekd3(machine_config &config)
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
m_mc6845->set_update_row_callback(FUNC(mekd3_state::update_row));
- m_mc6845->out_hsync_callback().set(FUNC(mekd3_state::r2_hsync_changed));
- m_mc6845->out_vsync_callback().set(FUNC(mekd3_state::r2_vsync_changed));
+ m_mc6845->out_hsync_callback().set(m_r2_pia, FUNC(pia6821_device::cb2_w));
+ m_mc6845->out_vsync_callback().set(m_r2_pia, FUNC(pia6821_device::cb1_w));
// PA is the keyboard data and a mode flag.
// CA1 is keyboard strobe.
@@ -1083,7 +1040,6 @@ void mekd3_state::mekd3(machine_config &config)
PIA6821(config, m_r2_pia, 0);
m_r2_pia->readpa_handler().set(FUNC(mekd3_state::r2_pia_pa_r));
m_r2_pia->readpb_handler().set(FUNC(mekd3_state::r2_pia_pb_r));
- m_r2_pia->readcb1_handler().set(FUNC(mekd3_state::r2_pia_cb1_r));
m_r2_pia->irqa_handler().set(m_mainirq, FUNC(input_merger_device::in_w<6>));
m_r2_pia->irqb_handler().set(m_mainirq, FUNC(input_merger_device::in_w<7>));
diff --git a/src/mame/drivers/mekd4.cpp b/src/mame/drivers/mekd4.cpp
index 8ce7f05fdde..f34127eccc5 100644
--- a/src/mame/drivers/mekd4.cpp
+++ b/src/mame/drivers/mekd4.cpp
@@ -315,7 +315,6 @@ private:
void stop_pia_w(offs_t offset, uint8_t data);
void stop_pia_pa_w(uint8_t data);
void stop_pia_pb_w(uint8_t data);
- DECLARE_READ_LINE_MEMBER(stop_pia_ca2_r);
uint16_t m_stop_address;
DECLARE_WRITE_LINE_MEMBER(rs232_route_cts);
@@ -374,9 +373,6 @@ private:
MC6845_UPDATE_ROW(update_row);
uint8_t r2_pia_pa_r();
uint8_t r2_pia_pb_r();
- DECLARE_WRITE_LINE_MEMBER(r2_hsync_changed);
- DECLARE_WRITE_LINE_MEMBER(r2_vsync_changed);
- DECLARE_READ_LINE_MEMBER(r2_pia_cb1_r);
optional_device<mc6845_device> m_mc6845;
optional_device<palette_device> m_palette;
optional_device<screen_device> m_screen;
@@ -388,7 +384,6 @@ private:
optional_ioport m_r2_display_format;
void kbd_put(uint8_t data);
uint8_t m_term_data;
- bool m_r2_vsync;
};
@@ -607,12 +602,6 @@ void mekd4_state::stop_pia_pb_w(uint8_t data)
m_stop_address = (m_stop_address & 0xff00) | data;
}
-// Connected to 'abort' TP2. Can be toggled low to and abort user code.
-READ_LINE_MEMBER(mekd4_state::stop_pia_ca2_r)
-{
- return 1;
-}
-
/***********************************************************
RAM and ROM paging
@@ -846,22 +835,6 @@ uint8_t mekd4_state::r2_pia_pb_r()
return (display_format << 6) | mode;
}
-WRITE_LINE_MEMBER(mekd4_state::r2_hsync_changed)
-{
- m_r2_pia->cb2_w(state);
-}
-
-WRITE_LINE_MEMBER(mekd4_state::r2_vsync_changed)
-{
- m_r2_vsync = state;
- m_r2_pia->cb1_w(state);
-}
-
-READ_LINE_MEMBER(mekd4_state::r2_pia_cb1_r)
-{
- return m_r2_vsync;
-}
-
MC6845_UPDATE_ROW(mekd4_state::update_row)
{
const pen_t *pen = m_palette->pens();
@@ -935,7 +908,6 @@ void mekd4_state::machine_start()
save_item(NAME(m_cts));
save_item(NAME(m_dcd));
save_item(NAME(m_term_data));
- save_item(NAME(m_r2_vsync));
}
void mekd4_state::machine_reset()
@@ -963,8 +935,7 @@ void mekd4_state::machine_reset()
// MEK68R2
m_r2_pia->ca1_w(ASSERT_LINE);
m_r2_pia->ca2_w(ASSERT_LINE);
- m_r2_vsync = 0;
- m_r2_pia->cb1_w(m_r2_vsync);
+ m_r2_pia->cb1_w(0);
m_r2_pia->cb2_w(0);
}
@@ -1031,7 +1002,7 @@ void mekd4_state::mekd4(machine_config &config)
PIA6821(config, m_stop_pia, 0);
m_stop_pia->writepa_handler().set(FUNC(mekd4_state::stop_pia_pa_w));
m_stop_pia->writepb_handler().set(FUNC(mekd4_state::stop_pia_pb_w));
- m_stop_pia->readca2_handler().set(FUNC(mekd4_state::stop_pia_ca2_r));
+ m_stop_pia->ca2_w(1); // Connected to 'abort' TP2. Can be toggled low to and abort user code.
m_stop_pia->readcb1_handler().set(FUNC(mekd4_state::stop_pia_cb1_r));
m_stop_pia->cb2_handler().set(FUNC(mekd4_state::stop_pia_cb2_w));
m_stop_pia->irqa_handler().set("mainnmi", FUNC(input_merger_device::in_w<0>));
@@ -1065,8 +1036,8 @@ void mekd4_state::mekd4(machine_config &config)
m_mc6845->set_show_border_area(false);
m_mc6845->set_char_width(8);
m_mc6845->set_update_row_callback(FUNC(mekd4_state::update_row));
- m_mc6845->out_hsync_callback().set(FUNC(mekd4_state::r2_hsync_changed));
- m_mc6845->out_vsync_callback().set(FUNC(mekd4_state::r2_vsync_changed));
+ m_mc6845->out_hsync_callback().set(m_r2_pia, FUNC(pia6821_device::cb2_w));
+ m_mc6845->out_vsync_callback().set(m_r2_pia, FUNC(pia6821_device::cb1_w));
// PA is the keyboard data and a mode flag.
// CA1 is keyboard strobe.
@@ -1076,7 +1047,6 @@ void mekd4_state::mekd4(machine_config &config)
PIA6821(config, m_r2_pia, 0);
m_r2_pia->readpa_handler().set(FUNC(mekd4_state::r2_pia_pa_r));
m_r2_pia->readpb_handler().set(FUNC(mekd4_state::r2_pia_pb_r));
- m_r2_pia->readcb1_handler().set(FUNC(mekd4_state::r2_pia_cb1_r));
m_r2_pia->irqa_handler().set("mainirq", FUNC(input_merger_device::in_w<2>));
m_r2_pia->irqb_handler().set("mainirq", FUNC(input_merger_device::in_w<3>));
diff --git a/src/mame/drivers/pegasus.cpp b/src/mame/drivers/pegasus.cpp
index fe3672a313e..0ad7221646f 100644
--- a/src/mame/drivers/pegasus.cpp
+++ b/src/mame/drivers/pegasus.cpp
@@ -89,7 +89,6 @@ private:
void pegasus_controls_w(u8 data);
void pegasus_keyboard_w(u8 data);
void pegasus_pcg_w(offs_t offset, u8 data);
- DECLARE_READ_LINE_MEMBER(pegasus_keyboard_irq);
DECLARE_READ_LINE_MEMBER(pegasus_cassette_r);
DECLARE_WRITE_LINE_MEMBER(pegasus_cassette_w);
DECLARE_WRITE_LINE_MEMBER(pegasus_firq_clr);
@@ -106,7 +105,6 @@ private:
void pegasusm_mem(address_map &map);
u8 m_kbd_row = 0U;
- bool m_kbd_irq = false;
u8 m_control_bits = 0U;
std::unique_ptr<u8[]> m_pcg;
void pegasus_decrypt_rom(u8 *ROM);
@@ -140,7 +138,7 @@ u8 pegasus_state::pegasus_keyboard_r()
for (unsigned i = 0; i < 8; i++)
if (!BIT(m_kbd_row, i)) data &= m_io_keyboard[i]->read();
- m_kbd_irq = (data == 0xff) ? 1 : 0;
+ m_pia_s->cb1_w((data == 0xff) ? 1 : 0);
if (BIT(m_control_bits, 3))
data <<= 4;
return data;
@@ -163,11 +161,6 @@ void pegasus_state::pegasus_controls_w(u8 data)
m_control_bits = data;
}
-READ_LINE_MEMBER( pegasus_state::pegasus_keyboard_irq )
-{
- return m_kbd_irq;
-}
-
READ_LINE_MEMBER( pegasus_state::pegasus_cassette_r )
{
return m_cass->input();
@@ -475,14 +468,13 @@ void pegasus_state::machine_start()
m_pcg = make_unique_clear<u8[]>(0x0800);
save_pointer(NAME(m_pcg), 0x0800);
save_item(NAME(m_kbd_row));
- save_item(NAME(m_kbd_irq));
save_item(NAME(m_control_bits));
}
void pegasus_state::machine_reset()
{
m_kbd_row = 0;
- m_kbd_irq = 1;
+ m_pia_s->cb1_w(1);
m_control_bits = 0;
}
@@ -519,7 +511,6 @@ void pegasus_state::pegasus(machine_config &config)
PIA6821(config, m_pia_s, 0);
m_pia_s->readpb_handler().set(FUNC(pegasus_state::pegasus_keyboard_r));
m_pia_s->readca1_handler().set(FUNC(pegasus_state::pegasus_cassette_r));
- m_pia_s->readcb1_handler().set(FUNC(pegasus_state::pegasus_keyboard_irq));
m_pia_s->writepa_handler().set(FUNC(pegasus_state::pegasus_keyboard_w));
m_pia_s->writepb_handler().set(FUNC(pegasus_state::pegasus_controls_w));
m_pia_s->ca2_handler().set(FUNC(pegasus_state::pegasus_cassette_w));
diff --git a/src/mame/drivers/pet.cpp b/src/mame/drivers/pet.cpp
index a4066b389fe..35a2329f175 100644
--- a/src/mame/drivers/pet.cpp
+++ b/src/mame/drivers/pet.cpp
@@ -1674,7 +1674,6 @@ void pet_state::base_pet_devices(machine_config &config, const char *default_dri
PIA6821(config, m_pia1, 0);
m_pia1->readpa_handler().set(FUNC(pet_state::pia1_pa_r));
m_pia1->readpb_handler().set(FUNC(pet_state::pia1_pb_r));
- m_pia1->readca1_handler().set(PET_DATASSETTE_PORT_TAG, FUNC(pet_datassette_port_device::read));
m_pia1->writepa_handler().set(FUNC(pet_state::pia1_pa_w));
m_pia1->ca2_handler().set(FUNC(pet_state::pia1_ca2_w));
m_pia1->cb2_handler().set(PET_DATASSETTE_PORT_TAG, FUNC(pet_datassette_port_device::motor_w));
@@ -1694,7 +1693,7 @@ void pet_state::base_pet_devices(machine_config &config, const char *default_dri
m_ieee->srq_callback().set(m_pia2, FUNC(pia6821_device::cb1_w));
m_ieee->atn_callback().set(m_pia2, FUNC(pia6821_device::ca1_w));
- PET_DATASSETTE_PORT(config, PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c2n").read_handler().set(M6520_1_TAG, FUNC(pia6821_device::ca1_w));
+ PET_DATASSETTE_PORT(config, PET_DATASSETTE_PORT_TAG, cbm_datassette_devices, "c2n").read_handler().set(m_pia1, FUNC(pia6821_device::ca1_w));
PET_DATASSETTE_PORT(config, PET_DATASSETTE_PORT2_TAG, cbm_datassette_devices, nullptr).read_handler().set(M6522_TAG, FUNC(via6522_device::write_cb1));
PET_EXPANSION_SLOT(config, m_exp, XTAL(16'000'000)/16, pet_expansion_cards, nullptr);
diff --git a/src/mame/drivers/s8.cpp b/src/mame/drivers/s8.cpp
index 2280b3a7b30..ab1541b6e49 100644
--- a/src/mame/drivers/s8.cpp
+++ b/src/mame/drivers/s8.cpp
@@ -170,7 +170,6 @@ private:
void sound_w(u8 data);
u8 switch_r();
void switch_w(u8 data);
- DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
DECLARE_WRITE_LINE_MEMBER(pia21_ca2_w);
DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids
DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { m_io_outputs[16] = state; } // dummy to stop error log filling up
@@ -424,12 +423,6 @@ void s8_state::sound_w(u8 data)
m_sound_data = data;
}
-READ_LINE_MEMBER( s8_state::pia21_ca1_r )
-{
-// sound busy
- return 1;
-}
-
WRITE_LINE_MEMBER( s8_state::pia21_ca2_w )
{
// sound ns
@@ -606,7 +599,7 @@ void s8_state::s8(machine_config &config)
PIA6821(config, m_pia21, 0);
m_pia21->readpa_handler().set(FUNC(s8_state::sound_r));
m_pia21->set_port_a_input_overrides_output_mask(0xff);
- m_pia21->readca1_handler().set(FUNC(s8_state::pia21_ca1_r));
+ m_pia21->ca1_w(1); // sound busy
m_pia21->writepa_handler().set(FUNC(s8_state::sound_w));
m_pia21->writepb_handler().set(FUNC(s8_state::sol2_w));
m_pia21->ca2_handler().set(FUNC(s8_state::pia21_ca2_w));
diff --git a/src/mame/drivers/s9.cpp b/src/mame/drivers/s9.cpp
index 3699bae848f..1277377fed2 100644
--- a/src/mame/drivers/s9.cpp
+++ b/src/mame/drivers/s9.cpp
@@ -81,7 +81,6 @@ private:
void sol3_w(u8 data) { for (u8 i = 0; i < 8; i++) m_io_outputs[i] = BIT(data, i); }; // solenoids 0-7
u8 switch_r();
void switch_w(u8 data);
- DECLARE_READ_LINE_MEMBER(pia21_ca1_r);
DECLARE_WRITE_LINE_MEMBER(pia21_cb2_w) { } // enable solenoids
DECLARE_WRITE_LINE_MEMBER(pia24_cb2_w) { } // dummy to stop error log filling up
DECLARE_WRITE_LINE_MEMBER(pia28_ca2_w) { m_comma34 = state; } // comma3&4
@@ -232,12 +231,6 @@ INPUT_CHANGED_MEMBER( s9_state::main_nmi )
m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
}
-READ_LINE_MEMBER( s9_state::pia21_ca1_r )
-{
-// sound busy
- return 1;
-}
-
void s9_state::sol2_w(u8 data)
{
if (m_game)
@@ -376,7 +369,7 @@ void s9_state::s9(machine_config &config)
/* Devices */
PIA6821(config, m_pia21, 0);
m_pia21->set_port_a_input_overrides_output_mask(0xff);
- m_pia21->readca1_handler().set(FUNC(s9_state::pia21_ca1_r));
+ m_pia21->ca1_w(1); // sound busy
m_pia21->writepa_handler().set("s9sound", FUNC(williams_s9_sound_device::write));
m_pia21->writepb_handler().set(FUNC(s9_state::sol2_w));
m_pia21->ca2_handler().set("s9sound", FUNC(williams_s9_sound_device::strobe));
diff --git a/src/mame/drivers/starrider.cpp b/src/mame/drivers/starrider.cpp
index 5eaad7542ad..00a6b1e15e1 100644
--- a/src/mame/drivers/starrider.cpp
+++ b/src/mame/drivers/starrider.cpp
@@ -405,10 +405,10 @@ void sr_state::starrider(machine_config &config)
PIA6821(config, m_main_pia2, 24_MHz_XTAL / 2 / 12); // 6820/21
m_main_pia2->readpa_handler().set_ioport("IN0");
- m_main_pia2->readca1_handler().set_constant(0); // grounded
+ m_main_pia2->ca1_w(0); // grounded
m_main_pia2->ca2_handler().set(FUNC(sr_state::cpu_pia2_ca2_w));
m_main_pia2->readpb_handler().set_ioport("IN1");
- m_main_pia2->readcb1_handler().set_constant(0); // grounded
+ m_main_pia2->cb1_w(0); // grounded
// CB2 is unused
// IRQA and IRQB are unused
diff --git a/src/mame/drivers/swtpc09.cpp b/src/mame/drivers/swtpc09.cpp
index de9324eee7d..f8fe4095fa8 100644
--- a/src/mame/drivers/swtpc09.cpp
+++ b/src/mame/drivers/swtpc09.cpp
@@ -433,7 +433,7 @@ void swtpc09_state::swtpc09_base(machine_config &config)
// IO8 at 0xe080 is used internally by the MPID board PIA.
PIA6821(config, m_pia, 0);
m_pia->readpa_handler().set(FUNC(swtpc09_state::pia0_a_r));
- m_pia->readca1_handler().set(FUNC(swtpc09_state::pia0_ca1_r));
+ m_pia->ca1_w(0);
m_pia->irqa_handler().set(FUNC(swtpc09_state::pia0_irq_a));
// IO9 at 0xe090 is used internally by the MPID board 6840 timer.
diff --git a/src/mame/drivers/tavernie.cpp b/src/mame/drivers/tavernie.cpp
index 7c77b2ec624..3124d2a4ffa 100644
--- a/src/mame/drivers/tavernie.cpp
+++ b/src/mame/drivers/tavernie.cpp
@@ -87,7 +87,6 @@ public:
void cpu09(machine_config &config);
protected:
- DECLARE_READ_LINE_MEMBER(ca1_r);
u8 pa_r();
void pa_w(u8 data);
void pb_w(u8 data);
@@ -307,12 +306,6 @@ void cpu09_state::pb_w(u8 data)
{
}
-// cass in
-READ_LINE_MEMBER( cpu09_state::ca1_r )
-{
- return m_cassold;
-}
-
u8 ivg09_state::pb_ivg_r()
{
u8 ret = m_term_data;
@@ -413,7 +406,7 @@ void cpu09_state::cpu09(machine_config &config)
PIA6821(config, m_pia0, 0);
m_pia0->readpa_handler().set(FUNC(cpu09_state::pa_r));
- m_pia0->readca1_handler().set(FUNC(cpu09_state::ca1_r));
+ m_pia0->ca1_w(0);
m_pia0->writepa_handler().set(FUNC(cpu09_state::pa_w));
m_pia0->writepb_handler().set(FUNC(cpu09_state::pb_w));