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()); }
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); } }