]> Chaos Git - corbenik/corbenik.git/commitdiff
Flags not being reset could cause an issue (maybe)
authorchaoskagami <chaos.kagami@gmail.com>
Sat, 11 Jun 2016 20:39:12 +0000 (16:39 -0400)
committerchaoskagami <chaos.kagami@gmail.com>
Sat, 11 Jun 2016 20:39:12 +0000 (16:39 -0400)
source/interp.c
source/menu.c

index fecb7b59bf37c8d1c4a94790ed15ed55b3762579..a4c600f1600c956c50f922648942062b19ed2bee 100644 (file)
@@ -178,10 +178,6 @@ exec_bytecode(uint8_t *bytecode, uint16_t ver, uint32_t len, int debug)
                 if (debug)
                     log("back\n");
                 code++;
-                if (offset < *code) {
-                    // Went out of bounds. Error.
-                    abort("Back underflowed.\n");
-                }
                 offset -= *code;
                 code++;
                 break;
@@ -365,6 +361,8 @@ exec_bytecode(uint8_t *bytecode, uint16_t ver, uint32_t len, int debug)
             case OP_NEXT:
                 if (debug)
                     log("next\n");
+                found = gt = lt = eq = 0;
+
                 bytecode = code + 1;
 #ifndef LOADER
                 set_mode = 3;
@@ -373,7 +371,7 @@ exec_bytecode(uint8_t *bytecode, uint16_t ver, uint32_t len, int debug)
                 set_mode = 18;
                 current_mode = &modes[set_mode];
 #endif
-                offset = 0;
+                offset = new_offset = 0;
                 code = bytecode;
                 break;
             default:
index 57d99fc7e070623a45cb30bcd79bb66dc496cacc..1d98f6a4e39cc51744a4483049afc42292685ed7 100644 (file)
@@ -72,9 +72,13 @@ static int cursor_y = 0;
 static int which_menu = 1;
 static int need_redraw = 1;
 
+extern void waitcycles(uint32_t cycles);
+
 uint32_t
 wait_key()
 {
+    waitcycles(100); // Moves too fast. Hopefully this prevents the issue.
+
     uint32_t get = 0;
     while (get == 0) {
         if (HID_PAD & BUTTON_UP)