Exemple #1
0
        public uint8_t read(address_space space, offs_t offset)
        {
            if (m_oe == 1)
            {
                LOG("{0}: Read attempted while /OE inactive�(offset = {1})\n", machine().describe_context(), offset);
                return((uint8_t)space.unmap());
            }

            // if a write has not completed yet, the highest bit of data written will be read back inverted when polling the offset
            if (ready() || !EMULATE_POLLING)
            {
                return((uint8_t)base.read(offset));
            }
            else
            {
                LOG("{0}: Data read back before write completed (offset = {1})\n", machine().describe_context(), offset);
                return((uint8_t)(~internal_read(offset) & 0x80));
            }
        }
Exemple #2
0
        public u8 data_r(address_space space, offs_t offset)
        {
            if (BIT(offset, 0) != 0)
            {
                // ZLSTATUS
                machine().scheduler().boost_interleave(attotime.zero, attotime.from_usec(10));
                return
                    ((u8)(((u8)space.unmap() & 0xfc) |
                          (u8)(m_zaccept ? 0x00 : 0x02) |
                          (u8)(m_zready ? 0x00 : 0x01)));
            }
            else
            {
                // ZLREAD
                if (!machine().side_effects_disabled())
                {
                    m_zaccept = true;
                }

                return(m_mcu_data);
            }
        }
Exemple #3
0
 public u8 reset_r(address_space space)
 {
     watchdog_reset(); return((u8)space.unmap());
 }
Exemple #4
0
 //READ8_MEMBER( watchdog_timer_device::reset_r )
 public byte reset_r(address_space space, offs_t offset, u8 mem_mask = 0xff)
 {
     watchdog_reset(); return((byte)space.unmap());
 }