Date : Fri, 26 Apr 1991 10:28:53 -0400
From : Jay Sage <sage@ll.mit.edu>
Subject: BIOS Problems with Zilog Registers
A short while ago there was some heated discussion about problems with
UNCRLZH on an Amstrad computer that may have been the result of failure of
the BIOS to preserve the Z80 alternate and/or index registers. This is a
suprisingly common problem. My Televideo 803 has the problem, and so does
the Epson QX10. We became aware of how many machines were afflicted when we
started selling the ZDOS (ZSDOS and ZDDOS) BDOS replacements, which make
extensive use of the extra registers. The manifestations of the problem are
often subtle enough that one does not immediately realize that something
drastic is actually going wrong.
For those running the NZCOM version of Z-System, the fix is quite easy.
We provide an extended version of the NZCOM virtual BIOS that preserves
whatever registers the BIOS trashes. Since loading that, my Televideo has
been working just fine.
I was not aware of the problem with the Amstrad (I have a PCW-8512, though
perhaps it is only the CPC machines that have the problem). Unfortunately,
the fix there is not so easy. The Z3PLUS version of Z-System does not have a
virtual BIOS, and the fix would probably require a full RSX, with all its
overhead. Some experiments with a debugger might reveal exactly which BIOS
calls are trashing the registers, and then perhaps a patch could be squeezed
into the BIOS.
-- Jay Sage