mirror of
https://github.com/holub/mame
synced 2025-05-09 07:41:50 +03:00
(MESS) ensure cassette-save timer is synchronised to cpu.
This commit is contained in:
parent
2f33e6c413
commit
4ff2daf1bf
@ -85,6 +85,7 @@ public:
|
||||
private:
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
UINT8 m_video_index;
|
||||
required_device<via6522_device> m_via;
|
||||
required_device<cassette_image_device> m_cass;
|
||||
@ -197,6 +198,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(a6809_state::a6809_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
@ -78,6 +78,7 @@ private:
|
||||
UINT8 m_digit;
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
};
|
||||
|
||||
|
||||
@ -116,6 +117,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(acrnsys1_state::acrnsys1_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
@ -86,6 +86,7 @@ private:
|
||||
UINT8 m_timer_bit;
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
emu_timer* m_sys_timer;
|
||||
virtual void video_start();
|
||||
virtual void machine_start();
|
||||
@ -434,6 +435,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::alphatro_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
@ -494,7 +501,7 @@ static MACHINE_CONFIG_START( alphatro, alphatro_state )
|
||||
MCFG_DEVICE_ADD("usart", I8251, 0)
|
||||
MCFG_I8251_TXD_HANDLER(WRITELINE(alphatro_state, txdata_callback))
|
||||
|
||||
MCFG_DEVICE_ADD("usart_clock", CLOCK, 19225)
|
||||
MCFG_DEVICE_ADD("usart_clock", CLOCK, 19200)
|
||||
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(alphatro_state, write_usart_clock))
|
||||
|
||||
MCFG_CASSETTE_ADD("cassette", alphatro_cassette_interface)
|
||||
|
@ -94,6 +94,7 @@ protected:
|
||||
private:
|
||||
UINT8 m_rtc;
|
||||
bool m_cb2;
|
||||
bool m_cassold;
|
||||
UINT8 m_cass_data[4];
|
||||
UINT8 m_portb;
|
||||
virtual void machine_start();
|
||||
@ -212,6 +213,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(d6800_state::d6800_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (BIT(m_portb, 0) != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = BIT(m_portb, 0);
|
||||
}
|
||||
|
||||
if (BIT(m_portb, 0))
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
@ -108,6 +108,7 @@ private:
|
||||
UINT8 m_cass_data;
|
||||
UINT8 m_last_key;
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
bool m_speaker_state;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<speaker_sound_device> m_speaker;
|
||||
@ -165,6 +166,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(dauphin_state::dauphin_c)
|
||||
{
|
||||
m_cass_data++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data, 1) ? -1.0 : +1.0); // 1000Hz
|
||||
else
|
||||
|
@ -74,6 +74,7 @@ private:
|
||||
UINT8 m_inv;
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
UINT8 m_kbd_count;
|
||||
|
||||
required_device<cpu_device> m_maincpu;
|
||||
@ -373,6 +374,12 @@ TIMER_DEVICE_CALLBACK_MEMBER( fc100_state::timer_c )
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
@ -84,6 +84,7 @@ private:
|
||||
bool m_ff_b;
|
||||
UINT8 m_cass_data[4];
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
virtual void machine_reset();
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<i8251_device> m_uart;
|
||||
@ -278,6 +279,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(h8_state::h8_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
@ -120,6 +120,7 @@ private:
|
||||
UINT8 m_digit;
|
||||
UINT8 m_keydata;
|
||||
bool m_cass_state;
|
||||
bool m_cassold;
|
||||
required_device<cpu_device> m_maincpu;
|
||||
required_device<pia6821_device> m_pia_s;
|
||||
required_device<pia6821_device> m_pia_u;
|
||||
@ -329,6 +330,12 @@ TIMER_DEVICE_CALLBACK_MEMBER(mekd2_state::mekd2_c)
|
||||
{
|
||||
m_cass_data[3]++;
|
||||
|
||||
if (m_cass_state != m_cassold)
|
||||
{
|
||||
m_cass_data[3] = 0;
|
||||
m_cassold = m_cass_state;
|
||||
}
|
||||
|
||||
if (m_cass_state)
|
||||
m_cass->output(BIT(m_cass_data[3], 0) ? -1.0 : +1.0); // 2400Hz
|
||||
else
|
||||
|
Loading…
Reference in New Issue
Block a user