Previous 199869 Revisions Next

r20531 Sunday 27th January, 2013 at 13:45:52 UTC by Wilbert Pol
(MESS) odyssey2.c: Tagmap cleanups (nw)
[src/mess/drivers]odyssey2.c

trunk/src/mess/drivers/odyssey2.c
r20530r20531
3131      , m_i8243(*this, "i8243")
3232      , m_i8244(*this, "i8244")
3333      , m_ef9340_1(*this, "ef9340_1")
34      { }
34      , m_user1(*this, "user1")
35      , m_bank1(*this, "bank1")
36      , m_bank2(*this, "bank2")
37      , m_key0(*this, "KEY0")
38      , m_key1(*this, "KEY1")
39      , m_key2(*this, "KEY2")
40      , m_key3(*this, "KEY3")
41      , m_key4(*this, "KEY4")
42      , m_key5(*this, "KEY5")
43      , m_joy0(*this, "JOY0")
44      , m_joy1(*this, "JOY1")
45   { }
3546
3647   required_device<cpu_device> m_maincpu;
3748   required_device<screen_device> m_screen;
r20530r20531
7990   static const UINT8 P1_VDC_COPY_MODE_ENABLE = 0x40;
8091   static const UINT8 P2_KEYBOARD_SELECT_MASK = 0x07; /* select row to scan */
8192
93   required_memory_region m_user1;
94
95   required_memory_bank m_bank1;
96   required_memory_bank m_bank2;
97
98   required_ioport m_key0;
99   required_ioport m_key1;
100   required_ioport m_key2;
101   required_ioport m_key3;
102   required_ioport m_key4;
103   required_ioport m_key5;
104   required_ioport m_joy0;
105   required_ioport m_joy1;
106   
82107   UINT8   m_g7400_ic674_decode[8];
83108   UINT8   m_g7400_ic678_decode[8];
84109
r20530r20531
267292   {
268293      case 12288:
269294         /* 12KB cart support (for instance, KTAA as released) */
270         membank( "bank1" )->set_base( memregion("user1")->base() + (m_p1 & 0x03) * 0xC00 );
271         membank( "bank2" )->set_base( memregion("user1")->base() + (m_p1 & 0x03) * 0xC00 + 0x800 );
295         m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0xC00 );
296         m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0xC00 + 0x800 );
272297         break;
273298
274299      case 16384:
275300         /* 16KB cart support (for instance, full sized version KTAA) */
276         membank( "bank1" )->set_base( memregion("user1")->base() + (m_p1 & 0x03) * 0x1000 + 0x400 );
277         membank( "bank2" )->set_base( memregion("user1")->base() + (m_p1 & 0x03) * 0x1000 + 0xC00 );
301         m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0x1000 + 0x400 );
302         m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0x1000 + 0xC00 );
278303         break;
279304
280305      default:
281         membank("bank1")->set_base(memregion("user1")->base() + (m_p1 & 0x03) * 0x800);
282         membank("bank2")->set_base(memregion("user1")->base() + (m_p1 & 0x03) * 0x800 );
306         m_bank1->set_base( m_user1->base() + (m_p1 & 0x03) * 0x800 );
307         m_bank2->set_base( m_user1->base() + (m_p1 & 0x03) * 0x800 );
283308         break;
284309   }
285310}
r20530r20531
515540{
516541   UINT8 h = 0xFF;
517542   int i, j;
518   static const char *const keynames[] = { "KEY0", "KEY1", "KEY2", "KEY3", "KEY4", "KEY5" };
543   ioport_port* ioports[] = { m_key0, m_key1, m_key2, m_key3, m_key4, m_key5 };
519544
520545   if (!(m_p1 & P1_KEYBOARD_SCAN_ENABLE))
521546   {
522547      if ((m_p2 & P2_KEYBOARD_SELECT_MASK) <= 5)  /* read keyboard */
523548      {
524         h &= ioport(keynames[m_p2 & P2_KEYBOARD_SELECT_MASK])->read();
549         h &= ioports[m_p2 & P2_KEYBOARD_SELECT_MASK]->read();
525550      }
526551
527552      for (i= 0x80, j = 0; i > 0; i >>= 1, j++)
r20530r20531
566591
567592   if ((m_p2 & P2_KEYBOARD_SELECT_MASK) == 1)
568593   {
569      data &= ioport("JOY0")->read();       /* read joystick 1 */
594      data &= m_joy0->read();       /* read joystick 1 */
570595   }
571596
572597   if ((m_p2 & P2_KEYBOARD_SELECT_MASK) == 0)
573598   {
574      data &= ioport("JOY1")->read();       /* read joystick 2 */
599      data &= m_joy1->read();       /* read joystick 2 */
575600   }
576601
577602   return data;

Previous 199869 Revisions Next


© 1997-2024 The MAME Team