Subject: Looking for info: PDP-8/e EAE

From: [email-masked] (Bob Supnik)
Date: 6 Jun 1993 16:33:25 -0400

I'm looking for detailed information on the PDP-8E (-8A) EAE unit.

The description of normalize says:

"The step counter is cleared; then the contents of the L, AC and MQ are
shifted left, as described above under Left Shift, until AC0 and AC1 are
different, or until the 24 bits contained in AC and MQ contain the number
6000 0000".

Clearly, this describes a terminating sequence of operation for every
24 bit number EXCEPT 0000 0000, for which neither completion condition
is ever met.  Does any one know/remember what happens in that case?

(The extent PDP-8 simulators on the net don't include EAE support.)

Bob Supnik	>[email-masked]
		>All opinions expressed are those of a hardline microcoder
		>and do not reflect those of Digital Equipment Corporation

---

From: [email-masked] (Charles Lasner)
Date: Mon, 7 Jun 1993 13:44:23 GMT

>different, or until the 24 bits contained in AC and MQ contain the number

AH! Ye old EAE bug!

Pre-8/e EAE has a bug here:

The hardware checks for the special case of AC and MQ all zero and takes a
fast exit if so.  The problem is that EAE, like other OPR instructions allows
micro-coded instructions such as

CLA MQL NMI

So, the test is done too early since the CLA and possibly MQL happen after the
test for all-zeroes.  The fix *could* have been to test later or at any time
but neither was the case.  (I suspect the test for all zeroes was already
done the way it was for the benefit of MUY/DVI, so it was just appropriated
for NMI as well; but this hole in the logic cost them.)

So, any CLA NMI thwarts any test for AC=0, and any MQL NMI thwarts any test
for MQ=0 if the AC already is zero, and CLA MQL NMI thwarts any test for
both zero regardless of prior (non-zero) case, etc.

The 8/e handily solves the problem:

The instruction NMI is indeed normalize, but adding on the troublesome bits
causes a special-case decode which cancels the potential infinite loop
problem.  Indeed, you can no longer micro-code NMI at all!  The instructions
are now used as the mode "a" and mode "b" switch operations.  It's pretty
contrived to find a case for "incompatibility" here unless someone had
used something like CLA NMI to normalize the low-order 12 bits of a quantity
only or something, etc.  More importantly it prevents the hardware from
cycling forever until stopped manually as on the 8, LINC-8, 8/i, and -12.

Hope this helps you emulate 8/e EAE so that we can sooner see PDP-8 ZORK!

cj "Was just playing the TOPS-20 MDL version a few minutes ago, seriously!" l

---

From: [email-masked] (Bob Supnik)
Date: 7 Jun 1993 18:35:59 -0400

In article <[email-masked]>, [email-masked] (Charles Lasner) writes...
>> [text deleted]
> [text deleted]

My thanks to the old PDP-8 hackers who helped with this one.  According to
the 1973 and later editions of the Small Computer Handbook (but not the 72
edition, which I was using), any number with AC2:11 = MQ0:11 = 0 is considered
"prenormalized"; no shift is done; the instruction terminates immediately.

---

From: [email-masked] (Charles Lasner)
Date: Tue, 8 Jun 1993 02:12:16 GMT

>"prenormalized"; no shift is done; the instruction terminates immediately.

That's the way all EAE always did it.  The problem was with the decoding as I
described, etc.  BTW, did you notice the earlier "paper" EAE implementation
that was described in the first SCH that included the NMU instruction?  (This
was to mean "unsigned normalize" but all of that description was vapo-ware.)

Note that for compatibility, 8/e programs have to do a SWBA;NOP to ensure
the program starts in mode A or runs on pre-8/e EAE machines.

So, how soon after the Alpha -8 simulator is done do we see PDP-8 Zork?

cjl

---

From: [email-masked] (Bob Supnik)
Date: 8 Jun 1993 17:53:36 -0400

In article <[email-masked]>, [email-masked] (Charles Lasner) writes...
>So, how soon after the Alpha -8 simulator is done do we see PDP-8 Zork?

I didn't know there WAS a PDP-8 version of ZORK.  Seems like rather a lot
of text strings to get into 4KW - 32KW of memory... :-)

Seriously, I am looking for test programs, any kind.

---

From: [email-masked] (Charles Lasner)
Date: Wed, 9 Jun 1993 06:47:04 GMT

>of text strings to get into 4KW - 32KW of memory... :-)

So who puts text data in memory?  That's what disks are for!  I would think 
that the code should fit easily.

cj "You are in a maze of 12-bit computers, all alike" l

---

From: [email-masked] (Paul Pierce)
Date: Thu, 10 Jun 1993 23:18:21 GMT

In article <[email-masked]>, [email-masked] (Bob Supnik) writes:

|> Seriously, I am looking for test programs, any kind.

What about running the DEC diagnostics?

-- 
Paul Pierce			[email-masked]
Intel