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 }