Isolated

Isolated is a tentative programming language conceived by Tim Stiles in May 2009. It has no stack and no literals, and all four 'variables' are intrinsically related to the programming's functionality; flow is performed by editing the instruction pointer's value relative to something else. I'm not yet sure how useful it is and what the minimum requirements would be to keep it 'in theme' while making it practical; most of it came to me in a 'waking' mental state.

Language overview
The programming environment consists of a tape 2^n cells long with n bits in each; arithmetic is two's complement. They all start out equal to 0. The four variables are the tape pointer, the value under the tape pointer, the instruction pointer and 'I/O' which holds the last value taken in and can be used to take in or give out values. (By default I/O is done by the values of characters/unicode depending on tape size)

A program in Isolated is made up of a series of instructions in binary, eight bits long each. One instruction in Isolated is made of two bits (the target), four bits (an operation) and another two bits (the source). Operations are mostly of the form. A program does not end if it moves past the last instruction; it is instead taken mod the number of instructions and continues executing until the 'Stop the program' instruction is executed.

Operators
So, for example:
 * 10001000 means, which moves the program back by the number of instructions under the tape pointer;
 * 00000111 means, which takes a value from input and adds it to the current tape cell's value
 * 11001111 means, which outputs a character to stdout that is equal to the last character taken from stdin multiplied by a new character to be taken from stdin.

Tricks

 * is a nop: 00000000, 01000001, 10000010 and 11000011 have no effect.
 * multiplies target by two.
 * divides the target by two.
 * produces the bitwise inverse.
 * resets the target to 0.
 * sets the target to 1.
 * produces the lowest negative number (all bits 1)
 * does some operation with the last and next values from input and outputs the result.

Extended Isolated
Extended Isolated intends to fill 16 bit characters instead of 8 bit ones. It has 4 bits for source/target so far:

Example programs
Note: due to the lack of an interpreter and because the specifications are somewhat ambiguous, the following programs may or may not work.

Cat program
Assuming input ends with 0. The 0 is printed as well.