Re-added Am2901 registers
[Mograsim.git] / plugins / net.mograsim.logic.model.am2900 / src / net / mograsim / logic / model / am2900 / machine / registers / am2901 / NumberedRegister.java
1 package net.mograsim.logic.model.am2900.machine.registers.am2901;
2
3 import java.util.ArrayList;
4 import java.util.Collections;
5 import java.util.List;
6
7 public class NumberedRegister extends Am2901Register
8 {
9         public static final List<NumberedRegister> instancesCorrectOrder;
10
11         static
12         {
13                 List<NumberedRegister> instancesCorrectOrderModifiable = new ArrayList<>();
14                 for (int i = 0; i < 16; i++)
15                         instancesCorrectOrderModifiable.add(new NumberedRegister(i));
16                 instancesCorrectOrder = Collections.unmodifiableList(instancesCorrectOrderModifiable);
17         }
18
19         private NumberedRegister(int index)
20         {
21                 super("R" + index, "regs.c" + getIndexAsBitstring(index) + ".q", 4);
22
23         }
24
25         private static String getIndexAsBitstring(int index)
26         {
27                 StringBuilder sb = new StringBuilder();
28                 sb.append((index & 0b1000) != 0 ? '1' : '0');
29                 sb.append((index & 0b0100) != 0 ? '1' : '0');
30                 sb.append((index & 0b0010) != 0 ? '1' : '0');
31                 sb.append((index & 0b0001) != 0 ? '1' : '0');
32                 return sb.toString();
33         }
34 }