public static function unit_ror()
 {
     $number = plato_version_D3_template::shift(0xd0, 0xd2, 0xc0, 'shift_right', true, true);
     if ($number['position'] == 1) {
         $bit = $number[0] >> parent::$opsize * 8 - 2 & 0x1;
         parent::$register->OF = $number[2] ^ $bit;
     }
     return 0;
 }
 public static function unit_cmp()
 {
     plato_version_D3_template::calculate(0x3c, 0x80, 0x83, 0x38, array(__CLASS__, 'unit_cmp_core'));
     return 0;
 }
 public static function unit_bts()
 {
     $result = plato_version_D3_template::bit(0xfab, 0xfba);
     $result[1] = parent::$alu->bit_set($result[1], 1);
     parent::$register->CF = $result[0];
     parent::$cpu->write_address($result[1]);
     return 0;
 }
 public function unit_and()
 {
     plato_version_D3_template::calculate(0x24, 0x80, 0x83, 0x20, array(__CLASS__, 'unit_and_core'));
     return 0;
 }
 public static function unit_test()
 {
     plato_version_D3_template::calculate(0xa8, 0xf6, 0xff, 0x84, array(__CLASS__, 'unit_test_core'));
     return 0;
 }
 public static function unit_xor()
 {
     plato_version_D3_template::calculate(0x34, 0x80, 0x83, 0x30, array(__CLASS__, 'unit_xor_core'));
     return 0;
 }
 public static function unit_div()
 {
     plato_version_D3_template::div('arith_div');
     return 0;
 }
 public static function unit_inc()
 {
     plato_version_D3_template::increase(0xfe, 0x40, array(__CLASS__, 'unit_inc_core'));
     return 0;
 }