HighFive

From Esolang
Jump to: navigation, search

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

  • Extra segment ('cos the memory's too low)

(Any more, just drop it in here.)

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)