Checkout/Quick reference

:Back to Checkout
Command 	Arguments 	Description
Level 1 	Level 1 	Level 1
nop/1 	- 	Waits for a small but positive time.
discard/1 	a b 	Discards b words, starting at a.
mov/1 	a b 	Takes a and stores it in memory location b.
mov/1 	a b c 	Takes a and stores it in memory location c.
cnvi/1 	a b 	Converts the float a to an int and stores it in b.
cnvi/1 	a b c 	Converts the float a to an int and stores it in c.
cnvf/1 	a b 	Converts the int a to a float and stores it in b.
cnvf/1 	a b c 	Converts the int a to a float and stores it in c.
iszi/1 	a b 	If a is the int 0, store 1 in b, 0 otherwise.
iszi/1 	a b c 	If a is the int 0, store 1 in c, 0 otherwise.
isni/1 	a b 	If a is a negative int, store 1 in b, 0 otherwise.
isni/1 	a b c 	If a is a negative int, store 1 in c, 0 otherwise.
addi/1 	a b 	Stores a+b in b as ints.
addi/1 	a b c 	Stores a+b in c as ints.
subi/1 	a b 	Stores a-b in b as ints.
subi/1 	a b c 	Stores a-b in c as ints.
muli/1 	a b 	Stores a*b in b as ints.
muli/1 	a b c 	Stores a*b in c as ints.
divi/1 	a b 	Stores a/b in b as ints, rounding towards 0.
divi/1 	a b c 	Stores a/b in c as ints, rounding towards 0.
modi/1 	a b 	Stores a%b in b as ints.
modi/1 	a b c 	Stores a%b in c as ints.
andi/1 	a b 	Stores a bitwise-and b in b as ints.
andi/1 	a b c 	Stores a bitwise-and b in c as ints.
iori/1 	a b 	Stores a bitwise-or b in b as ints.
iori/1 	a b c 	Stores a bitwise-or b in c as ints.
xori/1 	a b 	Stores a bitwise-xor b in b as ints.
xori/1 	a b c 	Stores a bitwise-xor b in c as ints.
lshi/1 	a b 	Stores a left-shifted by b in b as ints.
lshi/1 	a b c 	Stores a left-shifted by b in c as ints.
rshi/1 	a b 	Stores a right-shifted by b in b as ints.
rshi/1 	a b c 	Stores a right-shifted by b in c as ints.
addf/1 	a b 	Stores a+b in b as floats.
addf/1 	a b c 	Stores a+b in c as floats.
subf/1 	a b 	Stores a-b in b as floats.
subf/1 	a b c 	Stores a-b in c as floats.
mulf/1 	a b 	Stores a*b in b as floats.
mulf/1 	a b c 	Stores a*b in c as floats.
divf/1 	a b 	Stores a/b in b as floats.
divf/1 	a b c 	Stores a/b in c as floats.
id/1 	a 	Writes an int to a that contains the current subunit number in level 1.
idtwo/1 	a 	Writes an int to a that contains the current subunit number in level 2.
idthree/1 	a 	Writes an int to a that contains the current subunit number in level 3.
abstain/1 	a b 	If the memory in a is nonzero, execute b. This is slower than if.
abstain/1 	a b c 	If the memory in a is nonzero, execute b, else execute c. This is slower
than if.
Level 2 	Level 2 	Level 2
nop/2 	- 	Waits for all the level 1 subunits to synchronise.
move/2 	a b c 	Moves some amount of memory regulated by c from a to b. a and b have to be in level 1 and 3, or
level 3 and 5, or level 1 and 5.
copy/2 	a b c 	Copies some amount of memory regulated by c from a to b. a and b have to be in level 1 and 3,
or level 3 and 5, or level 1 and 5.
rocopy/2 	a b c 	RO-copies some amount of memory regulated by c from a to b. a and b have to be in level 1 and
3, or level 3 and 5, or level 1 and 5.
discard/2 	a b 	Discards b words of memory at location a in level 3.
id/2 	a 	Writes an int to a that contains the current subunit number in level 2.
if/2 	a b 	If a is not 0, execute b.
if/2 	a b c 	If a is not 0, execute b, else execute c.
while/2 	a b 	While a is not 0, execute b.
Level 3 	Level 3 	Level 3
nop/3 	- 	Waits for all level 2 subunits to synchronise.
id/3 	a 	Writes an int to a that contains the current subunit number in level 3.
Level 4 	Level 4 	Level 4
nop/4 	- 	Waits for all level 3 subunits to synchronise. This command is profile-
dependent.
parloop/4 	a b c 	Creates a level 3 subunits, each with b level 2 subunits, and executes c on
the level 3 subunits.
Level 5 	Level 5 	Level 5
move/5 	a b c 	Moves c words from a to b. a and b must be of level 5 or 6.
copy/5 	a b c 	Copies c words from a to b. a and b must be of level 5 or 6.
rocopy/5 	a b c 	RO-copies c words from a to b. a and b must be of level 5 or 6.
discard/5 	a b 	Discards b words at a.
id/5 	a 	Writes an int to a that contains the current subunit number in level 5.
interleave/5	a1 a2 a3 ... an 	For each argument, creates a level 4 subunit and executes the code on the
said subunit.
malloc/5 	a b 	Allocates b words, and stores the pointer at a. This command is profile-
dependent.
free/5 	a 	Frees the memory created by malloc/5, referenced at a. This command is
profile-dependent.
in/5 	a 	Takes a word of input and stores it at a. This command is profile-
dependent.
out/5 	a 	Takes a word at a and outputs it. This command is profile-dependent.
Level 6 	Level 6 	Level 6
nop/6 	- 	Waits for all level 5 subunits to synchronise.
discard/6 	a b 	Discards b words at a.
if/6 	a b 	If a is not 0, execute b.
if/6 	a b c 	If a is not 0, execute b, else execute c.
while/6 	a b 	While a is not 0, execute b.
interleave/6	(system-dependent)	For each argument, create a new level 5 subunit, and execute the given code. How this command works is system-dependent.
malloc/6 	a b 	Allocates b words, and stores the pointer at a.
free/6 	a 	Frees the memory created by malloc/5, referenced at a.
Category:Languages
Category:Examples