mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
Amiga 500 keyboard updates:
* Refactor function keys, keypad, etc. into a common set of inputs * Add layouts for Spain, Denmark, Switzerland, Norway and UK * Switzerland has French/German config option, natural mode only works for French
This commit is contained in:
parent
9e7d187976
commit
9ede7e317e
@ -25,6 +25,11 @@ const device_type A500_KBD_DE = &device_creator<bus::amiga::keyboard::a500_kbd_d
|
|||||||
const device_type A500_KBD_FR = &device_creator<bus::amiga::keyboard::a500_kbd_fr_device>;
|
const device_type A500_KBD_FR = &device_creator<bus::amiga::keyboard::a500_kbd_fr_device>;
|
||||||
const device_type A500_KBD_IT = &device_creator<bus::amiga::keyboard::a500_kbd_it_device>;
|
const device_type A500_KBD_IT = &device_creator<bus::amiga::keyboard::a500_kbd_it_device>;
|
||||||
const device_type A500_KBD_SE = &device_creator<bus::amiga::keyboard::a500_kbd_se_device>;
|
const device_type A500_KBD_SE = &device_creator<bus::amiga::keyboard::a500_kbd_se_device>;
|
||||||
|
const device_type A500_KBD_ES = &device_creator<bus::amiga::keyboard::a500_kbd_es_device>;
|
||||||
|
const device_type A500_KBD_DK = &device_creator<bus::amiga::keyboard::a500_kbd_dk_device>;
|
||||||
|
const device_type A500_KBD_CH = &device_creator<bus::amiga::keyboard::a500_kbd_ch_device>;
|
||||||
|
const device_type A500_KBD_NO = &device_creator<bus::amiga::keyboard::a500_kbd_no_device>;
|
||||||
|
const device_type A500_KBD_GB = &device_creator<bus::amiga::keyboard::a500_kbd_gb_device>;
|
||||||
|
|
||||||
|
|
||||||
namespace bus { namespace amiga { namespace keyboard {
|
namespace bus { namespace amiga { namespace keyboard {
|
||||||
@ -108,6 +113,31 @@ INPUT_PORTS_START( a500_se_keyboard )
|
|||||||
PORT_INCLUDE(matrix_se)
|
PORT_INCLUDE(matrix_se)
|
||||||
INPUT_PORTS_END
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_PORTS_START( a500_es_keyboard )
|
||||||
|
PORT_INCLUDE(a500_special)
|
||||||
|
PORT_INCLUDE(matrix_es)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_PORTS_START( a500_dk_keyboard )
|
||||||
|
PORT_INCLUDE(a500_special)
|
||||||
|
PORT_INCLUDE(matrix_dk)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_PORTS_START( a500_ch_keyboard )
|
||||||
|
PORT_INCLUDE(a500_special)
|
||||||
|
PORT_INCLUDE(matrix_ch)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_PORTS_START( a500_no_keyboard )
|
||||||
|
PORT_INCLUDE(a500_special)
|
||||||
|
PORT_INCLUDE(matrix_no)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
|
INPUT_PORTS_START( a500_gb_keyboard )
|
||||||
|
PORT_INCLUDE(a500_special)
|
||||||
|
PORT_INCLUDE(matrix_gb)
|
||||||
|
INPUT_PORTS_END
|
||||||
|
|
||||||
} // anonymous namespace
|
} // anonymous namespace
|
||||||
|
|
||||||
|
|
||||||
@ -126,6 +156,11 @@ ioport_constructor a500_kbd_de_device::device_input_ports() const { return INPUT
|
|||||||
ioport_constructor a500_kbd_fr_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_fr_keyboard ); }
|
ioport_constructor a500_kbd_fr_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_fr_keyboard ); }
|
||||||
ioport_constructor a500_kbd_it_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_it_keyboard ); }
|
ioport_constructor a500_kbd_it_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_it_keyboard ); }
|
||||||
ioport_constructor a500_kbd_se_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_se_keyboard ); }
|
ioport_constructor a500_kbd_se_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_se_keyboard ); }
|
||||||
|
ioport_constructor a500_kbd_es_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_es_keyboard ); }
|
||||||
|
ioport_constructor a500_kbd_dk_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_dk_keyboard ); }
|
||||||
|
ioport_constructor a500_kbd_ch_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_ch_keyboard ); }
|
||||||
|
ioport_constructor a500_kbd_no_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_no_keyboard ); }
|
||||||
|
ioport_constructor a500_kbd_gb_device::device_input_ports() const { return INPUT_PORTS_NAME( a500_gb_keyboard ); }
|
||||||
|
|
||||||
|
|
||||||
//**************************************************************************
|
//**************************************************************************
|
||||||
@ -160,51 +195,58 @@ a500_kbd_device::a500_kbd_device(
|
|||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// a500_kbd_us_device - constructor
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
a500_kbd_us_device::a500_kbd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a500_kbd_us_device::a500_kbd_us_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_US, "Amiga 500 Keyboard (U.S./Canada)", "a500_kbd_us", __FILE__)
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_US, "Amiga 500 Keyboard (U.S./Canada)", "a500_kbd_us", __FILE__)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// a500_kbd_de_device - constructor
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
a500_kbd_de_device::a500_kbd_de_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a500_kbd_de_device::a500_kbd_de_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DE, "Amiga 500 Keyboard (Germany/Austria)", "a500_kbd_de", __FILE__)
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DE, "Amiga 500 Keyboard (Germany/Austria)", "a500_kbd_de", __FILE__)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// a500_kbd_fr_device - constructor
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
a500_kbd_fr_device::a500_kbd_fr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a500_kbd_fr_device::a500_kbd_fr_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_FR, "Amiga 500 Keyboard (France/Belgium)", "a500_kbd_fr", __FILE__)
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_FR, "Amiga 500 Keyboard (France/Belgium)", "a500_kbd_fr", __FILE__)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// a500_kbd_it_device - constructor
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
a500_kbd_it_device::a500_kbd_it_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a500_kbd_it_device::a500_kbd_it_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_IT, "Amiga 500 Keyboard (Italy)", "a500_kbd_it", __FILE__)
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_IT, "Amiga 500 Keyboard (Italy)", "a500_kbd_it", __FILE__)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
//-------------------------------------------------
|
|
||||||
// a500_kbd_se_device - constructor
|
|
||||||
//-------------------------------------------------
|
|
||||||
|
|
||||||
a500_kbd_se_device::a500_kbd_se_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
a500_kbd_se_device::a500_kbd_se_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_SE, "Amiga 500 Keyboard (Sweden/Finland)", "a500_kbd_se", __FILE__)
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_SE, "Amiga 500 Keyboard (Sweden/Finland)", "a500_kbd_se", __FILE__)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
|
|
||||||
|
a500_kbd_es_device::a500_kbd_es_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_ES, "Amiga 500 Keyboard (Spain)", "a500_kbd_es", __FILE__)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
a500_kbd_dk_device::a500_kbd_dk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_DK, "Amiga 500 Keyboard (Denmark)", "a500_kbd_dk", __FILE__)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
a500_kbd_ch_device::a500_kbd_ch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_CH, "Amiga 500 Keyboard (Switzerland)", "a500_kbd_ch", __FILE__)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
a500_kbd_no_device::a500_kbd_no_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_NO, "Amiga 500 Keyboard (Norway)", "a500_kbd_no", __FILE__)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
a500_kbd_gb_device::a500_kbd_gb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
|
||||||
|
a500_kbd_device(mconfig, tag, owner, clock, A500_KBD_NO, "Amiga 500 Keyboard (UK)", "a500_kbd_gb", __FILE__)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
// device_start - device-specific startup
|
// device_start - device-specific startup
|
||||||
//-------------------------------------------------
|
//-------------------------------------------------
|
||||||
|
@ -42,6 +42,11 @@ extern const device_type A500_KBD_DE;
|
|||||||
extern const device_type A500_KBD_FR;
|
extern const device_type A500_KBD_FR;
|
||||||
extern const device_type A500_KBD_IT;
|
extern const device_type A500_KBD_IT;
|
||||||
extern const device_type A500_KBD_SE;
|
extern const device_type A500_KBD_SE;
|
||||||
|
extern const device_type A500_KBD_ES;
|
||||||
|
extern const device_type A500_KBD_DK;
|
||||||
|
extern const device_type A500_KBD_CH;
|
||||||
|
extern const device_type A500_KBD_NO;
|
||||||
|
extern const device_type A500_KBD_GB;
|
||||||
|
|
||||||
|
|
||||||
namespace bus { namespace amiga { namespace keyboard {
|
namespace bus { namespace amiga { namespace keyboard {
|
||||||
@ -188,6 +193,61 @@ protected:
|
|||||||
virtual ioport_constructor device_input_ports() const override;
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// ======================> a500_kbd_es_device
|
||||||
|
|
||||||
|
class a500_kbd_es_device : public a500_kbd_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
a500_kbd_es_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ======================> a500_kbd_dk_device
|
||||||
|
|
||||||
|
class a500_kbd_dk_device : public a500_kbd_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
a500_kbd_dk_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ======================> a500_kbd_ch_device
|
||||||
|
|
||||||
|
class a500_kbd_ch_device : public a500_kbd_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
a500_kbd_ch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ======================> a500_kbd_no_device
|
||||||
|
|
||||||
|
class a500_kbd_no_device : public a500_kbd_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
a500_kbd_no_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
};
|
||||||
|
|
||||||
|
// ======================> a500_kbd_gb_device
|
||||||
|
|
||||||
|
class a500_kbd_gb_device : public a500_kbd_device
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
a500_kbd_gb_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
virtual ioport_constructor device_input_ports() const override;
|
||||||
|
};
|
||||||
|
|
||||||
} } } // namespace bus::amiga::keyboard
|
} } } // namespace bus::amiga::keyboard
|
||||||
|
|
||||||
#endif // DEVICES_BUS_AMIGA_KEYBOARD_A500_H
|
#endif // DEVICES_BUS_AMIGA_KEYBOARD_A500_H
|
||||||
|
@ -109,5 +109,10 @@ SLOT_INTERFACE_START( amiga_keyboard_devices )
|
|||||||
SLOT_INTERFACE("a500_fr", A500_KBD_FR)
|
SLOT_INTERFACE("a500_fr", A500_KBD_FR)
|
||||||
SLOT_INTERFACE("a500_it", A500_KBD_IT)
|
SLOT_INTERFACE("a500_it", A500_KBD_IT)
|
||||||
SLOT_INTERFACE("a500_se", A500_KBD_SE)
|
SLOT_INTERFACE("a500_se", A500_KBD_SE)
|
||||||
|
SLOT_INTERFACE("a500_es", A500_KBD_ES)
|
||||||
|
SLOT_INTERFACE("a500_dk", A500_KBD_DK)
|
||||||
|
SLOT_INTERFACE("a500_ch", A500_KBD_CH)
|
||||||
|
SLOT_INTERFACE("a500_no", A500_KBD_NO)
|
||||||
|
SLOT_INTERFACE("a500_gb", A500_KBD_GB)
|
||||||
SLOT_INTERFACE("a1200_us", A1200_KBD)
|
SLOT_INTERFACE("a1200_us", A1200_KBD)
|
||||||
SLOT_INTERFACE_END
|
SLOT_INTERFACE_END
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -18,6 +18,11 @@ INPUT_PORTS_EXTERN(matrix_de);
|
|||||||
INPUT_PORTS_EXTERN(matrix_fr);
|
INPUT_PORTS_EXTERN(matrix_fr);
|
||||||
INPUT_PORTS_EXTERN(matrix_it);
|
INPUT_PORTS_EXTERN(matrix_it);
|
||||||
INPUT_PORTS_EXTERN(matrix_se);
|
INPUT_PORTS_EXTERN(matrix_se);
|
||||||
|
INPUT_PORTS_EXTERN(matrix_es);
|
||||||
|
INPUT_PORTS_EXTERN(matrix_dk);
|
||||||
|
INPUT_PORTS_EXTERN(matrix_ch);
|
||||||
|
INPUT_PORTS_EXTERN(matrix_no);
|
||||||
|
INPUT_PORTS_EXTERN(matrix_gb);
|
||||||
|
|
||||||
} } } // namespace bus::amiga::keyboard
|
} } } // namespace bus::amiga::keyboard
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user