Has Anyone Written PDP-8 .XOR. Code Using the MQ Register (Without the EAE)?
dwight
dkelvey at hotmail.com
Thu Dec 24 00:38:22 CST 2015
I'm not sure how to code it on the machine but I know
how to do it.
Take A AND B = C
2* C = D ( ignore carry )
negate D ( complement and add 1 )
A + B = E ( this could have been done first )
E + D = A XOR B
I think it needs 3 variables?
It works because the carries are the result of the AND of the times 2 ( his RAL )
negating and subtracting is what he want to do, leaving the XOR.
Dwight
________________________________________
From: cctalk <cctalk-bounces at classiccmp.org> on behalf of Christian Gauger-Cosgrove <captainkirk359 at gmail.com>
Sent: Wednesday, December 23, 2015 7:14 PM
To: CLASystems at gmail.com; General Discussion: On-Topic and Off-Topic Posts
Subject: Re: Has Anyone Written PDP-8 .XOR. Code Using the MQ Register (Without the EAE)?
On 23 December 2015 at 13:44, CLASystems <clasystems at gmail.com> wrote:
> Ironically, the shortest and fastest seems to be avoidance of the MQ
> altogether [thus making it work on ANY model].
>
> TAD ARGONE
> AND ARGTWO
> CLL RAL
> CIA
> TAD ARGONE
> DCA ARGTWO
>
> This works because .XOR. is addition ignoring the carry bits. So, knowing
> they will happen, just allow them at first, then remove them.
>
Hmm, I just tried that in SIMH, and that doesn't XOR at all. I haven't
a clue what it does.
What I have entered:
sim> ie -m 100-105
100: TAD 76
101: AND 77
102: CLL RAL
103: CIA
104: TAD 76
105: DCA 77
Locations 076 and 077 being ARGONE and ARGTWO respectively, at the start:
sim> ie 076-077
76: 1234
77: 4321
After running the above code sample:
sim> ie 076-077
76: 1234
77: 0574
If we "flip" ARGONE and ARGTWO's values (to 4321 and 1234 respectively):
sim> ie 076-077
76: 4321
77: 3661
Neither of those is the expected 5115 of an XOR operation.
Am I missing something blindingly obvious?
Cheers,
Christian
--
Christian M. Gauger-Cosgrove
STCKON08DS0
Contact information available upon request.
More information about the cctech
mailing list