1.1 --- a/c++/rgb-assembler/commands/IncrementDecrement.h Mon Dec 25 00:34:27 2017 +0100
1.2 +++ b/c++/rgb-assembler/commands/IncrementDecrement.h Mon Dec 25 01:27:44 2017 +0100
1.3 @@ -39,14 +39,9 @@
1.4
1.5 void process(Memory &memory) override {
1.6 address_t address = memory.read<address_t>();
1.7 - address_t originalAddress = memory.getIndex();
1.8 - // TODO: add to Memory methods read(address_t) and write(address_t, T)
1.9 - memory.setIndex(address);
1.10 - octet_t value = memory.read<octet_t>();
1.11 + octet_t value = memory.read<octet_t>(address);
1.12 value = increment ? value + change : value - change;
1.13 - memory.setIndex(address);
1.14 - memory.write<octet_t>(value);
1.15 - memory.setIndex(originalAddress);
1.16 + memory.write<octet_t>(address, value);
1.17 wprintf(L"%sCREMENT %*d → %02X\n", (increment ? "IN" : "DE"), 5, address, value);
1.18 }
1.19 private: