0% found this document useful (0 votes)
213 views4 pages

TIS-100 Quick Reference Guide

The document describes the basic instruction set and functionality of execution nodes in the TIS-100 virtual computer system. It explains the different instructions, registers, ports, and how execution cycles work at a high level.

Uploaded by

Saro Root
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
213 views4 pages

TIS-100 Quick Reference Guide

The document describes the basic instruction set and functionality of execution nodes in the TIS-100 virtual computer system. It explains the different instructions, registers, ports, and how execution cycles work at a high level.

Uploaded by

Saro Root
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Basic Execution Node Instruction Set

NOP NO OPERATION
MOV <SRC>, <DST> MOVE <SRC> TO <DST>; COMMA IS OPTIONAL
SWP SWAP ACC AND BAK
SAV SAVE ACC TO BAK
ADD <SRC> ADD <SRC> TO ACC
SUB <SRC> SUBTRACT <SRC> FROM ACC
NEG NEGATE ACC (NEG 0 = 0)
JMP <LABEL> JUMP TO <LABEL>
JEZ <LABEL> JUMP TO <LABEL> IF ACC = 0
JNZ <LABEL> JUMP TO <LABEL> IF ACC != 0
JGZ <LABEL> JUMP TO <LABEL> IF ACC > 0
JLZ <LABEL> JUMP TO <LABEL> IF ACC < 0
JRO <SRC> JUMP TO RELATIVE OFFSET <SRC>
(A value of 0 causes an infinite loop. Both positive and negative jumps
are bounded by the node's first and last instructions.)
HCF HALT & CATCH FIRE
(Undocumented; resets the TIS-100.)

<SRC> Refers to ACC, UP, DOWN, LEFT, RIGHT, ANY, LAST, NIL, or a
literal (-999...999)
<DST> Refers to ACC, UP, DOWN, LEFT, RIGHT, ANY, LAST, or NIL
<LABEL> Refers to location marked by alphanumeric label '<LABEL>:'

# Indicates a comment in source code.


## Indicates program title to the debugger.
! Triggers a breakpoint when using the debugger.

Registers and Ports


Registers can store integers in the range of -999 to 999.

ACC The primary storage and computational register in each node.


BAK The BAK register cannot be directly addressed (see SWP, SAV).
UP, DOWN, LEFT, RIGHT Each output port holds its value until read, thereby behaving like
an additional register.
ANY Reads to or writes from the next available port (UP, RIGHT, DOWN,
or LEFT) that is receiving or sending a value.
LAST Maps to the last port selected by ANY. LAST maps to
NIL if ANY has not been used.
NIL As a source, NIL produces a 0. As a destination, it has no effect.

Nodes
Up to 12 nodes are available per program. There are two types of nodes available on the TIS-100:
Basic Execution and Stack Memory. A defective or damaged node is automatically disabled.

Basic Execution Node (T21)


- Each node can run a subprogram with up to 15 instructions. Labels are not considered
instructions.
- When the last instruction in a node is run, execution continues with the first
instruction. Note that this wraparound does not cost any cycles.

Stack Memory Node (T30)


- Can hold up to 15 values.
- Supports push/pop from any connected port.
- Pop from an empty stack node will stall.
- Push to a full stack node will stall.
- Note that push/pop stalls can be recovered if another port is used to remove/add a value
from the stack.

Cycles
- Writes take 2 cycles. Other operations require only one cycle, assuming data is
available.
- The first "step" in a run does not count as a cycle.
- A cycle is needed to complete the last write out to an output port.

Image Console
The image console (aka visualization module) is able to display 4-color graphics on a 30 x 18
display screen. Each pixel is addressable by a (X,Y) coordinate system, with (0,0) mapping to the
upper left corner. Pixels are updated with command packets, which have the following format:
- X coordinate
- Y coordinate
- Color value 0
- ...
- Color value N
- End packet marker (any negative value)

One or more color values may be used per packet. For each color value after the initial value, X
is incremented automatically. There is no automatic wraparound.
Color values are:
- 0: Black
- 1: Dark grey
- 2: Light grey
- 3: White
- 4: Red

TIS-100 SEGMENT MAP

00150 SELF-TEST DIAGNOSTIC [BUSY_LOOP: 100001/8/24][ALMOST: 100000/8/20]


10981 SIGNAL AMPLIFIER [DUAL PATHS: 84/5/11]
20176 DIFFERENTIAL CONVERTER [NEGATE: 201/5/11]
21340 SIGNAL COMPARATOR [UNCONDITIONAL: 232/6/34]
22280 SIGNAL MULTIPLEXER [PARALLEL: 203/8/22]
30647 SEQUENCE GENERATOR [DISTRIBUTED: 106/5/18]
31904 SEQUENCE COUNTER [NO_BACKUP: 231/6/25]
32050 SIGNAL EDGE DETECTOR [DUAL THREADS: 202/7/29]
33762 INTERRUPT HANDLER [CYCLES: 176/10/44]
40196 SIGNAL PATTERN DETECTOR [STATE MACHINE: 174/4/17]
41427 SEQUENCE PEAK DETECTOR [CYCLES: 267/6/34]
42656 SEQUENCE REVERSER [NO_MEMORY: 647/4/41][STACK: 314/4/9]
43786 SIGNAL MULTIPLIER [JUMP TABLES: 537/5/32]
50370 IMAGE TEST PATTERN 1 [CYCLES: 1239/2/23]
51781 IMAGE TEST PATTERN 2 [CYCLES: 1238/3/25]
52544 EXPOSURE MASK VIEWER [JUMP TABLE: 708/5/40]
53897 HISTOGRAM VIEWER [SIMPLE: 3421/4/18][TWO AT ONCE: 2173/9/59]
60099 SIGNAL WINDOW FILTER [ONE PATH: 557/7/29][TWO PATHS: 479/9/36]
61212 SIGNAL DIVIDER [BALANCED LOOPS: 4654/5/24]
62711 SEQUENCE INDEXER [CALC INDEX: 1182/6/32]
63534 SEQUENCE SORTER [INSERTION SORT: 528/8/82]
70601 STORED IMAGE DECODER [DECREMENT: 2358/5/20][JRO BURSTS: 1360/6/47]

ANTI-TAMPER CERTIFICATION

????? D..$A5R.5SRD.. [RUN-LENGTH: 693/4/33]

TIS-NET DIRECTORY

NEXUS 00.526.6 SEQUENCE MERGER [COMPARE MERGE: 467/6/34]


NEXUS 01.874.8 INTEGER SERIES CALCULATOR [THREE THREADS: 2059/9/94]
NEXUS 02.981.2 SEQUENCE RANGE LIMITER [COMPARE NODES: 430/6/38]
NEXUS 03.176.9 SIGNAL ERROR CORRECTOR [LOW MEMORY: 439/5/18][LOW CYCLES: 237/6/22]
NEXUS 04.340.5 SUBSEQUENCE EXTRACTOR [USING JRO: 119/4/27]
NEXUS 05.647.1 SIGNAL PRESCALER [DIV 128: 2446/6/28]
NEXUS 06.786.0 SIGNAL AVERAGER [DIV 32: 3347/5/39]
NEXUS 07.050.0 SUBMAXIMUM SELECTOR [BRUTE FORCE: 620/8/62]
NEXUS 08.633.9 DECIMAL DECOMPOSER [QUICK DIVIDE: 1143/7/52]
NEXUS 09.904.9 SEQUENCE MODE CALCULATOR [UNROLLED LOOPS: 1268/7/85]
NEXUS 10.656.5 SEQUENCE NORMALIZER [STACK MARKER: 696/5/43]
NEXUS 11.711.2 IMAGE TEST PATTERN 3 [STAGES: 1752/11/82]
NEXUS 12.534.4 IMAGE TEST PATTERN 4 [DISTRIBUTED: 1380/7/45]
NEXUS 13.370.9 SPATIAL PATH VIEWER [JRO ANGLE: 1985/4/42][X&Y PATHS: 1292/9/47]
NEXUS 14.781.3 CHARACTER TERMINAL [INDEXED: 1120/8/77][SCANLINES: 965/9/77]
NEXUS 15.897.9 BACK-REFERENCE REIFIER [JRO SELECTOR: 661/9/42]
NEXUS 16.212.8 DYNAMIC PATTERN DETECTOR [TRIPLETS ONLY: 454/8/44]
NEXUS 17.135.0 SEQUENCE GAP INTERPOLATOR [RECONSTRUCT: 719/5/56]
NEXUS 18.427.7 DECIMAL TO OCTAL CONVERTER [DIV 24,8: 804/4/22]
NEXUS 19.762.9 PROLONGED SEQUENCE SORTER [COUNT VALUES: 1251/6/58]
NEXUS 20.433.1 PRIME FACTOR CALCULATOR [TEST ODDS: 8401/5/57][BRUTE FORCE: 10882/4/48]
NEXUS 21.601.6 SIGNAL EXPONENTIATOR [NO STACK: 1888/6/53]
NEXUS 22.280.8 T20 NODE EMULATOR [JRO OPCODE: 213/6/22]
NEXUS 23.727.9 T31 NODE EMULATOR [STACK INDEX: 429/4/41]
NEXUS 24.511.7 WAVE COLLAPSE SUPERVISOR [COMPARE NODES: 479/7/40]

You might also like