public static MemoryBlock createByteMappedBlock(Program program, String name, Address start,
			Address base, int length, String comment, String source, boolean r, boolean w,
			boolean x, boolean overlay, MessageLog log) {

		Memory memory = program.getMemory();
		try {

			MemoryBlock block = memory.createByteMappedBlock(name, start, base, length, overlay);

			setBlockAttributes(block, comment, source, r, w, x);
			adjustFragment(program, start, name);
			return block;
		}
		catch (LockException e) {
			log.appendMsg("Failed to create '" + name +
				"' byte mapped memory block: exclusive lock/checkout required");
		}
		catch (Exception e) {
			log.appendMsg("Failed to create '" + name + "' mapped memory block: " + e.getMessage());
		}
		return null;
	}
Creates a new byte mapped memory block with a 1:1 byte mapping scheme. 
(A byte mapped block is a block where each byte value
is taken from a byte at some other address in memory)

@param program the program in which to create the block.
@param name the name of the new block.
@param start the starting address of the new block.
@param base the address of the region in memory to map to.
@param length the length of the new block
@param comment the comment text to associate with the new block.
@param source the source of the block (This field is not well defined - currently another comment)
@param r the read permission for the new block.
@param w the write permission for the new block.
@param x the execute permission for the new block.
@param overlay create overlay block if true otherwise a normal mapped block will be created
@param log a {@link MessageLog} for appending error messages
@return the new created block
Ghidra/Features/Base/src/main/java/ghidra/app/util/MemoryBlockUtils.java