new features request

SHL(value;n) - shift left
this essentially integer multiplies value by 2 n times.
anything that gets shifted off the end is lost.
incoming new bits are 0's.
sign bits are kept.

SHR(value;n) - shift right
this essentially integer divides value by 2 n times.
anything that gets shifted off the end is lost.
incoming new bits are 0's.
sign bits are kept.

ROL(value;n;numbits) - rotate a word that is numbits bits wide left n bits
this is similar to SHL, except that bits rotated off the end wind up on the other end.

ROR(value;n;numbits) - rotate a word that is numbits bits wide right n bits
this is similar to SHL, except that bits rotated off the end wind up on the other end.

OR(a;b) - bit or of a, b
truth table is
a b out
-------
0 0 0
0 1 1
1 0 1
1 1 1

XOR(a;b) - exclusive or of a,b
truth table is
a b out
-------
0 0 0
0 1 1
1 0 1
1 1 0

NOR(a;b) - not or of a,b
truth table is
a b out
-------
0 0 1
0 1 0
1 0 0
1 1 0

XNOR(a;b) - exclusive Nor of a,b
truth table is
a b out
-------
0 0 1
0 1 0
1 0 0
1 1 1

AND(a;b) - and of a,b
truth table is
a b out
-------
0 0 0
0 1 0
1 0 0
1 1 1

NAND(a;b) - not and of a,b
truth table is
a b out
-------
0 0 1
0 1 1
1 0 1
1 1 0

NOT(a) - not of a
truth table
a out
-----
0 1
1 0

pow(x,y) - raise x to the power of y

fact(n) - factorial of n

prime(n) - return the nth prime

isprime(n) - returns 1 if number is prime, 0 if not.

CS(y) - basically pow(1024;y), can be negative

SI(y) - basically pow(1000;y), can be negative