Super SNUSP

From Esolang
Jump to navigation Jump to search

Super SNUSP is a language inspired by the brainfudge derivative SNUSP. It has additional commands from other bf derivatives, like:

  • Decimal I/O
  • Arithmetic and bitwise operators
  • A stack
  • And more!

Commands

Caption text
Charcode Ascii Opcode Meaning
032 Space NOP Do nothing
033 ! SKIP Skip next instruction
034 " START This is where the IP starts. Starts at bottom right if not found.
035 # OUT Print cell value as decimal
036 $ DROP Pop the stack and discard
037 % MOD Modulo cell by stack top (has sign of cell)
038 & AND Bitwise and cell by stack top
039 ' END This is where the IP ends
040 ( DEC Subtract 1 from cell
041 ) INC Add 1 to cell
042 * MULT Multiply cell by stack top
043 + ADD Add stack top to cell
044 , KEY Get char input into cell
045 - SUB Subtract stack top from cell
046 . EMIT Print cell as byte character
047 / RULD Same as in SNUSP
048 - 057 0-9 SET If last command was digit, multiply by 10, else zero out and add literal value
058 : DIV Divide cell by stack top, rounded towards negative infinite
059 ; ROOT Set cell to stack top root of cell (rounded towards negative infinity, even root of negative is error)
060 < BAK Move pointer backwards by 1
061 = RAND Set cell to a random number between cell and stack pop
062 > FWD Move pointer forwards by 1
063 ? SKIPZ If cell == 0, perform a SKIP.
064 @ IN Input decimal number into current cell
064 - 090 A-Z - Set cell to ASCII value of letter
091 [ LSH Left shift cell by top of stack bits
092 \ LURD Same as in SNUSP
093 ] RSH Right shift
094 ^ XOR Bitwise xor cell by stack top
095 _ NEG Multiply cell by -1
096 ` SKIPN If cell is negative, perform a SKIP.
097 - 122 a-z - Set cell to ASCII value of letter
123 { STO Push cell to stack
124 | OR Bitwise or cell by stack top
125 } RCL Set cell to stack top
126 ~ NOT Bitwise not current cell

Examples

Hello, World!:

   "33>d>l>r>o>W>32>44>o>l>l>e>H!/ ?\' 
                                 \<./

Cat:

   ,!/ ?\'
     \,./

Computational class

Turing complete, because it has all of SNUSP's commands, except that + and - are replaced by ( and ).