bitbornRAW BYTE WORKBENCH

01 / BOOT SECTOR BUILDER

The machine
starts here.

A whole beginning in 512 bytes.
Touch a bit. Read its meaning.
Follow what changes.

First time? Start with one bit ↓

Loading the canonical boot sector…

BIOS / REAL MODE / LOAD ADDRESS 0x7C00512 bytes · 4,096 bits
0 bytes changed
OFFSET / HEX / BINARY
IMAGE SIZELoading…
BIOS MARKER / OFFSETS 510–511Loading…
NATIVE EXECUTIONVerify your export in QEMUSize and 55 AA identify a BIOS candidate; they do not prove correct instructions or a successful boot.

Downloads contain exactly the bytes shown above.

BOUNDED EDUCATIONAL SIMULATION

Follow your bytes.

This model executes a documented instruction subset, with a 4,096-step limit. It is not a complete x86 CPU or BIOS.

    SIMULATED SCREEN
    Ready when you are.
    SIMULATED SERIAL / COM1
    No serial bytes yet.

    Only the current edited bytes are simulated. A supported run is educational feedback; actual boot compatibility needs a separate QEMU or hardware test.

    02 / MAKE ONE BIT COUNT

    A sector is a container.
    The CPU follows a path.

    01

    Change a character

    Go to byte . It contains 01001000, ASCII H. Flip bit 5, the third bit from the left, and it becomes 01101000, ASCII h. Run the model and find the changed greeting in both output panels.

    The instruction bytes stay the same. LODSB reads the changed data into AL and BIOS teletype output uses that character.

    02

    Read an immediate

    Inspect byte . The original instruction starts at byte 14: BC 00 7C. BC chooses SP; 00 7C encodes 0x7C00 with the low byte first.

    An instruction can consume several bytes. Changing an opcode can change its length, so live boundaries may drift away from the original annotations.

    03

    Follow a relative branch

    Select byte . The baseline 74 1B is JZ +27. Its destination is the end of the instruction plus the signed displacement: 0x7C3C + 27 = 0x7C57.

    A value from 80 through FF is a negative 8-bit displacement. A new target can land in an operand, data, padding, or outside the sector.

    04

    Understand the last two bytes

    At offsets , the bytes must appear on disk as 55 AA. Read as a little-endian word, that is 0xAA55. The marker is data for firmware, not an instruction.

    Break the marker and .img export is blocked. The literal .bits source remains downloadable so you can inspect an invalid experiment. Reset all bits to restore the verified baseline bytes.

    What does “live decode” mean?

    The workbench decodes sequentially from the start of each original code span using the current bytes. It stops at the first encoding outside the supported subset, because subsequent boundaries cannot be established honestly. This is a useful view of instruction layout, not a control-flow proof: a branch can enter a different byte, and data can become code.

    Edits stay in your browser; there are no accounts or uploads. The exported .bits file contains literal eight-bit groups, not instructions generated by an assembler. Exported .img bytes should be run in an isolated emulator, never as a host executable.

    Use the repository’s QEMU workflow →

    BASELINE: boot/boot.bits
    SHA-256 Loading…