kind = combinational
hint_kind = combinational
size = 48
copy_solution_to_foundry = "Symphony/DEC"
copy_solution_to_level = ["symphony_decoder_2"]
background = 6
no_score = true
components_available = [com_static_indexer: 7]
unlocks_components = [com_static_indexer, com_static_indexer_config, com_static_value, com_static_eval, com_register_word_config, com_delay_line_word_config]
title = (31337_13883461694525, `Instruction Decoder`)
dialogue = [
  (mentor_centered, (31337_71911284169222, `
Build a circuit that splits Symphony instructions into their different parts. This will be very helpful later.

There are two encodings for Symphony instructions, depending on whether we are using immediate values or not:

[left]
              [color=#ff9800]M[/color] = Mode
              [color=#ff6680]O[/color] = Opcode
            [color=#9966ff]0[/color]/[color=#9966ff]1[/color] = Immediate mode
              [color=#ffe666]D[/color] = Destination register
              [color=#66ff99]A[/color] = Argument A
              [color=#66ccff]B[/color] = Argument B (possibly immediate)
              [color=#bbbbbb]0[/color] = Unused / zero
[/left]

[color=#bbbbbb]0[/color][color=#ff9800]MM[/color][color=#9966ff]0[/color][color=#ff6680]OOOO[/color] [color=#ffe666]DDDD[/color][color=#66ff99]AAAA[/color] [color=#bbbbbb]0000[/color][color=#66ccff]BBBB[/color] [color=#bbbbbb]00000000[/color]

[color=#bbbbbb]0[/color][color=#ff9800]MM[/color][color=#9966ff]1[/color][color=#ff6680]OOOO[/color] [color=#ffe666]DDDD[/color][color=#66ff99]AAAA[/color] [color=#66ccff]BBBBBBBB BBBBBBBB[/color]
  `)),
  (mentor_centered, (31337_41138026161536, `Use the static indexer component to solve this level. 

The static indexer component is a special component that allows you to shift certain bits from a wire, without any delay or gates cost. Changing the number on the component will shift bits (positive number shifts to the right). Then click on the component to set the output width.`))
]
