Skip to content

Commit aa058a9

Browse files
committed
Simplify vm_init code
1 parent 0b3f555 commit aa058a9

File tree

1 file changed

+5
-15
lines changed

1 file changed

+5
-15
lines changed

vm.ino

+5-15
Original file line numberDiff line numberDiff line change
@@ -22,24 +22,14 @@ along with evm-esp32. If not, see <http://www.gnu.org/licenses/>.
2222

2323
void vm_init(struct vm *VM, String program)
2424
{
25-
uint16_t i = 0;
26-
int size = program.length();
27-
2825
memset(VM, '\0', sizeof(struct vm));
2926
VM->registers.pc = 0x200;
27+
int size = program.length();
3028

31-
while (i < size && i < 0xFFF - 0x200) {
32-
int fH, fL;
33-
34-
fH = program[i];
35-
if (fH == -1) break;
36-
VM->memory[VM->registers.pc + i] = fH;
37-
38-
fL = program[i+1];
39-
if (fL == -1) break;
40-
VM->memory[VM->registers.pc + i + 1] = fL;
41-
42-
i += 2;
29+
// 1 opcode per iteration
30+
for (uint16_t i = 0; i < size && i < 0xFFF - 0x200; i += 2) {
31+
VM->memory[VM->registers.pc + i] = program[i];
32+
VM->memory[VM->registers.pc + i + 1] = program[i+1];
4333
}
4434
}
4535

0 commit comments

Comments
 (0)