Splitter

Inputs

PinTypeDescription
INbus88-bit input bus (value 0–255)

Outputs

PinTypeDescription
Bit0bitLeast significant bit (weight 1)
Bit1bitWeight 2
Bit2bitWeight 4
Bit3bitWeight 8
Bit4bitWeight 16
Bit5bitWeight 32
Bit6bitWeight 64
Bit7bitMost significant bit (weight 128)

How It Works

A bus is eight wires bundled into one cable. Carrying a whole byte is convenient, but sometimes you need to work with each wire on its own — and that is where the Splitter helps. It works like a comb connector: the input bundle is laid out into eight separate wires, and every bit of the byte becomes an independent signal.

The key property: each output wire carries the weight of its bit. Bit0 is the least significant bit (weight 1), Bit1 has weight 2, and so on up to Bit7 with weight 128. Feed 10101010 (170) into the input — and ones appear on Bit7, Bit5, Bit3 and Bit1. Add up the weights: 128 + 32 + 8 + 2 = 170. The Splitter replaces nothing — it simply shows what the byte is made of.

A nuance: this is pure wiring, there is not a single gate inside, so the Splitter cannot compute anything or corrupt your data. The only danger is mixing up the weights. If a wire meant for Bit0 lands on Bit7, the value changes 128-fold: 00000001 (1) becomes 10000000 (128).

Examples

Input (dec)Input (bin)Bit7Bit6Bit5Bit4Bit3Bit2Bit1Bit0
1701010101010101010
150000111100001111
1281000000010000000
2001100100011001000

The last row is a classic processor task: from the instruction byte 200 (11001000) the high four bits give opcode 12, and the low four give operand 8.

Usage

On level 8 the Splitter works in tandem with the Maker: it breaks buses A and B into individual bits for the Full Adder chain, and the Maker reassembles the sum bits back into a bus. Inside the processor its main role is instruction decoding: the byte from ROM is divided into the high four bits (opcode) and the low four bits (operand), which then feed the decoder.

Concrete tricks: a parity check needs only the one wire from Bit0; reading the gamepad means each button occupies its own bit of the bus, and the Splitter routes them to separate circuits; tapping flags and control signals for visual debugging via LED8 or Display. Whenever a byte needs to be "opened up", the operation starts with a Splitter.

Build it yourself →

Related components

Related articles

Frequently Asked Questions

Why split a bus into bits?

To access individual bits of a byte — for example, to test the lowest bit or feed bits to different inputs.

How do you extract the opcode from an instruction byte?

The Splitter breaks the byte apart, bits 4–7 are gathered into the opcode through a Maker, and bits 0–3 into the operand. That is exactly how the processor's instruction decoder is fed.

What happens if you mix up the bit weights?

The value gets distorted: a signal routed to Bit7 instead of Bit0 changes it 128-fold — 00000001 (1) becomes 10000000 (128). Always double-check a bit's weight before wiring.