#! /usr/lib/veetest/veetest -r
(revision "A.00.00")
(date "Thu 11/Apr/1991")
(component 0 "Context"
 (interface
 )
 (implementation
  (trigMode deg)
  (locked no)
  (component 0 "Formula"
   (name "Multiplex")
   (interface
    (sequence in)
    (sequence out)
    (input 1
     (type data)
     (name "Address")
     (optional yes)
    )
    (input 2
     (type data)
     (name "A")
     (optional yes)
    )
    (input 3
     (type data)
     (name "B")
     (optional yes)
    )
    (output 1
     (type data)
     (name "Result")
     (lock name constraints)
    )
   )
   (implementation
    (component isLocked no)
    (component expr 1 "(ordinal(Address) ? B : A)")
   )
   (views
    (description 21 5
     The Address input can be supplied with either an
     Enum type or a number.  If the number is 0 or the
     the Enum type is the First in the list, the "A"
     input is passed through to the Result Output.  If
     the number is non-zero or the Enum is other than
     the first list value, the "B" input is passed to
     the output.
     
     A typical use would be to have a Toggle (0 or 1)
     or an Enum (Data A, Data B) select which data
     value to feed to a device.  Using the formula
     box with the "C" language ?: construct allows a
     concise method that requires neither junction,
     gates, nor if-else devices.  Note that the entire
     express is enclosed in parenthesis!
     
     The ordinal() function, found under the Math Real
     Part menu, converts an Enum to the number that
     represents the order of the Enum value in the
     list.  If given a non-Enum value, it acts like a
     no-operation.
    )
    (icon
     (origin 25 93)
     (extent 110 34)
    )
    (detail
     (origin 228 136)
     (extent 254 129)
    )
    (terminals on)
    (active icon)
   )
  )
  (configuration
  )
 )
 (views
  (detail
   (origin 0 67)
   (extent 982 648)
   (configuration
   )
  )
  (active detail)
  (numberFormats
   (realFormat standard)
   (realSigDigits 4)
   (realRadixSpec 4)
   (integerBase decimal)
  )
  (waveformSettings
   (timeSpan 0.02)
   (numPoints 256)
  )
 )
)
