Added Am2910 registers
[Mograsim.git] / plugins / net.mograsim.logic.model.am2900 / src / net / mograsim / logic / model / am2900 / machine / registers / am2910 / stack / StackCellRegister.java
1 package net.mograsim.logic.model.am2900.machine.registers.am2910.stack;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 import net.mograsim.logic.model.am2900.machine.registers.Am2900Register;
8 import net.mograsim.machine.registers.HighLevelStateBasedRegister;
9
10 public class StackCellRegister extends HighLevelStateBasedRegister implements Am2900Register
11 {
12         public static final List<StackCellRegister> instancesCorrectOrder;
13
14         static
15         {
16                 List<StackCellRegister> instancesCorrectOrderModifiable = new ArrayList<>();
17                 for (int i = 0; i < 5; i++)
18                         instancesCorrectOrderModifiable.add(new StackCellRegister(i));
19                 instancesCorrectOrder = Collections.unmodifiableList(instancesCorrectOrderModifiable);
20         }
21
22         private StackCellRegister(int index)
23         {
24                 super("cell #" + index, "am2910.stack.c" + getIndexAsBitstring(index) + ".q", 12);
25
26         }
27
28         private static String getIndexAsBitstring(int index)
29         {
30                 StringBuilder sb = new StringBuilder();
31                 sb.append((index & 0b100) != 0 ? '1' : '0');
32                 sb.append((index & 0b010) != 0 ? '1' : '0');
33                 sb.append((index & 0b001) != 0 ? '1' : '0');
34                 return sb.toString();
35         }
36 }