Ypsilon.Emulation.Processor.YCPU.ASR C# (CSharp) Method

ASR() private method

private ASR ( ushort operand ) : void
operand ushort
return void
        private void ASR(ushort operand)
        {
            ushort value;
            RegGeneral destination;
            BitPatternSHF(operand, out value, out destination);
            int register = (short)R[(int)destination] >> value;
            int mask = (int)Math.Pow(2, value) - 1;
            FL_C = (mask & register) != 0;
            R[(int)destination] = (ushort)(register & 0x0000FFFF);
            FL_N = (R[(int)destination] & 0x8000) != 0;
            FL_Z = register == 0x0000;
            // V [Overflow]    Not effected.
        }