TIS-99
A downloadable game for Linux
Technical Requirements: Your terminal emulator must support colors and some keyboard shortcuts. st, gnome-terminal, terminator, LXTerminal, Xterm will do. I'm not sure about others, check for yourself. Also, available build for raspberry PI. In new version i got rid from libc dependency, so in theory now game should work on all major linux versions (of course if your pc is x86 or arm-based)
Comments
Log in with itch.io to leave a comment.
This game looks cool, but the documentation doesn't help at all if you don't know the basics. The examples given are full of pseudocode, so no matter what I've tried doing, I can't figure out how to tell my tis3 to read the value from the wired input pin. That is assuming % is input and & is output, but that would make this part of the documentation incorrect:
I managed to solve the first puzzle, but it took ages lol
Wow, thanks for the feedback! I didn't think anyone but me would even play this. I changed a couple of mistakes in the manual and uploaded a new version. As for the overcomplication of basic data transfer - that is what it is. Once you understand how it works, the process will go faster. (anyway, is documentation in reality always clear and useful? :) ) I hope you try the rest of the levels!
P.S. the first level can be solved even without tis-3
I'm at the point now where I have to figure out how to pull in the 2 numbers and subtract them in the two different ways. I love Zachtronics' (even if I suck at them lol) and had an itch that needed to be scratched hahah
I'll check out the update! It's been really fun, and I get that the abstract documentation is really part of the whole experience, I just felt that there was a bit too much abstraction so trying to understand what was a wildcard and what was valid instruction was a bit tricky.
I'm making progress, and I'm too stubborn to give up yet. I'm stuck on interfacing not on math, so I can push through lol
[EDIT] You missed the typo on page 7: "INSTRUTIONS" is missing the 'C' ;)
I'm kinda confused about how to pass data from one TIS3 to the next. The instructions make it sound like you move the [01] (or whatever) number to C to accept that TIS3's input, however in my code [02] is sending 258?
[EDIT] Also, I realize there is a much MUCH easier way to do this, but I wanted to learn how to pass values around lol. My other solution only uses one TIS3 module
I don't quite understand what you mean, but I'll try to explain what's happening here: the send instructions can block execution (which is what happens, you can verify this by looking at the execution step by step). At the beginning [01] sends a number (at this iteration it was -85), then [02] sends -78, and [03] received it at the time of the screenshot. all numbers are always sent to register e. (register c changes the value to the sender index). i hope, this helped
Yeah, I think I just misunderstood the instructions. I thought that when you send, the receiving module would receive "3" as the value.
In the 2nd block of code in module [03] I had:
MOV C 2; Listen for send from [02]
MOV D 0; prep for recv
RECV
MOV B E; store value to register B
It was easy enough to figure out when I moved -1 to C to see what the ID actually was, though.
If I could make three minor suggestions:
1. Make the commands case-insensitive, so if you're coding in upper case it won't mess you up.
2. Allow PgUp/PgDwn in ht instructions to scroll faster
3. Remember where you left off in the instructions so you don't have to keep scrolling back to the area you want to read
1. They are already case-insensitive, just like labels. (if there is a counterexample, I'm ready to see)
2. you can scroll faster using ctrl+up/down, although not to the entire page. I'll think about adding pgup/pgdown, but there may be problems with it due to the fact that different terminals can remap key codes differently.
3. ok, I'll add this too when I have free time