O - Offset, an integer indicating the offset in the lines of code relative to the current
RM - Reagent reading mode, one of the Contents, Required or Recipe (can be 0, 1 or 2, respectively)
H - R devices with which the lb batch reading or sb writing operation is performed
BM - Batch reading mode readings, one of Average, Sum, Minimum or Maximum (can be 0, 1, 2 or 3, respectively)
command op1 op2 op3 op4 op5 op6 preview description edit abs R,N R,N,C op1 := |op2| The absolute value of the number edit acos R,N R,N,C op1 := acos(op2) Arccosine* edit add R,N R,N,C R,N,C op1 := op2 + op3 Sum edit alias N R,D op2 => op1 Specify an alias for a register or data channel edit and R,N R,N,C R,N,C op1 := op2 op3 Logical AND, one if both op2 and op3 are true, zero otherwise edit asin R,N R,N,C op1 := asin(op2) Arcsine* edit atan R,N R,N,C op1 := atan(op2) Arctangent* edit atan2 R,N R,N,C R,N,C op1 := atan2(op2,op3) Arc tangent with 2 arguments edit bap R,N,C R,N,C R,N,C R,N,A,T Jump to op4 if op1 op2 with precision op3 edit bapal R,N,C R,N,C R,N,C R,N,A,T Jump to op4 if op1 op2 with precision op3, writing the address of the next line to ra edit bapz R,N,C R,N,C R,N,A,T Jump to op3 if op1 0 with precision op2 edit bapzal R,N,C R,N,C R,N,A,T Jump to op3 if op1 0 with precision op2, writing the address of the next line to ra edit bdns N,D R,N,A,T Jump to op2 if op1 channel is not configured edit bdnsal N,D R,N,A,T Jump to op2 if channel op1 is not configured, writing next line address to ra edit bdse N,D R,N,A,T Jump to op2 if channel op1 is configured edit bdseal N,D R,N,A,T Jump to op2 if channel op1 is configured with next line address written to ra edit beq R,N,C R,N,C R,N,A,T Jump to op3 if op1 = op2 edit beqal R,N,C R,N,C R,N,A,T Jump to op3 if op1 = op2, writing the address of the next line to ra edit beqz R,N,C R,N,A,T Jump to op2 if op1 = 0 edit beqzal R,N,C R,N,A,T Jump to op2 if op1 = 0, writing the address of the next line to ra edit bge R,N,C R,N,C R,N,A,T Jump to op3 if op1 >= op2 edit bgeal R,N,C R,N,C R,N,A,T Jump to op3 if op1 >= op2, writing next line address to ra edit bgez R,N,C R,N,A,T Jump to op2 if op1 >= 0 edit bgezal R,N,C R,N,A,T Jump to op2 if op1 >= 0, writing next line address to ra edit bgt R,N,C R,N,C R,N,A,T Jump to op3 if op1 > op2 edit bgtal R,N,C R,N,C R,N,A,T Jump to op3 if op1 > op2, writing next line address to ra edit bgtz R,N,C R,N,A,T Jump to op2 if op1 > 0 edit bgtzal R,N,C R,N,A,T Jump to op2 if op1 > 0, writing the address of the next line to ra edit ble R,N,C R,N,C R,N,A,T Jump to op3 if op1 <= op2 edit bleal R,N,C R,N,C R,N,A,T Jump to op3 if op1 <= op2, writing next line address to ra edit blez R,N,C R,N,A,T Jump to op2 if op1 <= 0 edit blezal R,N,C R,N,A,T Jump to op2 if op1 <= 0, writing the address of the next line to ra edit blt R,N,C R,N,C R,N,A,T Jump to op3 if op1 < op2 edit bltal R,N,C R,N,C R,N,A,T Jump to op3 if op1 < op2, writing the address of the next line to ra edit bltz R,N,C R,N,A,T Jump to op2 if op1 < 0 edit bltzal R,N,C R,N,A,T Jump to op2 if op1 < 0, writing the address of the next line to ra edit bna R,N,C R,N,C R,N,C R,N,A,T Jump to op4 if op1 ~= op2 with precision op3 edit bnaal R,N,C R,N,C R,N,C R,N,A,T Jump to op4 if op1 ~= op2 with precision op3, writing next line address to ra edit bnan R,N R,A,T edit bnaz R,N,C R,N,C R,N,A,T Jump to op3 if op1 ~= 0 with precision op2 edit bnazal R,N,C R,N,C R,N,A,T Jump to op3 if op1 ~= 0 with precision op2, writing next line address to ra edit bne R,N,C R,N,C R,N,A,T Jump to op3 if op1 != op2 edit bneal R,N,C R,N,C R,N,A,T Jump to op3 if op1 != op2, writing next line address to ra edit bnez R,N,C R,N,A,T Jump to op2 if op1 != 0 edit bnezal R,N,C R,N,A,T Jump to op2 if op1 != 0, writing the address of the next line to ra edit brap R,N,C R,N,C R,N,C R,N,O Relative jump to +op4 if op1 op2 with precision op3 edit brapz R,N,C R,N,C R,N,O Relative jump to +op3 if op1 0 with precision op2 edit brdns N,D R,N,O Relative jump to +op2 if channel op1 is not configured edit brdse N,D R,N,O Relative jump to +op2 if channel op1 is configured edit breq R,N,C R,N,C R,N,O Relative jump to +op3 if op1 = op2 edit breqz R,N,C R,N,O Relative jump to +op2 if op1 = 0 edit brge R,N,C R,N,C R,N,O Relative jump to +op3 if op1 >= op2 edit brgez R,N,C R,N,O Relative jump to +op2 if op1 >= 0 edit brgt R,N,C R,N,C R,N,O Relative jump to +op3 if op1 > op2 edit brgtz R,N,C R,N,O Relative jump to +op2 if op1 > 0 edit brle R,N,C R,N,C R,N,O Relative jump to +op3 if op1 <= op2 edit brlez R,N,C R,N,O Relative jump to +op2 if op1 <= 0 edit brlt R,N,C R,N,C R,N,O Relative jump to +op3 if op1 < op2 edit brltz R,N,C R,N,O Relative jump to +op2 if op1 < 0 edit brna R,N,C R,N,C R,N,C R,N,O Relative jump to +op4 if op1 op2 with precision op3 edit brnan R,N R,N,C,O edit brnaz R,N,C R,N,C R,N,O Relative jump to +op3 if op1 0 with precision op2 edit brne R,N,C R,N,C Relative jump to +op3 if op1 != op2 edit brnez R,N,C R,N,O Relative jump to +op2 if op1 != 0 edit ceil R,N R,N,C op1 := op2 Round up to nearest integer edit cos R,N R,N,C op1 := cos(op2) Cosine* edit debug R,N,C,Y [icX] [icX] logs passed values in the debugger edit define Y R,N,C,H op2 => op1 Set a name for the constant edit div R,N R,N,C R,N,C op1 :=op2 / op3 Division edit exp R,N R,N,C op1 := eop2 Exhibitor edit floor R,N R,N,C op1 := op2 Rounding down to nearest integer edit get R N,D R,C loads the value of the stack memory adress op3 of the device op2 into register op1 edit getd R R,C R,C loads the value of the stack memory adress op3 of the device op2 (referenced by id) into register op1 edit hcf Stop work and burn the microprocessor edit j R,N,A,T Jump to the specified line edit jal R,N,A,T Jump to op1, writing the address of the next line to ra edit jr R,N,O Relative jump to +op1 edit l R,N N,D P op1 := op2.op3 Reading the value of parameter op3 from port op2 edit lb R,N R,N,C,H P BM op1 := op2.op3.mode(op4) Batch read in op1 from all devices with hash op2 of parameter op3 in op4 mode edit lbn R,N R,N,C,H R,N,C,H P BM edit lbns R,N R,N,C,H R,N,C,H R,N,S P BM edit lbs R,N R,N,H R,N,S P BM edit ld R R,N,C P op1 := op2.op3 Reading the value of parameter op3 from port op2 where op2 is the id of a device edit log R,N R,N,C op1 := log(op2) natural logarithm edit lr R,N N,D RM R,N,RC,H op1 := op2.mode(op3).op4 Read reagent value op4 in op3 mode from port op2 edit ls R,N N,D R,N,S P op1 := op2.slot(op3).op4 Read value op4 from slot op3 of port op2 edit max R,N R,N,C R,N,C op1 := max(op2, op3) Maximum of two edit min R,N R,N,C R,N,C op1 := min(op2, op3) Minimum of two edit mod R,N R,N,C R,N,C op1 := op2 mod op3 Remainder of integer division of op2 by op3 (the result is not equivalent to the % operator, and will be positive for any signs of op2 and op3) edit move R,N R,N,C,T,H op1 := op2 Value assignment edit mul R,N R,N,C R,N,C op1 := op2 * op3 Multiplication edit nor R,N R,N,C R,N,C op1 := ¬(op2 op3) Inverse OR, one if both op2 and op3 are false, zero otherwise edit or R,N R,N,C R,N,C op1 := op2 op3 Logical OR, zero if both op2 and op3 are false, one otherwise edit peek R loads the value in the stack memory at index sp-1 into register op1 edit pop R op1 := stack[--sp] Pop a value from the stack and write to op1 edit push R,N,C,T,H stack[sp++] := op1 Push op1 onto the stack edit put N,D R,C R,C stores the value op3 in the setack memory adress op2 of the device op1 edit putd R,C R,C R,C stores the value op3 in the setack memory adress op2 of the device op1 (referenced by id) edit rand R,N op1 := rand(0,1) Random value from 0 to 1 inclusive edit return R,N,C [icX] return x [icX] return value from functions edit round R,N R,N,C op1 := [op2] Rounding to nearest integer edit s N,D P R,N,C op1.op2 := op3 Writing a value to the op2 parameter of port op1 edit sap R,N R,N,C R,N,C R,N,C op1 := (op2 op3) If op2 op3 with precision op4, then one, otherwise zero edit sapz R,N R,N,C R,N,C op1 := (op2 0) If op2 0 with precision op3, then one, otherwise zero edit sb R,N,C,H P R,N,C op1.op2 := op3 Batch write to all devices with hash op1 to parameter op2 of value op3 edit sbn R,N,C,H R,N,C,H P R,N,C edit sbs R,N,H R,N,S P R,N,C edit sd R,N,C P R,N,C op1.op2 := op3 Writing a value to the op2 parameter of port op1 where op1 is the id of the device edit sdns R,N N,D op1 := ¬isset(op2) ? ten If channel op2 is not set to one, otherwise zero edit sdse R,N N,D op1 := isset(op2) ? ten If channel op2 is set to one, otherwise zero edit select R,N R,N,C R,N,C R,N,C op1 := (op2 ? op3 : op4) Ternary select. If op2 is true then op1 := op3, otherwise op1 := op4 edit seq R,N R,N,C R,N,C op1 := (op2 = op3) If op2 = op3, then one, otherwise zero edit seqz R,N R,N,C op1 := (op2 = 0) If op2 = 0, then one, otherwise zero edit sge R,N R,N,C R,N,C op1 := (op2 op3) If op2 op3, then one, otherwise zero edit sgez R,N R,N,C op1 := (op2 0) If op2 0, then one, otherwise zero edit sgt R,N R,N,C R,N,C op1 := (op2 > op3) If op2 > op3, then one, otherwise zero edit sgtz R,N R,N,C op1 := (op2 > 0) If op2 > 0, then one, otherwise zero edit sin R,N R,N,C op1 := sin(op2) Sinus* edit sla R,N R,N,C R,N,C op1 := op2 <<$ op3 Left arithmetic bitshift edit sle R,N R,N,C R,N,C op1 := (op2 op3) If op2 op3, then one, otherwise zero edit sleep R,N,C sleep Pause the program for op1 seconds edit slez R,N R,N,C op1 := (op2 0) If op2 0, then one, otherwise zero edit sll R,N R,N,C R,N,C op1 := op2 << op3 Left bitshift edit slt R,N R,N,C R,N,C op1 := (op2 < op3) If op2 < op3, then one, otherwise zero edit sltz R,N R,N,C op1 := (op2 < 0) If op2 < 0, then one, otherwise zero edit sna R,N R,N,C R,N,C R,N,C op1 := (op2 op3) If op2 op3 with precision op4, then one, otherwise zero edit snan R,N R,N edit snanz R,N R,N edit snaz R,N R,N,C R,N,C op1 := (op2 0) If op2 0 with precision op3, then one, otherwise zero edit sne R,N R,N,C R,N,C op1 := (op2 op3) If op2 op3, then one, otherwise zero edit snez R,N R,N,C op1 := (op2 0) If op2 0, then one, otherwise zero edit sqrt R,N R,N,C op1 := o̅p̅2̅ Square root edit sra R,N R,N,C R,N,C op1 := op2 >>$ op3 Right arithmetic bitshift edit srl R,N R,N,C R,N,C op1 := op2 >> op3 Right bitshift edit ss N,D R,N,S P R,N,C edit stack R,N,C [icX] stack 1 2 3 ... [icX] Populates the stack with argument values edit sub R,N R,N,C R,N,C op1 := op2 - op3 Difference edit tan R,N R,N,C op1 := tan(op2) Tangent* edit trunc R,N R,N,C op1 := int(op2) The integer part of number edit xor R,N R,N,C R,N,C op1 := op2 op3 XOR, one if one and only one of op2 and op3 is true, zero otherwise edit yield Pausing the program until the next tick edit