This is an (eventually) comprehensive spoiler for Zachtronics’ game TIS-100, with notes on the system architecture, some common optimization techniques, and annotated solutions for each program.
This chapter documents various syntax quirks and undefined behaviors, such as integer overflows (everything is clipped to +/- 999), segfaults (can’t happen), and multiple simultaneous reads and writes to a Stack Memory Node.
In short: Writing to a port takes two cycles (or more if it blocks) unless a Stack Memory Node is doing the writing. Reading from a port takes one cycle (or more if it blocks). Everything else takes one cycle.
Covers segments 00150 (Self-Test Diagnostic) through 22280 (Signal Multiplexer).
An introduction to loops, parallelization using ANY
, and switch
statements with JRO
.
Covers segments 30647 (Sequence Generator) through 33762 (Interrupt Handler).
It’s like parallelism, but in series!
Covers segments 40196 (Signal Pattern Detector) through 43786 (Signal Multiplier).
State machines; avoiding gratuitous SWP/SAV
s; preventing stack underflows without using a counter.
Covers segments 50370 (Image Test Pattern 1) through 53897 (Histogram Viewer).
Covers segments 60099 (Signal Window Filter) through 63534 (Sequence Sorter).
Here’s where things really start to get complicated.
Covers segments 70601 [3 WORDS REDACTED] and UNKNOWN [2 WORDS REDACTED].
What really happened to Uncle Randy? And who built this machine anyway?
Coming soon!
This project is hosted on GitHub; please check out this important note about the project’s status before opening an issue or submitting a pull request.
This guide is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License (CC BY-SA 4.0).
This site’s theme is based on Lanyon, © 2014 Mark Otto and used under the MIT license.