HighFive

HighFive is an esoteric programming language by Ben Russell, which is loosely inspired by Brainfuck.

Specification
The HighFive command set goes as such:
 * +: increase what's at the pointer, or if pointer = 7, get input.
 * -: decrease what's at the pointer, including if pointer = 7.
 * /: increase the pointer. If pointer goes past 7, reset it to 0.
 * *: if the last value modified is not 0, relative jump:
 * Whatever's at the pointer, move Program Counter (PC) forward or backward that number of steps.
 * .: output whatever's at the pointer.
 * (That's a full stop. It doesn't show up well.)

Anything else is a comment.

What's at each pointer

 * 0: memory slot #0
 * 1: memory slot #1
 * 2: memory slot #2
 * 3: memory slot #3
 * 4: memory slot #4
 * 5: segment
 * 6: I/O address
 * 7: input

It's not too dissimilar to a CPU architecture.

I/O address list

 * 0: CON (keyboard / screen)

Proposed I/O
(Any more, just drop it in here.)
 * Extra segment ('cos the memory's too low)

How the segments work
Just change slot #5. Values are shown in hex. 00: 000 001 002 003 004 01: 005 006 007 008 009 02: 00A 00B 00C 00D 00E 03: 00F 010 011 012 013 ... ... ... ... ... ... FE: 4F6 4F7 4F8 4F9 4FA FF: 4FB 4FC 4FD 4FE 4FF

So you have 1280 bytes of RAM. If someone needs more then I'll rig up a mapper over one of the I/O ports, else it'll stay as-is. Just one 8-bit value can boost it up to 327680 bytes (320KB), which is more than Brainf*ck's 44000B.

Examples
HELLO: ---////++++++++//// /+++++++++/+++++++++++++/++++/-////*/ ./---.+++++++..+++././/////+++++++++++++++./.+++.--../+.

External resources

 * HighFive Interpreter, with mirror in the Esoteric File Archive (original file lost for some weird reason.)
 * This has been PD'd. Disregard the license, and do whatever you want with it. --Ben Russell 05:37, 12 August 2008 (UTC)