diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/vm.c | 14 |
1 files changed, 14 insertions, 0 deletions
@@ -111,6 +111,7 @@ static void init_globals(void) current_line = 0; stack_pointer = 0; want_quit = false; + repeats_left = 0; } static inline void push(imm_t n) @@ -432,6 +433,19 @@ void inc_line_pointer(void) ++current_line; vars[0].val = current_line; + if(repeats_left > 0) + { + --repeats_left; + if(repeats_left) + jump(repeat_line); + else + { + if(current_line + 2 > num_lines) + want_quit = true; + else + jump(current_line + 2); + } + } } static void (*instr_tab[0x100])(void) = { |