Intel’s 8086 (1978) is the ancestor that mattered most: the x86 line grew from it and never broke compatibility, permuting 16→32→64 over forty years while still booting as an 8086. Its trick for reaching more than 64KB with 16-bit registers was segmentation: a physical address is (segment « 4) + offset, giving a 20-bit (1MB) space from two 16-bit registers — the same “bank byte above the offset” idea the 65816 used, arrived at independently. Where the 65816 line stalled, x86 carried the permutation to dominance.
The demo forms an 8086 physical address from a segment and offset, reaching into the 1MB space: live demo
“16-bit registers mean 64KB.” — the 8086 reached 1MB by adding a shifted segment to the offset. cited
A megabyte reached by shifting a segment over an offset — the start of the line that permuted the furthest. segmentation
On the canonical compiler, segment 0x1000 and offset 0x0200 form physical 0x10200 (66048), inside the 1MB space: