Xihcute

Xihcute is an esoteric programming language created by user:ds84182, and inspired by Enema. It is self modifying, stack based, and most likely Turing complete.

org [n]
This is currently the only preprocessor instruction. This will relocate code at another location specified by [n].

Hello, World!
92*1+ytotm0!52*~bleHello, World! The hello world program above reads a zero terminated string starting at the end of the program. You can replace the message with whatever you desire.

It works by first setting the data pointer to address 19. Then, in a loop, it reads the data at the data pointer, outputs it, and jumps back to the top of the loop if the next character is not null. If the next character is null, the program exits.

Cheating Quine
0ytm2b1k03bo2je Completely length independent quine. It reads characters until it hits a null byte.

It starts by setting the data pointer to 0 then entering a loop. In the loop it reads the value at the data pointer, exits the loop if the value is zero, else outputs it and jumps back to the top of the loop.

99 Bottles of Beer
[ TODO: Rewrite this for Xihcute Hard Mode ] 99*99++0f mmn55*4*ywtmmiloe mn55*4*84*+ywtmmiloe 55*6*2+ywtmmiloe m1-n55*7*91++ywtmmiloell ;e [org 100] bottles of beer on the wall, [org 132] bottles of beer. [org 152]Take one down, pass it around, [org 185] bottles of beer on the wall.

I could not make a full one because of Xihcute's limited space. I only had 256 bytes of ram to work with, so I could only do so much. I could rewrite my implementation and spec again to be 16 bit, but that may come in the near future.

ROT13
[ TODO: Rewrite this for Xihcute Hard Mode ] dAmmm\A1->h\Z1+<&2bC;BedB\A-94++94+2*%\A+edC\a-94++94+2*%\a+e55*8*yw tmi;Ammi oe[org 200]UryybJbeyq! It works, but if non ROT13 characters are in the stream, they get garbled.

Implementation
Currently the author has an implementation of Xihcute in Lua, running on his IRC bot. It will be released on Github as soon as I test all the operations.