;@ ins k k
;@ outs k k k k k k k k
opcode Mux18, 0, kkkkkkkkkkk
  kin,kc,ko1,ko2,ko3,ko4,ko5,ko6,ko7,ko8 xin
  kM1[] fillarray 1,0,0,0,0,0,0,0
  kM2[] fillarray 0,1,0,0,0,0,0,0
  kM3[] fillarray 0,0,1,0,0,0,0,0
  kM4[] fillarray 0,0,0,1,0,0,0,0
  kM5[] fillarray 0,0,0,0,1,0,0,0
  kM6[] fillarray 0,0,0,0,0,1,0,0
  kM7[] fillarray 0,0,0,0,0,0,1,0
  kM8[] fillarray 0,0,0,0,0,0,0,1

  kCtrl zkr kc
  kIn zkr kin

  kCtrl *= 64
  kCtrl limit kCtrl, 0, 28
  kCtrl /= 4
  kCtrl = floor(kCtrl)

  zkw kIn*kM1[kCtrl], ko1
  zkw kIn*kM2[kCtrl], ko2
  zkw kIn*kM3[kCtrl], ko3
  zkw kIn*kM4[kCtrl], ko4
  zkw kIn*kM5[kCtrl], ko5
  zkw kIn*kM6[kCtrl], ko6
  zkw kIn*kM7[kCtrl], ko7
  zkw kIn*kM8[kCtrl], ko8
endop
