@name Robotboy655's Expression One: Duplexer
@inputs A B C D E F G H Link:array
@outputs A B C D E F G H Link:array

# Merge multiple values into one wire
if(!~Link){
    TmpLink = array(A,B,C,D,E,F,G,H)
}

# Split a wire coming from a merger
if(~Link){
    TmpA = Link[1,number]
    TmpB = Link[2,number]
    TmpC = Link[3,number]
    TmpD = Link[4,number]
    TmpE = Link[5,number]
    TmpF = Link[6,number]
    TmpG = Link[7,number]
    TmpH = Link[8,number]
}

# Refresh the output variables
A = TmpA
B = TmpB
C = TmpC
D = TmpD
E = TmpE
F = TmpF
G = TmpG
H = TmpH

Link = TmpLink