+++ /dev/null
-package net.mograsim.machine;
-
-public interface MemoryDefinition
-{
-
- /**
- * The number of bits that the main memory uses to address cells. Note that this does not need to equal
- * {@link MachineDefinition#getAddressBits()}.
- *
- * @return the number of bits used to address a memory cell
- * @author Christian Femers
- */
- int getMemoryAddressBits();
-
- /**
- * The minimal address possible to address/use. This is usually 0.
- *
- * @return the minimal possible address.
- * @author Christian Femers
- */
- long getMinimalAddress();
-
- /**
- * The maximal address possible to address/use.
- *
- * @return the maximal possible address as <b>unsigned long</b>
- * @author Christian Femers
- */
- long getMaximalAddress();
-
- /**
- * The size of the MainMemory as the amount of addressable memory cells.
- *
- * @return the amount of addressable memory cells
- */
- default long size()
- {
- return getMaximalAddress() - getMinimalAddress() + 1;
- }
-
- public static MemoryDefinition create(int memoryAddressBits, long minimalAddress, long maximalAddress)
- {
- return new StandardMemoryDefinition(memoryAddressBits, minimalAddress, maximalAddress);
- }
-}