Ragaraja

From Esolang
Jump to: navigation, search

Ragaraja is created by Maurice Ling and is a derivative and massive extension of Brainfuck. This work is influenced by a large number of Brainfuck derivatives, other esoteric programming languages, and even assembly languages. Probably the most critical difference between Ragaraja and other Brainfuck derivatives is the large number of commands / instructions - 1000 possible commands / instructions, inspired by Lord Nandi (Lord Shiva's mount) who was supposed to be the first author of Kama Sutra and wrote it in 1000 chapters.

Etymology

Ragaraja is the name of a Mahayana Buddhist deity from Esoteric traditions. The Japanese calls him 愛染明王 (simplified Chinese script: 爱染明王). Ragaraja is one of the Wisdom Kings (a group of Bodhisattvas) and represents the state at which sexual excitement or agitation can be channeled towards enlightenment and passionate love can become compassion for all living things. Hence, I name this compilation/derivative/extension of Brainfuck in 1000 commands/instructions/opcode to signify the epitome, a channeling of raw urge to the love and compassion for and towards every being. May really be viewed as Brainfuck attaining enlightenment or Nirvana. Whoever that can remember all 1000 commands and use it, really deserves an award.

References to Biology

One of the main driving force for developing Ragaraja is as instruction set for digital organisms. In other words, to act as genome for digital organism. In natural DNA, only 4 bases are used, resulting in 64 (4³) codons. In Ragaraja, it defined 10 bases; hence, resulting in 1000 instructions (10³). This allows for single digit change to reflect point mutations in DNA.

Influences from Other Works

  1. AlPhAbEt: Large number of registers. AlPhAbEt defined a total of 63 registers.
  2. Avida: An artificial life simulator.
  3. BCDFuck: Accumulator for 1 to 9 (add between 1 to 9 to the current cell).
  4. Brains: Break and continue commands.
  5. Brainstuck and Hargfak: Stack operations (simulated using registers).
  6. D1ffe7e45e and Numberwang (brainfuck derivative): Based on numbers as commands/instructions rather than alphabets and symbols.
  7. Extended Brainfuck: Logical (Extended Type I) and arithmetic (Extended Type II) operators.
  8. Grin: Common mathematical functions.
  9. L00P: Negation (multiply current cell value by -1).
  10. Loose Circular Brainfuck (LCBF): The tape or array is circular (a ring list) instead of linear. When the pointer is at the "end" of the tape, an increment (">") will move the tape to the start. Similarly, when the pointer is decremented at the "beginning" of the tape, the pointer goes to the end.
  11. Memfuck: Destroy memory stack (emulated by clearing of registers).
  12. Minimal: Skip instruction command.
  13. NucleotideBF (nBF): Random commands.
  14. Self-modifying Brainfuck: Allows a program to modify its own source code.

Interpreter Environment

The interpreter environment consists of the following elements:

  1. Tape: A circular tape initialized with 30 thousand cells each with zero. This can be visualized as a 30,000 cell register machine. The number of cells can increase or decrease during run-time.
  2. Source: The program
  3. Input List: A list of data given to the execution environment at initialization.
  4. Output List: A list of output from the execution. This may also be used as a secondary tape.
  5. Set of 99 registers: Can be used as temporary storage for writing to and reading cell values from the tape.

When the program terminates, tape, source, input list and output list are returned, and the interpreter terminates itself.

Description of Commands / Instructions

Command Description
000 Move forward by one cell on tape. Equivalent to ">" in Brainfuck
001 Move forward by 5 cells on tape. Equivalent to 5 times of "000".
002 Move forward by 10 cells on tape. Equivalent to 10 times of "000".
003 Move forward by NxN cells on tape where N is the value of the current cell. If N is a decimal, it will move forward by the floor of NxN. For example, if N is 4.2, this operation will tape pointer forward by 17 cells. As NxN is always a positive number, it does not matter if the value of the current cell is positive or negative.
004 Move backward by one cell on tape. Equivalent to "<" in Brainfuck
005 Move backward by 5 cells on tape. Equivalent to 5 times of "004".
006 Move backward by 10 cells on tape. Equivalent to 10 times of "004".
007 Move backward by NxN cells on tape where N is the value of the current cell. If N is a decimal, it will move backward by the floor of NxN. For example, if N is 4.2, this operation will tape pointer backward by 17 cells. As NxN is always a positive number, it does not matter if the value of the current cell is positive or negative.
008 Increase value of cell by 1. Equivalent to "+" in Brainfuck
009 Increase value of cell by 5. Equivalent to 5 times of "008".
010 Increase value of cell by 10. Equivalent to 10 times of "008".
011 Decrease value of cell by 1. Equivalent to "-" in Brainfuck
012 Decrease value of cell by 5. Equivalent to 5 times of "011".
013 Decrease value of cell by 10. Equivalent to 10 times of "011".
014 Start loop. Will only enter loop if current cell is more than "0". If current cell is "0" or less, it will go to the end of the loop (command 015). if the loop is not closed, it will go to the end of the source.
015 End loop. However, it is possible to have an end loop operator (command 015) without a preceding start loop operator (command 014). In this case, the end loop operator (command 015) will be ignored and execution continues.
016 Add one cell to the end of the tape.
017 Add 10 cells to the end of the tape.
018 Remove one cell from the end of the tape. If original tape pointer is at the last cell before removal operation, the tape pointer will point to the last cell after removal.
019 Remove 10 cells from the end of the tape. If original tape pointer is at the last cell before removal operation, the tape pointer will point to the last cell after removal.
020 Output current tape cell value and append to the end of the output list. Equivalent to "." in Brainfuck
021 Output current tape cell location and append to the end of the output list.
022 Output current source location and append to the end of the output list.
023 Move source pointer forward by one instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
024 Move source pointer forward by 5 instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
025 Move source pointer forward by 10 instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
026 Move source pointer backward by one instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
027 Move source pointer backward by 5 instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
028 Move source pointer backward by 10 instruction without execution if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer.
029 Replace current source instruction with current tape cell value.
030 Invert current source instruction. For example, if the current source instruction is "345", it will be replaced with "765".
031 Invert current tape cell value. For example, if the current tape cell value is "345", it will be replaced with "765".
032 Double current tape cell value.
033 Half current tape cell value.
034 Insert a cell after the current tape cell. For example, if current tape cell is 35, a cell initialized to zero will be added as cell 36. As a result, the tape is 1 cell longer.
035 Delete the current cell. As a result, the tape is 1 cell shorter.
036 Delete the current and append to the end of the output list. As a result, the tape is 1 cell shorter.
037 Replace the current tape cell value with the last value of the output list, and delete the last value from the output list.
038 Replace the current tape cell value with the last value of the output list, without deleting the last value from the output list.
039 Replace the current tape cell value with the first value of the output list, and delete the first value from the output list.
040 Replace the current tape cell value with the first value of the output list, without deleting the first value from the output list.
041 Remove first value from the output list.
042 Remove last value from the output list.
043 Move the tape cell pointer to the first cell.
044 Move the tape cell pointer to the last cell.
045 Move the tape cell pointer to the location determined by the last value of the output list. If the last value of the output list is more than the length of the tape, it will take the modulus of the length of the tape. For example, the last value of the output list is 5, the tape cell pointer will point to the 5th cell on the tape.
046 Flip the tape. The original first cell becomes the last cell but the tape pointer does not flip in location.
047 Flip the output list.
048 Flip the instruction list (source) but the source pointer does not flip in location.
049 Randomly execute an instruction from 000 to 009.
050 Randomly execute "008" (increment by 1) or "000" (move forward by 1). Equivalent to "R" in NucleotideBF (nBF)
051 Randomly execute "011" (decrement by 1) or "004" (move backward by 1). Equivalent to "Y" in NucleotideBF (nBF)
052 Randomly execute "000" (move forward by 1) or "004" (move backward by 1). Equivalent to "S" in NucleotideBF (nBF)
053 Randomly execute "008" (increment by 1) or "011" (decrement by 1). Equivalent to "W" in NucleotideBF (nBF)
054 Randomly execute "000" (move forward by 1) or "011" (decrement by 1). Equivalent to "K" in NucleotideBF (nBF)
055 Randomly execute "004" (move backward by 1) or "008" (increment by 1). Equivalent to "M" in NucleotideBF (nBF)
056 Randomly execute "000" (move forward by 1) or "004" (move backward by 1) or "011" (decrement by 1). Equivalent to "B" in NucleotideBF (nBF)
057 Randomly execute "000" (move forward by 1) or "008" (increment by 1) or "011" (decrement by 1). Equivalent to "D" in NucleotideBF (nBF)
058 Randomly execute "004" (move backward by 1) or "008" (Increment by 1) or "011" (decrement by 1). Equivalent to "H" in NucleotideBF (nBF)
059 Randomly execute "000" (move forward by 1) or "004" (move backward by 1) or "008" (increment by 1). Equivalent to "V" in NucleotideBF (nBF)
060 Randomly execute "000" (move forward by 1) or "004" (move backward by 1) or "008" (increment by 1) or "011" (decrement by 1). Equivalent to "N" in NucleotideBF (nBF)
061 Move forward by the number of cells signified by the current cell.
062 Move backward by the number of cells signified by the current cell.
063 Writes the first value of the input list into the current cell and remove the value from the input list. If input list is empty, "0" will be written. Equivalent to "," in Loose Circular Brainfuck (LCBF)
064 Writes the first value of the input list into the current cell and without removing the value from the input list. If input list is empty, "0" will be written.
065 Add the value of the current cell (n) and (n+1)th cell, and store the value in the current cell. Array[n] = Array[n] + Array[n+1]
066 Add the value of the current cell (n) and first of the input list, and store the value in the current cell.
067 Add the value of the current cell (n) and last of the input list, and store the value in the current cell.
068 Subtract the value of the current cell (n) from (n+1)th cell, and store the value in the current cell. Array[n] = Array[n+1] - Array[n]
069 Subtract the value of the current cell (n) from the first of the input list, and store the value in the current cell. Array[n] = InputList[0] - Array[n]
070 Subtract the value of the current cell (n) from the last of the input list, and store the value in the current cell. Array[n] = InputList[-1] - Array[n]
071 Multiply the value of the current cell (n) and (n+1)th cell, and store the value in the current cell. Array[n] = Array[n+1] * Array[n]
072 Multiply the value of the current cell (n) and first of the input list, and store the value in the current cell.
073 Multiply the value of the current cell (n) and last of the input list, and store the value in the current cell.
074 Divide the value of the current cell (n) from (n+1)th cell, and store the value in the current cell. Array[n] = Array[n+1] / Array[n]
075 Divide the value of the current cell (n) from the first of the input list, and store the value in the current cell. Array[n] = InputList[0] / Array[n]
076 Divide the value of the current cell (n) from the last of the input list, and store the value in the current cell. Array[n] = InputList[-1] - Array[n]
077 Modulus (remainder after division) the value of the current cell (n) from (n+1)th cell, and store the value in the current cell. Array[n] = Array[n+1] % Array[n]
078 Modulus (remainder after division) the value of the current cell (n) from the first of the input list, and store the value in the current cell. Array[n] = InputList[0] % Array[n]
079 Modulus (remainder after division) the value of the current cell (n) from the last of the input list, and store the value in the current cell. Array[n] = InputList[-1] % Array[n]
080 Floor the value of the current cell. For example, if the value of the current cell is 6.7, it will becomes 6.
081 Swap the value of the current cell (n) and (n+1)th cell.
082 Skip next instruction if current cell is "0". Equivalent to "/" in Minimal. However, this operation will only execute if there is at least 1 more instruction from the current instruction.
083 Skip the number of instructions equivalent to the absolute integer value of the current cell if the source pointer does not point beyond the length of the source after the move, otherwise, does not move the source pointer. For example, if current cell is "5.6" or "5", the next 5 instructions will be skipped.
084 Set current tape cell to "0".
085 Set current tape cell to "-1".
086 Set current tape cell to "1".
087 Negate the value of the current cell. Positive value will be negative. Negative value will be positive. Equivalent to "_" in L00P
088 Calculate the sine of the value of the current cell (measured in radians) and replace. Equivalent to "s" in Grin. Array[n] = sine(Array[n])
089 Calculate the cosine of the value of the current cell (measured in radians) and replace. Equivalent to "c" in Grin. Array[n] = cosine(Array[n])
090 Calculate the tangent of the value of the current cell (measured in radians) and replace. Equivalent to "t" in Grin. Array[n] = tangent(Array[n])
091 Calculate the arc sine of the value of the current cell (measured in radians) and replace. Equivalent to "S" in Grin. Array[n] = arcsine(Array[n])
092 Calculate the arc cosine of the value of the current cell (measured in radians) and replace. Equivalent to "C" in Grin. Array[n] = arccosine(Array[n])
093 Calculate the arc tangent of the value of the current cell (measured in radians) and replace. Equivalent to "T" in Grin. Array[n] = arctangent(Array[n])
094 Calculate the reciprocal of the value of the current cell (measured in radians) and replace. Equivalent to "1" in Grin. Array[n] = 1/Array[n]
095 Calculate the square root of the value of the current cell (measured in radians) and replace. Equivalent to "q" in Grin. Array[n] = sqrt(Array[n])
096 Calculate the natural logarithm of the value of the current cell (measured in radians) and replace. Equivalent to "l" in Grin. Array[n] = ln(Array[n])
097 Set the value of the current cell to pi (3.14159265358979323846)
098 Set the value of the current cell to e (2.718281828459045)
099 Calculate the hyperbolic sine of the value of the current cell (measured in radians) and replace. Array[n] = sinh(Array[n])
100 Calculate the hyperbolic cosine of the value of the current cell (measured in radians) and replace. Array[n] = cosh(Array[n])
101 Calculate the hyperbolic tangent of the value of the current cell (measured in radians) and replace. Array[n] = tanh(Array[n])
102 Calculate the hyperbolic arc sine of the value of the current cell (measured in radians) and replace. Array[n] = arcsinh(Array[n])
103 Calculate the hyperbolic arc cosine of the value of the current cell (measured in radians) and replace. Array[n] = arccosh(Array[n])
104 Calculate the hyperbolic arc tangent of the value of the current cell (measured in radians) and replace. Array[n] = arctanh(Array[n])
105 Convert the value of the current cell (measured in radians) to degrees and replace.
106 Convert the value of the current cell (measured in degrees) to radians and replace.
107 Raise the value of the current cell (n) to e, and store the value in the current cell. Array[n] = Array[n]^e
108 Raise e to the value of the current cell (n), and store the value in the current cell. Array[n] = e^Array[n]
109 Raise 10 to the value of the current cell (n), and store the value in the current cell. Array[n] = 10^Array[n]
110 Raise the value of the current cell (n) to the value of (n+1)th cell, and store the value in the current cell. Array[n] = Array[n]^Array[n+1]
111 Calculate the n-th root of the value of the current cell (n) where n is the value of (n+1)th cell, and store the value in the current cell. Array[n] = Array[n]^(1/Array[n+1])
112 Calculate the error function of the value of the current cell and replace. Array[n] = erf(Array[n])
113 Calculate the complementary error function of the value of the current cell and replace. Array[n] = erfc(Array[n])
114 Calculate the factorial of the integer value of the current cell (if the integer value is positive) and replace. Array[n] = factorial(Array[n])
115 Calculate the factorial of the absolute integer value of the current cell and replace. Array[n] = factorial(abs(Array[n]))
116 Calculate the Euclidean distance (hypotenuse) value of the current cell (n) to the value of (n+1)th cell, and store the value in the current cell. Array[n] = sqrt(Array[n]*Array[n] + Array[n+1]*Array[n+1])
117 Calculate the logarithm value of the current cell (n) to the base of the value of (n+1)th cell, and store the value in the current cell. Array[n] = log(Array[n], base=Array[n+1])
118 Break out of the current loop - jump past the first unmatched "]". Equivalent to "'" in Brains
119 Continue - jump to the first unmatched "]". Equivalent to "`" in Brains
120 AND operator: Given positive numbers (>0) as True and zero or negative numbers (<=0)as False, store Array[current] AND Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
121 OR operator: Given positive numbers (>0) as True and zero or negative numbers (<=0)as False, store Array[current] OR Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
122 NOT operator: Given positive numbers (>0) as True and zero or negative numbers (<=0)as False, store NOT Array[current] in the current cell (Array[current]) where "0" is False and "1" is True.
123 LESS-THAN operator: Store Array[current] < Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
124 MORE-THAN operator: Store Array[current] > Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
125 EQUAL operator: Store Array[current] = Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
126 NOT-EQUAL operator: Store Array[current] != Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
127 LESS-THAN-OR-EQUAL operator: Store Array[current] <= Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
128 MORE-THAN-OR-EQUAL operator: Store Array[current] => Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True.
129 NAND operator: Given positive numbers (>0) as True and zero or negative numbers (<=0)as False, store Array[current] NAND Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True. Array[current] NAND Array[current+1] is equivalent to NOT (Array[current] AND Array[current+1])
130 NOR operator: Given positive numbers (>0) as True and zero or negative numbers (<=0)as False, store Array[current] NOR Array[current+1] in the current cell (Array[current]) where "0" is False and "1" is True. Array[current] NOR Array[current+1] is equivalent to NOT (Array[current] OR Array[current+1])
131 Flip the tape from the cell after the current cell to the end of the tape (temporarily breaking the circularity of the tape).
132 Goto next Jump Identifier I if present (instruction '200'). If next Jump Identifier I is not present, continue to next instruction.
133 Goto next Jump Identifier II if present (instruction '300'). If next Jump Identifier II is not present, continue to next instruction.
134 Goto next Jump Identifier III if present (instruction '400'). If next Jump Identifier III is not present, continue to next instruction.
135 Goto next Jump Identifier IV if present (instruction '500'). If next Jump Identifier IV is not present, continue to next instruction.
136 Goto next Jump Identifier V if present (instruction '600'). If next Jump Identifier V is not present, continue to next instruction.
137 Goto next Jump Identifier VI if present (instruction '700'). If next Jump Identifier VI is not present, continue to next instruction.
138 Goto next Jump Identifier VII if present (instruction '800'). If next Jump Identifier VII is not present, continue to next instruction.
139 Goto next Jump Identifier VIII if present (instruction '900'). If next Jump Identifier VIII is not present, continue to next instruction.
140 Move tape pointer to the centre of the tape. If the tape has odd number cells, it will move to the lower cell. For example, this instruction will move the tape pointer to the 500th cell of a 1000-cell tape, or 142nd of a 285-cell tape.
141 Move tape pointer to 1/4 the of the tape. If the tape has odd number cells, it will move to the lower cell. For example, this instruction will move the tape pointer to the 250th cell of a 1000-cell tape, or 71st of a 285-cell tape.
142 Move tape pointer to 3/4 the of the tape. If the tape has odd number cells, it will move to the lower cell. For example, this instruction will move the tape pointer to the 750th cell of a 1000-cell tape, or 213rd of a 285-cell tape.
143 Move tape pointer to the position as the integer value in the current cell. If the value of the cell is larger than the length of the tape, it will move to the modulus of the integer value in the current cell.
144 Divide current cell value by 10.
145 Multiply current cell value by 10.
146 Add all cell values from (n+1)th cell to the end of the tape and store result in current cell (n). Array[n] = sum(Array[n+1:])
147 Add all cell values from n-th cell to the end of the tape and store result in current cell (n). Array[n] = sum(Array[n:])
148 Add all cell values from first cell to the cell before n-th cell and store result in current cell (n). Array[n] = sum(Array[0:n])
149 Add all cell values from first cell to n-th cell (inclusive) and store result in current cell (n). Array[n] = sum(Array[0:n+1])
150 Add all cell values in the tape and store result in current cell (n). Array[n] = sum(Array[:])
151 Average all cell values from (n+1)th cell to the end of the tape and store result in current cell (n). Array[n] = average(Array[n+1:])
152 Average all cell values from n-th cell to the end of the tape and store result in current cell (n). Array[n] = average(Array[n:])
153 Average all cell values from first cell to the cell before n-th cell and store result in current cell (n). Array[n] = average(Array[0:n])
154 Average all cell values from first cell to n-th cell (inclusive) and store result in current cell (n). Array[n] = average(Array[0:n+1])
155 Half every cell value in tape.
156 Double every cell value in tape.
157 Divide every cell value in tape by 10.
158 Multiply every cell value in tape by 10.
159 Divide every cell value in tape by 100.
160 Multiply every cell value in tape by 100.
161 Cut the tape before the current cell (n) and append it to the end of the tape and set tape pointer to 0. <---A--->n<---B---> ==> n<---B---><---A--->
162 Cut the tape after the current cell (n) and append it to the start of the tape and set tape pointer to the last cell. <---A--->n<---B---> ==> <---B---><---A--->n
163 Cut out the current cell and append it to the front of the tape and set tape pointer to 0. <---A--->n<---B---> ==> n<---A---><---B--->
164 Cut out the current cell and append it to the end of the tape and set tape pointer to the last cell. <---A--->n<---B---> ==> <---A---><---B--->n
165 Multiply every cell value in tape by -1.
166 Square all the cell values in the cells after the current cell (current cell value is not affected).
167 Square all the cell values in the cells before the current cell (current cell value is not affected).
168 Square every cell value in tape.
169 Square root every cell value in tape.
170 Square root all the cell values in the cells after the current cell (current cell value is not affected).
171 Square root all the cell values in the cells before the current cell (current cell value is not affected).
172 Append all the cell values in the cells after the current cell to the end of output list (current cell is not appended to output list).
173 Append all the cell values in the cells after the current cell to the end of output list (current cell is not appended to output list), then set the values of all the cells after the current cell to "0" (current cell value is not affected).
174 Append all the cell values in the cells to the end of output list.
175 Append all the cell values in the cells to the end of output list and set the tape to "0".
176 Append all the cell values in the cells before the current cell to the end of output list (current cell is not appended to output list).
177 Append all the cell values in the cells before the current cell to the end of output list (current cell is not appended to output list), then set the values of all the cells after the current cell to "0" (current cell value is not affected).
178 Append all cell values from after the current cell to the end of the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
179 Append all cell values from after the current cell to the start of the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
180 Insert all cell values from after the current cell to immediately after the current instruction the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
181 Append all cell values from before the current cell to the end of the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
182 Append all cell values from before the current cell to the start of the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
183 Insert all cell values from before the current cell to immediately after the current instruction the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
184 Append all cell values from the tape to the end of the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
185 Append all cell values from the tape to the start of the source string. Each cell value is floored and modulus of 999 is taken to append to the source
186 Insert all cell values from the tape to immediately after the current instruction the source string. Each cell value is floored and modulus of 999 is taken to append to the source.
187 Set all the cell values in the cells after the current cell to "0" (current cell is not affected).
188 Set all the cell values in the cells before the current cell to "0" (current cell is not affected).
189 Set all values in tape to "0".
190 Set all the cell values in the tape to the value of current cell.
191 Set all the cell values in the tape to the tape position of current cell.
192 Set all the cell values in the cells after the current cell to the value of current cell.
193 Set all the cell values in the cells before the current cell to the value of current cell.
194 Set all the cell values in the cells after the current cell to the tape position of current cell.
195 Set all the cell values in the cells before the current cell to the tape position of current cell.
196 Set the value of the current cell to the standard deviation of the values in the tape.
197 Set the value of the current cell to the geometric mean of the values in the tape.
198 Set the value of the current cell to the harmonic mean of the values in the tape.
199 Set the value of the current cell to the root-mean-square of the values in the tape.
200 Jump identifier I
201 Store value of current tape cell to register #1
202 Store value of current tape cell to register #2
203 Store value of current tape cell to register #3
204 Store value of current tape cell to register #4
205 Store value of current tape cell to register #5
206 Store value of current tape cell to register #6
207 Store value of current tape cell to register #7
208 Store value of current tape cell to register #8
209 Store value of current tape cell to register #9
210 Store value of current tape cell to register #10
211 Store value of current tape cell to register #11
212 Store value of current tape cell to register #12
213 Store value of current tape cell to register #13
214 Store value of current tape cell to register #14
215 Store value of current tape cell to register #15
216 Store value of current tape cell to register #16
217 Store value of current tape cell to register #17
218 Store value of current tape cell to register #18
219 Store value of current tape cell to register #19
220 Store value of current tape cell to register #20
221 Store value of current tape cell to register #21
222 Store value of current tape cell to register #22
223 Store value of current tape cell to register #23
224 Store value of current tape cell to register #24
225 Store value of current tape cell to register #25
226 Store value of current tape cell to register #26
227 Store value of current tape cell to register #27
228 Store value of current tape cell to register #28
229 Store value of current tape cell to register #29
230 Store value of current tape cell to register #30
231 Store value of current tape cell to register #31
232 Store value of current tape cell to register #32
233 Store value of current tape cell to register #33
234 Store value of current tape cell to register #34
235 Store value of current tape cell to register #35
236 Store value of current tape cell to register #36
237 Store value of current tape cell to register #37
238 Store value of current tape cell to register #38
239 Store value of current tape cell to register #39
240 Store value of current tape cell to register #40
241 Store value of current tape cell to register #41
242 Store value of current tape cell to register #42
243 Store value of current tape cell to register #43
244 Store value of current tape cell to register #44
245 Store value of current tape cell to register #45
246 Store value of current tape cell to register #46
247 Store value of current tape cell to register #47
248 Store value of current tape cell to register #48
249 Store value of current tape cell to register #49
250 Store value of current tape cell to register #50
251 Store value of current tape cell to register #51
252 Store value of current tape cell to register #52
253 Store value of current tape cell to register #53
254 Store value of current tape cell to register #54
255 Store value of current tape cell to register #55
256 Store value of current tape cell to register #56
257 Store value of current tape cell to register #57
258 Store value of current tape cell to register #58
259 Store value of current tape cell to register #59
260 Store value of current tape cell to register #60
261 Store value of current tape cell to register #61
262 Store value of current tape cell to register #62
263 Store value of current tape cell to register #63
264 Store value of current tape cell to register #64
265 Store value of current tape cell to register #64
266 Store value of current tape cell to register #66
267 Store value of current tape cell to register #67
268 Store value of current tape cell to register #68
269 Store value of current tape cell to register #69
270 Store value of current tape cell to register #70
271 Store value of current tape cell to register #71
272 Store value of current tape cell to register #72
273 Store value of current tape cell to register #73
274 Store value of current tape cell to register #74
275 Store value of current tape cell to register #75
276 Store value of current tape cell to register #76
277 Store value of current tape cell to register #77
278 Store value of current tape cell to register #78
279 Store value of current tape cell to register #79
280 Store value of current tape cell to register #80
281 Store value of current tape cell to register #81
282 Store value of current tape cell to register #82
283 Store value of current tape cell to register #83
284 Store value of current tape cell to register #84
285 Store value of current tape cell to register #85
286 Store value of current tape cell to register #86
287 Store value of current tape cell to register #87
288 Store value of current tape cell to register #88
289 Store value of current tape cell to register #89
290 Store value of current tape cell to register #90
291 Store value of current tape cell to register #91
292 Store value of current tape cell to register #92
293 Store value of current tape cell to register #93
294 Store value of current tape cell to register #94
295 Store value of current tape cell to register #95
296 Store value of current tape cell to register #96
297 Store value of current tape cell to register #97
298 Store value of current tape cell to register #98
299 Store value of current tape cell to register #99
300 Jump identifier II
301 Put value from register #1 to current tape cell
302 Put value from register #2 to current tape cell
303 Put value from register #3 to current tape cell
304 Put value from register #4 to current tape cell
305 Put value from register #5 to current tape cell
306 Put value from register #6 to current tape cell
307 Put value from register #7 to current tape cell
308 Put value from register #8 to current tape cell
309 Put value from register #9 to current tape cell
310 Put value from register #10 to current tape cell
311 Put value from register #11 to current tape cell
312 Put value from register #12 to current tape cell
313 Put value from register #13 to current tape cell
314 Put value from register #14 to current tape cell
315 Put value from register #15 to current tape cell
316 Put value from register #16 to current tape cell
317 Put value from register #17 to current tape cell
318 Put value from register #18 to current tape cell
319 Put value from register #19 to current tape cell
320 Put value from register #20 to current tape cell
321 Put value from register #21 to current tape cell
322 Put value from register #22 to current tape cell
323 Put value from register #23 to current tape cell
324 Put value from register #24 to current tape cell
325 Put value from register #25 to current tape cell
326 Put value from register #26 to current tape cell
327 Put value from register #27 to current tape cell
328 Put value from register #28 to current tape cell
329 Put value from register #29 to current tape cell
330 Put value from register #30 to current tape cell
331 Put value from register #31 to current tape cell
332 Put value from register #32 to current tape cell
333 Put value from register #33 to current tape cell
334 Put value from register #34 to current tape cell
335 Put value from register #35 to current tape cell
336 Put value from register #36 to current tape cell
337 Put value from register #37 to current tape cell
338 Put value from register #38 to current tape cell
339 Put value from register #39 to current tape cell
340 Put value from register #40 to current tape cell
341 Put value from register #41 to current tape cell
342 Put value from register #42 to current tape cell
343 Put value from register #43 to current tape cell
344 Put value from register #44 to current tape cell
345 Put value from register #45 to current tape cell
346 Put value from register #46 to current tape cell
347 Put value from register #47 to current tape cell
348 Put value from register #48 to current tape cell
349 Put value from register #49 to current tape cell
350 Put value from register #50 to current tape cell
351 Put value from register #51 to current tape cell
352 Put value from register #52 to current tape cell
353 Put value from register #53 to current tape cell
354 Put value from register #54 to current tape cell
355 Put value from register #55 to current tape cell
356 Put value from register #56 to current tape cell
357 Put value from register #57 to current tape cell
358 Put value from register #58 to current tape cell
359 Put value from register #59 to current tape cell
360 Put value from register #60 to current tape cell
361 Put value from register #61 to current tape cell
362 Put value from register #62 to current tape cell
363 Put value from register #63 to current tape cell
364 Put value from register #64 to current tape cell
365 Put value from register #65 to current tape cell
366 Put value from register #66 to current tape cell
367 Put value from register #67 to current tape cell
368 Put value from register #68 to current tape cell
369 Put value from register #69 to current tape cell
370 Put value from register #70 to current tape cell
371 Put value from register #71 to current tape cell
372 Put value from register #72 to current tape cell
373 Put value from register #73 to current tape cell
374 Put value from register #74 to current tape cell
375 Put value from register #75 to current tape cell
376 Put value from register #76 to current tape cell
377 Put value from register #77 to current tape cell
378 Put value from register #78 to current tape cell
379 Put value from register #79 to current tape cell
380 Put value from register #80 to current tape cell
381 Put value from register #81 to current tape cell
382 Put value from register #82 to current tape cell
383 Put value from register #83 to current tape cell
384 Put value from register #84 to current tape cell
385 Put value from register #85 to current tape cell
386 Put value from register #86 to current tape cell
387 Put value from register #87 to current tape cell
388 Put value from register #88 to current tape cell
389 Put value from register #89 to current tape cell
390 Put value from register #90 to current tape cell
391 Put value from register #91 to current tape cell
392 Put value from register #92 to current tape cell
393 Put value from register #93 to current tape cell
394 Put value from register #94 to current tape cell
395 Put value from register #95 to current tape cell
396 Put value from register #96 to current tape cell
397 Put value from register #97 to current tape cell
398 Put value from register #98 to current tape cell
399 Put value from register #99 to current tape cell
400 Jump identifier III
401 Increase value of cell by 2
402 Increase value of cell by 3
403 Increase value of cell by 4
404 Increase value of cell by 6
405 Increase value of cell by 7
406 Increase value of cell by 8
407 Increase value of cell by 9
408 Decrease value of cell by 2
409 Decrease value of cell by 3
410 Decrease value of cell by 4
411 Decrease value of cell by 6
412 Decrease value of cell by 7
413 Decrease value of cell by 8
414 Decrease value of cell by 9
415 Clear all registers
416 Compact registers to the front by removing all null and zero values from the registers and put values from register #1 onwards.
417 Compact registers to the back by removing all null and zero values from the registers and put values from register #99 backwards.
418 Push value of current tape cell to register #1; thereby, shifting all values in register #N to register #N+1. The value in the original register #99 will be lost.
419 Pop value of register #1 to current tape cell; thereby, shifting all values in register #N to register #N-1. Register #99 will have the value of zero.
420 Swap values between register #1 and register #2.
421 not used
422 not used
423 not used
424 not used
425 not used
426 not used
427 not used
428 not used
429 not used
430 not used
431 not used
432 not used
433 not used
434 not used
435 not used
436 not used
437 not used
438 not used
439 not used
440 not used
441 not used
442 not used
443 not used
444 not used
445 not used
446 not used
447 not used
448 not used
449 not used
450 not used
451 not used
452 not used
453 not used
454 not used
455 not used
456 not used
457 not used
458 not used
459 not used
460 not used
461 not used
462 not used
463 not used
464 not used
465 not used
466 not used
467 not used
468 not used
469 not used
470 not used
471 not used
472 not used
473 not used
474 not used
475 not used
476 not used
477 not used
478 not used
479 not used
480 not used
481 not used
482 not used
483 not used
484 not used
485 not used
486 not used
487 not used
488 not used
489 not used
490 not used
491 not used
492 not used
493 not used
494 not used
495 not used
496 not used
497 not used
498 not used
499 not used
500 Jump identifier IV
501 Clear register #1 (set to 0)
502 Clear register #2 (set to 0)
503 Clear register #3 (set to 0)
504 Clear register #4 (set to 0)
505 Clear register #5 (set to 0)
506 Clear register #6 (set to 0)
507 Clear register #7 (set to 0)
508 Clear register #8 (set to 0)
509 Clear register #9 (set to 0)
510 Clear register #10 (set to 0)
511 Clear register #11 (set to 0)
512 Clear register #12 (set to 0)
513 Clear register #13 (set to 0)
514 Clear register #14 (set to 0)
515 Clear register #15 (set to 0)
516 Clear register #16 (set to 0)
517 Clear register #17 (set to 0)
518 Clear register #18 (set to 0)
519 Clear register #19 (set to 0)
520 Clear register #20 (set to 0)
521 Clear register #21 (set to 0)
522 Clear register #22 (set to 0)
523 Clear register #23 (set to 0)
524 Clear register #24 (set to 0)
525 Clear register #25 (set to 0)
526 Clear register #26 (set to 0)
527 Clear register #27 (set to 0)
528 Clear register #28 (set to 0)
529 Clear register #29 (set to 0)
530 Clear register #30 (set to 0)
531 Clear register #31 (set to 0)
532 Clear register #32 (set to 0)
533 Clear register #33 (set to 0)
534 Clear register #34 (set to 0)
535 Clear register #35 (set to 0)
536 Clear register #36 (set to 0)
537 Clear register #37 (set to 0)
538 Clear register #38 (set to 0)
539 Clear register #39 (set to 0)
540 Clear register #40 (set to 0)
541 Clear register #41 (set to 0)
542 Clear register #42 (set to 0)
543 Clear register #43 (set to 0)
544 Clear register #44 (set to 0)
545 Clear register #45 (set to 0)
546 Clear register #46 (set to 0)
547 Clear register #47 (set to 0)
548 Clear register #48 (set to 0)
549 Clear register #49 (set to 0)
550 Clear register #50 (set to 0)
551 Clear register #51 (set to 0)
552 Clear register #52 (set to 0)
553 Clear register #53 (set to 0)
554 Clear register #54 (set to 0)
555 Clear register #55 (set to 0)
556 Clear register #56 (set to 0)
557 Clear register #57 (set to 0)
558 Clear register #58 (set to 0)
559 Clear register #59 (set to 0)
560 Clear register #60 (set to 0)
561 Clear register #61 (set to 0)
562 Clear register #62 (set to 0)
563 Clear register #63 (set to 0)
564 Clear register #64 (set to 0)
565 Clear register #65 (set to 0)
566 Clear register #66 (set to 0)
567 Clear register #67 (set to 0)
568 Clear register #68 (set to 0)
569 Clear register #69 (set to 0)
570 Clear register #70 (set to 0)
571 Clear register #71 (set to 0)
572 Clear register #72 (set to 0)
573 Clear register #73 (set to 0)
574 Clear register #74 (set to 0)
575 Clear register #75 (set to 0)
576 Clear register #76 (set to 0)
577 Clear register #77 (set to 0)
578 Clear register #78 (set to 0)
579 Clear register #79 (set to 0)
580 Clear register #80 (set to 0)
581 Clear register #81 (set to 0)
582 Clear register #82 (set to 0)
583 Clear register #83 (set to 0)
584 Clear register #84 (set to 0)
585 Clear register #85 (set to 0)
586 Clear register #86 (set to 0)
587 Clear register #87 (set to 0)
588 Clear register #88 (set to 0)
589 Clear register #89 (set to 0)
590 Clear register #90 (set to 0)
591 Clear register #91 (set to 0)
592 Clear register #92 (set to 0)
593 Clear register #93 (set to 0)
594 Clear register #94 (set to 0)
595 Clear register #95 (set to 0)
596 Clear register #96 (set to 0)
597 Clear register #97 (set to 0)
598 Clear register #98 (set to 0)
599 Clear register #99 (set to 0)
600 Jump identifier V
601 not used
602 not used
603 not used
604 not used
605 not used
606 not used
607 not used
608 not used
609 not used
610 not used
611 not used
612 not used
613 not used
614 not used
615 not used
616 not used
617 not used
618 not used
619 not used
620 not used
621 not used
622 not used
623 not used
624 not used
625 not used
626 not used
627 not used
628 not used
629 not used
630 not used
631 not used
632 not used
633 not used
634 not used
635 not used
636 not used
637 not used
638 not used
639 not used
640 not used
641 not used
642 not used
643 not used
644 not used
645 not used
646 not used
647 not used
648 not used
649 not used
650 not used
651 not used
652 not used
653 not used
654 not used
655 not used
656 not used
657 not used
658 not used
659 not used
660 not used
661 not used
662 not used
663 not used
664 not used
665 not used
666 not used
667 not used
668 not used
669 not used
670 not used
671 not used
672 not used
673 not used
674 not used
675 not used
676 not used
677 not used
678 not used
679 not used
680 not used
681 not used
682 not used
683 not used
684 not used
685 not used
686 not used
687 not used
688 not used
689 not used
690 not used
691 not used
692 not used
693 not used
694 not used
695 not used
696 not used
697 not used
698 not used
699 not used
700 Jump identifier VI
701 not used
702 not used
703 not used
704 not used
705 not used
706 not used
707 not used
708 not used
709 not used
710 not used
711 not used
712 not used
713 not used
714 not used
715 not used
716 not used
717 not used
718 not used
719 not used
720 not used
721 not used
722 not used
723 not used
724 not used
725 not used
726 not used
727 not used
728 not used
729 not used
730 not used
731 not used
732 not used
733 not used
734 not used
735 not used
736 not used
737 not used
738 not used
739 not used
740 not used
741 not used
742 not used
743 not used
744 not used
745 not used
746 not used
747 not used
748 not used
749 not used
750 not used
751 not used
752 not used
753 not used
754 not used
755 not used
756 not used
757 not used
758 not used
759 not used
760 not used
761 not used
762 not used
763 not used
764 not used
765 not used
766 not used
767 not used
768 not used
769 not used
770 not used
771 not used
772 not used
773 not used
774 not used
775 not used
776 not used
777 not used
778 not used
779 not used
780 not used
781 not used
782 not used
783 not used
784 not used
785 not used
786 not used
787 not used
788 not used
789 not used
790 not used
791 not used
792 not used
793 not used
794 not used
795 not used
796 not used
797 not used
798 not used
799 not used
800 Jump identifier VII
801 not used
802 not used
803 not used
804 not used
805 not used
806 not used
807 not used
808 not used
809 not used
810 not used
811 not used
812 not used
813 not used
814 not used
815 not used
816 not used
817 not used
818 not used
819 not used
820 not used
821 not used
822 not used
823 not used
824 not used
825 not used
826 not used
827 not used
828 not used
829 not used
830 not used
831 not used
832 not used
833 not used
834 not used
835 not used
836 not used
837 not used
838 not used
839 not used
840 not used
841 not used
842 not used
843 not used
844 not used
845 not used
846 not used
847 not used
848 not used
849 not used
850 not used
851 not used
852 not used
853 not used
854 not used
855 not used
856 not used
857 not used
858 not used
859 not used
860 not used
861 not used
862 not used
863 not used
864 not used
865 not used
866 not used
867 not used
868 not used
869 not used
870 not used
871 not used
872 not used
873 not used
874 not used
875 not used
876 not used
877 not used
878 not used
879 not used
880 not used
881 not used
882 not used
883 not used
884 not used
885 not used
886 not used
887 not used
888 not used
889 not used
890 not used
891 not used
892 not used
893 not used
894 not used
895 not used
896 not used
897 not used
898 not used
899 not used
900 Jump identifier VIII
901 not used
902 not used
903 not used
904 not used
905 not used
906 not used
907 not used
908 not used
909 not used
910 not used
911 not used
912 not used
913 not used
914 not used
915 not used
916 not used
917 not used
918 not used
919 not used
920 not used
921 not used
922 not used
923 not used
924 not used
925 not used
926 not used
927 not used
928 not used
929 not used
930 not used
931 not used
932 not used
933 not used
934 not used
935 not used
936 not used
937 not used
938 not used
939 not used
940 not used
941 not used
942 not used
943 not used
944 not used
945 not used
946 not used
947 not used
948 not used
949 not used
950 not used
951 not used
952 not used
953 not used
954 not used
955 not used
956 not used
957 not used
958 not used
959 not used
960 not used
961 not used
962 not used
963 not used
964 not used
965 not used
966 not used
967 not used
968 not used
969 not used
970 not used
971 not used
972 not used
973 not used
974 not used
975 not used
976 not used
977 not used
978 not used
979 not used
980 not used
981 not used
982 not used
983 not used
984 not used
985 not used
986 not used
987 not used
988 not used
989 not used
990 not used
991 not used
992 not used
993 not used
994 not used
995 not used
996 not used
997 not used
998 not used
999 not used