269 lines
6.2 KiB
TypeScript
269 lines
6.2 KiB
TypeScript
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
|