Previous 199869 Revisions Next

r20571 Monday 28th January, 2013 at 02:08:54 UTC by Robbbert
(MESS) ascii keyboard tags (nw)
[src/mess/machine]keyboard.c keyboard.h

trunk/src/mess/machine/keyboard.c
r20570r20571
3636
3737generic_keyboard_device::generic_keyboard_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock)
3838   : device_t(mconfig, type, name, tag, owner, clock)
39   , m_io_kbd0(*this, "TERM_LINE0")
40   , m_io_kbd1(*this, "TERM_LINE1")
41   , m_io_kbd2(*this, "TERM_LINE2")
42   , m_io_kbd3(*this, "TERM_LINE3")
43   , m_io_kbd4(*this, "TERM_LINE4")
44   , m_io_kbd5(*this, "TERM_LINE5")
45   , m_io_kbd6(*this, "TERM_LINE6")
46   , m_io_kbd7(*this, "TERM_LINE7")
47   , m_io_kbdc(*this, "TERM_LINEC")
3948{
4049}
4150
4251generic_keyboard_device::generic_keyboard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock)
4352   : device_t(mconfig, GENERIC_KEYBOARD, "Generic Keyboard", tag, owner, clock)
53   , m_io_kbd0(*this, "TERM_LINE0")
54   , m_io_kbd1(*this, "TERM_LINE1")
55   , m_io_kbd2(*this, "TERM_LINE2")
56   , m_io_kbd3(*this, "TERM_LINE3")
57   , m_io_kbd4(*this, "TERM_LINE4")
58   , m_io_kbd5(*this, "TERM_LINE5")
59   , m_io_kbd6(*this, "TERM_LINE6")
60   , m_io_kbd7(*this, "TERM_LINE7")
61   , m_io_kbdc(*this, "TERM_LINEC")
4462{
4563}
4664
r20570r20571
6078
6179UINT8 generic_keyboard_device::keyboard_handler(UINT8 last_code, UINT8 *scan_line)
6280{
63   static const char *const keynames[] = { "TERM_LINE0", "TERM_LINE1", "TERM_LINE2", "TERM_LINE3", "TERM_LINE4", "TERM_LINE5", "TERM_LINE6", "TERM_LINE7" };
81   static ioport_port *const keynames[] = { m_io_kbd0, m_io_kbd1, m_io_kbd2, m_io_kbd3, m_io_kbd4, m_io_kbd5, m_io_kbd6, m_io_kbd7 };
6482   int i;
6583   UINT8 code;
6684   UINT8 key_code = 0;
6785   UINT8 retVal = 0;
68   UINT8 shift = BIT(ioport("TERM_LINEC")->read(), 1);
69   UINT8 caps  = BIT(ioport("TERM_LINEC")->read(), 2);
70   UINT8 ctrl  = BIT(ioport("TERM_LINEC")->read(), 0);
86   UINT8 shift = BIT(m_io_kbdc->read(), 1);
87   UINT8 caps  = BIT(m_io_kbdc->read(), 2);
88   UINT8 ctrl  = BIT(m_io_kbdc->read(), 0);
7189   i = *scan_line;
7290   {
73      code = ioport(keynames[i])->read();
91      code = keynames[i]->read();
7492      if (code != 0)
7593      {
7694         if (i==0 && shift==0) {
trunk/src/mess/machine/keyboard.h
r20570r20571
4848   virtual ioport_constructor device_input_ports() const;
4949   virtual machine_config_constructor device_mconfig_additions() const;
5050protected:
51   required_ioport m_io_kbd0;
52   required_ioport m_io_kbd1;
53   required_ioport m_io_kbd2;
54   required_ioport m_io_kbd3;
55   required_ioport m_io_kbd4;
56   required_ioport m_io_kbd5;
57   required_ioport m_io_kbd6;
58   required_ioport m_io_kbd7;
59   required_ioport m_io_kbdc;
5160   virtual void device_start();
5261   virtual void device_reset();
5362   virtual void device_timer(emu_timer &timer, device_timer_id id, int param, void *ptr);

Previous 199869 Revisions Next


© 1997-2024 The MAME Team