TIS-100

TIS-100

View Stats:
Tessellated Intelligence System Best Practices - Patterns of Node Communication
The manual refers you to "Tessellated Intelligence System Best Practices - Patterns of Node Communication" for vital information like "details on how to use ports effectively and safely," "sample code demonstrating the use of the LAST pseudo-port," and "using storage nodes from multiple nodes effectively and predictably."

Unfortunately, that document doesn't exist--so I've started writing it! The first two chapters are spoiler-free and already up on Github[github.com]; issues and pull requests are welcome. I'll be marking up my solutions to each problem and adding them to the book over the next few weeks.

Happy hacking!
Last edited by contingent_humanoid; Nov 21, 2015 @ 5:29pm
< >
Showing 1-6 of 6 comments
Norgus Nov 23, 2015 @ 1:49am 
You are a wonderful person :)
rexkix Nov 23, 2015 @ 10:19am 
Originally posted by Norgus:
You are a wonderful person :)
Agreed. Nice work.
LessAwkwardUsername Nov 23, 2015 @ 11:36am 
Here's an interesting one.
I never thought I would have any use for something as weird as the way you model shared, atomic read/set in the actor model, but here we are.

A simple actor cell might look like
MOV initial_value ACC
L: MOV ACC ANY
MOV LAST ACC
JMP L

As soon as you read from it, it's locked to that node until you write a new (or the original value) back to it.

This is an example from my version of the SEQUENCE PEAK DETECTOR's maximum accumulator which is slightly more complicated, in that you have to read twice

MOV -500 ACC
L: MOV ACC ANY
MOV ACC LAST
MOV LAST ACC
JMP L

You read twice because of the lack of registers it's used as
SUB DOWN
JLZ ...
and if you decide to keep the original value you have to read it again
ie.
MOV DOWN ACC
MOV ACC DOWN

In that machine I set it from one node and read it from another. It doesn't make the fastest SEQUENCE PEAK DETECTOR possible (I got it down to 329), but it's very clean.
Clever! I've definitely used that pattern to give a node an extra register, but hadn't thought to extend it with ANY/LAST.
DaSourcerer Nov 27, 2015 @ 10:22am 
Erm ... If you need another register, you can program an adjacent node with MOV LEFT, LEFT which is both, faster and shorter than MOV LEFT, ACC; MOV ACC, LEFT. Just saying.
Celery Man Dec 16, 2019 @ 7:19am 
This is a beautiful guide, thank you so much.
< >
Showing 1-6 of 6 comments
Per page: 1530 50