View Javadoc

1   package com.tapina.robe.runtime;
2   
3   /***
4    * Created by IntelliJ IDEA.
5    * User: gareth
6    * Date: Aug 28, 2003
7    * Time: 7:50:36 AM
8    */
9   public abstract class Condition {
10      public static final Condition AL = new Condition() {
11          public boolean isSatisfied(CPU cpu) {
12              return true;
13          }
14  
15          public String toJavaExpression() {
16              return "true";
17          }
18      };
19      public static final Condition CC = new Condition() {
20          public boolean isSatisfied(CPU cpu) {
21              return !cpu.getC();
22          }
23  
24          public String toJavaExpression() {
25              return "!cpu.getC()";
26          }
27      };
28      public static final Condition CS = new Condition() {
29          public boolean isSatisfied(CPU cpu) {
30              return cpu.getC();
31          }
32  
33          public String toJavaExpression() {
34              return "cpu.getC()";
35          }
36      };
37      public static final Condition EQ = new Condition() {
38          public boolean isSatisfied(CPU cpu) {
39              return cpu.getZ();
40          }
41  
42          public String toJavaExpression() {
43              return "cpu.getZ()";
44          }
45      };
46      public static final Condition GE = new Condition() {
47          public boolean isSatisfied(CPU cpu) {
48              return cpu.getN() == cpu.getV();
49          }
50  
51          public String toJavaExpression() {
52              return "cpu.getN() == cpu.getV()";
53          }
54      };
55      public static final Condition GT = new Condition() {
56          public boolean isSatisfied(CPU cpu) {
57              return !cpu.getZ() && (cpu.getN() == cpu.getV());
58          }
59  
60          public String toJavaExpression() {
61              return "!cpu.getZ() && (cpu.getN() == cpu.getV())";
62          }
63      };
64      public static final Condition HI = new Condition() {
65          public boolean isSatisfied(CPU cpu) {
66              return cpu.getC() && !cpu.getZ();
67          }
68  
69          public String toJavaExpression() {
70              return "cpu.getC() && !cpu.getZ()";
71          }
72      };
73      public static final Condition LE = new Condition() {
74          public boolean isSatisfied(CPU cpu) {
75              return cpu.getZ() || (cpu.getN() != cpu.getV());
76          }
77  
78          public String toJavaExpression() {
79              return "cpu.getZ() || (cpu.getN() != cpu.getV())";
80          }
81      };
82      public static final Condition LS = new Condition() {
83          public boolean isSatisfied(CPU cpu) {
84              return !cpu.getC() || cpu.getZ();
85          }
86  
87          public String toJavaExpression() {
88              return "!cpu.getC() || cpu.getZ()";
89          }
90      };
91      public static final Condition LT = new Condition() {
92          public boolean isSatisfied(CPU cpu) {
93              return cpu.getN() != cpu.getV();
94          }
95  
96          public String toJavaExpression() {
97              return "cpu.getN() != cpu.getV()";
98          }
99      };
100     public static final Condition MI = new Condition() {
101         public boolean isSatisfied(CPU cpu) {
102             return cpu.getN();
103         }
104 
105         public String toJavaExpression() {
106             return "cpu.getN()";
107         }
108     };
109     public static final Condition NE = new Condition() {
110         public boolean isSatisfied(CPU cpu) {
111             return !cpu.getZ();
112         }
113 
114         public String toJavaExpression() {
115             return "!cpu.getZ()";
116         }
117     };
118     public static final Condition NV = new Condition() {
119         public boolean isSatisfied(CPU cpu) {
120             return false;
121         }
122 
123         public String toJavaExpression() {
124             return "false";
125         }
126     };
127     public static final Condition PL = new Condition() {
128         public boolean isSatisfied(CPU cpu) {
129             return !cpu.getN();
130         }
131 
132         public String toJavaExpression() {
133             return "!cpu.getN()";
134         }
135     };
136     public static final Condition VC = new Condition() {
137         public boolean isSatisfied(CPU cpu) {
138             return !cpu.getV();
139         }
140 
141         public String toJavaExpression() {
142             return "!cpu.getV()";
143         }
144     };
145     public static final Condition VS = new Condition() {
146         public boolean isSatisfied(CPU cpu) {
147             return cpu.getV();
148         }
149 
150         public String toJavaExpression() {
151             return "cpu.getV()";
152         }
153     };
154 
155     public abstract boolean isSatisfied(CPU cpu);
156     public abstract String toJavaExpression();
157 }