protected byte ReadByteAt(ushort address, bool timing) { if (!_initialised) { throw new MemoryNotInitialisedException(); } IMemorySegment segment = _map.SegmentFor(address); byte output = (segment?.ReadByteAt(AddressOffset(address, segment)) ?? 0x00); // 0x00 if address is unallocated if (timing) { _cpu.Timing.MemoryReadCycle(address, output); } return(output); }