diff -r 78c4d6b53499 -r ff150572e8c0 c++/rgb-assembler/commands/IncrementDecrement.h --- a/c++/rgb-assembler/commands/IncrementDecrement.h Mon Dec 25 00:34:27 2017 +0100 +++ b/c++/rgb-assembler/commands/IncrementDecrement.h Mon Dec 25 01:27:44 2017 +0100 @@ -39,14 +39,9 @@ void process(Memory &memory) override { address_t address = memory.read(); - address_t originalAddress = memory.getIndex(); - // TODO: add to Memory methods read(address_t) and write(address_t, T) - memory.setIndex(address); - octet_t value = memory.read(); + octet_t value = memory.read(address); value = increment ? value + change : value - change; - memory.setIndex(address); - memory.write(value); - memory.setIndex(originalAddress); + memory.write(address, value); wprintf(L"%sCREMENT %*d → %02X\n", (increment ? "IN" : "DE"), 5, address, value); } private: