Beispiel #1
0
 public void SetMemoryAddress(IByte address)
 {
     MemoryAddressRegister.Set = true;
     MemoryAddressRegister.Apply(address);
     MemoryAddressRegister.Set = false;
     Apply();
 }
        public void MemoryAddressRegisterInputs()
        {
            DataBus   bus     = new DataBus();
            SignalBus signals = new SignalBus();

            Register memoryAddress = new MemoryAddressRegister(bus, signals);

            bus.Value  = 0xF;
            signals.MI = true;

            memoryAddress.ReadFromBus();
            Assert.AreEqual(0xF, memoryAddress.Value);
        }
Beispiel #3
0
        public void MemoryInputsDataToAddressDefinedInRegister()
        {
            DataBus   bus     = new DataBus();
            SignalBus signals = new SignalBus();

            Register memoryAddress = new MemoryAddressRegister(bus, signals);
            Memory   ram           = new Memory(bus, signals, memoryAddress);

            bus.Value           = 255;
            memoryAddress.Value = 0xF;
            signals.RI          = true;

            ram.ReadFromBus();

            Assert.AreEqual(255, ram.Get(0xF));
        }
Beispiel #4
0
        public void MemoryOutputsDataByAddressInRegister()
        {
            DataBus   bus     = new DataBus();
            SignalBus signals = new SignalBus();

            Register memoryAddress = new MemoryAddressRegister(bus, signals);
            Memory   ram           = new Memory(bus, signals, memoryAddress);

            ram.Store(0xF, 255);
            memoryAddress.Value = 0xF;
            signals.RO          = true;

            ram.WriteToBus();

            Assert.AreEqual(255, bus.Value);
        }
Beispiel #5
0
 /**
  * @brief Links all the component so they
  *        can be used in micro instructions.
  */
 public void LinkCPUcomponents(
     ProgramCounter PC, MemoryAddressRegister MAR,
     MemoryDataRegister MDR, InstructionRegister IR,
     GeneralPurposeRegisterA GPA, GeneralPurposeRegisterB GPB,
     ProcessStatusRegister PSR,
     MemoryListControl memory, ArithmeticLogicUnit ALU,
     Clock clock, BusControl busSystem)
 {
     this.PC        = PC;
     this.MAR       = MAR;
     this.MDR       = MDR;
     this.IR        = IR;
     this.GPA       = GPA;
     this.GPB       = GPB;
     this.PSR       = PSR;
     this.memory    = memory;
     this.ALU       = ALU;
     this.clock     = clock;
     this.busSystem = busSystem;
 }