I was going to make this a game about hacking weapons via code insertion, but I think I overscoped. This is also the best of four games that I made while trying to fit the theme. Right now, there is just this Fibonacci program to hack. Imagine this is controlling a nuclear missile or something. I hope you like coding with text! (and reading all of the documentation... feels like a Zachtronics game already) Challenges: make the output 1, 2, 3, 4, .. make the output 6, 9, 6, 9, .. make the output only 10 elements long make the output the prime numbers The programming language: (heavily inspired by Exapunks) Semicolons ( ; ) are used to start comments. Lines cannot exceed the width of the editor. Press Enter to insert a block of hacked code. The key just below backspace ( \ and | ) are used as backspace, unless the project is loaded in Turbowarp: https://turbowarp.org/921286297 (hold enter while using the ( \ and | ) key to type the symbols in) Mouse scroll while hovering the editor to scroll up and down. Keyboard inputs will only be accepted when the mouse is hovering the editor, and you can only edit code in red areas you make. Note that invalid commands can result in weird bugs, so be careful. (sort of like some real assembly languages) Commands: [ command name, arguments ] s = string, n = number, r = register, r/n = register or number, ? = optional [ lbl s ] - make a label with the given name [ jmp ?r/n s] - jumps to the first label in the program with the given name. If two arguments are given, will only jump if first argument is not 0. [ set r r/n ] sets the register indicated by the first argument to the value indicated by the second argument [add r/n r/n r] sets the register indicated by the third argument to the sum of the first and second arguments [sub r/n r/n r] sets the register indicated by the third argument to the difference between the first and second arguments [mul r/n r/n r] sets the register indicated by the third argument to the product of the first and second arguments [div r/n r/n r] sets the register indicated by the third argument to the quotient of the first and second arguments, rounded down [tlt r/n r/n r] checks if the first argument is less than the second, stores 1 to third argument if true, else stores 0 [tle r/n r/n r] checks if the first argument is less than or equal to the second, stores 1 to third argument if true, else stores 0 [tgt r/n r/n r] checks if the first argument is greater than the second, stores 1 to third argument if true, else stores 0 [tge r/n r/n r] checks if the first argument is greater than or equal to the second, stores 1 to third argument if true, else stores 0 [teq r/n r/n r] checks if the first argument is equal to the second, stores 1 to third argument if true, else stores 0 [tne r/n r/n r] checks if the first argument is not equal to the second, stores 1 to third argument if true, else stores 0 [end] stops program Registers: X - General purpose Y - General purpose I - Indexes D, may also be used as a general purpose register. D - References a 100 long list at the index given by the I register. If read when I is less than 0 or greater than 99, the program will halt. Is indexed starting at 0.