On the Z80, a straightforward way to copy memory is to use LDIR.
A smarter way is to unroll this and use a sequence of N LDI instructions,
and therefore to test for completion once every N bytes.
Starion uses an even smarter way.

Whilst interrupts are disabled.
It sets SP to point to the source, and POPs into registers.
It sets SP to point to the destination, and PUSHs.
Increment pointers and repeat.

It uses this technique to copy an offscreen buffer to the visible screen.

There are no NMIs on a real Spectrum.
Speculator uses NMIs to copy from the visible screen area to the VDP.
The return address and registers pushed by the NMI corrupt the screen.

This is visible when loading a snapshot of Starion into Speculator.

A Speculator supporting Starion would need to load the code from tape,
and then patch it to use a slightly slower but safe LDI based copy routine.
