# HG changeset patch # User František Kučera # Date 1514070778 -3600 # Node ID 835bd4559e5c8222e000a3fb4173a3fef83872f8 # Parent 47ee9157913301367c9035f4435454c9e61c84e6 parametric INCREMENT and DECREMENT diff -r 47ee91579133 -r 835bd4559e5c c++/rgb-assembler/commands/IncrementDecrement.h --- a/c++/rgb-assembler/commands/IncrementDecrement.h Sun Dec 24 00:08:55 2017 +0100 +++ b/c++/rgb-assembler/commands/IncrementDecrement.h Sun Dec 24 00:12:58 2017 +0100 @@ -14,8 +14,9 @@ class IncrementDecrement : public Command { public: - IncrementDecrement(const bool increment) { + IncrementDecrement(const bool increment, octet_t change) { this->increment = increment; + this->change = change; } void process(octet_t* memory, address_t& index) override { @@ -23,12 +24,13 @@ address_t address_r = address; address_t address_w = address_r; octet_t value = read(memory, address_r); - value = increment ? value + 1 : value - 1; + value = increment ? value + change : value - change; write(memory, address_w, value); wprintf(L"%sCREMENT %*d → %02X\n", (increment ? "IN" : "DE"), 5, address, value); } private: bool increment; + octet_t change; }; diff -r 47ee91579133 -r 835bd4559e5c c++/rgb-assembler/rgb-assembler.cpp --- a/c++/rgb-assembler/rgb-assembler.cpp Sun Dec 24 00:08:55 2017 +0100 +++ b/c++/rgb-assembler/rgb-assembler.cpp Sun Dec 24 00:12:58 2017 +0100 @@ -121,10 +121,10 @@ {CMD_SLEEP, make_shared()}, {CMD_END, make_shared()}, {CMD_COLOR, make_shared()}, - {CMD_INCREMENT, make_shared < commands::IncrementDecrement>(true)}, - {CMD_DECREMENT, make_shared < commands::IncrementDecrement>(false)}, + {CMD_INCREMENT, make_shared < commands::IncrementDecrement>(true, 1)}, + {CMD_DECREMENT, make_shared < commands::IncrementDecrement>(false, 1)}, }; - + for (address_t i = 0; i < MEMORY_SIZE;) { wprintf(L"command %*d = ", 4, i);