Outline

Tens of thousands of people creates they own programs on brainfuck esoteric programming language.

Thousands - creates they own brainfuck compilers or emulators to run their creation.

But the only one man tries to create Brainfuck Relay Computer.

BrainfuckPC (BFPC) - is a computer on reed relays, which can execute brainfuck commands natively, without any compilation into other assembly (just need a translation to 16-bit instructions representation). All main instructions are corresponds to eight bf commands.

BrainfuckPC 3D model in Fusion 360(Clickable). Dimensions 1000x650mm

Central compute element is a 16-bit full adder. Four 16-bit registers for storing temp values and context values. Static RAM 128Kbytes (64K words). And some latches and controlling logic to support.

Brainfuck++ instruction set



Each instruction two-bytes wide.

bits 12-15 - contain opcode. Bits 0-11 - contain payload.

NOP instruction has no reaction in relay logic

CTRLIO instruction - gives some machine controls - implements Console read/Write support, change console modes, switch 8/16 bit jump logic block mode - so you can run classic 8-bit brainfuck porgrams, or extended 16bit wide ones.

ADD, ADA, JZ, JNZ instruction use adder and old value of IP, AP register or data under AP cell changed by 12bit const value.

It's a signed operation, and 15, 14 and 13 bits are replay the value of 12bit - So with instruction 0x3fff you get 0xFFFF value (or -1).

MIDI controlled program execution

As maximum working frequency is 100Hz, and as we can modulate clock using some MIDI device, we can play some music using just a relays knocking sounds!

Unfortunately, current max working frequency of all CPU - is 25Hz.