YATDEL
Jump to navigation
Jump to search
YATDEL (Yet Another Two-Dimensional Esoteric Language) is, obviously, a two-dimensional stack-based esoteric language created by User:HecknTarnation. Code is executed starting at an S. The pointer, then, moves right and continues to execute code. This language supports multiple files, called Abstracts.
Instructions
Opcodes | Description |
---|---|
S | Where the first pointer starts, should be present on the first abstract. |
E | When executed, it will terminate the current pointer's execution. |
Q | Exits the program. |
T/t | Creates a new Pointer that continues in the creating pointer's direction. The creating pointer has its direction set according to the direction rule/rule 2. |
=/| | Moves the pointer forward, they are interchangeable but you should only use = for horizontal and | for verticle. |
</>/^/v | Sets the pointer's direction to left/right/up/down. |
( | Stores the next set of characters into the pointer's stack as a number representing an ASCII character, this will occur until a matching ) is found. The characters will be in reverse order on the stack (first character in = last character on the stack). |
# | Same as (, but for a singular number instead. Goes until a matching # is found. |
p | Pops the top value from the pointer's stack. |
+/-/*/d/% | Adds/Subtracts/Multiples/Divides/Modulo the top value and the next value from the pointers stack, then pushes the result to the stack. |
I (capital i) | Gets input from the users and, if it is a number store it in the pointer's stack. Otherwise, it stores the string character by character in the same way ( does. |
O/o | Outputs the top value from the pointer's stack as a character/number. |
\ | Mirror (Right <-> Down, Left <-> Up) |
/ | Mirror (Right <-> Up, Left <-> Down) |
@ | Replaces a character on the current abstract. (first value on stack = x, second = y, third = character) |
& | Pushes a random number between 0-100 to the stack. |
? | Moves the pointer in a random direction. |
$ | Makes the pointer wait a specified number, the top value from the stack, of milliseconds. |
! | Duplicates the top value from the stack. |
C/c | If the pointer's top stack value is positive the pointer will have its direction set according to direction rule/rule 2, else direction rule 2/rule 1 (doesn't pop stack) |
~ | Makes the top value of the stack negative. |
' | Goes down one Abstract in the list. |
" | Goes down a specified number (top value in the stack) of Abstract down in the list. |
Abstract Files
This language's code is written in files called Abstracts. These files are stored into a list that can be navigated individually by each pointer. The first file in the list should start with an S. When traveling between Abstracts, a pointer's position and direction will be preserved.
Direction Rule
Current Direction = New Direction
Rule 1:
- Left or Right = Down
- Up or Down = Left
Rule 2:
- Left or Right = Up
- Up or Down = Right
Examples
Hello World
S(Hello World)=======>C==========\ O| E ^<
Multi-File Hello World
S(Hello World)='
===============>=====>C==========\ O| E ^<