@Override
	public byte readByte( long index ) throws IOException {
		for ( int i = 0 ; i < programs.length ; ++i ) {
			try {
				return programs[ i ].getMemory( ).getByte( baseAddresses[ i ].add( index ) );
			}
			catch ( Exception e ) {
			}
		}
		throw new IOException( "Unable to read byte at index: " + index );
	}
TODO
Check to make sure programs are disjoint and contiguous memory spaces.
Ghidra/Features/FileFormats/src/main/java/ghidra/file/formats/ext4/MultiProgramMemoryByteProvider.java