mindset: Fix the 8042s, clock starts ticking [O. Galibert]

This commit is contained in:
Olivier Galibert 2019-06-16 19:42:16 +02:00
parent 5b28cbd49b
commit e979607ad8
7 changed files with 21 additions and 7 deletions

View File

@ -26,7 +26,7 @@ namespace bus {
void human_interface_device::device_add_mconfig(machine_config &config)
{
i8042_device &iocpu(I8042(config, "iocpu", XTAL(5'000'000)));
i8042ah_device &iocpu(I8042AH(config, "iocpu", XTAL(5'000'000)));
iocpu.set_addrmap(AS_PROGRAM, &human_interface_device::iocpu_map);
iocpu.p1_out_cb().set(FUNC(human_interface_device::iocpu_port1_w));
iocpu.p2_out_cb().set(FUNC(human_interface_device::iocpu_port2_w));

View File

@ -61,7 +61,7 @@ private:
void update_gpib_irq();
void update_gpib_dma();
required_device<i8042_device> m_iocpu;
required_device<i8042ah_device> m_iocpu;
required_device<hp_hil_mlc_device> m_mlc;
required_device<sn76494_device> m_sound;
required_device<tms9914_device> m_tms9914;

View File

@ -159,6 +159,7 @@ DEFINE_DEVICE_TYPE(I8050, i8050_device, "i8050", "Intel I8050")
DEFINE_DEVICE_TYPE(I8041, i8041_device, "i8041", "Intel I8041")
DEFINE_DEVICE_TYPE(I8741, i8741_device, "i8741", "Intel I8741")
DEFINE_DEVICE_TYPE(I8042, i8042_device, "i8042", "Intel I8042")
DEFINE_DEVICE_TYPE(I8042AH,i8042ah_device,"i8042ah","Intel I8042AH")
DEFINE_DEVICE_TYPE(I8242, i8242_device, "i8242", "Intel I8242")
DEFINE_DEVICE_TYPE(I8742, i8742_device, "i8742", "Intel I8742")
DEFINE_DEVICE_TYPE(MB8884, mb8884_device, "mb8884", "MB8884")
@ -320,6 +321,11 @@ i8741_device::i8741_device(const machine_config &mconfig, const char *tag, devic
}
i8042_device::i8042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: upi41_cpu_device(mconfig, I8042, tag, owner, clock, 2048, 128)
{
}
i8042ah_device::i8042ah_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: upi41_cpu_device(mconfig, I8042, tag, owner, clock, 2048, 256)
{
}

View File

@ -88,7 +88,8 @@ DECLARE_DEVICE_TYPE(I8050, i8050_device) /* 4k internal ROM, 256 bytes in
/* Official Intel UPI-41 parts */
DECLARE_DEVICE_TYPE(I8041, i8041_device) /* 1k internal ROM, 128 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8741, i8741_device) /* 1k internal EEPROM, 128 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8042, i8042_device) /* 2k internal ROM, 256 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8042, i8042_device) /* 2k internal ROM, 128 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8042AH, i8042ah_device)/* 2k internal ROM, 256 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8242, i8242_device) /* 2k internal ROM, 256 bytes internal RAM */
DECLARE_DEVICE_TYPE(I8742, i8742_device) /* 2k internal EEPROM, 256 bytes internal RAM */
@ -656,6 +657,13 @@ public:
i8042_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
class i8042ah_device : public upi41_cpu_device
{
public:
// construction/destruction
i8042ah_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
};
class i8242_device : public upi41_cpu_device
{
public:

View File

@ -386,7 +386,7 @@ tiny_rom_entry const *at_keyboard_controller_device::device_rom_region() const
void at_keyboard_controller_device::device_add_mconfig(machine_config &config)
{
I8042(config, m_mcu, DERIVED_CLOCK(1, 1));
I8042AH(config, m_mcu, DERIVED_CLOCK(1, 1));
m_mcu->p1_in_cb().set_ioport("P1");
m_mcu->p1_out_cb().set_nop();
m_mcu->p2_in_cb().set_constant(0xffU);
@ -462,7 +462,7 @@ tiny_rom_entry const *ps2_keyboard_controller_device::device_rom_region() const
void ps2_keyboard_controller_device::device_add_mconfig(machine_config &config)
{
I8042(config, m_mcu, DERIVED_CLOCK(1, 1));
I8042AH(config, m_mcu, DERIVED_CLOCK(1, 1));
m_mcu->p1_in_cb().set(FUNC(ps2_keyboard_controller_device::p1_r));
m_mcu->p1_out_cb().set_nop();
m_mcu->p2_in_cb().set_constant(0xffU);

View File

@ -66,7 +66,7 @@ void bitel_state::feap90(machine_config &config)
I8031(config, m_maincpu, 12000000); // XTAL illegible
m_maincpu->set_addrmap(AS_PROGRAM, &bitel_state::prog_map);
I8042(config, "upi", 6000000).set_disable(); // XTAL illegible
I8042AH(config, "upi", 6000000).set_disable(); // XTAL illegible
}
ROM_START(t3210) // i8031, 8742, D80C39C // 4+2k ram onboard; 24kb in battery-backed expansion

View File

@ -525,7 +525,7 @@ void mindset_state::mindset(machine_config &config)
m_syscpu->t0_in_cb().set(FUNC(mindset_state::sys_t0_r));
m_syscpu->t1_in_cb().set(FUNC(mindset_state::sys_t1_r));
I8042(config, m_soundcpu, 14.318181_MHz_XTAL/2);
I8042(config, m_soundcpu, 12_MHz_XTAL/2);
I8749(config, m_kbdcpu, 6_MHz_XTAL);
m_kbdcpu->p1_out_cb().set(FUNC(mindset_state::kbd_p1_w));