cattaratus
- This is still a work in progress. It may be changed in the future.
- This article is not detailed enough and needs to be expanded. Please help us by adding some more information.
| Designed by | User:RixTheTyrunt |
|---|---|
| Appeared in | 2026 |
| Dimensions | Two-dimensional |
| Computational class | Unknown |
| Reference implementation | Unimplemented |
cattaratus is a two dimensional esoteric programming language by User:RixTheTyrunt. Its name is a portmanteau of "cat" and "apparatus" with "t" instead of "p".
The execution starts in the top left corner. By default, an "auto" movement mode is engaged. The auto mode moves around the entire program's rectangular space counter-clockwise, i.e., down, right, up, then left. If the execution position is not in the edges of the program, it defaults to going up.
Examples
Truth-machine
75012b8 00 0 7c8 409 c c 1 6c9
Explanation: the program starts and immediately forces movement right and toggles operand sides so for some operations, the left cell becomes the right cell, and the previously right cell becomes the left cell, then performs a no-op, then sets the low and high nybbles to the cells below them (the right side of the execution direction, right). It then gets a single character from the user and writes it into the cells set as the low and high nybbles. The program eventually moves on until it meets the "comparing skip" operation. It normally moves steps in the current movement mode specified by the right cell if the byte to the left is nonzero. However, the sides got swapped earlier on in the program, so this actually skips 1 step to the left (because the program execution is facing left) if the right cell (the low nybble of user input) is nonzero. When it doesn't skip, it continues the program, but then tries to execute the space it's sitting on, but the space character isn't a valid hex character, so the program terminates. When it does skip, the program skips the space straight into a loop, where 7, 8, 9 and 6 is right, down, left, and up (respectfully) and c is the operation to print out an ASCII character formed out of the low and high byte. If the low nybble wouldn't have been specified, it always defaults to 0, so does an unset high nybble.