Even the 6809 could push up to 8 registers (up to 10 bytes) at once on
one of two stacks in a single two byte instruction.
On 4/21/2024 11:27 AM, Chuck Guzis via cctalk wrote:
On 4/21/24 07:45, Mike Katz via cctalk wrote:
One of the biggest features of the Z-80, the
extra register set, was
rarely used in open source software in order to maintain compatibility
with the 8080.
My understanding of the extra (partial) set of registers on the Z80
was
that they were intended for a quick context switch particularly when
processing interrupts--another interesting feature of the Z80 that was
rarely used. So, for ordinary user code, they were a no-go. The
alternative on the Intel MPUs was to push each 16-bit register pair at
the entry of the interrupt routine and then pop them at the end; a
relatively slow process, made worse by the requirements for extra stack
space.
Of course, the extra register feature went largely unused, as relatively
few consumer- or hobbyist-level products actually made much use of the
interrupt feature, much less, the 256-level vectored interrupt facility.
The 8086 continued this trend of requiring explicit saves; some of the
NEC V-series chips (e.g. V25), however, did implement extra register
sets (8 total, IIRC) for fast context switches.
--Chuck