comments
This commit is contained in:
18
main.c
18
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;
|
||||
|
||||
Reference in New Issue
Block a user