export interface Instruction { symbol: string name: string ascii: string description: string searchtags: string } const instructions: Instruction[] = [ { symbol: "0️⃣", name: "0", ascii: "0", description: "Push 0 to the stack", searchtags: "zero 0 number value" }, { symbol: "1️⃣", name: "1", ascii: "1", description: "Push 1 to the stack", searchtags: "one 1 number value" }, { symbol: "2️⃣", name: "2", ascii: "2", description: "Push 2 to the stack", searchtags: "two 2 number value" }, { symbol: "3️⃣", name: "3", ascii: "3", description: "Push 3 to the stack", searchtags: "three 3 number value" }, { symbol: "4️⃣", name: "4", ascii: "4", description: "Push 4 to the stack", searchtags: "four 4 number value" }, { symbol: "5️⃣", name: "5", ascii: "5", description: "Push 5 to the stack", searchtags: "five 5 number value" }, { symbol: "6️⃣", name: "6", ascii: "6", description: "Push 6 to the stack", searchtags: "six 6 number value" }, { symbol: "7️⃣", name: "7", ascii: "7", description: "Push 7 to the stack", searchtags: "seven 7 number value" }, { symbol: "8️⃣", name: "8", ascii: "8", description: "Push 8 to the stack", searchtags: "eight 8 number value" }, { symbol: "9️⃣", name: "9", ascii: "9", description: "Push 9 to the stack", searchtags: "nine 9 number value" }, { symbol: "👈", name: "left", ascii: "<", description: "Make program counter point left", searchtags: "hand left direction" }, { symbol: "👉", name: "right", ascii: ">", description: "Make program counter point right", searchtags: "hand right direction" }, { symbol: "👇", name: "down", ascii: "v", description: "Make program counter point down", searchtags: "hand down direction" }, { symbol: "👆", name: "up", ascii: "^", description: "Make program counter point up", searchtags: "hand up direction" }, { symbol: "➕", name: "add", ascii: "+", description: "Pop two values a and b, then push the result of a+b", searchtags: "add plus +" }, { symbol: "➖", name: "subtract", ascii: "-", description: "Pop two values a and b, then push the result of a-b", searchtags: "subtract minus -" }, { symbol: "✖️", name: "multiply", ascii: "*", description: "Pop two values a and b, then push the result of a*b", searchtags: "multiply multiplication x *" }, { symbol: "➗", name: "divide", ascii: "/", description: "Pop two values a and b, then push the result of a/b", searchtags: "divide division /" }, { symbol: "🚮", name: "modulo", ascii: "%", description: "Pop two values a and b, then push the result of a mod b", searchtags: "modulo remainder" }, { symbol: "🚫", name: "logical not", ascii: "!", description: "Pop a value. If the value is zero, push 1; otherwise, push zero.", searchtags: "logical not" }, { symbol: "📏", name: "greater than", ascii: "`", description: "Pop two values a and b, then push 1 if b>a, otherwise zero.", searchtags: "greater than > < ruler" }, { symbol: "🎲", name: "random direction", ascii: "?", description: "Change direction randomly", searchtags: "random direction dice" }, { symbol: "🔛", name: "horizontal if", ascii: "_", description: "Pop a value; set direction to right if value=0, set to left otherwise", searchtags: "left right conditional if leftright" }, { symbol: "🪜", name: "vertical if", ascii: "|", description: "pop a value; set direction to down if value=0, set to up otherwise", searchtags: "up down conditional if ladder" }, { symbol: "📜", name: "string mode", ascii: "''", description: "Toggle stringmode (push each character's ASCII value all the way up to the next \")", searchtags: "string stringmode char scroll" }, { symbol: "🧬", name: "duplicate", ascii: ":", description: "Duplicate top stack value", searchtags: "duplicate dna" }, { symbol: "💱", name: "swap", ascii: "\\", description: "Swap top stack values", searchtags: "swap" }, { symbol: "🗑️", name: "discard", ascii: "$", description: "Pop top of stack and discard", searchtags: "pop discard trash delete" }, { symbol: "🔢", name: "print number", ascii: ".", description: "Pop top of stack and output as integer", searchtags: "pop print write integer number" }, { symbol: "✍", name: "print character", ascii: ",", description: "Pop top of stack and output as ASCII character", searchtags: "pop print write char" }, { symbol: "🦘", name: "jump", ascii: "#", description: "Jump over next command", searchtags: "bridge jump skip kangaroo" }, { symbol: "📥", name: "get", ascii: "g", description: 'A "get" call (a way to retrieve data in storage). Pop two values y and x, then push the ASCII value of the character at that position in the program. If (x,y) is out of bounds, push 0', searchtags: "get" }, { symbol: "📤", name: "put", ascii: "p", description: 'A "put" call (a way to store a value for later use). Pop three values y, x and v, then change the character at the position (x,y) in the program to the character with ASCII value v', searchtags: "put" }, { symbol: "📲", name: "number input", ascii: "&", description: "Get number from user input and push it", searchtags: "input integer" }, { symbol: "🔤", name: "character input", ascii: "~", description: "Get character from user and push it", searchtags: "input character" }, { symbol: "🏁", name: "end", ascii: "@", description: "End program", searchtags: "end return finish done exit" }, { symbol: " ", name: "Blank", ascii: " ", description: "Do nothing.", searchtags: "empty" } ] export default instructions