These are the new/planned additions to the script language command set:

EXP - Sets arg1 to arg1! (ie. 3!=3x2x1)
POWERR
POWERV - Sets arg1 to arg1 to the arg2 power (arg1^arg2)
IPOWERR
IPOWERV - Sets arg1 to arg1 to the 1 over arg2 power (arg1^(1/arg2))
NOT - Sets arg1 to the bitwise-not of arg1 (!arg1)
ANDR
ANDV - Sets arg1 to arg1 bitwise-and arg2 (arg1&arg2)
ORR
ORV - Sets arg1 to arg1 bitwise-or arg2 (arg1|arg2)
XORR
XORV - Sets arg1 to arg1 bitwise-exclusive-or arg2 ((arg1|arg2)&!(arg1&arg2))
NANDR
NANDV - Sets arg1 to arg1 bitwise-nand arg2 (!(arg1&arg2))
NORR
NORV - Sets arg1 to arg1 bitwise-nor arg2 (!(arg1|arg2))
XNORR
XNORV - Sets arg1 to arg1 bitwise-exclusive-or arg2 (!((arg1|arg2)&!(arg1&arg2)))
LSHIFTR
LSHIFTV - Bit-shifts arg1 left by arg2 positions (fills with zeroes) (arg1<<arg2)
RSHIFTR
RSHIFTV - Bit-shifts arg1 right by arg2 positions (fills with zeroes) (arg1>>arg2)
LROTR
LROTV - Bit-shifts arg1 left by arg2 positions (fills with shifted bits) (similar to arg1<<arg2)
RROTR
RROTV - Bit-shifts arg1 right by arg2 positions (fills with shifted bits) (similar to arg1>>arg2)
PUSHR
PUSHV - Pushes arg1 onto the internal stack (first in, last out)
POP - Pops the top value from the internal stack and places it in arg1
ENQUEUER
ENQUEUEV - Adds arg1 to the internal queue (first in, first out)
DEQUEUE - Removes the first value from the internal queue and places it in arg1

These are the new arguments available:
sd0-sd7 - Persistent screen data. These values hold their data assigned to them for the current screen, even after going to another screen and coming back.
gd0-gd255 - Persistent global data. These can be set or read anywhere. So, you could set a global variable in one room then do something in another room based on that value.


Thoughts?