diff options
author | Daniel Jones <admin@danieljon.es> | 2020-08-21 19:19:20 +0930 |
---|---|---|
committer | Daniel Jones <admin@danieljon.es> | 2020-08-21 19:19:20 +0930 |
commit | e3e8912dae70da1fff03607e68610d21adf21002 (patch) | |
tree | 9c9522d7b0791a13304d8d974a281a46ff3ce92e /chip8.c | |
parent | 200bd42550a94487d6c0434c3ad8781b18a7a104 (diff) | |
download | chip8-e3e8912dae70da1fff03607e68610d21adf21002.tar.gz chip8-e3e8912dae70da1fff03607e68610d21adf21002.zip |
correct Fx55 and fx6 opcodes
Diffstat (limited to 'chip8.c')
-rw-r--r-- | chip8.c | 15 |
1 files changed, 4 insertions, 11 deletions
@@ -341,26 +341,19 @@ chip8_cycle() case 0x55: /* LD [I], Vx (store registers V0 through Vx starting at memory location I) */ { // TODO: not tested - int reg = 0; - do + for(int i = 0; i <= x; ++i) { - memory[I+reg] = V[reg]; - reg++; + memory[I + i] = V[i]; } - while (reg <= V[x]); break; } case 0x65: /* LD Vx, [I] (read registers V0 through Vx from memory starting at I) */ { // TODO: not tested - int reg = 0; - int target = V[x]; - do + for(int i = 0; i <= x; ++i) { - V[reg] = memory[I+reg]; - reg++; + V[i] = memory[I + i]; } - while (reg < target); break; } break; |