()
| 239 | } |
| 240 | |
| 241 | public void performSearch() { |
| 242 | Emulator.withMemory(memory -> { |
| 243 | boolean signed = signedProperty.get(); |
| 244 | resultList.removeIf((SearchResult result) -> { |
| 245 | int val = byteSized |
| 246 | ? signed ? memory.readRaw(result.address) : memory.readRaw(result.address) & 0x0ff |
| 247 | : signed ? memory.readWordRaw(result.address) : memory.readWordRaw(result.address) & 0x0ffff; |
| 248 | int last = result.lastObservedValue; |
| 249 | result.lastObservedValue = val; |
| 250 | switch (searchType) { |
| 251 | case VALUE -> { |
| 252 | int compare = parseInt(searchValueProperty.get()); |
| 253 | return compare != val; |
| 254 | } |
| 255 | case CHANGE -> { |
| 256 | switch (searchChangeType) { |
| 257 | case AMOUNT -> { |
| 258 | int amount = parseInt(searchChangeByProperty().getValue()); |
| 259 | return (val - last) != amount; |
| 260 | } |
| 261 | case GREATER -> { |
| 262 | return val <= last; |
| 263 | } |
| 264 | case ANY_CHANGE -> { |
| 265 | return val == last; |
| 266 | } |
| 267 | case LESS -> { |
| 268 | return val >= last; |
| 269 | } |
| 270 | case NO_CHANGE -> { |
| 271 | return val != last; |
| 272 | } |
| 273 | } |
| 274 | } |
| 275 | |
| 276 | case TEXT -> { |
| 277 | } |
| 278 | } |
| 279 | return false; |
| 280 | }); |
| 281 | }); |
| 282 | } |
| 283 | |
| 284 | RAMListener memoryViewListener = null; |
| 285 | private final Map<Integer, MemoryCell> memoryCells = new ConcurrentHashMap<>(); |
no test coverage detected