OpenBoot 3.x Command Reference Manual

Stack Manipulation Commands

Table I-8 Stack Manipulation Commands

Command  

Stack Diagram 

Description 

clear

( ??? -- ) 

Empty the stack. 

depth

( -- u ) 

Return the number of items on the stack. 

drop

( x -- ) 

Remove top item from the stack. 

2drop

( x1 x2 -- ) 

Remove 2 items from the stack. 

3drop

( x1 x2 x3 -- ) 

Remove 3 items from the stack. 

dup

( x -- x x )  

Duplicate the top stack item. 

2dup

( x1 x2 -- x1 x2 x1 x2 ) 

Duplicate 2 stack items. 

3dup

( x1 x2 x3 -- x1 x2 x3 x1 x2 x3 ) 

Duplicate 3 stack items. 

?dup

( x -- x x | 0 ) 

Duplicate the top stack item if it is non-zero. 

nip

( x1 x2 -- x2 ) 

Discard the second stack item. 

over

( x1 x2 -- x1 x2 x1 ) 

Copy second stack item to top of stack. 

2over

( x1 x2 x3 x4 -- x1 x2 x3 x4 x1 x2 ) 

Copy second 2 stack items. 

pick

( xu ... x1 x0 u -- xu ... x1 x0 xu ) 

Copy u-th stack item (1 pick = over).

>r

( x -- ) (R: -- x ) 

Move a stack item to the return stack.  

r>

( -- x ) ( R: x -- ) 

Move a return stack item to the stack.  

r@

( -- x ) ( R: x -- x ) 

Copy the top of the return stack to the stack.  

roll

( xu ... x1 x0 u -- xu-1 ... x1 x0 xu ) 

Rotate u stack items (2 roll = rot).

rot

( x1 x2 x3 -- x2 x3 x1 ) 

Rotate 3 stack items. 

-rot

( x1 x2 x3 -- x3 x1 x2 ) 

Inversely rotate 3 stack items. 

2rot

( x1 x2 x3 x4 x5 x6 -- x3 x4 x5 x6 x1 x2 ) 

Rotate 3 pairs of stack items. 

swap

( x1 x2 -- x2 x1 ) 

Exchange the top 2 stack items. 

2swap

( x1 x2 x3 x4 -- x3 x4 x1 x2 ) 

Exchange 2 pairs of stack items. 

tuck

( x1 x2 -- x2 x1 x2 ) 

Copy top stack item below second item.