diff --git a/src/mame/mg1/mg1.cpp b/src/mame/mg1/mg1.cpp index db0ac2ed404..9914704443d 100644 --- a/src/mame/mg1/mg1.cpp +++ b/src/mame/mg1/mg1.cpp @@ -31,7 +31,7 @@ #include "machine/wd_fdc.h" //#include "machine/upd7261.h" #include "machine/mm58174.h" -#include "machine/timer.h" +#include "machine/clock.h" // buses and connectors #include "bus/rs232/rs232.h" @@ -100,7 +100,6 @@ protected: private: MC6845_UPDATE_ROW(update_row); - TIMER_DEVICE_CALLBACK_MEMBER(kbd_clock) { m_iop->m6801_clock_serial(); } static void floppy_formats(format_registration &fr); @@ -434,11 +433,11 @@ void mg1_state::mg1(machine_config &config) /* * Documentation indicates the serial clock for the IOP should be driven by the keyboard, however the available * keyboard firmware does not produce a compatible clock output. A hand-drawn sketch indicates the system front - * panel allows the serial clock to be generated by a 2.4676MHz crystal and a 4016 divider. The default strapping + * panel allows the serial clock to be generated by a 2.4676MHz crystal and a 4060 divider. The default strapping * selects a 256 divisor, giving a 9600Hz clock which after the 8x divider in the IOP gives a 1200 baud data rate. */ - timer_device &kbd_clk(TIMER(config, "kbd_clock")); - kbd_clk.configure_periodic(FUNC(mg1_state::kbd_clock), attotime::from_ticks(256, 2.4576_MHz_XTAL)); + clock_device &kbd_clk(CLOCK(config, "kbd_clock", 2.4576_MHz_XTAL / 256)); + kbd_clk.signal_handler().set([this](int state) { if (state) m_iop->m6801_clock_serial(); }); //SOFTWARE_LIST(config, "flop_list").set_original("mg1_flop"); //SOFTWARE_LIST(config, "hdd_list").set_original("mg1_hdd");