# HG changeset patch # User František Kučera # Date 1513962880 -3600 # Node ID 5c142e9c00e5365cbaa078fee9bdc720df2644ad # Parent 4b4fb847d01ae33471c494c7142c8251f7602706 comment, rename, reformat diff -r 4b4fb847d01a -r 5c142e9c00e5 c++/rgb-assembler/rgb-assembler.cpp --- a/c++/rgb-assembler/rgb-assembler.cpp Fri Dec 22 18:09:58 2017 +0100 +++ b/c++/rgb-assembler/rgb-assembler.cpp Fri Dec 22 18:14:40 2017 +0100 @@ -104,6 +104,8 @@ byte_t * memory = (byte_t*) malloc(MEMORY_SIZE); + // Sample program / data: + // TODO: load bytes from file, stdin, serial port, network… { address_t a = 0; write(memory, a, CMD_SLEEP); @@ -138,10 +140,10 @@ for (address_t i = 0; i < MEMORY_SIZE;) { wprintf(L"command %*d = ", 4, i); - command_t ch = read(memory, i); - wprintf(L"%02X ", ch); + command_t command = read(memory, i); + wprintf(L"%02X ", command); - switch (ch) { + switch (command) { case CMD_GOTO: { i = read(memory, i); @@ -171,9 +173,9 @@ address_t address_r = address; address_t address_w = address_r; byte_t value = read(memory, address_r); - value = ch == CMD_INCREMENT ? value + 1 : value - 1; + value = command == CMD_INCREMENT ? value + 1 : value - 1; write(memory, address_w, value); - wprintf(L"%sCREMENT %*d → %02X\n", (ch == CMD_INCREMENT ? "IN" : "DE"), 5, address, value); + wprintf(L"%sCREMENT %*d → %02X\n", (command == CMD_INCREMENT ? "IN" : "DE"), 5, address, value); break; } case CMD_GOTO_COMPARE: @@ -187,13 +189,10 @@ byte_t a = read(memory, aa); byte_t b = read(memory, ab); - if (a == b) { - i = eq; - } else if (a > b) { - i = gt; - } else { - i = lt; - } + if (a == b) i = eq; + else if (a > b) i = gt; + else i = lt; + wprintf(L"GOTO COMPARE a = %02X, b = %02X, eq = %d, gt = %d, lt = %d → %d\n", a, b, eq, gt, lt, i); break; }