diff --git a/main.c b/main.c index 5af162e..7a17638 100644 --- a/main.c +++ b/main.c @@ -346,46 +346,46 @@ int main(int argc, char **argv) { reg = (opcode & 0x0F00) >> 8; switch ((byte) opcode) { - case 0x07: + case 0x07: // set reg to delay time if (DEBUG) printf("Copying delay timer to reg %i (%hx)", reg, state.registers[reg]); state.registers[reg] = delay; break; - case 0x0A: + case 0x0A: // wait for input and store it in reg wait = 1; store = reg; break; - case 0x15: + case 0x15: // set delay timer to value in reg delay = state.registers[reg]; break; - case 0x18: + case 0x18: // set sound timer to value in reg sound = state.registers[reg]; break; - case 0x1E: + case 0x1E: // Add value stored in VX to I state.address_I += state.registers[reg]; if (DEBUG) printf("Adding reg %i (%hx) to I (%x)", reg, state.registers[reg], state.address_I); break; - case 0x29: + case 0x29: // set I to address of font character state.address_I = state.registers[reg] * 5; break; - case 0x33:; + case 0x33:; // encode value in reg as a BCD at I, I+1, I+2 int value = state.registers[reg]; state.memory[state.address_I] = value / 100; state.memory[state.address_I + 1] = (value / 10) % 10; state.memory[state.address_I + 2] = value % 10; break; - case 0x55: + case 0x55: // dump registers V0 -> VX at I for (int i = 0; i <= reg; ++i) state.memory[state.address_I + i] = state.registers[i]; break; - case 0x65: + case 0x65: // retrieve registers V0 -> VX from I for (int i = 0; i <= reg; ++i) state.registers[i] = state.memory[state.address_I + i]; break;