… But, how could one timeslice a single CPU?
The software memory model was code at 0x0000, stack at 0xFFFF. The answer was obvious.
While waiting for one human to enter a keystroke, switch programs and let another human enter a keystroke, and so on.
HumanA hits a key and the CPU needs to wait 20msec. Slide HumanA’s program out to storage, then slide HumanB’s program into core and let it run for a bit. Then, after 20msec, slide HumanB’s program out and slide back HumanA’s program in to run for a bit.
External storage was kind of slow in those days. Needing msec’s of its own to operate.
What to do?
Invent epicycles.
Preserve the notion of a single CPU, being time-sliced across many users…