public void Setup()
        {
            _byteFactory = TestUtils.CreateByteFactory();
            _fullByte    = _byteFactory.Create(255);

            Instruction = _byteFactory.Create(0);
            Flags       = new Caez();

            var cpuPinStates = new CpuPinStates(TestUtils.CreateClock(), TestUtils.CreateStepper(), Instruction, Flags,
                                                TestUtils.CreateAnd(), TestUtils.CreateOr(), TestUtils.CreateNot(), TestUtils.CreateDecoder(),
                                                _byteFactory);

            var bus = new Bus <IByte>(new BusMessage <IByte> {
                Data = new Byte(), Name = "Bus"
            });
            var ioBus = new Bus <IByte>(new BusMessage <IByte> {
                Data = new Byte(), Name = "IoBus"
            });
            var byteRegisterFactory = TestUtils.CreateByteRegisterFactory();
            var ram           = TestUtils.CreateRam(bus);
            var computerState = new ComputerState(byteRegisterFactory, ram, TestUtils.CreateBus1Factory(),
                                                  new ArithmeticLogicUnitFactory(), TestUtils.CreateCaezRegisterFactory(), new BitRegisterFactory(TestUtils.CreateMemoryGateFactory()), bus, ioBus);

            _sut = new Computer(cpuPinStates, computerState);
        }
Esempio n. 2
0
        public IArithmeticLogicUnit Create(Action <IByte> updateAcc, Action <Caez> updateFlags)
        {
            var not         = new Not();
            var and         = new And();
            var nAnd        = new NAnd(not, and);
            var or          = new Or(not, nAnd);
            var xOr         = new XOr(not, nAnd);
            var byteFactory = new ByteFactory(new Base10Converter());

            return(new ArithmeticLogicUnit(
                       new ByteXOr(xOr, byteFactory),
                       new ByteOr(or, byteFactory),
                       new ByteAnd(and, byteFactory),
                       new Inverter(not, byteFactory),
                       new ByteAdder(new BitAdder(xOr, or, and), byteFactory),
                       new ByteEnabler(and, byteFactory),
                       and,
                       new IsZeroGate(or, not),
                       new ByteDecoder(new Decoder(not, and), byteFactory),
                       new ByteRightShifter(byteFactory),
                       new ByteLeftShifter(byteFactory),
                       or,
                       new AluWire(byteFactory),
                       new ByteComparator(new BitComparator(xOr, and, or, not), byteFactory), updateFlags,
                       updateAcc, byteFactory));
        }
 public void Setup()
 {
     _byteFactory       = new ByteFactory(new Base10Converter());
     _and               = new And();
     _memoryGateFactory = new MemoryGateFactory(new NAnd(new Not(), _and));
     _byteMemoryGate    = new ByteMemoryGate(_memoryGateFactory, _byteFactory);
     _byteEnabler       = new ByteEnabler(_and, _byteFactory);
     _sut               = new ByteRegister(_byteMemoryGate, _byteEnabler, _byteFactory, wire => {});
 }
        public void ByteAndRunsAsExpected()
        {
            var byteFactory = new ByteFactory(new Base10Converter());
            var sut         = new ByteAnd(new And(), new ByteFactory(new Base10Converter()));

            var result = sut.Apply(byteFactory.Create(0), byteFactory.Create(255));

            Assert.IsFalse(result.Any(a => a));
        }
Esempio n. 5
0
        public static ByteRegister CreateRegister(bool set = true, bool enable = true)
        {
            var byteFactory       = new ByteFactory(new Base10Converter());
            var memoryGateFactory = new MemoryGateFactory(new NAnd(new Not(), new And()));
            var and = new And();

            return(new ByteRegister(new ByteMemoryGate(memoryGateFactory, byteFactory),
                                    new ByteEnabler(and, byteFactory), byteFactory, wire => {})
            {
                Set = set, Enable = enable
            });
        }
Esempio n. 6
0
 public void Setup()
 {
     _byteFactory   = new ByteFactory(new Base10Converter());
     _and           = new And();
     _not           = new Not();
     _nAnd          = new NAnd(_not, _and);
     _or            = new Or(_not, _nAnd);
     _xOr           = new XOr(_not, _nAnd);
     _bitComparator = new BitComparator(_xOr, _and, _or, _not);
     _byteToBase10  = new ByteToBase10Converter(_byteFactory, new Base10Converter());
     _sut           = new ByteComparator(_bitComparator, _byteFactory);
 }
        public void InvertsAllInputs()
        {
            var byteFactory    = new ByteFactory(new Base10Converter());
            var sut            = new Inverter(new Not(), byteFactory);
            var input          = byteFactory.Create(255);
            var expectedOutput = byteFactory.Create(0);

            var result = sut.Invert(input);

            for (var i = 0; i < expectedOutput.Count; i++)
            {
                Assert.AreEqual(expectedOutput[i], result[i]);
            }
        }
Esempio n. 8
0
        public static Evaluator getEvaluator(Integer typeObj,
                                             Integer operObj)
        {
            int type = typeObj.intValue();
            int oper = operObj.intValue();

            switch (type)
            {
            case Evaluator.__Fields.STRING_TYPE:
                return(StringFactory.getStringEvaluator(oper));

            case Evaluator.__Fields.OBJECT_TYPE:
                return(ObjectFactory.getObjectEvaluator(oper));

            case Evaluator.__Fields.SHORT_TYPE:
                return(ShortFactory.getShortEvaluator(oper));

            case Evaluator.__Fields.INTEGER_TYPE:
                return(IntegerFactory.getIntegerEvaluator(oper));

            case Evaluator.__Fields.BOOLEAN_TYPE:
                return(BooleanFactory.getBooleanEvaluator(oper));

            case Evaluator.__Fields.DOUBLE_TYPE:
                return(DoubleFactory.getDoubleEvaluator(oper));

            case Evaluator.__Fields.CHAR_TYPE:
                return(CharacterFactory.getCharacterEvaluator(oper));

            case Evaluator.__Fields.BYTE_TYPE:
                return(ByteFactory.getByteEvaluator(oper));

            case Evaluator.__Fields.FLOAT_TYPE:
                return(FloatFactory.getFloatEvaluator(oper));

            case Evaluator.__Fields.LONG_TYPE:
                return(LongFactory.getLongEvaluator(oper));

            case Evaluator.__Fields.DATE_TYPE:
                return(DateFactory.getDateEvaluator(oper));

            case Evaluator.__Fields.ARRAY_TYPE:
                return(ArrayFactory.getArrayEvaluator(oper));

            default:
                throw new RuntimeException("Type '" + type + "' does not exist for BaseEvaluator.__FieldsFactory");
            }
        }
        public void Setup()
        {
            _byteFactory = TestUtils.CreateByteFactory();
            _fullByte    = _byteFactory.Create(255);
            var bus = new Bus <IByte>(new BusMessage <IByte> {
                Data = new Byte(), Name = "Bus"
            });
            var ioBus = new Bus <IByte>(new BusMessage <IByte> {
                Data = new Byte(), Name = "IoBus"
            });
            var byteRegisterFactory = TestUtils.CreateByteRegisterFactory();
            var ram = TestUtils.CreateRam(bus);

            _pinStates = new PinStates();
            _sut       = new ComputerState(byteRegisterFactory, ram, TestUtils.CreateBus1Factory(),
                                           new ArithmeticLogicUnitFactory(), TestUtils.CreateCaezRegisterFactory(), new BitRegisterFactory(TestUtils.CreateMemoryGateFactory()), bus, ioBus);
        }
Esempio n. 10
0
 public void Setup()
 {
     _b10Converter = new Base10Converter();
     _byteFactory  = new ByteFactory(_b10Converter);
     _sut          = new ByteAdder(Create(), _byteFactory);
 }
Esempio n. 11
0
 protected Shifter(ByteFactory byteFactory)
 {
     _byteFactory = byteFactory;
     ShiftIn      = false;
     ShiftOut     = false;
 }
Esempio n. 12
0
 public LeftShifter(ByteFactory byteFactory, ILeftByteShifter leftByteShifter) : base(byteFactory)
 {
     _leftByteShifter = leftByteShifter;
 }
 public void Setup()
 {
     _byteFactory       = new ByteFactory(new Base10Converter());
     _and               = new And();
     _memoryGateFactory = new MemoryGateFactory(new NAnd(new Not(), _and));
 }
Esempio n. 14
0
        public void Setup()
        {
            _byteFactory = new ByteFactory(new Base10Converter());

            _sut = new ByteEnabler(new And(), _byteFactory);
        }
Esempio n. 15
0
 public RightShifter(ByteFactory byteFactory, IRightByteShifter rightByteShifter) : base(byteFactory)
 {
     _rightByteShifter = rightByteShifter;
 }