
With or without a control circuit, all the designs I've seen had particular limitations: If you need a ton of both iron and copper smelted, the division of labor breaks down and it tries to load both ores into all furnaces. The control circuit idea seemed to add nothing that you couldn't do simply by directly using logistics net storage values on the smart inserters instead of number of pickaxes, science packs, or other token items. I've always been unsatisfied with smart furnace designs. And this is one where combinators can definitely do a better job of it. Somewhere on the list of "Obvious Combinator Applications", one can surely find "Smart Furnace Control Circuit". This build remembers all values from first constant combinator if ("0" signal = 1).Īnd these values can be taken from output in any time. Perhaps, the same system can be done in more compact and simple way: Once initialized, this happens in reverse, so when a write occurs, it first erases the old memory, then writes the new values.Ĩ) When the address ("A" = 5) and read ("0" = 1) are both enabled, passes "Blue" = 2 to combinator 7.ĩ) Filters out the "Blue" = 2 and "Green" = 1 signals from the read output.ħ) When "Blue" = 0 (a read occurs), passes the value of combinator 6 onto the red wire. First green pulse causes it to store all input values into memory. This is what allows the pulsed signals in the next stepĤ) When "green" from the counter hits 1 and 2, pulses green signals into the next cell.ĥ) Passes the input signal from the red wire to the memory component when the green pulses occur.Ħ) This is the memory component. This gets added to the constant combinator for a total signal of "Red" = 0 and "Green" = 1.ģ) While "Red" = 0, initiates a counter that counts up until "Red" =/= 0, at which point it resets. Here's the breakdown of what each component does:ġ) If the address signal ("A" = 5) and write ("1" = 1) are both enabled, outputs "Blue" = 2Ģ) If "Blue" = 2, outputs "Red" = 1. This does mean that before it can be used, the register must fist be initialized with a single green pulse, which can be done by disconnecting one of the combinators labeled 4 and performing a dummy write. The first pulse of a green signal to that combinator causes it to remember all current input values.


In this setup, the green wire carries the read ("0") and write ("1") signals as well as the address ("A"), while the red wire carries data. For this reason I call it a "Pulsed-Value Register" or "PVR". Combinator 6 in the diagram is what does the heavy lifting, and it works by using "pulsed" (single tick length) signals.
