  case 0x2: /* AND */ this.v[x] &= this.v[y]; break;
              case 0x3: /* XOR */ this.v[x] ^= this.v[y]; break;
              case 0x4: /* ADD */ r = this.v[x] + this.v[y]; flag(r > 255); this.v[x] = r % 256; break;
              case 0x5: /* SUB */ r = this.v[x] - this.v[y]; flag(r > 0); this.v[x] = r < 0 ? r+256 : r; break;
              case 0x6: /* SHR */ flag(this.v[x] & 0x1); this.v[x] >>= 1; break;
              case 0x7: /* DIF */ r = this.v[y] - this.v[x]; flag(r > 0); this.v[x] = r < 0 ? r+2