HighFive

From Esolang
Jump to navigation Jump to 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 (just under 43KB).

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)