shiftregister

32 step shift register
Author: Remco van der Most
License: BSD
Github: sss/logic/shiftregister.axo

Inlets

frac32 CV input

bool32.rising Trigger input

bool32 loop off/on

int32 loop position

int32 Trig position select for combi 1

int32 Trig position select for combi 1

int32 Trig position select for combi 1

int32 Trig position select for combi 2

int32 Trig position select for combi 2

int32 Trig position select for combi 2

int32 Trig position select for combi 3

int32 Trig position select for combi 3

int32 Trig position select for combi 3

Outlets

bool32 combi1

bool32 combi2

bool32 combi3

Displays

bool32 01

bool32 02

bool32 03

bool32 04

bool32 05

bool32 06

bool32 07

bool32 08

bool32 09

bool32 10

bool32 11

bool32 12

bool32 13

bool32 14

bool32 15

bool32 16

bool32 17

bool32 18

bool32 19

bool32 20

bool32 21

bool32 22

bool32 23

bool32 24

bool32 25

bool32 26

bool32 27

bool32 28

bool32 29

bool32 30

bool32 31

bool32 32

Declaration
int ntrig1;
int latch1;
int latch2;
int latch3;
int latch4;
int latch5;
int latch6;
int latch7;
int latch8;
int latch9;
int latch10;
int latch11;
int latch12;
int latch13;
int latch14;
int latch15;
int latch16;
int latch17;
int latch18;
int latch19;
int latch20;
int latch21;
int latch22;
int latch23;
int latch24;
int latch25;
int latch26;
int latch27;
int latch28;
int latch29;
int latch30;
int latch31;
int latch32;
int latchx;
int se1;
int se2;
int se3;
int sa1;
int sa2;
int sa3;
Control Rate
if ((inlet_trig > 0) && !ntrig1) {
  ntrig1 = 1;
  latch1 = latch2;
  latch2 = latch3;
  latch3 = latch4;
  latch4 = latch5;
  latch5 = latch6;
  latch6 = latch7;
  latch7 = latch8;
  latch8 = latch9;
  latch9 = latch10;
  latch10 = latch11;
  latch11 = latch12;
  latch12 = latch13;
  latch13 = latch14;
  latch14 = latch15;
  latch15 = latch16;
  latch16 = latch17;
  latch17 = latch18;
  latch18 = latch19;
  latch19 = latch20;
  latch20 = latch21;
  latch21 = latch22;
  latch22 = latch23;
  latch23 = latch24;
  latch24 = latch25;
  latch25 = latch26;
  latch26 = latch27;
  latch27 = latch28;
  latch28 = latch29;
  latch29 = latch30;
  latch30 = latch31;
  latch31 = latch32;

  if (inlet_loop > 0) {
    switch (inlet_s > 0 ? inlet_s : 0) {
    case 0:
      latchx = latch32;
      break;
    case 1:
      latchx = latch31;
      break;
    case 2:
      latchx = latch30;
      break;
    case 3:
      latchx = latch29;
      break;
    case 4:
      latchx = latch28;
      break;
    case 5:
      latchx = latch27;
      break;
    case 6:
      latchx = latch26;
      break;
    case 7:
      latchx = latch25;
      break;
    case 8:
      latchx = latch24;
      break;
    case 9:
      latchx = latch23;
      break;
    case 10:
      latchx = latch22;
      break;
    case 11:
      latchx = latch21;
      break;
    case 12:
      latchx = latch20;
      break;
    case 13:
      latchx = latch19;
      break;
    case 14:
      latchx = latch18;
      break;
    case 15:
      latchx = latch17;
      break;
    case 16:
      latchx = latch16;
      break;
    case 17:
      latchx = latch15;
      break;
    case 18:
      latchx = latch14;
      break;
    case 19:
      latchx = latch13;
      break;
    case 20:
      latchx = latch12;
      break;
    case 21:
      latchx = latch11;
      break;
    case 22:
      latchx = latch10;
      break;
    case 23:
      latchx = latch9;
      break;
    case 24:
      latchx = latch8;
      break;
    case 25:
      latchx = latch7;
      break;
    case 26:
      latchx = latch6;
      break;
    case 27:
      latchx = latch5;
      break;
    case 28:
      latchx = latch4;
      break;
    case 29:
      latchx = latch3;
      break;
    case 30:
      latchx = latch2;
      break;
    case 31:
      latchx = latch1;
      break;
    default:
      latchx = 0;
      break;
    }
    latch32 = latchx ^ inlet_i;
  } else {
    latch32 = inlet_i;
  }
}

if (!(inlet_trig > 0)) {
  ntrig1 = 0;
}

switch (inlet_var1 > 0 ? inlet_var1 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa1 = se1;

switch (inlet_var2 > 0 ? inlet_var2 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa2 = se1;

switch (inlet_var3 > 0 ? inlet_var3 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}
sa3 = se1;
outlet_combi1 = (((sa1) ^ (sa2)) ^ (sa3));

switch (inlet_var4 > 0 ? inlet_var4 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa1 = se1;

switch (inlet_var5 > 0 ? inlet_var5 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa2 = se1;

switch (inlet_var6 > 0 ? inlet_var6 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}
sa3 = se1;
outlet_combi2 = (((sa1) ^ (sa2)) ^ (sa3));

switch (inlet_var7 > 0 ? inlet_var7 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa1 = se1;

switch (inlet_var8 > 0 ? inlet_var8 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}

sa2 = se1;

switch (inlet_var9 > 0 ? inlet_var9 : 0) {
case 0:
  se1 = latch32;
  break;
case 1:
  se1 = latch31;
  break;
case 2:
  se1 = latch30;
  break;
case 3:
  se1 = latch29;
  break;
case 4:
  se1 = latch28;
  break;
case 5:
  se1 = latch27;
  break;
case 6:
  se1 = latch26;
  break;
case 7:
  se1 = latch25;
  break;
case 8:
  se1 = latch24;
  break;
case 9:
  se1 = latch23;
  break;
case 10:
  se1 = latch22;
  break;
case 11:
  se1 = latch21;
  break;
case 12:
  se1 = latch20;
  break;
case 13:
  se1 = latch19;
  break;
case 14:
  se1 = latch18;
  break;
case 15:
  se1 = latch17;
  break;
case 16:
  se1 = latch16;
  break;
case 17:
  se1 = latch15;
  break;
case 18:
  se1 = latch14;
  break;
case 19:
  se1 = latch13;
  break;
case 20:
  se1 = latch12;
  break;
case 21:
  se1 = latch11;
  break;
case 22:
  se1 = latch10;
  break;
case 23:
  se1 = latch9;
  break;
case 24:
  se1 = latch8;
  break;
case 25:
  se1 = latch7;
  break;
case 26:
  se1 = latch6;
  break;
case 27:
  se1 = latch5;
  break;
case 28:
  se1 = latch4;
  break;
case 29:
  se1 = latch3;
  break;
case 30:
  se1 = latch2;
  break;
case 31:
  se1 = latch1;
  break;
default:
  se1 = 0;
  break;
}
sa3 = se1;
outlet_combi3 = (((sa1) ^ (sa2)) ^ (sa3));

disp_01 = latch1;
disp_02 = latch2;
disp_03 = latch3;
disp_04 = latch4;
disp_05 = latch5;
disp_06 = latch6;
disp_07 = latch7;
disp_08 = latch8;
disp_09 = latch9;
disp_10 = latch10;
disp_11 = latch11;
disp_12 = latch12;
disp_13 = latch13;
disp_14 = latch14;
disp_15 = latch15;
disp_16 = latch16;
disp_17 = latch17;
disp_18 = latch18;
disp_19 = latch19;
disp_20 = latch20;
disp_21 = latch21;
disp_22 = latch22;
disp_23 = latch23;
disp_24 = latch24;
disp_25 = latch25;
disp_26 = latch26;
disp_27 = latch27;
disp_28 = latch28;
disp_29 = latch29;
disp_30 = latch30;
disp_31 = latch31;
disp_32 = latch32;

Privacy

© 2024 Zrna Research