Spleenmap

Spleenmap is a 2D language designed by fr34k in 2009. It uses four instructions, but only one to control data.

Workflow
Spleenmap uses a 1 byte large memory pool. Bits are pushed to this pool and when it has reached 1 byte its ASCII equivalent will be outputted and the pool will be emptied.

Bits are pushed from the left side, as

Pool  Push # 0     1 10     2 110    3 0110   4

And so forth.

When executing a program in Spleenmap, an initial program counter position is set. The nearest instruction is then executed, then the next one and so on. Only horizontal and vertical traveling is allowed. Nor can instructions be positioned so that the program counter can take several routes, going from one specific position.

The NOP/If Instruction
The NOP/If instruction depends on how many instructions are linked to it, and in what direction they are linked and controls the direction of the program counter.

If only one instruction is linked to the NOP/If instruction, it performs a NOP and lets the program counter jump to the next linked instruction.

When two instructions are linked, it's important to remember, that since the. statement only performs two instructions, and there are three possible linking pairs, there is one linkage that will result in a program halt. Below follows instructions on how to use the. instruction, with two linked instructions.

Hello, World!
This is the Hello, World! program.

.++ ...+...+...  +++ +* .         + ++      ++       +. .        +       + .+       + +..+ ++  ++ +++ .+ +  + +   +.. + .  + .+ .++       . ...+ +    +     ++.      +. ++.     +         . .     .+       ++ ++      +++     +   +++   ?++.        +     +     +      .        .     +   ++.     ++       ++     ++. +  +++  +       +        . +... ++ +       .+   ++. .       +..        +++ + +++          ++.

Endless loop
In this example, no end of program has been determined. When Spleenmap reaches a dead-end, it simply bounces back, traveling in the opposite direction. This program outputs 'U' for eternity.

*.+.

Program halt
A program (also called a Spleenmap) can never have more than 1 instructions in its possible travel direction. For example, if the program counter is traveling left to right, a new instruction may only exist either on top, to the right, or below the current instruction. Below are examples of legal and illegal programs.

Legal   Legal    Illegal    Illegal *+      *++      *+ +        +  ++        +       ++++      *+                               +

Computational Class
As there are only eight bits of storage, Spleenmap cannot be Turing-complete, or even as powerful as a push-down automaton. Its exact computational class is not known, but since there are no bounds given to the size of the program, it seems likely that Spleenmap is finite-automaton-complete.