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 }