Fixed a bug in Am2900; created dlatch8/80; relayouted some components
[Mograsim.git] / net.mograsim.machine / src / net / mograsim / machine / mi / parameters / IntegerClassification.java
1 package net.mograsim.machine.mi.parameters;
2
3 import java.math.BigInteger;
4
5 import net.mograsim.logic.core.types.BitVector;
6 import net.mograsim.machine.mi.parameters.MicroInstructionParameter.ParameterType;
7
8 public class IntegerClassification implements ParameterClassification
9 {
10         private final int bits;
11         private final IntegerImmediate defaultValue;
12
13         public IntegerClassification(int defaultValue, int bits)
14         {
15                 this.bits = bits;
16                 this.defaultValue = new IntegerImmediate(BitVector.from(defaultValue, bits));
17         }
18
19         @Override
20         public ParameterType getExpectedType()
21         {
22                 return ParameterType.INTEGER_IMMEDIATE;
23         }
24
25         @Override
26         public int getExpectedBits()
27         {
28                 return bits;
29         }
30
31         @Override
32         public IntegerImmediate parse(String toParse)
33         {
34                 return new IntegerImmediate(new BigInteger(toParse), bits);
35         }
36
37         @Override
38         public MicroInstructionParameter getDefault()
39         {
40                 return defaultValue;
41         }
42 }