"Henk Gooijen" <henk.gooijen at hotmail.com> skrev:
From: Brad
Parker <brad at heeltoe.com>
Reply-To: "General Discussion: On-Topic and Off-Topic
Posts"<cctalk at classiccmp.org>
To: "General Discussion: On-Topic and Off-Topic Posts"
<cctalk at classiccmp.org>
Subject: DATIP from clr always? (obscure unibus & pdp-11 question)
Date: Wed, 30 Aug 2006 13:35:57 -0400
An obscure unibus & pdp-11 question:
Does "clr" always do a DATIP (i.e. read-modify-write) on all 11's?
It does on my 11/44. Something tells me I've seen threads (long ago) on
this and the perils of using clr as opposed to "mov #0," when talking to
hardware.
The rl01 bootstrap does it talking to rl11 registers, which tripped me
up for a bit.
-brad
The only difference between CLR and MOV #0 that I think of immediately
is that CLR clears the Carry flag too, whereas MOV #0 does not affect the
Carry flag. That is needed to do multi-word ADD or SUB.
What does that have to do with anything?
The question was about what Unibus transactions are performed given a CLR.
I'm not at all close to any Unibus documentation right now, nor any
processor docs. so I can't really answer the question.
However, if I were to guess the answer would be no. I can't see that a
CLR always would be implemented using a DATIP. It is probably very much
up to each CPU implementation to perform whatever transactions that
cause the end result to look the same. I'm actually surprised that a CLR
would result in a read-modify-write cycle on the Unibus though. Are you
sure it wasn't a CLRB?
Johnny