Previous 199869 Revisions Next

r20860 Saturday 9th February, 2013 at 12:15:58 UTC by Wilbert Pol
(MESS) sbc6510: Reduce tagmap lookups (nw)
[src/mess/drivers]sbc6510.c

trunk/src/mess/drivers/sbc6510.c
r20859r20860
7272   UINT8 m_key_row;
7373   UINT8 m_2;
7474   required_device<generic_terminal_device> m_terminal;
75   virtual void machine_start();
7576   virtual void machine_reset();
77
78protected:
79   ioport_port *m_io_port[8];
7680};
7781
7882
r20859r20860
194198};
195199
196200
201void sbc6510_state::machine_start()
202{
203   char kbdrow[6];
204   for ( int i = 0; i < 8; i++ )
205   {
206      sprintf(kbdrow,"X%X",i);
207      m_io_port[i] = ioport(kbdrow);
208   }
209}
210
211
197212void sbc6510_state::machine_reset()
198213{
199214}
r20859r20860
221236
222237READ8_MEMBER( sbc6510_state::key_r )
223238{
224   UINT8 i,data=0;
225   char kbdrow[6];
239   UINT8 data=0;
226240
227   for (i = 0; i < 8; i++)
228   if (!BIT(m_key_row, i))
241   for (int i = 0; i < 8; i++)
229242   {
230      sprintf(kbdrow,"X%X",i);
231      data |= ioport(kbdrow)->read();
243      if (!BIT(m_key_row, i))
244      {
245         data |= m_io_port[i]->read();
246      }
232247   }
233248   return ~data;
234249}

Previous 199869 Revisions Next


© 1997-2024 The MAME Team