Пример #1
0
        public void Compute()
        {
            //int iX = InputX.Get2sComplement(), iY = InputY.Get2sComplement();
            int iX = InputX.GetValue(), iY = InputY.GetValue();

            if (ZeroX.Value == 1)
            {
                iX = 0;
            }
            if (ZeroY.Value == 1)
            {
                iY = 0;
            }
            if (NotX.Value == 1)
            {
                iX = ~iX;
            }
            if (NotY.Value == 1)
            {
                iY = ~iY;
            }

            int iResult = 0;

            if (F.Value == 0)
            {
                iResult = iX & iY;
            }
            else
            {
                iResult = iX + iY;
            }

            if (NotOutput.Value == 1)
            {
                iResult = ~iResult;
            }

            Output.SetValue(iResult);
            //Output.Set2sComplement(iResult);
            if (iResult == 0)
            {
                Zero.Value = 1;
            }
            else
            {
                Zero.Value = 0;
            }

            if (Output.GetValue() < 0)
            {
                Negative.Value = 1;
            }
            else
            {
                Negative.Value = 0;
            }

            //Console.WriteLine("ALU state: " + ToString());
        }
Пример #2
0
    public void OnClickBtn6()
    {
        Demo.displayText = "\n  " + "<color=red>" + "开始运动至期望位姿" + "</color>";
        Demo.flag2       = true;

        Demo.pose[0] = System.Convert.ToDouble(InputX.text);
        InputX.text  = "";

        Demo.pose[1] = System.Convert.ToDouble(InputY.text);
        InputY.text  = "";

        Demo.pose[2] = System.Convert.ToDouble(InputZ.text);
        InputZ.text  = "";

        Demo.pose[3] = System.Convert.ToDouble(InputQ1.text);
        InputQ1.text = "";

        Demo.pose[4] = System.Convert.ToDouble(InputQ2.text);
        InputQ2.text = "";

        Demo.pose[5] = System.Convert.ToDouble(InputQ3.text);
        InputQ3.text = "";

        Demo.pose[6] = System.Convert.ToDouble(InputQ4.text);
        InputQ4.text = "";

        InputX.ActivateInputField();
        InputY.ActivateInputField();
        InputZ.ActivateInputField();
        InputQ1.ActivateInputField();
        InputQ2.ActivateInputField();
        InputQ3.ActivateInputField();
        InputQ4.ActivateInputField();
    }
Пример #3
0
    public override void Move(CharacterController controller, Transform transform)
    {
        rotateDirection.Set(InputRotateX.SetFloat(), InputRotateY.SetFloat(), InputRotateZ.SetFloat());
        transform.Rotate(rotateDirection);

        moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat());         //changed y from InputY.SetFloat()
        if (!controller.isGrounded)
        {
            moveDirection.y -= gravity * Time.deltaTime;
//			Debug.Log("Gravity!" + moveDirection.y);
        }

        moveDirection = transform.TransformDirection(moveDirection);

        if (moveSpeedMultiplier != null)
        {
            moveDirection *= speed * moveSpeedMultiplier.FloatValue;
        }
        else
        {
            moveDirection *= speed;
        }

        if (JumpInput.SetFloat() != 0)
        {
            moveDirection.y = JumpInput.SetFloat();
        }

        //Debug.Log(moveDirection);
        controller.Move(moveDirection * Time.deltaTime);
    }
Пример #4
0
        public override bool TestGate()
        {
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 1;
            Console.WriteLine("Case 1: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 0;
            Console.WriteLine("Case 2: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            InputX.SetValue(6);
            InputY.SetValue(5);

            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 1;
            if (Output.Get2sComplement() != -7 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            ZeroX.Value     = 1;
            ZeroY.Value     = 1;
            NotX.Value      = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            if (Output.Get2sComplement() != 0 || Zero.Value != 1 || Negative.Value != 0)
            {
                return(false);
            }

            return(true);
        }
Пример #5
0
    public override void Move(CharacterController controller, Transform transform)
    {
        if (controller.isGrounded)
        {
            moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat());
            moveDirection = transform.TransformDirection(moveDirection);

            moveDirection *= speed;
            //moveDirection.y = JumpInput.SetFloat();
        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }
    public void Move(CharacterController controller, Transform transform)
    {
        if (controller.isGrounded)
        {
            moveDirection.x = InputX.SetFloat();
            moveDirection.y = InputY.SetFloat();
            moveDirection.z = InputZ.SetFloat();

            moveDirection  = transform.TransformDirection(moveDirection);
            moveDirection *= speed;
            if (Input.GetButton("Jump"))
            {
                moveDirection.y = jumpSpeed;
            }
        }
        moveDirection.y -= gravity * Time.deltaTime;
        controller.Move(moveDirection * Time.deltaTime);
    }
Пример #7
0
        public override bool TestGate()
        {
            int wordBitsFilter         = WordBitsFilter();
            var wsFlags                = new WireSet(6);
            int inputPermutationsCount = (int)Math.Pow(2, Size);
            int flagsPermutationsCount = (int)Math.Pow(2, wsFlags.Size);

            for (int i = 0; i < inputPermutationsCount; i++)
            {
                InputX.SetValue(i);
                for (int j = 0; j < inputPermutationsCount; j++)
                {
                    InputY.SetValue(j);
                    for (int k = 0; k < flagsPermutationsCount; k++)
                    {
                        wsFlags.SetValue(k);
                        SetFlags(wsFlags);
                        bool test = Test(
                            wordBitsFilter,
                            InputX.Get2sComplement(),
                            InputY.Get2sComplement(),
                            ZeroX.Value,
                            NotX.Value,
                            ZeroY.Value,
                            NotY.Value,
                            F.Value,
                            NotOutput.Value
                            );
                        if (!test)
                        {
                            return(false);
                        }
                    }
                }
            }

            return(true);
        }
    public override void Move(CharacterController controller, Transform transform)
    {
        if (!controller.isGrounded)
        {
            moveDirection.y -= gravity * Time.deltaTime;
        }

        rotateDirection.Set(InputRotateX.SetFloat(), InputRotateY.SetFloat(), InputRotateZ.SetFloat());
        transform.Rotate(rotateDirection);

        moveDirection.Set(InputX.SetFloat(), InputY.SetFloat(), InputZ.SetFloat());
        moveDirection = transform.TransformDirection(moveDirection);

        moveDirection *= speed;

        if (JumpInput.SetFloat() != 0)
        {
            moveDirection.y = JumpInput.SetFloat();
        }

        //Debug.Log(moveDirection);
        controller.Move(moveDirection * Time.deltaTime);
    }
Пример #9
0
        private bool TestNumbers(int iX, int iY)
        {
            InputX.SetValue(iX);
            InputY.SetValue(iY);

            SetControlBits(1, 0, 1, 0, 1, 0);

            if (Output.GetValue() != 0)
            {
                return(false);
            }

            SetControlBits(1, 1, 1, 1, 1, 1);

            if (Output.GetValue() != 1)
            {
                return(false);
            }

            SetControlBits(1, 1, 1, 0, 1, 0);

            if (Output.GetValue() != -1)
            {
                return(false);
            }

            SetControlBits(0, 0, 1, 1, 0, 0);

            if (Output.GetValue() != iX)
            {
                return(false);
            }

            SetControlBits(1, 1, 0, 0, 0, 0);

            if (Output.GetValue() != iY)
            {
                return(false);
            }

            SetControlBits(0, 0, 1, 1, 0, 1);

            if (iX > 0 && Output.GetValue() != ~iX)
            {
                return(false);
            }

            SetControlBits(1, 1, 0, 0, 0, 1);

            if (iY > 0 && Output.GetValue() != ~iY)
            {
                return(false);
            }

            SetControlBits(0, 1, 1, 1, 1, 1);

            if (Output.GetValue() != iX + 1)
            {
                return(false);
            }

            SetControlBits(1, 1, 0, 1, 1, 1);

            if (Output.GetValue() != iY + 1)
            {
                return(false);
            }

            SetControlBits(0, 0, 1, 1, 1, 0);

            if (Output.GetValue() != iX - 1)
            {
                return(false);
            }

            SetControlBits(1, 1, 0, 0, 1, 0);

            if (Output.GetValue() != iY - 1)
            {
                return(false);
            }

            SetControlBits(0, 0, 0, 0, 1, 0);

            if (Output.GetValue() != iX + iY)
            {
                return(false);
            }

            SetControlBits(0, 1, 0, 0, 1, 1);

            if (Output.GetValue() != iX - iY)
            {
                return(false);
            }

            SetControlBits(0, 0, 0, 1, 1, 1);

            if (Output.GetValue() != iY - iX)
            {
                return(false);
            }

            SetControlBits(0, 0, 0, 0, 0, 0);

            if (Output.GetValue() != (iY & iX))
            {
                return(false);
            }

            SetControlBits(0, 1, 0, 1, 0, 1);

            if (Output.GetValue() != (iY | iX))
            {
                return(false);
            }

            return(true);
        }
Пример #10
0
    private void ChangeToolHeader(InputY input)
    {
        routineActive = false;

        if (input == InputY.Up)
        {
            --ActiveToolHeader;
            setToolActivityMaterials();
        }
        else
        {
            ++ActiveToolHeader;
            setToolActivityMaterials();
        }

        void setToolActivityMaterials()
        {
            switch (ActiveToolHeader)
            {
            case ToolHeader.numParts:
            {
                routineActive = true;
                AllTxtInactive();
                txtNumParts.material = activeFont;
                break;
            }

            case ToolHeader.partType:
            {
                AllTxtInactive();
                txtPartType.material = activeFont;
                PartType.ToggleSelected(true);
                break;
            }

            case ToolHeader.ruleFilter:
            {
                AllTxtInactive();
                txtRuleFilter.material = activeFont;
                RuleFilter.ToggleSelected(true);
                break;
            }

            case ToolHeader.placeType:
            {
                AllTxtInactive();
                txtPlaceType.material = activeFont;
                PlacementType.ToggleSelected(true);
                break;
            }

            case ToolHeader.saveLoad:
            {
                AllTxtInactive();
                txtSaveLoad.material = activeFont;
                SaveLoad.ToggleSelected(true);
                break;
            }

            case ToolHeader.simStat:
            {
                AllTxtInactive();
                txtSimStat.material = activeFont;
                break;
            }
            }
        }

        void AllTxtInactive()
        {
            txtNumParts.material   = inactiveFont;
            txtPartType.material   = inactiveFont;
            txtRuleFilter.material = inactiveFont;
            txtPlaceType.material  = inactiveFont;
            txtSaveLoad.material   = inactiveFont;
            txtSimStat.material    = inactiveFont;
            PartType.ToggleSelected(false);
            RuleFilter.ToggleSelected(false);
            PlacementType.ToggleSelected(false);
            SaveLoad.ToggleSelected(false);
            SaveLoad.Initialize();
        }
    }
Пример #11
0
        public override bool TestGate()
        {
            Console.WriteLine("TESTING FOR X=5, Y=3");
            //1
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            Console.WriteLine("Case 1: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");
            //2
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 2: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //3
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 1;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            Console.WriteLine("Case 3: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //4
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 0;
            Console.WriteLine("Case 4: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //5
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 0;
            Console.WriteLine("Case 5: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //6
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 1;
            Console.WriteLine("Case 6: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //7
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 1;
            Console.WriteLine("Case 7: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //8
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 8: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //9
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 9: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //10
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 1;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 10: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //11
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 11: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //12
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 0;
            Console.WriteLine("Case 12: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //13
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            Console.WriteLine("Case 13: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //14
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            Console.WriteLine("Case 14: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //15
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 15: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //16
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 0;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            Console.WriteLine("Case 16: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //17
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 0;
            Console.WriteLine("Case 17: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            //18
            InputX.Set2sComplement(5);
            InputY.Set2sComplement(5);
            ZeroX.Value     = 0;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 1;
            Console.WriteLine("Case 18: " + Output.Get2sComplement());
            Console.WriteLine("Negative?: " + Negative.Value);
            Console.WriteLine("Zero?: " + Zero.Value);
            Console.WriteLine("");

            return(true);
            //    throw new NotImplementedException();
        }
Пример #12
0
        public override bool TestGate()
        {
            InputX.SetValue(6);
            InputY.SetValue(5);
            //setting ALU bit settings
            ZeroX.Value     = 1;
            ZeroY.Value     = 1;
            NotX.Value      = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != 0 || Zero.Value != 1 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            ZeroY.Value     = 1;
            NotX.Value      = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != 1 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            ZeroY.Value     = 1;
            NotX.Value      = 1;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != -1 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            ZeroY.Value     = 1;
            NotX.Value      = 0;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != 6 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != 5 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 0;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != -7 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 0;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != -6 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != -6 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != -5 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 1;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != 7 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != 6 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 1;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != 5 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 1;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != 4 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 0;
            //
            if (Output.Get2sComplement() != -5 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 1;
            ZeroY.Value     = 0;
            NotY.Value      = 0;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != 1 || Zero.Value != 0 || Negative.Value != 0)
            {
                return(false);
            }

            //setting ALU bit settings
            ZeroX.Value     = 0;
            NotX.Value      = 0;
            ZeroY.Value     = 0;
            NotY.Value      = 1;
            F.Value         = 1;
            NotOutput.Value = 1;
            //
            if (Output.Get2sComplement() != -1 || Zero.Value != 0 || Negative.Value != 1)
            {
                return(false);
            }

            return(true);
        }