fix the thing with the thing
This commit is contained in:
parent
43e7f57fd0
commit
b4b00cb6d2
2 changed files with 16 additions and 2 deletions
|
@ -52,6 +52,20 @@ static void recurse_program(Program* program, Tape* tape) {
|
|||
next:
|
||||
program_next(program, &s);
|
||||
|
||||
// printf("[");
|
||||
// for(uint32_t i = 0; i < tape->len; i++) {
|
||||
// printf("0x%02x ", tape->data[i]);
|
||||
// }
|
||||
// printf("\b]\n ");
|
||||
// for(uint32_t i = 0; i < tape->len; i++) {
|
||||
// if (i == tape->index) {
|
||||
// printf(" ^ ");
|
||||
// } else {
|
||||
// printf(" ");
|
||||
// }
|
||||
// }
|
||||
// printf(" \ + tape->indexn");
|
||||
|
||||
switch (s) {
|
||||
case MoveLeft:
|
||||
tape_left(tape);
|
||||
|
@ -85,7 +99,7 @@ next:
|
|||
case Allocate: {
|
||||
uint8_t len = tape_get(tape);
|
||||
Tape* new = malloc(sizeof(Tape));
|
||||
tape_init(len, tape);
|
||||
tape_init(len, new);
|
||||
void* ptr = (void*) tape_ptr(tape);
|
||||
memcpy(ptr, &new, sizeof(Tape*));
|
||||
break;
|
||||
|
|
|
@ -159,7 +159,7 @@ void tape_set(Tape* tape, uint8_t value) {
|
|||
}
|
||||
|
||||
uint8_t* tape_ptr(Tape* tape) {
|
||||
return tape->data;
|
||||
return tape->data + tape->index;
|
||||
}
|
||||
|
||||
void tape_free(Tape* tape) {
|
||||
|
|
Loading…
Reference in a new issue