cd57c997f7366c6debc0d591d31b2b899dbebf8b
[Mograsim.git] / net.mograsim.logic.ui.am2900 / test / net / mograsim / logic / ui / am2900 / TestableAm2901.java
1 package net.mograsim.logic.ui.am2900;
2
3 public interface TestableAm2901
4 {
5         void setup();
6
7         Result run();
8
9         void setDest(Am2901_Dest dest);
10
11         void setFunc(Am2901_Func func);
12
13         void setSrc(Am2901_Src src);
14
15         void setReg_A(String val_4_bit);
16
17         void setReg_B(String val_4_bit);
18
19         void setCarryIn(String val_1_bit);
20
21         void setNotOutEnable(String val_1_bit);
22
23         void setD(String val_4_bit);
24
25         void setQ_0(String val_1_bit);
26
27         void setQ_3(String val_1_bit);
28
29         void setRAM_0(String val_1_bit);
30
31         void setRAM_3(String val_1_bit);
32
33         void toogleClock();
34
35         String getQ_0();
36
37         String getQ_3();
38
39         String getRAM_0();
40
41         String getRAM_3();
42
43         String getNotP();
44
45         String getNotG();
46
47         String getCarryOut();
48
49         String getSign();
50
51         String getZero();
52
53         String getOverflow();
54
55         String getY();
56
57         public enum Result
58         {
59                 SUCCESS, OUT_OF_TIME, ERROR;
60         }
61
62         public enum Am2901_Dest
63         {
64                 QREG, NOP, RAMA, RAMF, RAMQD, RAMD, RAMQU, RAMU;
65
66                 public boolean doesShift()
67                 {
68                         return ordinal() >= 4;
69                 }
70
71                 public int getShiftDir()
72                 {
73                         return doesShift() ? (ordinal() < 6 ? -1 : 1) : 0;
74                 }
75
76                 public int getI7()
77                 {
78                         return this.ordinal() >> 1 & 1;
79                 }
80         }
81
82         public enum Am2901_Func
83         {
84                 ADD, SUBR, SUBS, OR, AND, NOTRS, EXOR, EXNOR;
85         }
86
87         public enum Am2901_Src
88         {
89                 AQ, AB, ZQ, ZB, ZA, DA, DQ, DZ;
90         }
91 }