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.

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].
>     CLL RAL
>     CIA
> 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?

Christian M. Gauger-Cosgrove
Contact information available upon request.

More information about the cctalk mailing list