示例#1
0
 private void _IncrementAddress()
 {
     m_NextLocationAddress = new MemoryLocationAddress(
         _ReadNextOperationAddress(m_CurrentLocationAddress),
         m_NextLocationAddress.BankAddress
         );
     _WriteNextAddress(NextReadAddress);
 }
示例#2
0
        public void OperatorBothInstancesEqualsNull()
        {
            MemoryLocationAddress t_First  = null;
            MemoryLocationAddress t_Second = null;

            (t_First == t_Second)
            .Should().BeTrue();
        }
示例#3
0
        private IOperation _ReadOperation()
        {
            m_CurrentLocationAddress = _ReadLocation();
            var t_Operation = _ReadOperationFromMemory(m_CurrentLocationAddress);

            _IncrementAddress();
            return(t_Operation);
        }
示例#4
0
        public void CompareToSameLocation()
        {
            var t_Location = new MemoryLocationAddress(new MemoryAddress(0), new MemoryBankAddress(0));

            t_Location
            .CompareTo(t_Location)
            .Should()
            .Be(0);
        }
示例#5
0
        public void CompareToOutsideBank()
        {
            var t_FirstBankAddress  = new MemoryLocationAddress(new MemoryAddress(0), new MemoryBankAddress(0));
            var t_SecondBankAddress = new MemoryLocationAddress(new MemoryAddress(10), new MemoryBankAddress(1));

            t_FirstBankAddress
            .CompareTo(t_SecondBankAddress)
            .Should()
            .Be(-1);
        }
示例#6
0
        public void CompareToSameBankHigherAddress()
        {
            var t_Lower  = new MemoryLocationAddress(new MemoryAddress(0), new MemoryBankAddress(0));
            var t_Higher = new MemoryLocationAddress(new MemoryAddress(10), new MemoryBankAddress(0));

            t_Lower
            .CompareTo(t_Higher)
            .Should()
            .Be(-1);
        }
示例#7
0
 public T InspectMemory <T>(MemoryLocationAddress AddressLocation) where T : struct
 {
     return(_LookupMemoryBank(AddressLocation.BankAddress)
            .Load <T>(AddressLocation.Address));
 }
示例#8
0
 public byte InspectMemory(MemoryLocationAddress AddressLocation)
 {
     return(_LookupMemoryBank(AddressLocation.BankAddress)
            .Load <byte>(AddressLocation.Address));
 }
示例#9
0
 private IOperation _ReadOperationFromMemory(MemoryLocationAddress LocationAddress)
 {
     return(m_Reader.ReadOperationFromMemory(LocationAddress.Address,
                                             _ResolveMemoryBank(LocationAddress.BankAddress)));
 }
示例#10
0
 private void _SetReadAndNextLocations()
 {
     m_CurrentLocationAddress = _ReadLocation();
     m_NextLocationAddress    = _ReadNextLocation();
 }
示例#11
0
 private MemoryAddress _ReadNextOperationAddress(MemoryLocationAddress LocationAddress)
 {
     return(m_Reader.ReadNextOperationAddress(LocationAddress.Address,
                                              _ResolveMemoryBank(LocationAddress.BankAddress)));
 }
示例#12
0
 public void Initialize()
 {
     m_LocationAddress = new MemoryLocationAddress(new MemoryAddress(0), new MemoryBankAddress(0));
 }