X-Git-Url: https://mograsim.net/gitweb/?a=blobdiff_plain;f=net.mograsim.machine%2Fsrc%2Fnet%2Fmograsim%2Fmachine%2Fmi%2FStandardMicroInstructionMemory.java;h=7ef53d902cda4fdd7b37b4059534ad3c1f5766f7;hb=4ba119cab03498736851e6f3f32eec1957839a2e;hp=c983561a3d37a83736d441ab36f4e19396425c2d;hpb=18751c233058925190cf9c1e6bbd1e764f68bf43;p=Mograsim.git diff --git a/net.mograsim.machine/src/net/mograsim/machine/mi/StandardMicroInstructionMemory.java b/net.mograsim.machine/src/net/mograsim/machine/mi/StandardMicroInstructionMemory.java index c983561a..7ef53d90 100644 --- a/net.mograsim.machine/src/net/mograsim/machine/mi/StandardMicroInstructionMemory.java +++ b/net.mograsim.machine/src/net/mograsim/machine/mi/StandardMicroInstructionMemory.java @@ -10,26 +10,26 @@ public class StandardMicroInstructionMemory implements MicroInstructionMemory private MicroInstruction[] data; private MicroInstructionMemoryDefinition definition; private HashSet observers = new HashSet<>(); - + public StandardMicroInstructionMemory(MicroInstructionMemoryDefinition definition) { - if(definition.size() > Integer.MAX_VALUE) + if (definition.size() > Integer.MAX_VALUE) throw new MemoryException("Size of MicroInstructionMemory must be an int, not a long"); this.definition = definition; data = new MicroInstruction[(int) definition.size()]; } - + private int translate(long address) { return (int) (address - definition.getMinimalAddress()); } - + @Override public MicroInstruction getCell(long address) { int translatedAddress = translate(address); MicroInstruction actual = data[translatedAddress]; - if(actual == null) + if (actual == null) actual = data[translatedAddress] = definition.getMicroInstructionDefinition().createDefaultInstruction(); return actual; }