---
title: The Z80
description: The processor's registers, flags and interrupt state, every one of them editable but the line the machine's video chip drives.
order: 6
---

`<colophon-z80>` shows [the processor](../../emulator/machine.en.md#the-processor): its registers in pairs with the shadow set beside them, the flags bit by bit, and the state that decides what it does when an interrupt arrives.

```html
<colophon-z80></colophon-z80>
```

| Shown                     | Read                                                                                                                                                                    |
| ------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `AF` `BC` `DE` `HL`       | Each pair as its two halves, with the shadow set alongside.                                                                                                             |
| `F`                       | The eight flags as they stand: sign, zero, half carry, parity or overflow, add or subtract, carry, and the two undocumented bits 5 and 3 that a program can still read. |
| `IX` `IY`                 | The index registers, each as its two halves.                                                                                                                            |
| `SP` `PC`                 | The stack pointer and the program counter.                                                                                                                              |
| `I` `R`                   | The interrupt vector and the memory refresh counter.                                                                                                                    |
| `WZ`                      | The internal address latch the datasheet never named and everyone calls MEMPTR.                                                                                         |
| `IM` `IFF1` `IFF2` `HALT` | The interrupt mode, the two flip-flops, and whether the processor is stopped on a `HALT` waiting for an interrupt.                                                      |
| `INT`                     | The interrupt line. It belongs to the machine's video chip — a Gate Array or a ULA — so it is shown and never set.                                                      |

## Editing

Every value but the interrupt line is a field the reader can change, and the platform carries the editing rather than the panel.

A field taking focus offers its whole value selected, so typing replaces it. Filling the high half of a pair moves to the low half, so a full address is typed straight through. A value is written to the machine when the field says it is committed and at no other moment, so a half-typed one is never written, and a value the field will not accept is never written either.

Escape puts the whole panel back to what the machine holds and commits nothing.

A field holding focus is left alone while the machine runs underneath it, so a value being typed survives the redraw that would otherwise take it away.
