1 2 /* 3 FULLY TRUSTED 4 */ 5 opBGT8(void)6static UINT32 opBGT8(void) /* TRUSTED */ 7 { 8 NORMALIZEFLAGS(); 9 10 if (!((_S ^ _OV) | _Z)) 11 { 12 PC += (INT8)OpRead8(PC + 1); 13 return 0; 14 } 15 16 return 2; 17 } 18 opBGT16(void)19static UINT32 opBGT16(void) /* TRUSTED */ 20 { 21 NORMALIZEFLAGS(); 22 23 if (!((_S ^ _OV) | _Z)) 24 { 25 PC += (INT16)OpRead16(PC + 1); 26 return 0; 27 } 28 29 return 3; 30 } 31 32 opBGE8(void)33static UINT32 opBGE8(void) /* TRUSTED */ 34 { 35 NORMALIZEFLAGS(); 36 37 if (!(_S ^ _OV)) 38 { 39 PC += (INT8)OpRead8(PC + 1); 40 return 0; 41 } 42 43 return 2; 44 } 45 opBGE16(void)46static UINT32 opBGE16(void) /* TRUSTED */ 47 { 48 NORMALIZEFLAGS(); 49 50 if (!(_S ^ _OV)) 51 { 52 PC += (INT16)OpRead16(PC + 1); 53 return 0; 54 } 55 56 return 3; 57 } 58 opBLT8(void)59static UINT32 opBLT8(void) /* TRUSTED */ 60 { 61 NORMALIZEFLAGS(); 62 63 if ((_S ^ _OV)) 64 { 65 PC += (INT8)OpRead8(PC + 1); 66 return 0; 67 } 68 69 return 2; 70 } 71 opBLT16(void)72static UINT32 opBLT16(void) /* TRUSTED */ 73 { 74 NORMALIZEFLAGS(); 75 76 if ((_S ^ _OV)) 77 { 78 PC += (INT16)OpRead16(PC + 1); 79 return 0; 80 } 81 82 return 3; 83 } 84 85 opBLE8(void)86static UINT32 opBLE8(void) /* TRUSTED */ 87 { 88 NORMALIZEFLAGS(); 89 90 if (((_S ^ _OV) | _Z)) 91 { 92 PC += (INT8)OpRead8(PC + 1); 93 return 0; 94 } 95 96 return 2; 97 } 98 opBLE16(void)99static UINT32 opBLE16(void) /* TRUSTED */ 100 { 101 NORMALIZEFLAGS(); 102 103 if (((_S ^ _OV) | _Z)) 104 { 105 PC += (INT16)OpRead16(PC + 1); 106 return 0; 107 } 108 109 return 3; 110 } 111 opBH8(void)112static UINT32 opBH8(void) /* TRUSTED */ 113 { 114 if (!(_CY | _Z)) 115 { 116 PC += (INT8)OpRead8(PC + 1); 117 return 0; 118 } 119 120 return 2; 121 } 122 opBH16(void)123static UINT32 opBH16(void) /* TRUSTED */ 124 { 125 if (!(_CY | _Z)) 126 { 127 PC += (INT16)OpRead16(PC + 1); 128 return 0; 129 } 130 131 return 3; 132 } 133 opBNH8(void)134static UINT32 opBNH8(void) /* TRUSTED */ 135 { 136 if ((_CY | _Z)) 137 { 138 PC += (INT8)OpRead8(PC + 1); 139 return 0; 140 } 141 142 return 2; 143 } 144 opBNH16(void)145static UINT32 opBNH16(void) /* TRUSTED */ 146 { 147 if ((_CY | _Z)) 148 { 149 PC += (INT16)OpRead16(PC + 1); 150 return 0; 151 } 152 153 return 3; 154 } 155 opBNL8(void)156static UINT32 opBNL8(void) /* TRUSTED */ 157 { 158 if (!(_CY)) 159 { 160 PC += (INT8)OpRead8(PC + 1); 161 return 0; 162 } 163 164 return 2; 165 } 166 opBNL16(void)167static UINT32 opBNL16(void) /* TRUSTED */ 168 { 169 if (!(_CY)) 170 { 171 PC += (INT16)OpRead16(PC + 1); 172 return 0; 173 } 174 175 return 3; 176 } 177 opBL8(void)178static UINT32 opBL8(void) /* TRUSTED */ 179 { 180 if ((_CY)) 181 { 182 PC += (INT8)OpRead8(PC + 1); 183 return 0; 184 } 185 186 return 2; 187 } 188 opBL16(void)189static UINT32 opBL16(void) /* TRUSTED */ 190 { 191 if ((_CY)) 192 { 193 PC += (INT16)OpRead16(PC + 1); 194 return 0; 195 } 196 197 return 3; 198 } 199 opBNE8(void)200static UINT32 opBNE8(void) /* TRUSTED */ 201 { 202 if (!(_Z)) 203 { 204 PC += (INT8)OpRead8(PC + 1); 205 return 0; 206 } 207 208 return 2; 209 } 210 opBNE16(void)211static UINT32 opBNE16(void) /* TRUSTED */ 212 { 213 if (!(_Z)) 214 { 215 PC += (INT16)OpRead16(PC + 1); 216 return 0; 217 } 218 219 return 3; 220 } 221 opBE8(void)222static UINT32 opBE8(void) /* TRUSTED */ 223 { 224 if ((_Z)) 225 { 226 PC += (INT8)OpRead8(PC + 1); 227 return 0; 228 } 229 230 return 2; 231 } 232 opBE16(void)233static UINT32 opBE16(void) /* TRUSTED */ 234 { 235 if ((_Z)) 236 { 237 PC += (INT16)OpRead16(PC + 1); 238 return 0; 239 } 240 241 return 3; 242 } 243 opBNV8(void)244static UINT32 opBNV8(void) /* TRUSTED */ 245 { 246 if (!(_OV)) 247 { 248 PC += (INT8)OpRead8(PC + 1); 249 return 0; 250 } 251 252 return 2; 253 } 254 opBNV16(void)255static UINT32 opBNV16(void) /* TRUSTED */ 256 { 257 if (!(_OV)) 258 { 259 PC += (INT16)OpRead16(PC + 1); 260 return 0; 261 } 262 263 return 3; 264 } 265 opBV8(void)266static UINT32 opBV8(void) /* TRUSTED */ 267 { 268 if ((_OV)) 269 { 270 PC += (INT8)OpRead8(PC + 1); 271 return 0; 272 } 273 274 return 2; 275 } 276 opBV16(void)277static UINT32 opBV16(void) /* TRUSTED */ 278 { 279 if ((_OV)) 280 { 281 PC += (INT16)OpRead16(PC + 1); 282 return 0; 283 } 284 285 return 3; 286 } 287 opBP8(void)288static UINT32 opBP8(void) /* TRUSTED */ 289 { 290 if (!(_S)) 291 { 292 PC += (INT8)OpRead8(PC + 1); 293 return 0; 294 } 295 296 return 2; 297 } 298 opBP16(void)299static UINT32 opBP16(void) /* TRUSTED */ 300 { 301 if (!(_S)) 302 { 303 PC += (INT16)OpRead16(PC + 1); 304 return 0; 305 } 306 307 return 3; 308 } 309 opBN8(void)310static UINT32 opBN8(void) /* TRUSTED */ 311 { 312 if ((_S)) 313 { 314 PC += (INT8)OpRead8(PC + 1); 315 return 0; 316 } 317 318 return 2; 319 } 320 opBN16(void)321static UINT32 opBN16(void) /* TRUSTED */ 322 { 323 if ((_S)) 324 { 325 PC += (INT16)OpRead16(PC + 1); 326 return 0; 327 } 328 329 return 3; 330 } 331 opBR8(void)332static UINT32 opBR8(void) /* TRUSTED */ 333 { 334 PC += (INT8)OpRead8(PC + 1); 335 return 0; 336 } 337 opBR16(void)338static UINT32 opBR16(void) /* TRUSTED */ 339 { 340 PC += (INT16)OpRead16(PC + 1); 341 return 0; 342 } 343 opBSR(void)344static UINT32 opBSR(void) /* TRUSTED */ 345 { 346 // Save Next PC onto the stack 347 SP -= 4; 348 MemWrite32(SP, PC+3); 349 350 // Jump to subroutine 351 PC += (INT16)OpRead16(PC + 1); 352 return 0; 353 } 354 355