Follow-up to this one, from Bonus Task 1; by far the most persistent bug I've encountered in the game - and by far the most annoying to nail down and report - is the bug where a piece of code causes the program to exit out of the WHILE 1 loop early, reporting "OUTPUTS ARE NOT CORRECT" even though the cursor is only on the second row. I finally managed to get a minimal example of the bug:
WHILE 1 { IF IN[0] { RAISE J; 0; 1000 { } } OUT IN[0]; DOWN 1; }
As you can see in these screenshots, when the RAISE J clause is present, the program exits out of the WHILE 1 loop early, having only written a single output and read a single input. However, when RAISE J is not present, the program goes through the loop as normal:
A little testing shows that the content of the IF statement can vary (this still occurs with IF 1 instead of IF IN[0]), the output command can vary (or not be present; I included it for demonstration), and the variable name and limits of RAISE can change, as well as replacing RAISE with LOWER. It does not occur replacing RAISE with TIMES, however.
What's made this so hard to figure out is that this bug is dependent on the order in which you enter and run code. For instance, if you first put a RAISE *around* the IF statement, run it, and then remove the RAISE, the program will run correctly.
In this manner, it is possible to have two identical files, for the same task, whose behaviors are entirely different. Of all the bugs, this one's probably the worst.
I sincerely appreciate you still maintaining this game after all this time, and I would love to play through the bonus tasks and see the game's ending. I'm playing it on 64-bit WINE for Ubuntu 20.04 (the native Linux build unfortunately segfaults), and would be happy to provide debug logs, system specs, more screenshots, or whatever else would help.