mirror of
https://github.com/holub/mame
synced 2025-04-17 05:53:36 +03:00
bus/mackbd: Added M0120P keypad, updated notes.
This commit is contained in:
parent
59732738fb
commit
1a1161fd4b
@ -92,10 +92,16 @@
|
||||
* M0110B (British - ISO)
|
||||
* M0110F (French - ISO)
|
||||
* M0110T (Italian - ISO)
|
||||
* M0120 (keypad - English)
|
||||
* M0120P (keypad - European)
|
||||
|
||||
ISO keyboards and the European keypad use icons rather than English
|
||||
text for Backspace, Tab, Caps Lock, Shift, Return, Shift, Option,
|
||||
Enter and Clear (all variants use icons for command and the cursor
|
||||
arrows).
|
||||
|
||||
Also known to exist:
|
||||
* Japanese - ANSI (U.S. with different key caps)
|
||||
* M0120P - keypad, icons for Clear/Enter rather than English text
|
||||
|
||||
TODO:
|
||||
* Determine whether P00 or P01 actually feeds the keypad watchdog
|
||||
@ -348,6 +354,8 @@ protected:
|
||||
save_item(NAME(m_keyboard_data_in));
|
||||
}
|
||||
|
||||
required_device<mac_keyboard_port_device> m_keyboard_port;
|
||||
|
||||
private:
|
||||
DECLARE_WRITE_LINE_MEMBER(keyboard_data_out_w)
|
||||
{
|
||||
@ -378,8 +386,6 @@ private:
|
||||
m_keyboard_data_in = param ? 0x01U : 0x00U;
|
||||
}
|
||||
|
||||
required_device<mac_keyboard_port_device> m_keyboard_port;
|
||||
|
||||
u8 m_keyboard_data_out = 0x01U; // data line drive to keyboard (idle high)
|
||||
u8 m_keyboard_clock_in = 0x01U; // clock line driver from keyboard (idle high)
|
||||
u8 m_keyboard_data_in = 0x01U; // data line drive from keyboard (idle high)
|
||||
@ -716,6 +722,16 @@ INPUT_PORTS_START(keypad)
|
||||
PORT_BIT(0x0c, IP_ACTIVE_LOW, IPT_CUSTOM) PORT_CUSTOM_MEMBER(keypad_base, columns_r)
|
||||
INPUT_PORTS_END
|
||||
|
||||
INPUT_PORTS_START(keypad_eu)
|
||||
PORT_INCLUDE(keypad)
|
||||
|
||||
PORT_MODIFY("ROW1")
|
||||
PORT_BIT(0x02, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_PLUS_PAD) PORT_CHAR(UCHAR_MAMEKEY(COMMA_PAD)) PORT_NAME("Keypad . (Down)")
|
||||
|
||||
PORT_MODIFY("ROW2")
|
||||
PORT_BIT(0x01, IP_ACTIVE_LOW, IPT_KEYPAD) PORT_CODE(KEYCODE_DEL_PAD) PORT_CHAR(UCHAR_MAMEKEY(DEL_PAD)) PORT_NAME("Keypad ,")
|
||||
INPUT_PORTS_END
|
||||
|
||||
|
||||
class m0120_device : public keypad_base
|
||||
{
|
||||
@ -732,6 +748,28 @@ protected:
|
||||
}
|
||||
};
|
||||
|
||||
class m0120p_device : public keypad_base
|
||||
{
|
||||
public:
|
||||
m0120p_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
|
||||
: keypad_base(mconfig, MACKBD_M0120P, tag, owner, clock)
|
||||
{
|
||||
}
|
||||
|
||||
protected:
|
||||
virtual void device_add_mconfig(machine_config &config) override
|
||||
{
|
||||
keypad_base::device_add_mconfig(config);
|
||||
|
||||
m_keyboard_port->set_default_option("fr");
|
||||
}
|
||||
|
||||
virtual ioport_constructor device_input_ports() const override
|
||||
{
|
||||
return INPUT_PORTS_NAME(keypad_eu);
|
||||
}
|
||||
};
|
||||
|
||||
} // anonymous namespace
|
||||
|
||||
|
||||
@ -740,4 +778,5 @@ DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0110B, device_mac_keyboard_interface, m0110b_
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0110F, device_mac_keyboard_interface, m0110f_device, "mackbd_m0110f", "Macintosh Keyboard (French - M0110F)")
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0110T, device_mac_keyboard_interface, m0110t_device, "mackbd_m0110t", "Macintosh Keyboard (Italian - M0110T)")
|
||||
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0120, device_mac_keyboard_interface, m0120_device, "mackbd_m0120", "Macintosh Numeric Keypad (M0120)")
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0120, device_mac_keyboard_interface, m0120_device, "mackbd_m0120", "Macintosh Numeric Keypad (English - M0120)")
|
||||
DEFINE_DEVICE_TYPE_PRIVATE(MACKBD_M0120P, device_mac_keyboard_interface, m0120p_device, "mackbd_m0120p", "Macintosh Numeric Keypad (European - M0120P)")
|
||||
|
@ -18,5 +18,6 @@ DECLARE_DEVICE_TYPE(MACKBD_M0110F, device_mac_keyboard_interface)
|
||||
DECLARE_DEVICE_TYPE(MACKBD_M0110T, device_mac_keyboard_interface)
|
||||
|
||||
DECLARE_DEVICE_TYPE(MACKBD_M0120, device_mac_keyboard_interface)
|
||||
DECLARE_DEVICE_TYPE(MACKBD_M0120P, device_mac_keyboard_interface)
|
||||
|
||||
#endif // MAME_BUS_MACKBD_KEYBOARD_H
|
||||
|
@ -153,12 +153,13 @@ void device_mac_keyboard_interface::interface_validity_check(validity_checker &v
|
||||
|
||||
void mac_keyboard_devices(device_slot_interface &device)
|
||||
{
|
||||
device.option_add("us", MACKBD_M0110);
|
||||
device.option_add("gb", MACKBD_M0110B);
|
||||
device.option_add("fr", MACKBD_M0110F);
|
||||
device.option_add("it", MACKBD_M0110T);
|
||||
device.option_add("us", MACKBD_M0110);
|
||||
device.option_add("gb", MACKBD_M0110B);
|
||||
device.option_add("fr", MACKBD_M0110F);
|
||||
device.option_add("it", MACKBD_M0110T);
|
||||
|
||||
device.option_add("pad", MACKBD_M0120);
|
||||
device.option_add("pad", MACKBD_M0120);
|
||||
device.option_add("eupad", MACKBD_M0120P);
|
||||
|
||||
device.option_add("plus", MACKBD_M0110A);
|
||||
device.option_add("plus", MACKBD_M0110A);
|
||||
}
|
||||
|
@ -117,7 +117,7 @@ protected:
|
||||
|
||||
virtual void device_add_mconfig(machine_config &config) override
|
||||
{
|
||||
I8048(config, m_mpu, 6'000'000); // clock frequency unconfirmed
|
||||
I8048(config, m_mpu, 6_MHz_XTAL); // NEC 8048HC517 341-0332-A with ceramic resonator
|
||||
m_mpu->p1_out_cb().set(FUNC(m0110a_device::p1_w));
|
||||
m_mpu->p2_in_cb().set_ioport("P2");
|
||||
m_mpu->p2_out_cb().set(FUNC(m0110a_device::p2_w));
|
||||
|
Loading…
Reference in New Issue
Block a user