(MESS) alphatro : very fine tuning to enable the load of a real tape

This commit is contained in:
Robbbert 2014-04-22 13:55:30 +00:00
parent 698076d300
commit bc2da593f3

View File

@ -32,7 +32,6 @@
ToDo: ToDo:
- Fix cassette loading (broke during devcb2 conversion)
- Add fdc, then connect up software list - Add fdc, then connect up software list
***************************************************************************/ ***************************************************************************/
@ -76,8 +75,8 @@ public:
DECLARE_WRITE_LINE_MEMBER(txdata_callback); DECLARE_WRITE_LINE_MEMBER(txdata_callback);
DECLARE_WRITE_LINE_MEMBER(write_usart_clock); DECLARE_WRITE_LINE_MEMBER(write_usart_clock);
DECLARE_PALETTE_INIT(alphatro); DECLARE_PALETTE_INIT(alphatro);
TIMER_DEVICE_CALLBACK_MEMBER(alphatro_c); TIMER_DEVICE_CALLBACK_MEMBER(timer_c);
TIMER_DEVICE_CALLBACK_MEMBER(alphatro_p); TIMER_DEVICE_CALLBACK_MEMBER(timer_p);
required_shared_ptr<UINT8> m_p_videoram; required_shared_ptr<UINT8> m_p_videoram;
UINT8 *m_p_chargen; UINT8 *m_p_chargen;
UINT8 m_flashcnt; UINT8 m_flashcnt;
@ -391,10 +390,9 @@ void alphatro_state::machine_reset()
// probably not correct, exact meaning of port is unknown, vblank/vsync is too slow. // probably not correct, exact meaning of port is unknown, vblank/vsync is too slow.
m_sys_timer->adjust(attotime::from_usec(10),0,attotime::from_usec(10)); m_sys_timer->adjust(attotime::from_usec(10),0,attotime::from_usec(10));
m_timer_bit = 0; m_timer_bit = 0;
m_cass_state = 1; m_cass_data[0] = m_cass_data[1] = m_cass_data[2] = m_cass_data[3] = 0;
m_cass_data[0] = 0; m_cass_state = 0;
m_cass_data[1] = 0; m_cassold = 0;
m_cass_data[3] = 0;
m_usart->write_rxd(0); m_usart->write_rxd(0);
m_beep->set_state(0); m_beep->set_state(0);
m_beep->set_frequency(950); /* piezo-device needs to be measured */ m_beep->set_frequency(950); /* piezo-device needs to be measured */
@ -431,7 +429,7 @@ static MC6845_INTERFACE( alphatro_crtc6845_interface )
NULL NULL
}; };
TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::alphatro_c) TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::timer_c)
{ {
m_cass_data[3]++; m_cass_data[3]++;
@ -447,7 +445,7 @@ TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::alphatro_c)
m_cass->output(BIT(m_cass_data[3], 1) ? -1.0 : +1.0); // 1200Hz m_cass->output(BIT(m_cass_data[3], 1) ? -1.0 : +1.0); // 1200Hz
} }
TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::alphatro_p) TIMER_DEVICE_CALLBACK_MEMBER(alphatro_state::timer_p)
{ {
/* cassette - turn 1200/2400Hz to a bit */ /* cassette - turn 1200/2400Hz to a bit */
m_cass_data[1]++; m_cass_data[1]++;
@ -501,12 +499,12 @@ static MACHINE_CONFIG_START( alphatro, alphatro_state )
MCFG_DEVICE_ADD("usart", I8251, 0) MCFG_DEVICE_ADD("usart", I8251, 0)
MCFG_I8251_TXD_HANDLER(WRITELINE(alphatro_state, txdata_callback)) MCFG_I8251_TXD_HANDLER(WRITELINE(alphatro_state, txdata_callback))
MCFG_DEVICE_ADD("usart_clock", CLOCK, 19200) MCFG_DEVICE_ADD("usart_clock", CLOCK, 19218) // 19218 to load a real tape, 19222 to load a tape made by this driver
MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(alphatro_state, write_usart_clock)) MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(alphatro_state, write_usart_clock))
MCFG_CASSETTE_ADD("cassette", alphatro_cassette_interface) MCFG_CASSETTE_ADD("cassette", alphatro_cassette_interface)
MCFG_TIMER_DRIVER_ADD_PERIODIC("alphatro_c", alphatro_state, alphatro_c, attotime::from_hz(4800)) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_c", alphatro_state, timer_c, attotime::from_hz(4800))
MCFG_TIMER_DRIVER_ADD_PERIODIC("alphatro_p", alphatro_state, alphatro_p, attotime::from_hz(40000)) MCFG_TIMER_DRIVER_ADD_PERIODIC("timer_p", alphatro_state, timer_p, attotime::from_hz(40000))
MCFG_RAM_ADD("ram") MCFG_RAM_ADD("ram")
MCFG_RAM_DEFAULT_SIZE("64K") MCFG_RAM_DEFAULT_SIZE("64K")