On Tuesday 08 August 2006 12:25 pm, Chuck Guzis wrote:
<...>
Other than the relative jumps, the enhanced
instruction set of the Z80
rarely brought much speed increase by itself. For example, moving a block
of bytes using LDIR isn't really much faster than using a MOV A,M/STAX D
type of loop. On the other hand, the INI and OTI instructions was very
welcome when one had to deal with a peripheral whose I/O port addresses
weren't known in advance.
Yes. Most of that "extra" stuff I never used.
The alternative on the 8080/8085 was hot-patching
code--an impossiblity if
one was executing out of ROM--one had to copy the applicable code into RAM
and execute it there. Not a great feature if the I/O ports in question
controlled the bank-switching hardware and you were trying to do a RAM
diagnostic.
That would seem to make it a bit awkward.
I've wondered about something for years, however.
Did anyone ever make use
of the fact that an INI or OTI instruction placed the contents of both the
B and C registers on the Z80 address bus? It would seem to be a simple way
of expanding the I/O space to 64K ports.
I didn't know they did that. And asserted the usual I/O control lines? Hm...
OTOH, I never even came close with any of the ideas I was toying with to
filling up the i/o address space, and then there's always memory-mapping
stuff. Anything I'm doing on that platform isn't going to be that upset over
a few K less ram to work with.
--
Member of the toughest, meanest, deadliest, most unrelenting -- and
ablest -- form of life in this section of space, a critter that can
be killed but can't be tamed. --Robert A. Heinlein, "The Puppet Masters"
-
Information is more dangerous than cannon to a society ruled by lies. --James
M Dakin