Discuss Scratch
- Discussion Forums
- » Open Source Projects
- » WWEJ3 is underrated
- ezfox17
- Scratcher
100+ posts
WWEJ3 is underrated
Painfully Complicated UCC specifications:
Corpus cell count: 3,000,000+
Corpus bounding rectangle: Big
Replication time: A few truly ridiculous amounts of time
== PROGRAM TAPE==
Length of tape: ???
Tape instruction count: ???
Bits per instruction: 5+
Instruction set: In another post
== DATA TAPE ==
Length of tape: Extremely long
Tape instruction count: A lot
Bits per instruction: 3+
=== DATA TAPE INSTRUCTION SET ===
(I changed to a less naive approach just in time to avoid a computer-crashing replicator)
111: No operation
110: Construct a normal state
101: Construct a special state
100: Skip over this cell
011: RLE Construct normal states
010: RLE Skip over cells
001: End of row
000: Halt
RLE instruction usage:
[codon][n zeroes]1[an n-bit binary number]
Unlike most of my replicators, a full cycle of this one has never been achieved. I have estimated that replication will take several quadrillion generations, putting it safely beyond even a hashlife algorithm’s ability to simulate a full cycle. However, there is also the Fibonacci calculator, which doesn't halt.
Last edited by ezfox17 (Aug. 19, 2018 15:11:02)
- ezfox17
- Scratcher
100+ posts
WWEJ3 is underrated
The instruction set is kinda complicated:
List of signal types:
0: Changes the tiny 0 to a tiny 1. No signal injected.
1: Construct normal. “Construct” in WWE2, “Write” in WWEJ3.
2: Construct special. “Freeze” in WWE2, “Isolate” in WWEJ3.
3: Retract. “Minor retract” in WWE2, “Move backwards” in WWEJ3.
4: Extend. “Extend” in WWE2, “Move forwards” in WWEJ3.
5: Turn right. “Turn right” in WWE2 and WWEJ3.
6: Turn left. “Turn left” in WWE2 and WWEJ3.
7: Inject signal. ”Inject signal” in WWE2 and WWEJ3. Arm does not move, but can be useful for injecting the sheathing or activation signals.
Note: Sheathing does not exist in WWEJ3. Therefore, only one signal injection is necessary.
Conditional jump is used like this:
00000 `halt instruction
00001 `no operation
00010 `conditional jump backwards
00011 `conditional jump forwards
001000 `move data arm D left
001001 `move data arm D right
001010 `move data arm E left
001011 `move data arm E right
001100 `change signal type by 2
001101 `change signal type by 1
001110 `inject signal
001111 `change signal type by 4
0100000 `clear register R0
0100001 `clear register R1
0100010 `clear register R2
0100011 `clear register R3
0100100 `clear register R4
0100101 `clear register R5
0100110 `clear register R6
0100111 `clear register R7
01011 `subtract/compare R0 and R1
011001 `shift right R0 and place final bit in G0
01101 `TESTDEC R0 and place result in G0
0111001 `transfer R1 to R0 and add
0111010 `transfer R2 to R0 and add
0111011 `transfer R3 to R0 and add
0111100 `transfer R4 to R0 and add
0111101 `transfer R5 to R0 and add
0111110 `transfer R6 to R0 and add
0111111 `transfer R7 to R0 and add
10000 `write G0 to data tape D
10001 `write G0 to data tape E
10010 `read G0 from data tape D
10011 `read G0 from data tape E
10101 `add G0 to R0
10110000 `close gate G0
10110001 `close gate G1
10110010 `close gate G2
10110011 `close gate G3
10110100 `close gate G4
10110101 `close gate G5
10110110 `close gate G6
10110111 `close gate G7
10111000 `open gate G0
10111001 `open gate G1
10111010 `open gate G2
10111011 `open gate G3
10111100 `open gate G4
10111101 `open gate G5
10111110 `open gate G6
10111111 `open gate G7
1100000 `invert gate G0
1100001 `invert gate G1
1100010 `invert gate G2
1100011 `invert gate G3
1100100 `invert gate G4
1100101 `invert gate G5
1100110 `invert gate G6
1100111 `invert gate G7
11010001 `copy G0 to G1
11010010 `copy G0 to G2
11010011 `copy G0 to G3
11010100 `copy G0 to G4
11010101 `copy G0 to G5
11010110 `copy G0 to G6
11010111 `copy G0 to G7
11011001 `copy G0 to G1 and invert
11011010 `copy G0 to G2 and invert
11011011 `copy G0 to G3 and invert
11011100 `copy G0 to G4 and invert
11011101 `copy G0 to G5 and invert
11011110 `copy G0 to G6 and invert
11011111 `copy G0 to G7 and invert
1110001 `copy G1 to G0
1110010 `copy G2 to G0
1110011 `copy G3 to G0
1110100 `copy G4 to G0
1110101 `copy G5 to G0
1110110 `copy G6 to G0
1110111 `copy G7 to G0
1111001 `copy R0 to R1 and add
1111010 `copy R0 to R2 and add
1111011 `copy R0 to R3 and add
1111100 `copy R0 to R4 and add
1111101 `copy R0 to R5 and add
1111110 `copy R0 to R6 and add
1111111 `copy R0 to R7 and add
0: Changes the tiny 0 to a tiny 1. No signal injected.
1: Construct normal. “Construct” in WWE2, “Write” in WWEJ3.
2: Construct special. “Freeze” in WWE2, “Isolate” in WWEJ3.
3: Retract. “Minor retract” in WWE2, “Move backwards” in WWEJ3.
4: Extend. “Extend” in WWE2, “Move forwards” in WWEJ3.
5: Turn right. “Turn right” in WWE2 and WWEJ3.
6: Turn left. “Turn left” in WWE2 and WWEJ3.
7: Inject signal. ”Inject signal” in WWE2 and WWEJ3. Arm does not move, but can be useful for injecting the sheathing or activation signals.
Note: Sheathing does not exist in WWEJ3. Therefore, only one signal injection is necessary.
Conditional jump is used like this:
[instruction][n zeroes]1[an n-bit binary number]
Last edited by ezfox17 (Aug. 13, 2018 12:57:37)
- Discussion Forums
- » Open Source Projects
- » WWEJ3 is underrated