Code: Select all
@RULE Semaphore
by _zM, 2022
Period 1 circuitry rule with builtin crossovers and memory cells.
0: dead
1: Wire
2: Signal head
3: Signal tail
4: Signal body
5: OFF semaphore
6: ON semaphore
Neighbors only count if they meet one of the following criteria:
Diagonally adjacent cells:
a) with two dead neighbors
b) with two live neighbors
Orthogonally adjacent cells:
c) with two dead neighbors
d) with one live neighbor that itself has a dead neighbor
e) with two live neighbors, each with a dead neighbor
Wires can be either ON or OFF and store the state they were in in the previous generation; they can
therefore take on four CA states. Semaphores can also be both ON or OFF; they do not store history.
If a wire is connected to at least two other wires, it acts as wire or a splitter. If all touching
wires agree in their current state, then the wire takes on that state; otherwise it takes on the
inverse of its previous state.
If a wire is connected to only one other wire, its behavior depends on the number of connected
semaphores. If it is connected to none or one, the wire takes on the current state of its only
wire neighbor. Otherwise it acts as a gate, taking as inputs its semaphore neighbors XORed with its
previous state.
A two-input gate is an AND gate.
A three-input gate acts as a complex latch. This is the only place in the entire rule wihere input
configuration matters; the input opposite the output wire (B) is treated separately from the two
other inputs (A and C).
The output also depends on the gate's current state, represented as Q:
B A+C Q'
-------------
0 0 Q
0 1 1
0 2 0
1 0 0
1 1 Q
1 2 !Q
If semaphores are connected only to wire cells, their state toggles whenever the XOR of the current
and past staes of all neighbors is odd; if they are connected to other semaphores their behavior is
undefined.
@TABLE
n_states: 7
neighborhood: Moore
symmetries: rotate4reflect
# All states
var a0 = {0, 1, 2, 3, 4, 5, 6}
var a1 = a0
var a2 = a0
var a3 = a0
var a4 = a0
var a5 = a0
var a6 = a0
var a7 = a0
var a8 = a0
# Live states
var w0 = {1, 2, 3, 4, 5, 6}
var w1 = w0
var w2 = w0
var w3 = w0
var w4 = w0
var w5 = w0
var w6 = w0
var w7 = w0
var w8 = w0
# Wire states
var v0 = {1, 2, 3, 4}
var v1 = v0
var v2 = v0
var v3 = v0
var v4 = v0
var v5 = v0
var v6 = v0
var v7 = v0
var v8 = v0
# Active wire
var l0 = {2, 4}
var l1 = l0
var l2 = l0
var l3 = l0
var l4 = l0
var l5 = l0
var l6 = l0
var l7 = l0
var l8 = l0
# Inactive wire
var d0 = {1, 3}
var d1 = d0
var d2 = d0
var d3 = d0
var d4 = d0
var d5 = d0
var d6 = d0
var d7 = d0
var d8 = d0
# History XORs to 1
var p0 = {2, 3}
var p1 = p0
var p2 = p0
var p3 = p0
var p4 = p0
var p5 = p0
var p6 = p0
var p7 = p0
var p8 = p0
# History XORs to 0
var n0 = {1, 4}
var n1 = n0
var n2 = n0
var n3 = n0
var n4 = n0
var n5 = n0
var n6 = n0
var n7 = n0
var n8 = n0
# Semaphore states
var c0 = {5, 6}
var c1 = c0
var c2 = c0
var c3 = c0
var c4 = c0
var c5 = c0
var c6 = c0
var c7 = c0
var c8 = c0
# 0 neighbors: keep state
# 0
#I 0 0 0 0 0 0 0 0 O
# 1 neighbor:
# wire: copy neighbor
# SEM: XOR
# 1c
#I A w A A? 0 0 0 A? O
d0, 0,d2, 0, 0, 0, 0, 0, 0, 1
d0, 0,l2, 0, 0, 0, 0, 0, 0, 2
l0, 0,d2, 0, 0, 0, 0, 0, 0, 3
l0, 0,l2, 0, 0, 0, 0, 0, 0, 4
c0, 0,n2, 0, 0, 0, 0, 0, 0,c0
5, 0,p2, 0, 0, 0, 0, 0, 0, 6
6, 0,p2, 0, 0, 0, 0, 0, 0, 5
d0,w1,d2,w3,a4, 0, 0, 0,a8, 1
d0,w1,l2,w3,a4, 0, 0, 0,a8, 2
l0,w1,d2,w3,a4, 0, 0, 0,a8, 3
l0,w1,l2,w3,a4, 0, 0, 0,a8, 4
c0,w1,n2,w3,a4, 0, 0, 0,a8,c0
5,w1,p2,w3,a4, 0, 0, 0,a8, 6
6,w1,p2,w3,a4, 0, 0, 0,a8, 5
# 1e
#I w ? 0 0 0 0 0 ? O
d0,d1,a2, 0, 0, 0, 0, 0,a8, 1
d0,l1,a2, 0, 0, 0, 0, 0,a8, 2
l0,d1,a2, 0, 0, 0, 0, 0,a8, 3
l0,l1,a2, 0, 0, 0, 0, 0,a8, 4
c0,n1,a2, 0, 0, 0, 0, 0,a8,c0
5,p1,a2, 0, 0, 0, 0, 0,a8, 6
6,p1,a2, 0, 0, 0, 0, 0,a8, 5
# 2 neighbors:
# wire: copy non-SEM neighbor, else copy both if they agree,
# else copy whichever one prev gen disagrees with
# SEM: XOR
# 2c
#I 0 A? A w A w A A? O
v0, 0, 0, 0,c4, 0,v6, 0, 0,v6
d0, 0, 0, 0,d4, 0,d6, 0, 0, 1
d0, 0, 0, 0,l4, 0,l6, 0, 0, 2
l0, 0, 0, 0,d4, 0,d6, 0, 0, 3
l0, 0, 0, 0,l4, 0,l6, 0, 0, 4
1, 0, 0, 0,v4, 0,v6, 0, 0, 2
2, 0, 0, 0,v4, 0,v6, 0, 0, 4
3, 0, 0, 0,v4, 0,v6, 0, 0, 1
4, 0, 0, 0,v4, 0,v6, 0, 0, 3
c0, 0, 0, 0,p4, 0,p6, 0, 0,c0
c0, 0, 0, 0,n4, 0,n6, 0, 0,c0
5, 0, 0, 0,v4, 0,v6, 0, 0, 6
6, 0, 0, 0,v4, 0,v6, 0, 0, 5
v0, 0,a2,w3,c4,w5,v6,w7,a8,v6
d0, 0,a2,w3,d4,w5,d6,w7,a8, 1
d0, 0,a2,w3,l4,w5,l6,w7,a8, 2
l0, 0,a2,w3,d4,w5,d6,w7,a8, 3
l0, 0,a2,w3,l4,w5,l6,w7,a8, 4
1, 0,a2,w3,v4,w5,v6,w7,a8, 2
2, 0,a2,w3,v4,w5,v6,w7,a8, 4
3, 0,a2,w3,v4,w5,v6,w7,a8, 1
4, 0,a2,w3,v4,w5,v6,w7,a8, 3
c0, 0,a2,w3,p4,w5,p6,w7,a8,c0
c0, 0,a2,w3,n4,w5,n6,w7,a8,c0
5, 0,a2,w3,v4,w5,v6,w7,a8, 6
6, 0,a2,w3,v4,w5,v6,w7,a8, 5
# 2e
#I 0 ? w 0 w ? 0 0 O
v0, 0,a2,c3, 0,v5,a6, 0, 0,v5
d0, 0,a2,d3, 0,d5,a6, 0, 0, 1
d0, 0,a2,l3, 0,l5,a6, 0, 0, 2
l0, 0,a2,d3, 0,d5,a6, 0, 0, 3
l0, 0,a2,l3, 0,l5,a6, 0, 0, 4
1, 0,a2,v3, 0,v5,a6, 0, 0, 2
2, 0,a2,v3, 0,v5,a6, 0, 0, 4
3, 0,a2,v3, 0,v5,a6, 0, 0, 1
4, 0,a2,v3, 0,v5,a6, 0, 0, 3
c0, 0,a2,p3, 0,p5,a6, 0, 0,c0
c0, 0,a2,n3, 0,n5,a6, 0, 0,c0
5, 0,a2,v3, 0,v5,a6, 0, 0, 6
6, 0,a2,v3, 0,v5,a6, 0, 0, 5
# 2k
#I 0 ? w A !AB w !AB<-? O
v0, 0,a2,c3,a4, 0,v6, 0, 0,v6
v0, 0,a2,v3,a4, 0,c6, 0, 0,v3
d0, 0,a2,d3,a4, 0,d6, 0, 0, 1
d0, 0,a2,l3,a4, 0,l6, 0, 0, 2
l0, 0,a2,d3,a4, 0,d6, 0, 0, 3
l0, 0,a2,l3,a4, 0,l6, 0, 0, 4
1, 0,a2,v3,a4, 0,v6, 0, 0, 2
2, 0,a2,v3,a4, 0,v6, 0, 0, 4
3, 0,a2,v3,a4, 0,v6, 0, 0, 1
4, 0,a2,v3,a4, 0,v6, 0, 0, 3
c0, 0,a2,p3,a4, 0,p6, 0, 0,c0
c0, 0,a2,n3,a4, 0,n6, 0, 0,c0
5, 0,a2,v3,a4, 0,v6, 0, 0, 6
6, 0,a2,v3,a4, 0,v6, 0, 0, 5
v0, 0,a2,c3, 0,w5,v6,w7,a8,v6
v0, 0,a2,v3, 0,w5,c6,w7,a8,v3
d0, 0,a2,d3, 0,w5,d6,w7,a8, 1
d0, 0,a2,l3, 0,w5,l6,w7,a8, 2
l0, 0,a2,d3, 0,w5,d6,w7,a8, 3
l0, 0,a2,l3, 0,w5,l6,w7,a8, 4
1, 0,a2,v3, 0,w5,v6,w7,a8, 2
2, 0,a2,v3, 0,w5,v6,w7,a8, 4
3, 0,a2,v3, 0,w5,v6,w7,a8, 1
4, 0,a2,v3, 0,w5,v6,w7,a8, 3
c0, 0,a2,p3, 0,w5,p6,w7,a8,c0
c0, 0,a2,n3, 0,w5,n6,w7,a8,c0
5, 0,a2,v3, 0,w5,v6,w7,a8, 6
6, 0,a2,v3, 0,w5,v6,w7,a8, 5
# 2i
#I 0 ? w ? 0 ? w ? O
v0, 0,a2,c3,a4, 0,a6,v7,a8,v7
d0, 0,a2,d3,a4, 0,a6,d7,a8, 1
d0, 0,a2,l3,a4, 0,a6,l7,a8, 2
l0, 0,a2,d3,a4, 0,a6,d7,a8, 3
l0, 0,a2,l3,a4, 0,a6,l7,a8, 4
1, 0,a2,v3,a4, 0,a6,v7,a8, 2
2, 0,a2,v3,a4, 0,a6,v7,a8, 4
3, 0,a2,v3,a4, 0,a6,v7,a8, 1
4, 0,a2,v3,a4, 0,a6,v7,a8, 3
c0, 0,a2,p3,a4, 0,a6,p7,a8,c0
c0, 0,a2,n3,a4, 0,a6,n7,a8,c0
5, 0,a2,v3,a4, 0,a6,v7,a8, 6
6, 0,a2,v3,a4, 0,a6,v7,a8, 5
# 2n
#I A w A AXB B w B AxB O
v0, 0,c2, 0, 0, 0,v6, 0, 0,v6
d0, 0,d2, 0, 0, 0,d6, 0, 0, 1
d0, 0,l2, 0, 0, 0,l6, 0, 0, 2
l0, 0,d2, 0, 0, 0,d6, 0, 0, 3
l0, 0,l2, 0, 0, 0,l6, 0, 0, 4
1, 0,v2, 0, 0, 0,v6, 0, 0, 2
2, 0,v2, 0, 0, 0,v6, 0, 0, 4
3, 0,v2, 0, 0, 0,v6, 0, 0, 1
4, 0,v2, 0, 0, 0,v6, 0, 0, 3
c0, 0,p2, 0, 0, 0,p6, 0, 0,c0
c0, 0,n2, 0, 0, 0,n6, 0, 0,c0
5, 0,v2, 0, 0, 0,v6, 0, 0, 6
6, 0,v2, 0, 0, 0,v6, 0, 0, 5
v0,w1,c2,w3,a4, 0,v6, 0,a8,v6
v0,w1,v2,w3,a4, 0,c6, 0,a8,v2
d0,w1,d2,w3,a4, 0,d6, 0,a8, 1
d0,w1,l2,w3,a4, 0,l6, 0,a8, 2
l0,w1,d2,w3,a4, 0,d6, 0,a8, 3
l0,w1,l2,w3,a4, 0,l6, 0,a8, 4
1,w1,v2,w3,a4, 0,v6, 0,a8, 2
2,w1,v2,w3,a4, 0,v6, 0,a8, 4
3,w1,v2,w3,a4, 0,v6, 0,a8, 1
4,w1,v2,w3,a4, 0,v6, 0,a8, 3
c0,w1,p2,w3,a4, 0,p6, 0,a8,c0
c0,w1,n2,w3,a4, 0,n6, 0,a8,c0
5,w1,v2,w3,a4, 0,v6, 0,a8, 6
6,w1,v2,w3,a4, 0,v6, 0,a8, 5
v0,w1,c2,w3, 0,w5,v6,w7, 0,v6
d0,w1,d2,w3, 0,w5,d6,w7, 0, 1
d0,w1,l2,w3, 0,w5,l6,w7, 0, 2
l0,w1,d2,w3, 0,w5,d6,w7, 0, 3
l0,w1,l2,w3, 0,w5,l6,w7, 0, 4
1,w1,v2,w3, 0,w5,v6,w7, 0, 2
2,w1,v2,w3, 0,w5,v6,w7, 0, 4
3,w1,v2,w3, 0,w5,v6,w7, 0, 1
4,w1,v2,w3, 0,w5,v6,w7, 0, 3
c0,w1,p2,w3, 0,w5,p6,w7, 0,c0
c0,w1,n2,w3, 0,w5,n6,w7, 0,c0
5,w1,v2,w3, 0,w5,v6,w7, 0, 6
6,w1,v2,w3, 0,w5,v6,w7, 0, 5
# 3 neighbors:
# wire:
# no sem -> splitter
# 1 sem -> splitter
# 2 sem -> AND (sems XOR out) gate
# 3 sem -> unused
# sem: XOR
# 3c
#I A w A W A w A 0 O
# 0 sems
d0, 0,d2, 0,d4, 0,d6, 0, 0, 1
d0, 0,l2, 0,l4, 0,l6, 0, 0, 2
l0, 0,d2, 0,d4, 0,d6, 0, 0, 3
l0, 0,l2, 0,l4, 0,l6, 0, 0, 4
1, 0,v2, 0,v4, 0,v6, 0, 0, 2
2, 0,v2, 0,v4, 0,v6, 0, 0, 4
3, 0,v2, 0,v4, 0,v6, 0, 0, 1
4, 0,v2, 0,v4, 0,v6, 0, 0, 3
c0, 0,p2, 0,n4, 0,p6, 0, 0,c0
c0, 0,p2, 0,p4, 0,n6, 0, 0,c0
c0, 0,n2, 0,n4, 0,n6, 0, 0,c0
5, 0,v2, 0,v4, 0,v6, 0, 0, 6
6, 0,v2, 0,v4, 0,v6, 0, 0, 5
d0,w1,d2,w3,d4,w5,d6,w7, 0, 1
d0,w1,l2,w3,l4,w5,l6,w7, 0, 2
l0,w1,d2,w3,d4,w5,d6,w7, 0, 3
l0,w1,l2,w3,l4,w5,l6,w7, 0, 4
1,w1,v2,w3,v4,w5,v6,w7, 0, 2
2,w1,v2,w3,v4,w5,v6,w7, 0, 4
3,w1,v2,w3,v4,w5,v6,w7, 0, 1
4,w1,v2,w3,v4,w5,v6,w7, 0, 3
c0,w1,p2,w3,n4,w5,p6,w7, 0,c0
c0,w1,p2,w3,p4,w5,n6,w7, 0,c0
c0,w1,n2,w3,n4,w5,n6,w7, 0,c0
5,w1,v2,w3,v4,w5,v6,w7, 0, 6
6,w1,v2,w3,v4,w5,v6,w7, 0, 5
# 1 sem
1, 0,d2, 0,d4, 0,c6, 0, 0, 1
2, 0,d2, 0,d4, 0,c6, 0, 0, 3
3, 0,l2, 0,l4, 0,c6, 0, 0, 2
4, 0,l2, 0,l4, 0,c6, 0, 0, 4
1, 0,v2, 0,v4, 0,c6, 0, 0, 2
2, 0,v2, 0,v4, 0,c6, 0, 0, 4
3, 0,v2, 0,v4, 0,c6, 0, 0, 1
4, 0,v2, 0,v4, 0,c6, 0, 0, 3
1, 0,d2, 0,c4, 0,d6, 0, 0, 1
2, 0,d2, 0,c4, 0,d6, 0, 0, 3
3, 0,l2, 0,c4, 0,l6, 0, 0, 2
4, 0,l2, 0,c4, 0,l6, 0, 0, 4
1, 0,v2, 0,c4, 0,v6, 0, 0, 2
2, 0,v2, 0,c4, 0,v6, 0, 0, 4
3, 0,v2, 0,c4, 0,v6, 0, 0, 1
4, 0,v2, 0,c4, 0,v6, 0, 0, 3
1,w1,d2,w3,d4,w5,c6,w7, 0, 1
2,w1,d2,w3,d4,w5,c6,w7, 0, 3
3,w1,l2,w3,l4,w5,c6,w7, 0, 2
4,w1,l2,w3,l4,w5,c6,w7, 0, 4
1,w1,v2,w3,v4,w5,c6,w7, 0, 2
2,w1,v2,w3,v4,w5,c6,w7, 0, 4
3,w1,v2,w3,v4,w5,c6,w7, 0, 1
4,w1,v2,w3,v4,w5,c6,w7, 0, 3
1,w1,d2,w3,c4,w5,d6,w7, 0, 1
2,w1,d2,w3,c4,w5,d6,w7, 0, 3
3,w1,l2,w3,c4,w5,l6,w7, 0, 2
4,w1,l2,w3,c4,w5,l6,w7, 0, 4
1,w1,v2,w3,c4,w5,v6,w7, 0, 2
2,w1,v2,w3,c4,w5,v6,w7, 0, 4
3,w1,v2,w3,c4,w5,v6,w7, 0, 1
4,w1,v2,w3,c4,w5,v6,w7, 0, 3
# 2 sems
1, 0, 6, 0, 6, 0,v6, 0, 0, 2
2, 0, 6, 0, 6, 0,v6, 0, 0, 4
3, 0, 5, 0, 5, 0,v6, 0, 0, 2
4, 0, 5, 0, 5, 0,v6, 0, 0, 4
d0, 0,c2, 0,c4, 0,v6, 0, 0, 1
l0, 0,c2, 0,c4, 0,v6, 0, 0, 3
1, 0, 6, 0,v4, 0, 6, 0, 0, 2
2, 0, 6, 0,v4, 0, 6, 0, 0, 4
3, 0, 5, 0,v4, 0, 5, 0, 0, 2
4, 0, 5, 0,v4, 0, 5, 0, 0, 4
d0, 0,c2, 0,v4, 0,c6, 0, 0, 1
l0, 0,c2, 0,v4, 0,c6, 0, 0, 3
1,w1, 6,w3, 6,w5,v6,w7, 0, 2
2,w1, 6,w3, 6,w5,v6,w7, 0, 4
3,w1, 5,w3, 5,w5,v6,w7, 0, 2
4,w1, 5,w3, 5,w5,v6,w7, 0, 4
d0,w1,c2,w3,c4,w5,v6,w7, 0, 1
l0,w1,c2,w3,c4,w5,v6,w7, 0, 3
1,w1, 6,w3,v4,w5, 6,w7, 0, 2
2,w1, 6,w3,v4,w5, 6,w7, 0, 4
3,w1, 5,w3,v4,w5, 5,w7, 0, 2
4,w1, 5,w3,v4,w5, 5,w7, 0, 4
d0,w1,c2,w3,v4,w5,c6,w7, 0, 1
l0,w1,c2,w3,v4,w5,c6,w7, 0, 3
# 3 sems
# 3e
#I 0 ? w 0 W 0 w ? O
# 0 sems
d0, 0,a2,d3, 0,d5, 0,d7,a8, 1
d0, 0,a2,l3, 0,l5, 0,l7,a8, 2
l0, 0,a2,d3, 0,d5, 0,d7,a8, 3
l0, 0,a2,l3, 0,l5, 0,l7,a8, 4
1, 0,a2,v3, 0,v5, 0,v7,a8, 2
2, 0,a2,v3, 0,v5, 0,v7,a8, 4
3, 0,a2,v3, 0,v5, 0,v7,a8, 1
4, 0,a2,v3, 0,v5, 0,v7,a8, 3
c0, 0,a2,p3, 0,n5, 0,p7,a8,c0
c0, 0,a2,p3, 0,p5, 0,n7,a8,c0
c0, 0,a2,n3, 0,n5, 0,n7,a8,c0
5, 0,a2,v3, 0,v5, 0,v7,a8, 6
6, 0,a2,v3, 0,v5, 0,v7,a8, 5
# 1 sem
1, 0,a2,d3, 0,d5, 0,c7,a8, 1
2, 0,a2,d3, 0,d5, 0,c7,a8, 3
3, 0,a2,l3, 0,l5, 0,c7,a8, 2
4, 0,a2,l3, 0,l5, 0,c7,a8, 4
1, 0,a2,v3, 0,v5, 0,c7,a8, 2
2, 0,a2,v3, 0,v5, 0,c7,a8, 4
3, 0,a2,v3, 0,v5, 0,c7,a8, 1
4, 0,a2,v3, 0,v5, 0,c7,a8, 3
1, 0,a2,d3, 0,c5, 0,d7,a8, 1
2, 0,a2,d3, 0,c5, 0,d7,a8, 3
3, 0,a2,l3, 0,c5, 0,l7,a8, 2
4, 0,a2,l3, 0,c5, 0,l7,a8, 4
1, 0,a2,v3, 0,c5, 0,v7,a8, 2
2, 0,a2,v3, 0,c5, 0,v7,a8, 4
3, 0,a2,v3, 0,c5, 0,v7,a8, 1
4, 0,a2,v3, 0,c5, 0,v7,a8, 3
# 2 sems
1, 0,a2, 6, 0, 6, 0,v7,a8, 2
2, 0,a2, 6, 0, 6, 0,v7,a8, 4
3, 0,a2, 5, 0, 5, 0,v7,a8, 2
4, 0,a2, 5, 0, 5, 0,v7,a8, 4
d0, 0,a2,c3, 0,c5, 0,v7,a8, 1
l0, 0,a2,c3, 0,c5, 0,v7,a8, 3
1, 0,a2, 6, 0,v5, 0, 6,a8, 2
2, 0,a2, 6, 0,v5, 0, 6,a8, 4
3, 0,a2, 5, 0,v5, 0, 5,a8, 2
4, 0,a2, 5, 0,v5, 0, 5,a8, 4
d0, 0,a2,c3, 0,v5, 0,c7,a8, 1
l0, 0,a2,c3, 0,v5, 0,c7,a8, 3
# 3 sems
# 3k
#I w !A? A w A !A? w 0 O
# 0 sems
d0,d1,a2, 0,d4, 0,a6,d7, 0, 1
d0,l1,a2, 0,l4, 0,a6,l7, 0, 2
l0,d1,a2, 0,d4, 0,a6,d7, 0, 3
l0,l1,a2, 0,l4, 0,a6,l7, 0, 4
1,v1,a2, 0,v4, 0,a6,v7, 0, 2
2,v1,a2, 0,v4, 0,a6,v7, 0, 4
3,v1,a2, 0,v4, 0,a6,v7, 0, 1
4,v1,a2, 0,v4, 0,a6,v7, 0, 3
c0,p1,a2, 0,n4, 0,a6,p7, 0,c0
c0,p1,a2, 0,p4, 0,a6,n7, 0,c0
c0,n1,a2, 0,n4, 0,a6,n7, 0,c0
5,v1,a2, 0,v4, 0,a6,v7, 0, 6
6,v1,a2, 0,v4, 0,a6,v7, 0, 5
d0,d1, 0,w3,d4,w5, 0,d7, 0, 1
d0,l1, 0,w3,l4,w5, 0,l7, 0, 2
l0,d1, 0,w3,d4,w5, 0,d7, 0, 3
l0,l1, 0,w3,l4,w5, 0,l7, 0, 4
1,v1, 0,w3,v4,w5, 0,v7, 0, 2
2,v1, 0,w3,v4,w5, 0,v7, 0, 4
3,v1, 0,w3,v4,w5, 0,v7, 0, 1
4,v1, 0,w3,v4,w5, 0,v7, 0, 3
c0,p1, 0,w3,n4,w5, 0,p7, 0,c0
c0,p1, 0,w3,p4,w5, 0,n7, 0,c0
c0,n1, 0,w3,n4,w5, 0,n7, 0,c0
5,v1, 0,w3,v4,w5, 0,v7, 0, 6
6,v1, 0,w3,v4,w5, 0,v7, 0, 5
# 1 sem
1,d1,a2, 0,d4, 0,a6,c7, 0, 1
2,d1,a2, 0,d4, 0,a6,c7, 0, 3
3,l1,a2, 0,l4, 0,a6,c7, 0, 2
4,l1,a2, 0,l4, 0,a6,c7, 0, 4
1,v1,a2, 0,v4, 0,a6,c7, 0, 2
2,v1,a2, 0,v4, 0,a6,c7, 0, 4
3,v1,a2, 0,v4, 0,a6,c7, 0, 1
4,v1,a2, 0,v4, 0,a6,c7, 0, 3
1,d1,a2, 0,c6, 0,a6,d7, 0, 1
2,d1,a2, 0,c6, 0,a6,d7, 0, 3
3,l1,a2, 0,c6, 0,a6,l7, 0, 2
4,l1,a2, 0,c6, 0,a6,l7, 0, 4
1,v1,a2, 0,c4, 0,a6,v7, 0, 2
2,v1,a2, 0,c4, 0,a6,v7, 0, 4
3,v1,a2, 0,c4, 0,a6,v7, 0, 1
4,v1,a2, 0,c4, 0,a6,v7, 0, 3
1,d1, 0,w3,d4,w5, 0,c7, 0, 1
2,d1, 0,w3,d4,w5, 0,c7, 0, 3
3,l1, 0,w3,l4,w5, 0,c7, 0, 2
4,l1, 0,w3,l4,w5, 0,c7, 0, 4
1,v1, 0,w3,v4,w5, 0,c7, 0, 2
2,v1, 0,w3,v4,w5, 0,c7, 0, 4
3,v1, 0,w3,v4,w5, 0,c7, 0, 1
4,v1, 0,w3,v4,w5, 0,c7, 0, 3
1,d1, 0,w3,c6,w5, 0,d7, 0, 1
2,d1, 0,w3,c6,w5, 0,d7, 0, 3
3,l1, 0,w3,c6,w5, 0,l7, 0, 2
4,l1, 0,w3,c6,w5, 0,l7, 0, 4
1,v1, 0,w3,c4,w5, 0,v7, 0, 2
2,v1, 0,w3,c4,w5, 0,v7, 0, 4
3,v1, 0,w3,c4,w5, 0,v7, 0, 1
4,v1, 0,w3,c4,w5, 0,v7, 0, 3
# 2 sems
1, 6,a2, 0, 6, 0,a6,v7, 0, 2
2, 6,a2, 0, 6, 0,a6,v7, 0, 4
3, 5,a2, 0, 5, 0,a6,v7, 0, 2
4, 5,a2, 0, 5, 0,a6,v7, 0, 4
d0,c1,a2, 0,c4, 0,a6,v7, 0, 1
l0,c1,a2, 0,c4, 0,a6,v7, 0, 3
1, 6,a2, 0,v4, 0,a6, 6, 0, 2
2, 6,a2, 0,v4, 0,a6, 6, 0, 4
3, 5,a2, 0,v4, 0,a6, 5, 0, 2
4, 5,a2, 0,v4, 0,a6, 5, 0, 4
d0,c1,a2, 0,v4, 0,a6,c7, 0, 1
l0,c1,a2, 0,v4, 0,a6,c7, 0, 3
1, 6, 0,w3, 6,w5, 0,v7, 0, 2
2, 6, 0,w3, 6,w5, 0,v7, 0, 4
3, 5, 0,w3, 5,w5, 0,v7, 0, 2
4, 5, 0,w3, 5,w5, 0,v7, 0, 4
d0,c1, 0,w3,c4,w5, 0,v7, 0, 1
l0,c1, 0,w3,c4,w5, 0,v7, 0, 3
1, 6, 0,w3,v4,w5, 0, 6, 0, 2
2, 6, 0,w3,v4,w5, 0, 6, 0, 4
3, 5, 0,w3,v4,w5, 0, 5, 0, 2
4, 5, 0,w3,v4,w5, 0, 5, 0, 4
d0,c1, 0,w3,v4,w5, 0,c7, 0, 1
l0,c1, 0,w3,v4,w5, 0,c7, 0, 3
# 3y
#I A w A w A !A? W !A? O
# 0 sems
d0, 0,d2, 0,d4, 0,a6,d7,a8, 1
d0, 0,l2, 0,l4, 0,a6,l7,a8, 2
l0, 0,d2, 0,d4, 0,a6,d7,a8, 3
l0, 0,l2, 0,l4, 0,a6,l7,a8, 4
1, 0,v2, 0,v4, 0,a6,v7,a8, 2
2, 0,v2, 0,v4, 0,a6,v7,a8, 4
3, 0,v2, 0,v4, 0,a6,v7,a8, 1
4, 0,v2, 0,v4, 0,a6,v7,a8, 3
c0, 0,p2, 0,n4, 0,a6,p7,a8,c0
c0, 0,p2, 0,p4, 0,a6,n7,a8,c0
c0, 0,n2, 0,n4, 0,a6,n7,a8,c0
5, 0,v2, 0,v4, 0,a6,v7,a8, 6
6, 0,v2, 0,v4, 0,a6,v7,a8, 5
d0,w1,d2,w3,d4,w5, 0,d7, 0, 1
d0,w1,l2,w3,l4,w5, 0,l7, 0, 2
l0,w1,d2,w3,d4,w5, 0,d7, 0, 3
l0,w1,l2,w3,l4,w5, 0,l7, 0, 4
1,w1,v2,w3,v4,w5, 0,v7, 0, 2
2,w1,v2,w3,v4,w5, 0,v7, 0, 4
3,w1,v2,w3,v4,w5, 0,v7, 0, 1
4,w1,v2,w3,v4,w5, 0,v7, 0, 3
c0,w1,p2,w3,n4,w5, 0,p7, 0,c0
c0,w1,p2,w3,p4,w5, 0,n7, 0,c0
c0,w1,n2,w3,n4,w5, 0,n7, 0,c0
5,w1,v2,w3,v4,w5, 0,v7, 0, 6
6,w1,v2,w3,v4,w5, 0,v7, 0, 5
# 1 sem
1, 0,d2, 0,d4, 0,a6,c7,a8, 1
2, 0,d2, 0,d4, 0,a6,c7,a8, 3
3, 0,l2, 0,l4, 0,a6,c7,a8, 2
4, 0,l2, 0,l4, 0,a6,c7,a8, 4
1, 0,v2, 0,v4, 0,a6,c7,a8, 2
2, 0,v2, 0,v4, 0,a6,c7,a8, 4
3, 0,v2, 0,v4, 0,a6,c7,a8, 1
4, 0,v2, 0,v4, 0,a6,c7,a8, 3
1, 0,d2, 0,c4, 0,a6,d7,a8, 1
2, 0,d2, 0,c4, 0,a6,d7,a8, 3
3, 0,l2, 0,c4, 0,a6,l7,a8, 2
4, 0,l2, 0,c4, 0,a6,l7,a8, 4
1, 0,v2, 0,c4, 0,a6,v7,a8, 2
2, 0,v2, 0,c4, 0,a6,v7,a8, 4
3, 0,v2, 0,c4, 0,a6,v7,a8, 1
4, 0,v2, 0,c4, 0,a6,v7,a8, 3
1,w1,d2,w3,d4,w5, 0,c7, 0, 1
2,w1,d2,w3,d4,w5, 0,c7, 0, 3
3,w1,l2,w3,l4,w5, 0,c7, 0, 2
4,w1,l2,w3,l4,w5, 0,c7, 0, 4
1,w1,v2,w3,v4,w5, 0,c7, 0, 2
2,w1,v2,w3,v4,w5, 0,c7, 0, 4
3,w1,v2,w3,v4,w5, 0,c7, 0, 1
4,w1,v2,w3,v4,w5, 0,c7, 0, 3
1,w1,d2,w3,c4,w5, 0,d7, 0, 1
2,w1,d2,w3,c4,w5, 0,d7, 0, 3
3,w1,l2,w3,c4,w5, 0,l7, 0, 2
4,w1,l2,w3,c4,w5, 0,l7, 0, 4
1,w1,v2,w3,c4,w5, 0,v7, 0, 2
2,w1,v2,w3,c4,w5, 0,v7, 0, 4
3,w1,v2,w3,c4,w5, 0,v7, 0, 1
4,w1,v2,w3,c4,w5, 0,v7, 0, 3
# 2 sems
1, 0, 6, 0, 6, 0,a6,v7,a8, 2
2, 0, 6, 0, 6, 0,a6,v7,a8, 4
3, 0, 5, 0, 5, 0,a6,v7,a8, 2
4, 0, 5, 0, 5, 0,a6,v7,a8, 4
d0, 0,c2, 0,c4, 0,a6,v7,a8, 1
l0, 0,c2, 0,c4, 0,a6,v7,a8, 3
1, 0, 6, 0,v4, 0,a6, 6,a8, 2
2, 0, 6, 0,v4, 0,a6, 6,a8, 4
3, 0, 5, 0,v4, 0,a6, 5,a8, 2
4, 0, 5, 0,v4, 0,a6, 5,a8, 4
d0, 0,c2, 0,v4, 0,a6,c7,a8, 1
l0, 0,c2, 0,v4, 0,a6,c7,a8, 3
1,w1, 6,w3, 6,w5, 0,v7, 0, 2
2,w1, 6,w3, 6,w5, 0,v7, 0, 4
3,w1, 5,w3, 5,w5, 0,v7, 0, 2
4,w1, 5,w3, 5,w5, 0,v7, 0, 4
d0,w1,c2,w3,c4,w5, 0,v7, 0, 1
l0,w1,c2,w3,c4,w5, 0,v7, 0, 3
1,w1, 6,w3,v4,w5, 0, 6, 0, 2
2,w1, 6,w3,v4,w5, 0, 6, 0, 4
3,w1, 5,w3,v4,w5, 0, 5, 0, 2
4,w1, 5,w3,v4,w5, 0, 5, 0, 4
d0,w1,c2,w3,v4,w5, 0,c7, 0, 1
l0,w1,c2,w3,v4,w5, 0,c7, 0, 3
# 4 neighbors:
# wire:
# no sem -> splitter
# 1 sem -> splitter
# 2 sems -> splitter
# 3 sems -> E latch + T latch + ...
# 4 sems -> unused
# sem: XOR
# 3 sems:
# B A+C Q'
# 0 0 Q
# 0 1 1
# 0 2 0
# 1 0 0
# 1 1 Q
# 1 2 !Q
# E latch: Hold one of the outer inputs low
# T latch: Hold one outer and the middle input high
# 4c
#I A w A w A w A w O
# 0 sems
d0, 0,d2, 0,d4, 0,d6, 0,d8, 1
d0, 0,l2, 0,l4, 0,l6, 0,l8, 2
l0, 0,d2, 0,d4, 0,d6, 0,d8, 3
l0, 0,l2, 0,l4, 0,l6, 0,l8, 4
1, 0,v2, 0,v4, 0,v6, 0,v8, 2
2, 0,v2, 0,v4, 0,v6, 0,v8, 4
3, 0,v2, 0,v4, 0,v6, 0,v8, 1
4, 0,v2, 0,v4, 0,v6, 0,v8, 3
c0, 0,p2, 0,p4, 0,p6, 0,p8,c0
c0, 0,p2, 0,n4, 0,p6, 0,n8,c0
c0, 0,p2, 0,p4, 0,n6, 0,n8,c0
c0, 0,n2, 0,n4, 0,n6, 0,n8,c0
5, 0,v2, 0,v4, 0,v6, 0,v8, 6
6, 0,v2, 0,v4, 0,v6, 0,v8, 5
d0,w1,d2,w3,d4,w5,d6,w7,d8, 1
d0,w1,l2,w3,l4,w5,l6,w7,l8, 2
l0,w1,d2,w3,d4,w5,d6,w7,d8, 3
l0,w1,l2,w3,l4,w5,l6,w7,l8, 4
1,w1,v2,w3,v4,w5,v6,w7,v8, 2
2,w1,v2,w3,v4,w5,v6,w7,v8, 4
3,w1,v2,w3,v4,w5,v6,w7,v8, 1
4,w1,v2,w3,v4,w5,v6,w7,v8, 3
c0,w1,p2,w3,p4,w5,p6,w7,p8,c0
c0,w1,p2,w3,n4,w5,p6,w7,n8,c0
c0,w1,p2,w3,p4,w5,n6,w7,n8,c0
c0,w1,n2,w3,n4,w5,n6,w7,n8,c0
5,w1,v2,w3,v4,w5,v6,w7,v8, 6
6,w1,v2,w3,v4,w5,v6,w7,v8, 5
# 1 sem
d0, 0,d2, 0,d4, 0,d6, 0,c8, 1
d0, 0,l2, 0,l4, 0,l6, 0,c8, 2
l0, 0,d2, 0,d4, 0,d6, 0,c8, 3
l0, 0,l2, 0,l4, 0,l6, 0,c8, 4
1, 0,v2, 0,v4, 0,v6, 0,c8, 2
2, 0,v2, 0,v4, 0,v6, 0,c8, 4
3, 0,v2, 0,v4, 0,v6, 0,c8, 1
4, 0,v2, 0,v4, 0,v6, 0,c8, 3
d0,w1,d2,w3,d4,w5,d6,w7,c8, 1
d0,w1,l2,w3,l4,w5,l6,w7,c8, 2
l0,w1,d2,w3,d4,w5,d6,w7,c8, 3
l0,w1,l2,w3,l4,w5,l6,w7,c8, 4
1,w1,v2,w3,v4,w5,v6,w7,c8, 2
2,w1,v2,w3,v4,w5,v6,w7,c8, 4
3,w1,v2,w3,v4,w5,v6,w7,c8, 1
4,w1,v2,w3,v4,w5,v6,w7,c8, 3
# 2 sems
1, 0,d2, 0,d4, 0,c6, 0,c8, 1
2, 0,d2, 0,d4, 0,c6, 0,c8, 3
3, 0,l2, 0,l4, 0,c6, 0,c8, 2
4, 0,l2, 0,l4, 0,c6, 0,c8, 4
1, 0,v2, 0,v4, 0,c6, 0,c8, 2
2, 0,v2, 0,v4, 0,c6, 0,c8, 4
3, 0,v2, 0,v4, 0,c6, 0,c8, 1
4, 0,v2, 0,v4, 0,c6, 0,c8, 3
1, 0,d2, 0,c4, 0,d6, 0,c8, 1
2, 0,d2, 0,c4, 0,d6, 0,c8, 3
3, 0,l2, 0,c4, 0,l6, 0,c8, 2
4, 0,l2, 0,c4, 0,l6, 0,c8, 4
1, 0,v2, 0,c4, 0,v6, 0,c8, 2
2, 0,v2, 0,c4, 0,v6, 0,c8, 4
3, 0,v2, 0,c4, 0,v6, 0,c8, 1
4, 0,v2, 0,c4, 0,v6, 0,c8, 3
1,w1,d2,w3,d4,w5,c6,w7,c8, 1
2,w1,d2,w3,d4,w5,c6,w7,c8, 3
3,w1,l2,w3,l4,w5,c6,w7,c8, 2
4,w1,l2,w3,l4,w5,c6,w7,c8, 4
1,w1,v2,w3,v4,w5,c6,w7,c8, 2
2,w1,v2,w3,v4,w5,c6,w7,c8, 4
3,w1,v2,w3,v4,w5,c6,w7,c8, 1
4,w1,v2,w3,v4,w5,c6,w7,c8, 3
1,w1,d2,w3,c4,w5,d6,w7,c8, 1
2,w1,d2,w3,c4,w5,d6,w7,c8, 3
3,w1,l2,w3,c4,w5,l6,w7,c8, 2
4,w1,l2,w3,c4,w5,l6,w7,c8, 4
1,w1,v2,w3,c4,w5,v6,w7,c8, 2
2,w1,v2,w3,c4,w5,v6,w7,c8, 4
3,w1,v2,w3,c4,w5,v6,w7,c8, 1
4,w1,v2,w3,c4,w5,v6,w7,c8, 3
# 3 sems
1, 0,c2, 0,c2, 0, 6, 0,v8, 2
1, 0,c2, 0,c4, 0,c6, 0,v8, 1
3, 0,c2, 0,c2, 0, 5, 0,v8, 2
3, 0,c2, 0,c4, 0,c6, 0,v8, 1
2, 0, 5, 0, 5, 0,c6, 0,v8, 4
2, 0, 5, 0,c4, 0, 6, 0,v8, 4
2, 0,c2, 0,c4, 0,c6, 0,v8, 3
4, 0, 6, 0, 6, 0,c6, 0,v8, 4
4, 0, 6, 0,c4, 0, 5, 0,v8, 4
4, 0,c2, 0,c4, 0,c6, 0,v8, 3
1,w1,c2,w3,c2,w5, 6,w7,v8, 2
1,w1,c2,w3,c4,w5,c6,w7,v8, 1
3,w1,c2,w3,c2,w5, 5,w7,v8, 2
3,w1,c2,w3,c4,w5,c6,w7,v8, 1
2,w1, 5,w3, 5,w5,c6,w7,v8, 4
2,w1, 5,w3,c4,w5, 6,w7,v8, 4
2,w1,c2,w3,c4,w5,c6,w7,v8, 3
4,w1, 6,w3, 6,w5,c6,w7,v8, 4
4,w1, 6,w3,c4,w5, 5,w7,v8, 4
4,w1,c2,w3,c4,w5,c6,w7,v8, 3
# 4 sems
# 4e
#I w 0 w 0 w 0 w 0 O
# 0 sems
d0,d1, 0,d3, 0,d5, 0,d7, 0, 1
d0,l1, 0,l3, 0,l5, 0,l7, 0, 2
l0,d1, 0,d3, 0,d5, 0,d7, 0, 3
l0,l1, 0,l3, 0,l5, 0,l7, 0, 4
1,v1, 0,v3, 0,v5, 0,v7, 0, 2
2,v1, 0,v3, 0,v5, 0,v7, 0, 4
3,v1, 0,v3, 0,v5, 0,v7, 0, 1
4,v1, 0,v3, 0,v5, 0,v7, 0, 3
c0,p1, 0,p3, 0,p5, 0,p7, 0,c0
c0,p1, 0,n3, 0,p5, 0,n7, 0,c0
c0,p1, 0,p3, 0,n5, 0,n7, 0,c0
c0,n1, 0,n3, 0,n5, 0,n7, 0,c0
5,v1, 0,v3, 0,v5, 0,v7, 0, 6
6,v1, 0,v3, 0,v5, 0,v7, 0, 5
# 1 sem
d0,d1, 0,d3, 0,d5, 0,c7, 0, 1
d0,l1, 0,l3, 0,l5, 0,c7, 0, 2
l0,d1, 0,d3, 0,d5, 0,c7, 0, 3
l0,l1, 0,l3, 0,l5, 0,c7, 0, 4
1,v1, 0,v3, 0,v5, 0,c7, 0, 2
2,v1, 0,v3, 0,v5, 0,c7, 0, 4
3,v1, 0,v3, 0,v5, 0,c7, 0, 1
4,v1, 0,v3, 0,v5, 0,c7, 0, 3
# 2 sems
1,d1, 0,d3, 0,c5, 0,c7, 0, 1
2,d1, 0,d3, 0,c5, 0,c7, 0, 3
3,l1, 0,l3, 0,c5, 0,c7, 0, 2
4,l1, 0,l3, 0,c5, 0,c7, 0, 4
1,v1, 0,v3, 0,c5, 0,c7, 0, 2
2,v1, 0,v3, 0,c5, 0,c7, 0, 4
3,v1, 0,v3, 0,c5, 0,c7, 0, 1
4,v1, 0,v3, 0,c5, 0,c7, 0, 3
1,d1, 0,c3, 0,d5, 0,c7, 0, 1
2,d1, 0,c3, 0,d5, 0,c7, 0, 3
3,l1, 0,c3, 0,l5, 0,c7, 0, 2
4,l1, 0,c3, 0,l5, 0,c7, 0, 4
1,v1, 0,c3, 0,v5, 0,c7, 0, 2
2,v1, 0,c3, 0,v5, 0,c7, 0, 4
3,v1, 0,c3, 0,v5, 0,c7, 0, 1
4,v1, 0,c3, 0,v5, 0,c7, 0, 3
# 3 sems
1,c1, 0,c1, 0, 6, 0,v7, 0, 2
1,c1, 0,c3, 0,c5, 0,v7, 0, 1
3,c1, 0,c1, 0, 5, 0,v7, 0, 2
3,c1, 0,c3, 0,c5, 0,v7, 0, 1
2, 5, 0, 5, 0,c5, 0,v7, 0, 4
2, 5, 0,c3, 0, 6, 0,v7, 0, 4
2,c1, 0,c3, 0,c5, 0,v7, 0, 3
4, 6, 0, 6, 0,c5, 0,v7, 0, 4
4, 6, 0,c3, 0, 5, 0,v7, 0, 4
4,c1, 0,c3, 0,c5, 0,v7, 0, 3
# 4 sems
@COLORS
0 0 0 0
1 40 40 40
2 155 195 255
3 80 90 100
4 255 255 255
5 110 100 50
6 220 200 50
Code: Select all
x = 270, y = 113, rule = Semaphore
120.28A12.28A12.28A12.28A$120.A26.A12.A26.A12.A26.A12.A26.A$120.A.8A
2.12A3.A12.A.8A2.12A3.A12.A.8A2.12A3.A12.A.8A2.12A3.A$120.A.A6.A.14A
2.A12.A.A6.A.14A2.A12.A.A6.A.14A2.A12.A.A6.A.14A2.A$120.A.A.4A2.16A.A
12.A.A.4A2.16A.A12.A.A.4A2.16A.A12.A.A.4A2.16A.A$112.A.A5.A.A.A3.A2.
6A2.6A2.A4.A.A5.A.A.A3.A2.6A2.6A2.A4.A.A5.A.A.A3.A2.6A2.6A2.A4.A.A5.A
.A.A3.A2.6A2.6A2.A$112.A.4A2.A.A.A3.A3.12A3.A4.A.4A2.A.A.A3.A3.12A3.A
4.A.4A2.A.A.A3.A3.12A3.A4.A.4A2.A.A.A3.A3.12A3.A$112.A.A.A.E.A.A.A2.
3A16.3A3.A.A.A.E.A.A.A2.3A16.3A3.A.A.A.E.A.A.A2.3A16.3A3.A.A.A.E.A.A.
A2.3A16.3A$112.3A2.E3A.A.A.5A14.5A2.3A2.E3A.A.A.5A14.5A2.3A2.E3A.A.A.
5A14.5A2.3A2.E3A.A.A.5A14.5A$113.4A.E3.A.A.5A14.5A3.4A.E3.A.A.5A14.5A
3.4A.E3.A.A.5A14.5A3.4A.E3.A.A.5A14.5A$113.2A7.A.A.5A14.5A3.2A7.A.A.
5A14.5A3.2A7.A.A.5A14.5A3.2A7.A.A.5A14.5A$112.A.4A4.A.A.5A14.5A2.A.4A
4.A.A.5A14.5A2.A.4A4.A.A.5A14.5A2.A.4A4.A.A.5A14.5A$112.A.A.A.E3.A.A.
5A14.5A2.A.A.A.E3.A.A.5A14.5A2.A.A.A.E3.A.A.5A14.5A2.A.A.A.E3.A.A.5A
14.5A$112.3A2.E5A.A.3A.A14.A.3A2.3A2.E5A.A.3A.A14.A.3A2.3A2.E5A.A.3A.
A14.A.3A2.3A2.E5A.A.3A.A14.A.3A$113.4A.E5.A.3A.A14.A.3A3.4A.E5.A.3A.A
14.A.3A3.4A.E5.A.3A.A14.A.3A3.4A.E5.A.3A.A14.A.3A$113.2A9.A.5A14.5A3.
2A9.A.5A14.5A3.2A9.A.5A14.5A3.2A9.A.5A14.5A$112.A.4A6.A.5A14.5A2.A.4A
6.A.5A14.5A2.A.4A6.A.5A14.5A2.A.4A6.A.5A14.5A$112.A.A.A.E5.A.5A14.5A
2.A.A.A.E5.A.5A14.5A2.A.A.A.E5.A.5A14.5A2.A.A.A.E5.A.5A14.5A$112.3A2.
E7A.5A14.5A2.3A2.E7A.5A14.5A2.3A2.E7A.5A14.5A2.3A2.E7A.5A14.5A$4.C3.F
.45ACB2ACDB2ACDB2ACDB5.A.3A31.4A.E7.5A14.5A3.4A.E7.5A14.5A3.4A.E7.5A
14.5A3.4A.E7.5A14.5A$.A2.2AE2.A62.A2.3A.E.A31.2A12.3A16.3A4.2A12.3A
16.3A4.2A12.3A16.3A4.2A12.3A16.3A$A.4A.2AEBC61AFA.2AFA.A30.A.4A10.A3.
12A3.A4.A.4A10.A3.12A3.A4.A.4A10.A3.12A3.A4.A.4A10.A3.12A3.A$A.A2.AE
68.EA2.A.A30.A.A.A.E12.14A7.A.A.A.E12.14A7.A.A.A.E12.14A7.A.A.A.E12.
14A$A.A.A3.F.41ACBACB4ACDB9A5.A.A.A30.3A2.E28A6.3A2.E28A6.3A2.E28A6.
3A2.E28A$A.A.2AE2.A62.A2.3A.E.A31.4A.E12.6A2.6A8.4A.E12.6A2.6A8.4A.E
12.6A2.6A8.4A.E12.6A2.6A$A.4A.2AE63AFA.2AFA.A31.2A13.A3.12A3.A5.2A13.
A3.12A3.A5.2A13.A3.12A3.A5.2A13.A3.12A3.A$A.A2.AE68.EA2.A.A30.A.4A9.
3A16.3A3.A.4A9.3A16.3A3.A.4A9.3A16.3A3.A.4A9.3A16.3A$A.A.A3.F.37ACBAC
BCB7ACB9A5.A.A.A30.A.A.A.E7.5A14.5A2.A.A.A.E7.5A14.5A2.A.A.A.E7.5A14.
5A2.A.A.A.E7.5A14.5A$A.A.2AE2.A62.A2.3A.E.A30.3A2.E7A.5A14.5A2.3A2.E
7A.5A14.5A2.3A2.E7A.5A14.5A2.3A2.E7A.5A14.5A$A.4A.2AE63AFA.2AFA.A31.
4A.E5.A.5A14.5A3.4A.E5.A.5A14.5A3.4A.E5.A.5A14.5A3.4A.E5.A.5A14.5A$A.
A2.AE68.EA2.A.A31.2A9.A.5A14.5A3.2A9.A.5A14.5A3.2A9.A.5A14.5A3.2A9.A.
5A14.5A$A.A.A3.F.33ACBACDB4ACB3ACB12A5.A.A.A30.A.4A6.A.5A14.5A2.A.4A
6.A.5A14.5A2.A.4A6.A.5A14.5A2.A.4A6.A.5A14.5A$A.A.2AE2.A62.A2.3A.E.A
30.A.A.A.E5.A.3A.A14.A.3A2.A.A.A.E5.A.3A.A14.A.3A2.A.A.A.E5.A.3A.A14.
A.3A2.A.A.A.E5.A.3A.A14.A.3A$A.4A.2AE63AFA.2AFA.A30.3A2.E5A.A.3A.A14.
A.3A2.3A2.E5A.A.3A.A14.A.3A2.3A2.E5A.A.3A.A14.A.3A2.3A2.E5A.A.3A.A14.
A.3A$A.A2.AE68.EA2.A.A31.4A.E3.A.A.5A14.5A3.4A.E3.A.A.5A14.5A3.4A.E3.
A.A.5A14.5A3.4A.E3.A.A.5A14.5A$A.A.A3.F.29ACB8ACB2ACDB16A5.A.A.A31.2A
7.A.A.5A14.5A3.2A7.A.A.5A14.5A3.2A7.A.A.5A14.5A3.2A7.A.A.5A14.5A$A.A.
2AE2.A62.A2.3A.E.A30.A.4A4.A.A.5A14.5A2.A.4A4.A.A.5A14.5A2.A.4A4.A.A.
5A14.5A2.A.4A4.A.A.5A14.5A$A.4A.2AE63AFA.2AFA.A30.A.A.A.E3.A.A.5A14.
5A2.A.A.A.E3.A.A.5A14.5A2.A.A.A.E3.A.A.5A14.5A2.A.A.A.E3.A.A.5A14.5A$
A.A2.AE68.EA2.A.A5.3A22.3A2.E3A.A.A.5A14.5A2.3A2.E3A.A.A.5A14.5A2.3A
2.E3A.A.A.5A14.5A2.3A2.E3A.A.A.5A14.5A$A.A.A3.F.34ACB3ACB21A5.A.A.A5.
A.A23.4A.E.A.A.A2.3A16.3A4.4A.E.A.A.A2.3A16.3A4.4A.E.A.A.A2.3A16.3A4.
4A.E.A.A.A2.3A16.3A$A.A.2AE2.A62.A2.3A.E.A.3A.B.A23.2A5.A.A.A3.A3.12A
3.A5.2A5.A.A.A3.A3.12A3.A5.2A5.A.A.A3.A3.12A3.A5.2A5.A.A.A3.A3.12A3.A
$A.4A.2AE63AFA.2AFA.A.A.A.C.A20.3A.3A3.A.A.A3.A2.14A2.A2.3A.3A3.A.A.A
3.A2.14A2.A2.3A.3A3.A.A.A3.A2.14A2.A2.3A.3A3.A.A.A3.A2.14A2.A$A.A2.AE
68.EA2.A.A.A.A.A.A20.C.A.E.AF2.A.A.4A2.16A.A2.C.A.E.AF2.A.A.4A2.16A.A
2.C.A.E.AF2.A.A.4A2.16A.A2.C.A.E.AF2.A.A.4A2.16A.A$A.A.A3.F.21ACB3ACB
34A5.A.A.A.B.A.A.A20.B2A.2AE3.A.A6.A.6A2.6A2.A2.B2A.2AE3.A.A6.A.6A2.
6A2.A2.B2A.2AE3.A.A6.A.6A2.6A2.A2.B2A.2AE3.A.A6.A.6A2.6A2.A$A.A.2AE2.
A62.A2.3A.E.A.C.A.3A24.F.A3.A.8A2.12A3.A6.F.A3.A.8A2.12A3.A6.F.A3.A.
8A2.12A3.A6.F.A3.A.8A2.12A3.A$A.4A.2AE63AFA.2AFA.A.A.A3.A7.2A14.2AEAE
A.A26.A5.2AEAEA.A26.A5.2AEAEA.A26.A5.2AEAEA.A26.A$A.A2.AE68.EA2.A.A.
4AF.F2.3A.C2.A14.A3.A.28A6.A3.A.28A6.A3.A.28A6.A3.A.28A$A.A.A3.F.17AC
B2ACB3ACB4ACB28A5.A.A.A.A4.D.A.A.A.3DA5.BCA5.EAE2.A34.EAE2.A34.EAE2.A
34.EAE2.A$A.A.2AE2.A62.A2.3A.E.A2.C.BD.FA.A.A.E.AB5.A.A4.A.E3.A33.A.E
3.A33.A.E3.A33.A.E3.A$A.4A.2AE28ABC33AFA.2AF2A4.F.B.2A.A.AFA.2A5.3A2.
E.2A.A2.A31.E.2A.A2.A31.E.2A.A2.A31.E.2A.A2.A$A4.AE68.EA2.2A3.EAE2.A
2.A.A.A.A.AF.FA.A4.A4.A.A32.A4.A.A32.A4.A.A32.A4.A.A$.A3.A56.3A.7A3.A
.A2.EA2.A4.A.A.A.F.EA2.D3.A.2AE.EAB2A2.A28.2AE.EAB2A2.A28.2AE.EAB2A2.
A28.2AE.EAB2A2.A$2.A3.56A2.A.A2.A3.A.A2.A.FA.A.F4.A.ABCE2D.E.F.2D.A.A
.A3.C2.A.A28.A.A3.C2.A.A28.A.A3.C2.A.A28.A.A3.C2.A.A$3.A60.3A2.3A.3A
2.A2.A2.A5.A5.F2.A3.D.E2.A.3A2.3A.A28.A.3A2.3A.A28.A.3A2.3A.A28.A.3A
2.3A.A$4.23AE39A.3A.6A4.A2.E4.A2.2D3.BA4.ECF.A.E.AF5.A28.A.E.AF5.A28.
A.E.AF5.A28.A.E.AF5.A$26.E2.A37.A2.A12.A.A4.A2.C.DAD.A5.D2.A.2AE5.A
29.A.2AE5.A29.A.2AE5.A29.A.2AE5.A$25.A3.A6.7A14.4ABA4.A.A4.AB2A.3A.A.
A4.B2.3AD3A5.D.A2.F.A5.A28.A2.F.A5.A28.A2.F.A5.A28.A2.F.A5.A$24.A3.A
3.ACD.B5.A3.BCA8.A3.C.A.E.A.A.E.A.C.A.A.C.A.A4.D14.F.A.2AEAEA3.A28.A.
2AEAEA3.A28.A.2AEAEA3.A28.A.2AEAEA3.A$23.A3.A4.A.D.C6A3.A.2ACB.E3.A.
3A2.F2A3.2AF2.3A.B2D2.2A4.D6.C3DB2AE3A2.A3.5A.28A2.A3.5A.28A2.A3.5A.
28A2.A3.5A.A$22.A3.A5.AD2.E2.E6.3A3.E3A.A.A3.C.F5.F.C.C4.B4.A4.C6.A5.
A2.10A.3A26.10A.3A26.10A.3A26.10A.3A$21.A3.A6.DA.FDFBDE2A6.A.A.E.A.3A
.E.AC2.ACB2.CA.F4.F.C2.A4.A6.7A2.A8.A.A28.A8.A.A28.A8.A.A28.A8.A.A$
20.A3.A7.AD2.D4.A.A.CDB.F.BA2.A6.A4.A.A4.A5.AE.A.A4.A2.2A12.9A.28A2.
9A.28A2.9A.28A2.9A.4A$16.5A.FA8.A.B2.E4A.A.A.A2.D3.2A4.AE.FC5A3.E.E5A
.DA.A3.A3.A.A11.A6.5A26.2A7.5A26.2A7.5A26.2A7.5A$16.A4.A10.4AEA.4A2.
4AF.F2.A4.A.A13.A5.2AC.A3.A3.A.A12.3A3.A3.A35.A3.A35.A3.A35.A3.A$16.A
5.E15.A10.A4.5A2.3A2.C2D4.3A3.CBE.A.A3.5A.15A.8A.3A.3A.31A.3A.3A.31A.
3A.3A.31A.A$16.A4.A.A9.7AE12A4.2A2.E.AF.A.B3.FA.E.3A2.A2.6A18.A7.3A2.
3A.3A28.3A2.3A.3A28.3A2.3A.3A28.3A$16.2AE.A2.A8.A8.E11.4A.A2.2AE2.5A
2.E2A.A.CBF.E3.A2.A18.A7.A39.A39.A39.A$19.A2.E.E6.A3.7A.3A.3A9.CDE2.A
.E3.E.A2.F.2AB5.3A2.A19.A2.3A.124A$19.F2.A2.A4.A4.B5.A.A.3A.A.3A.2AE
7.A5.A3.A5.5A.A2.A19.A2.A.A.A$19.A2.A2.A3.A5.2DC4A.A5.3A.3A2.A2.3A2.E
.3AE3.6A3.E3A2.A13.3A3.A.CACB.BAC3DB3AC4DBACBAC3DBACDBCDB3AC4DBC4DBCB
C3DBCDBC5D$19.A2.A2.A2.A14.A2.2A9.E.3A.A3.A14.2A2.5A13.A.BAECB.B.B2.D
61.D$19.A2.A2.A.A5.10A.E.A.3AF4.A7.A3.A4.10A.E.A2.2A13.ACD2.F.AE.F2.D
CB2DCBC4ABCAB2DCBDCBDCBCBDCBCABDCBCBDCB2DCAB5DCABC3ABDCB$19.A2.A2.2A
5.A12.2A2.A2.AE2A.AE4A2.A.F.EA.E4.E4.E.A.A.3A17.A.2A.A$19.A2.A2.2A4.A
3.2AF2.AE.DF.F2.E.A.4AE2.A.A2.A3.A.A4.A4.A3.2A.A.A18.4A.E$19.A2.A.A.A
3.A2.2A3.2A2.D3.2A.2AE.A4.D2.BA.2A2.A3.E2.A.E2.A.E2.2A.3A$19.A2.2A2.A
2.A3.2AF.DE.AE.F2.E.AE2.2AE2DEDF.AD.A3.BF.C2A.2ABD.4A.2A2.2A$19.A2.2A
2.A.A3.A3.D4.A4.A.2A2.F2.E2.F2.DA.4AE2.D.A.2A.D.2A.A.2A.3A$19.A.A.A2.
A.A2.2A2.F.F2A2.B3.A.A.A4.4A.D.A5.A2.D.A.2A.D.2A.A.2A.A.A$19.2A2.A.FA
2.2A.E.A3.A.2AC3.A.A2.4A5.2DC5.A2.D.A.2A.D.2A.A.2A.3A$19.2A2.A3.E3A2.
A3.2A3.BA2.A2.A18.A2.D.A.2A.D.AC.A.2A2.2A$18.C.A2.A3.A.2A3.F2.A3.A.3A
4.15A3.A2.B.A.2A.C.DA.B.2A.3A$17.D3.A.A3.A.A.A3.7A.2A19.A3.A2.3A.4A.A
3D.2A.A.A$16.D5.A4.A.A2.A6.4A.A6.11A2.A2.2A6.A4.A4.2A.3A$15.D5.A5.A.A
3.A4.A5.F5.A11.A.A2.A3.AF2AE3.A4.A.A2.2A$14.D5.A3.4A.A4.A.2A2.E.F2AE
3.A2.5AEAF3A.A3.A2.A.E.AF2.E2A.A2.A.3A$13.D5.A4.A4.A5.2A4.A4.A2.A2.A
5.A3.A2.A3.3A.3A2.FA.A.A2.A.A.A$12.B5.A5.4A.A4.3A2.2A.FD2A.A.9AE2AEA
3.A2.2A4.A3.AEA.A2.A2.2A$12.A4.A9.3A4.A2.2AE3.AD3.3A6.F2.E6.2A2.A2.A
3.A2.F.A2.A2.2A$12.A4.A10.2A4.A3.F.2DE2.DE3.A8.6A.3A3.2A3.E3.2A2.A3.A
B$12.A4.A9.A2.A3.A6.E.2AE.4A6.F2.E4.2A2.9A3.2A.A4.CA$12.A4.A9.A3.A2.A
9.3A2.9AE2AEA.8A5.E2.A2.A5.2A$12.A4.A8.2A4.A.A2.3ACB2A4.A3.A5.A3.A.A
7.6A.A2.A2.3A.2A$12.A4.A8.A6.2A2.A5.A3.A2.7AEAF3A.7A.3A.3A2.A3.C.A.2A
$12.A4.A8.2A.6A2.7A2.A2.A3.3A6.A7.3A.3A3.A4.2DB.2A$12.A4.A9.A.A5.A5.
5A2.A4.A.7A4.F4.2A5.2A5.D3.2A$12.A4.A7.3A.5A2.5A3.4A2.2A.A3.8AE2A.3A.
A3.A4.2AB2.4A$12.C4.A7.A7.A8.2A5.2A.2A3.A7.A.3A4.4A3.A.4A3.A$12.D2.B
2A5.3A5.CBA5.3A5.3A5.3A5.DBA5.3A5.B2A.E.2AF3A$12.3D.7A.2AC3DB.7A.2AC
3DB.7A.2AC2DBC.7A.2AC2DBC.2AE2A3.E$12.D3.A3.A3.A3.D3.A3.A3.A3.D3.A3.A
3.A3.B3.A3.A3.A3.B3.A3.A3.A$12.D2.FAE2.A2.EAE2.B3.A3.A2.EAE2.B2.FAE2.
A2.EAE2.C2.EAE2.A2.EAE2.C2.FAE2.A2.EAE$11.AB.D.F2.2A.A.E2.AC2.E.E.2A.
A.E2.2A.D.F2.2A.A.E2.AD.A.E2.2A.A.E2.AB.D.F2.2A.B.F$11.AF.2D.A.AE.2A.
A.BE.2A.A.AE.2A.A.AF.2D.A.AE.2A.A.BE.2A.A.AE.2A.A.AF.2D.A.AF.DB.C$11.
A.D3.A.A.A3.A.A.A3.A.A.A3.A.A.D3.A.A.A3.A.A.A3.A.A.A3.A.A.D3.A.A.D3.A
$12.F.FA.A2.E.FC.B2.E.FC.B2.E.FC.B2.F.FA.A2.E.FC.B2.E.FC.B2.E.EA.A2.F
.FA.A2.F.FA.A$12.A3.3A.A3.ACB.A3.ACB.A3.ACB.A3.3A.A3.ACB.A3.ACB.A3.3A
.A3.3A.A3.3A$12.3A.A.A.BAC.A.A.BAC.A.A.3A.A.A.B2A.A.A.BAC.A.A.B2A.A.A
.3A.A.A.3A.A.A.B2A.A.A$12.B.A.A.A.D.D.3A.D.D.3A.A.C.A.A.D.A.A.A.D.B.
3A.D.A.3A.A.A.A.A.A.A.A.C.C.A.ABC$12.D.A.A.A.DCB5.DCB5.A.D.A.A.C.A.A.
A.DCA5.2DC5.A.A.A.A.B.A.A.B.BCA$12.D.A.A.A17.A.B.A.A.A.A.A.A17.A.C.A.
A.D.A.A.A$12.C.A.A.A17.A.C.A.A.A.A.A.A17.A.D.A.A.D.A.A.A$12.B.A.BCA
17.A.D.3A.B.A.BCA17.A.B.ABC.D.A.3A$12.C2A21.2AB5.C2A21.3A5.C2A!
Semaphore is a 7-state rotate4reflect Moore rule designed for compact period-1 circuitry. To allow one bit of information to be transmitted every generation the rule uses four wire states; the other two "semaphore" states are used for gate inputs and, due to the way they are implemented, can double as inverters, XOR or XNOR gates. Wires with multiple connected semaphore cells and only one wire output act as gates: the 2-input gate is either AND, ANDNOT or NOR, depending on input polarity, while the 3-input gate can be used to implement a variety of memory cells. As only some neighboring non-empty cells are considered to be connected, depending on their shared neighbors, crossovers are essentially free and can even be used to save space in some cases. Below is a collection of gates and other basic circuitry elements:
Code: Select all
x = 97, y = 104, rule = Semaphore
94.3E$95.E$95.E$17A10.5EFE3FE57.E$A15.A53.F.F6.EFEF2E5F5.E$4AC4DBCB2A
CB2AE21D12.17A2.A$19.E32.A15.A.E.20A$33.E2.E2.E2.3E7.4AC3DBCB3ACB2A$
33.2E.E.E.E2.E$33.E.2E.E.E2.E4.3E$33.E2.E.E.E2.E4.E$17A16.E2.E2.E3.E
4.3E.17A$A15.A31.E3.A15.A$4AC4DBCB2ACB2A9.2E2F7E10.3E.4AC2DB3ACBACB3A
7.EF6E3F$18.E51.A.E$19.21A8.2E21.E20A$18.E29.E.E19.A.E$6ACDB2ACB5A16.
E2.E2.E.2E4.E.E.5ACBAC2DB2ACB4A22.2E$A15.A16.E.E.2E.E.E.E3.E.E.A15.A
25.E.E$17A16.3E.E.2E.E.E3.2E2.17A25.E.E$33.E.E.E2.E.E.E49.E.E$33.E.E.
E2.E.2E4.2E44.2E$48.E.E$17A31.2E2.17A$A15.A31.E.E.A15.A$4AC4DBCB2ACB
2A9.2F2EFEF3EF10.E.E.4ACB2ACDB3ACB3AE.E5.E2F2E4F2E$18.E53.A$19.21A9.
2E20.E.19A$18.F29.E21.A$6ACDB2ACB5A3.E2.E2.E.2E2.E2.E2.E2.3E4.E2.5ACD
BACBACB4A24.3E$A15.A3.E.E.2E.E.E.E.2E.E.E.E2.E6.E.A15.A25.E$17A3.3E.E
.2E.E.E.E.2E.E.E2.E4.2E2.17A25.3E$20.E.E.E2.E.E.E.E2.E.E.E2.E50.E$20.
E.E.E2.E.2E2.E2.E2.E3.E50.3E2$17A35.17A$A15.A35.A15.A$4AC4DBCB2ACB2A
9.5EF2E2FE14.4AC4DBCB2ACB3A2.19A$18.E52.2A$19.21D31.2A$18.E51.A2.A$6A
CDB2ACB5A15.E2.E2.E2.2E8.6ACDB2ACB5A4.18A$A15.A16.2E.E.E.E.E.E7.A15.A
$17A16.E.2E.E.E.2E8.17A9.E.E2.E2.E.E.3E.2E$33.E2.E.E.E.E.E33.E.E.E.E.
E.E.E3.E.E$33.E2.E2.E2.E.E34.E2.E.E.E.E.3E.2E$78.E.E.E.E.E.E.E3.E.E$
17A61.E.E2.E3.E2.3E.E.E$A15.A$4AC4DBCB2ACB2A9.5FE2F2EF$18.E$19.2DE18A
$18.E3.F$6ACDB2ACB5A21.E2.2E$A15.A21.E.E.E.E$17A21.E.E.2E$38.E.E.E.E$
39.E2.E.E2$17A$A15.A$4AC4DBCB2ACB2A9.2F2EFE2F2EF$18.A$19.E20A$18.A.F$
6ACDB2ACB5A16.E.E2.E2.2E$A15.A17.E.E.E.E.E.E$17A18.E2.E.E.2E$34.E.E.E
.E.E.E$34.E.E2.E2.E.E2$17A$A15.A$4AC4DBCB2ACB2A9.2E2FEF2E2FE$18.A$19.
E20D$18.A.E$6ACDB2ACB5A11.E.E.E2.E2.E2.2E$A15.A12.E.E.2E.E.E.E.E.E$
17A13.E2.E.2E.E.E.2E$29.E.E.E2.E.E.E.E.E$29.E.E.E2.E2.E2.E.E2$17A$A
15.A2.2AF.E$6ACBCBCDBCB4A3.A4.3E2F2EFE2F$19.2AE.2A$19.2A3.E15A$9AC3DB
5A2.E2A.F$A15.A2.2A.F4.E2.2E2.2E2.3E.2E$17A9.E.E.E.E.E.E.E3.E.E$26.3E
.E.E.E.E.3E.2E$26.E.E.E.E.E.E.E3.E.E$26.E.E.2E2.2E2.3E.E.E4$ACBAC2DBC
BACDBCB3AE$20.A5.4F.F.F2.2F.F$18.AE.A$7AC7DB2A4.E19A$18.AF.A.F$20.A$A
C3DBCDBCB2ACDB3AE!
The computer uses a synchronous design with a main clock controlling most components, which has the negative side effect of needing a lot of additional timing wires crossing over data wires and, in some very tight places, even through components. Combined with my general tendency to want to make things as small as possible, the result is a complete mess, only made worse by the ad hoc adjustments made at the last minute after noticing several design flaws (c.f. the freestanding storage loop on the right). I'm still relatively happy with it, though.
The computer above is running a program that calculates the Fibonacci numbers at a speed of one every seven instructions. I have written a script to write code and data into memory, though it isn't ready for release yet (right now I have to modify its source for input and copy the resulting memory bank over into Golly; optimally it'd just be a Golly script reading from a file). Also it's late, I'm tired and this probably isn't written very well bye