 // Shift Right
 def om_shr(n: uint8, arithmetic: bool): uint8 {
   let r = if arithmetic {
-    ((n & 0x7F) >> 1) | (n & 0x80);
+    if (n & 0x80) != 0 {
+      (n >> 1) | 0x80;
+    } else {
+      (n >> 1);
+    }
   } else {
     (n >> 1);
   };


// [AA] XOR A, D
def op_AA() {
  *A = om_xor8(*A, *C);
}

// [AB] XOR A, E


// [9A] SBC A, D
def op_9A() {
  *A = om_sbc8(*A, *D);
}

// [9B] SBC A, E
