STEPPER
The port

Eight bits, spent on a real price.

A processor has an input port and an output port and that is the whole of its contact with the world. Everything a processor has ever controlled, it controlled through a port: a disk, a servo, a converter. This is what happens when the thing on the far side of the port is a price somebody else publishes.

source
reading
arrives as
The converter ·
§ 01 · WHAT IT SENSES

A quantity, arriving as one byte.

The device holds the address of a source and nothing else about it. It asks that source what it prices, at what scale, and how long ago, and it publishes the conversion so anybody holding the same readings can replay the same run and get the same bytes.

A reading older than the limit is refused, not rounded. The clock stops and this page says so. Between a machine that has visibly stopped and a machine that is confidently wrong, only one of them can be noticed.

The source
The scale is read, not supplied. The device asks the source how many decimals it quotes in and stores that at construction, so the window it reports can never describe a scale the readings are not in.
Nobody here is trusted. The device cannot write to the source and the source cannot call the device. The processor reads one byte and owns the decision; the device owns the consequences. Those are different jobs with different lifetimes, which is why they are different contracts.
§ 02 · HOW THE BITS ARE SPENT

Two hundred and fifty six steps, and no more.

An instrument auto-ranges: it maps the band you care about onto the full swing, so the resolution lands where the movement is rather than being spent on a range nothing trades in. A window ten times too wide throws nine tenths of the instrument away.

That makes the window the most valuable thing here to be able to change, which is exactly why nobody can. There is no setter, and no owner to call one.

The window
A wider processor is a wider converter. Sixteen bits on the same window is sixty five thousand steps instead of two hundred and fifty six. Same band, same design, finer instrument — which is what the next generation of this silicon is, rather than a different idea.
§ 03 · THE NEXT EDGE

What it will do, before it does it.

This is the whole argument for a structural machine. The next state is a consequence of the gate table, so it can be computed before anybody commits to it and checked against what lands. preview() runs the same gates on the same three inputs the chip will be handed, and reads the output field out of the answer.

Then anybody may take it. tick() has no owner, no keeper and no schedule: the only thing between this machine and its next cycle is somebody deciding it is worth the gas.

One edge, previewed
What the device was told
Every caller writes its own slot only. A device cannot know its bus, because the bus takes the device as a constructor argument and is therefore the younger of the two. Rather than close that loop with a setter, the device lets anybody drive it and lets nobody write what another bus decided.
§ 04 · WHAT ELSE IT COULD READ

Every one of these is an address.

On most chains a share price is something you fetch and trust. Here it is a contract. That is the whole reason a processor can be pointed at one: a CPU cannot call an API, but a device on the far side of its port can make a call.

Read live, in this tab, one call each. The two with a port are marked.

The board ·
§ 05 · ON THE OTHER SIDE

The machine that decides.

The chip has no idea a bus exists. It exposes one open step(), and a bus is simply an address that calls it with a byte a device produced rather than a byte a person typed. That is why a device can be replaced without refabricating anything: you deploy another bus, and the silicon is untouched.

The chip
Its registers