Previous 199869 Revisions Next

r20960 Monday 11th February, 2013 at 21:48:11 UTC by Wilbert Pol
ssfindo.c: Reduce tagmap lookups (nw)
[src/mame/drivers]ssfindo.c

trunk/src/mame/drivers/ssfindo.c
r20959r20960
216216{
217217public:
218218   ssfindo_state(const machine_config &mconfig, device_type type, const char *tag)
219      : driver_device(mconfig, type, tag) ,
220      m_vram(*this, "vram"){ }
219      : driver_device(mconfig, type, tag)
220      , m_vram(*this, "vram")
221      , m_maincpu(*this, "maincpu")
222      , m_region_user2(*this, "user2")
223      , m_io_ps7500(*this, "PS7500")
224   { }
221225
222226   UINT32 m_PS7500_IO[MAXIO];
223227   UINT32 m_PS7500_FIFO[256];
r20959r20960
250254   INTERRUPT_GEN_MEMBER(ssfindo_interrupt);
251255   TIMER_CALLBACK_MEMBER(PS7500_Timer0_callback);
252256   TIMER_CALLBACK_MEMBER(PS7500_Timer1_callback);
257
258   required_device<cpu_device> m_maincpu;
259   required_memory_region m_region_user2;
260   required_ioport m_io_ps7500;
253261};
254262
255263
r20959r20960
297305   m_PS7500_IO[IRQSTA]|=0x20;
298306   if(m_PS7500_IO[IRQMSKA]&0x20)
299307   {
300      generic_pulse_irq_line(machine().device("maincpu")->execute(), ARM7_IRQ_LINE, 1);
308      generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE, 1);
301309   }
302310}
303311
r20959r20960
317325   m_PS7500_IO[IRQSTA]|=0x40;
318326   if(m_PS7500_IO[IRQMSKA]&0x40)
319327   {
320      generic_pulse_irq_line(machine().device("maincpu")->execute(), ARM7_IRQ_LINE, 1);
328      generic_pulse_irq_line(m_maincpu, ARM7_IRQ_LINE, 1);
321329   }
322330}
323331
r20959r20960
398406
399407         if( m_iocr_hack)
400408         {
401            return (ioport("PS7500")->read() & 0x80) | 0x34 | (machine().rand()&3); //eeprom read ?
409            return (m_io_ps7500->read() & 0x80) | 0x34 | (machine().rand()&3); //eeprom read ?
402410         }
403411
404         return (ioport("PS7500")->read() & 0x80) | 0x37;
412         return (m_io_ps7500->read() & 0x80) | 0x37;
405413
406414      case VIDCR:
407415         return (m_PS7500_IO[offset] | 0x50) & 0xfffffff0;
r20959r20960
490498
491499READ32_MEMBER(ssfindo_state::io_r)
492500{
493   UINT16 *FLASH = (UINT16 *)machine().root_device().memregion("user2")->base(); //16 bit - WORD access
501   UINT16 *FLASH = (UINT16 *)m_region_user2->base(); //16 bit - WORD access
494502
495503   int adr=m_flashAdr*0x200+(m_flashOffset);
496504

Previous 199869 Revisions Next


© 1997-2024 The MAME Team