# 9f87m4atttaaaou;

9f87m4atttaaaou; (pronounced Mashed Potatolang) is a Stack-Based esolang by CosmicMan08#1975 (User:CosmicMan08). It was designed to make it look like any program made in it was made by mashing your keyboard.

## Instruction list

Arithmetics
Instruction Use
a pops two values a and b, then pushes the result of a + b
d pops two values a and b, then pushes the result of a / b
e pops two values a and b, then pushes the result of a ^ b
p increments the value at the top of the stack by 1
u decrements the value at the top of the stack by 1
v pops a value a, then returns the square root of a
s pops two values a and b, then pushes the result of a - b
g pops two values a and b, if a is greater than b it will push 1, otherwise it will push 0
l pops two values a and b, if a and b have the same value it will push 1, otherwise it will push 0
m pops two values a and b, then pushes the result of a * b
n pops a value, if the value is 0 it will push 1, otherwise it will push 0
% pops two values a and b, then pushes the result of a % b
Stack Manipulation
Instruction Use
c duplicates the value at the top of the stack
r discards the value at the top of the stack
x pops a value a, then moves the value at that point in the stack to the end
y pops 2 values a and b, then inserts b into the ath position of the stack
z swaps the top two values of the stack
Data
Instruction Use
i gets one byte of ascii input and pushes it
o pops a value and prints out the corresponding ascii character
_ prints out the memory
, gets a number input and pushes it
. pops a value and prints it out
q gets a string of input and pushes each character in it
j pushes the size of the stack
t pushes a random value from 1 - 10
0 pushes 0 to the top of the stack
1 pushes 1 to the top of the stack
2 pushes 2 to the top of the stack
3 pushes 3 to the top of the stack
4 pushes 4 to the top of the stack
5 pushes 5 to the top of the stack
6 pushes 6 to the top of the stack
7 pushes 7 to the top of the stack
8 pushes 8 to the top of the stack
9 pushes 9 to the top of the stack
Program Control
Instruction Use
b pops a value a, then move the pc to a
f starts a loop if the top of the stack isn't 0
w starts a loop if the top of the stack is 0
; marks the end of a f loop
: marks the end of a w loop
k exits a f loop without having to hit a ;
' exits a w loop without having to hit a :
h halts the program
^ toggles whether or not the pc reads non-^ characters

## Computational Class

It is possible to convert any cyclic tag program to a 9f87m4atttaaaou; program, making 9f87m4atttaaaou; turing complete.

The converted program starts with the datastring, then `_1fr`, from there it converts the instructions in the program string into 9f87m4atttaaaou; instructions...

CT 9f87m4atttaaaou;
0 0uxf0zk;0y_
1 0uxf1zk;0y_
; 0xr_jwh:r

...finally the program ends with `j;`.

## Examples

### Hello, World!

`98mo5cacm1ao6ca9mcoo5ccaz6am1ao8cacao65a8m1zso5ccaz6am1ao5cacm7caao6ca9mo5cacmo`

### Hello, World! (optimized version)

`98mo29pepco7acoco3ao95muco84mo2muco83maco3aco6zso29pecou3zdo`

`,fc.;.`

### 4-operation calculator

`,i,z67mswrm.h:pwra.h:2awrzs.h:2awrzd.h:`

### Fibonacci Sequence

`01fc.48moc0ya;`

`01fri29peswzuz':5awzpz':6awzc.z9po':4awz2ez':rpfuk;c82eswz':r1;`
The name of this esolang (`9f87m4atttaaaou;`) is a program that generates a keymash-esque string.