diff options
author | Robbbert <Robbbert@users.noreply.github.com> | 2019-05-24 10:33:06 +1000 |
---|---|---|
committer | Robbbert <Robbbert@users.noreply.github.com> | 2019-05-24 10:33:06 +1000 |
commit | 52c159d916961370181d414d149ef793052d12a4 (patch) | |
tree | 043f0b52e532f9353fb6a589587e9df50e8e0642 | |
parent | d110ecf603e4b96d3ee5bccdfd4fb9b6a1d9ffb7 (diff) |
(nw) a5105 : added cassette read per schematic, but not working
-rw-r--r-- | src/mame/drivers/a5105.cpp | 41 | ||||
-rw-r--r-- | src/mame/drivers/pro80.cpp | 2 |
2 files changed, 36 insertions, 7 deletions
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp index 037daf3feab..880d15c55c3 100644 --- a/src/mame/drivers/a5105.cpp +++ b/src/mame/drivers/a5105.cpp @@ -2,18 +2,20 @@ // copyright-holders:Angelo Salese, Robbbert /*************************************************************************** - A5105 +A5105 - 12/05/2009 Skeleton driver. +2009-05-12 Skeleton driver. - http://www.robotrontechnik.de/index.htm?/html/computer/a5105.htm - http://www.sax.de/~zander/bic/bic_bw.html +http://www.robotrontechnik.de/index.htm?/html/computer/a5105.htm +http://www.sax.de/~zander/bic/bic_bw.html - - this looks like "somehow" inspired by the MSX1 machine? +- this looks like "somehow" inspired by the MSX1 machine? + +Cassette commands: CSAVE "name" ; CLOAD ToDo: -- Cassette Load (bit 7 of port 91) +- Cassette (coded per schematic, but doesn't work) ****************************************************************************/ @@ -69,6 +71,7 @@ private: DECLARE_READ8_MEMBER(a5105_memsel_r); DECLARE_READ8_MEMBER(key_r); DECLARE_READ8_MEMBER(key_mux_r); + DECLARE_READ8_MEMBER(pio_pb_r); DECLARE_WRITE8_MEMBER(key_mux_w); DECLARE_WRITE8_MEMBER(a5105_ab_w); DECLARE_WRITE8_MEMBER(a5105_memsel_w); @@ -164,6 +167,31 @@ void a5105_state::a5105_mem(address_map &map) map(0xc000, 0xffff).bankrw("bank4"); } +READ8_MEMBER( a5105_state::pio_pb_r ) +{ + /* + + PIO Channel B + + 0 W PAR12 + 1 ? SER1 + 2 ? SER2 + 3 ? SER3 + 4 ? SER4 + 5 W JOY2 + 6 W /JOYEN + 7 R Cassette Data + + */ + + uint8_t data = 0x7f; + + // cassette data + data |= (m_cass->input() > 0) ? 0x80 : 0; + + return data; +} + WRITE8_MEMBER( a5105_state::pcg_addr_w ) { m_pcg_addr = data << 3; @@ -595,6 +623,7 @@ void a5105_state::a5105(machine_config &config) ctc.zc_callback<2>().set("z80ctc", FUNC(z80ctc_device::trg3)); z80pio_device& pio(Z80PIO(config, "z80pio", XTAL(15'000'000) / 4)); + pio.in_pb_callback().set(FUNC(a5105_state::pio_pb_r)); pio.out_int_callback().set_inputline(m_maincpu, 0); CASSETTE(config, m_cass); diff --git a/src/mame/drivers/pro80.cpp b/src/mame/drivers/pro80.cpp index 917174c4215..2f6944a419c 100644 --- a/src/mame/drivers/pro80.cpp +++ b/src/mame/drivers/pro80.cpp @@ -70,7 +70,7 @@ private: TIMER_DEVICE_CALLBACK_MEMBER( pro80_state::kansas_r ) { m_cass_data[1]++; - uint8_t cass_ws = ((m_cass)->input() > +0.03) ? 1 : 0; + uint8_t cass_ws = (m_cass->input() > +0.03) ? 1 : 0; if (cass_ws != m_cass_data[0]) { |