foresolang

From Esolang
Jump to navigation Jump to search
foresolang
Designed by User:Inferno
Appeared in 2021
Memory system Cell-based
Dimensions two-dimensional
Computational class Bounded-storage machine
Reference implementation Unimplemented
File extension(s) .foresolang, .fsl

Foresolang is an 8-bit 128x128 grid of trees. The pointer starts at [0,0]. The code is situated at [-1, 0], and the program ends when this is overwritten with any value. Outside of [0,0] to [127,127] is a duplicate of [127,127] branches (including edit modifications). By default, all branches are at 16. Attempting to underflow will keep it at 0 and overflowing at 255, respectively. Since there is no way to add/subtract without pulling from other branches, you only have total of 262144 branches to use.

Instruction Set

move [x] [y] times moves the pointer up (0-63), down (64-127), left (128-191), or right (192-255). X and Y can either be a number or just "pointer".
add [x] branches to pointer adds [x] branches to the pointer, taking it from the tree. x is a number only.
place [x] branches from pointer is the opposite of the above instruction, placing branches down instead of taking them.
take a picture of the tree at the pointer outputs the ASCII value of the tree at the pointer. take an input takes an input, and puts it where the pointer is. It will use branches from [127,127] and go up to [127,0]. If it still does not have enough branches, it will look through [126,127] to [126,0], and so on until it finds enough.
define a function as "this is some random text [x] [y] [z]" will define a function. executing the function would just be like executing any other instruction, like this is some random text 120 120 pointer

Examples

Hello, World

todo lol