Exemple #1
0
        private void Search()
        {
            var mem   = Memory;
            var value = ValueTextField.IntValue;

            foreach (var addr in _adresses.ToList())
            {
                var curValue = Read(addr, _byteSize);
                if (!_values.TryGetValue(addr, out MemorySearchSession session))
                {
                    session = new MemorySearchSession(curValue, curValue, _byteSize, 0);
                }
                var relativeValue = _mode == MemoryComparisonMode.SpecificValue ? value : session.PreviousValue;
                if (!Compare(curValue, relativeValue, _operator))
                {
                    _adresses.Remove(addr);
                }
                else
                {
                    _values[addr] = new MemorySearchSession(curValue, curValue, _byteSize, session.Changes);
                }
            }

            var msg = NSBundle.MainBundle.LocalizedString("{0} results found ({1:X})", null);

            StatusTextField.StringValue = string.Format(msg, _adresses.Count, _adresses.FirstOrDefault());
        }
Exemple #2
0
        private void Reset()
        {
            if (StatusTextField != null)
            {
                StatusTextField.StringValue = string.Empty;
            }
            _adresses.Clear();
            _values.Clear();

            for (int addr = 0x2200; addr <= 0x9FFF; addr++)
            {
                _adresses.Add(addr);
                var value = Read(addr, _byteSize);
                _values[addr] = new MemorySearchSession(value, value, _byteSize, 0);
            }
        }