Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / MainMemoryDefinition.java
index 3128cdd..72153d6 100644 (file)
@@ -1,45 +1,24 @@
 package net.mograsim.machine;
 
 /**
- * This interface provides a means to get information about the machines memory
- * architecture. It is not bound to any actual memory.
+ * This interface provides a means to get information about the machines memory architecture. It is not bound to any actual memory.
  *
  * @author Christian Femers
  *
  */
-public interface MainMemoryDefinition {
-
-       /**
-        * 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();
-
+public interface MainMemoryDefinition extends MemoryDefinition
+{
        /**
-        * The width in bits of an addressable memory cell/unit. This is often 8 (= one
-        * byte). The actual cells/lines of the memory may be a lot larger.
+        * The width in bits of an addressable memory cell/unit. This is often 8 (= one byte). The actual cells/lines of the memory may be a lot
+        * larger.
         * 
         * @return the addressable unit width in bits
         * @author Christian Femers
         */
        int getCellWidth();
 
-       /**
-        * 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();
+       public static MainMemoryDefinition create(int memoryAddressBits, int cellWidth, long minimalAddress, long maximalAddress)
+       {
+               return new StandardMainMemoryDefinition(memoryAddressBits, cellWidth, minimalAddress, maximalAddress);
+       }
 }