Subject: Re: Unknown S100 system
From: "Roy J. Tellason" <rtellason at verizon.net>
Date: Sun, 23 Sep 2007 12:56:42 -0400
To: cctech at
classiccmp.org
On Saturday 22 September 2007 08:29, Allison wrote:
With
regard to what little programming I've done, the thing I like most
about the z80 is relative jumps, which makes relocatable code easy to
do. The other big deal is the alternate register set and the index
registers, which I really haven't used all that much.
The items that make z80 desireable for programming to me are the repeat
instructions (LDIR) and the loop (DJNZ)
Aside from making source a bit more compact, those seemed to, like a lot of
other stuff, require the use of particular registers, etc. that I might
have other uses for at the time. And didn't seem to offer that much of a
speed advantage. I never got into them all that much.
They made the source easier to read as well. As to use of registers
for block moves in 8080 your likely to use the same set and the same way
so no biggie. In balance I like Z80 and it does add some nice expansions.
plus some of
the smaller instructions that make the CPU more symetrical. It
always bugged me that 8080 can load the SP but storing it required clearing
the HL and adding SP to HL.
Yes! It also bugged me that you could swap HL and DE easily enough, but not
HL and BC, or DE and BC. That being a single-byte instruction that executed
fairly quickly, as I recall...
Yep, 8080 was very lopsided but I'd guess leaving out some fo the instructions
simplified matters back when it meant something.
8088/86,
hardware around it was easy, hated programming it. Always felt
it was an 8080 with a bag on the side and borrowed the worst z80 features.
It's big cache was it's was 16bit and had the ability to address 1mb.
That approach to things struck me as an abomination the first time I looked at
it, and I never really got all that interested in doing much of anything
with it at the assembler level -- if I need to program something that has one
of those in it I'll do it in c or whatever, so I don't have to be bothered
with all those messy details. It's unfortunate that this is the chip family
that the industry seems to have settled on, mostly.
Any 808x or 80x86 I program in high enough level language as to totally
obscure the crap underneath. Lowest being database stuff like SQL or maybe
Pascal. PC hardware I code for only when people are paying.
I feel the same way about a lot of the intel-type (and
similar) peripheral
chips -- write-only registers? WTH? I suppose that some aspect or other of
chip design pushed things in that direction, but looking at it from just the
perspective of programming the things, I don't see where I/O address space
was all that scarce a resource, really.
Write only makes sense when you consider it saves addreses and logic in there
and likely most will never read it. Some the write is one register and read
is another but they share a common address. All in all I've seen better and
worse.
Allison