HighFive
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)