# Bigger scheme - sam's capsule: Befunge-93 instruction list ``` / \ / k --- a b --- f / \ / \ me --- l i \ / \ / j --- c d --- e \ / g --- h ``` - 0-9 Push this number on the stack - + Addition: Pop a and b, then push a+b - - Subtraction: Pop a and b, then push b-a - * Multiplication: Pop a and b, then push a*b - / Integer division: Pop a and b, then push b/a, rounded towards 0. - % Modulo: Pop a and b, then push the remainder of the integer division of b/a. - ! Logical NOT: Pop a value. If the value is zero, push 1; otherwise, push zero. - ` Greater than: Pop a and b, then push 1 if b>a, otherwise zero. - > Start moving right - < Start moving left - ^ Start moving up - v Start moving down - ? Start moving in a random cardinal direction - _ Pop a value; move right if value=0, left otherwise - | Pop a value; move down if value=0, up otherwise - " Start string mode: push each character's ASCII value all the way up to the next " - : Duplicate value on top of the stack - \ Swap two values on top of the stack - $ Pop value from the stack and discard it - . Pop value and output as an integer followed by a space - , Pop value and output as ASCII character - # Bridge: Skip next cell - p A "put" call (a way to store a value for later use). Pop y, x, and v, then change the character at (x,y) in the program to the character with ASCII value v - g A "get" call (a way to retrieve data in storage). Pop y and x, then push ASCII value of the character at that position in the program - & Ask user for a number and push it - ~ Ask user for a character and push its ASCII value - @ End program - (space) No-op. Does nothing => random/ Back