Sign magnitude, one's complement, two's complement

Chuck Guzis cclist at
Thu Sep 3 23:28:04 CDT 2015

On 09/02/2015 11:05 PM, Jeff Woolsey wrote:
> This isn't quite the way I remember the CMU instructions working.
> Nor is it exactly how I've implemented them in my emulator.

Sorry that my explanation was scrambled with a few blown synapses.  I'll 
try again.

CMU was implemented in the lower Cyber 70 (72,73) and 170 (
720, 730) as instructions 464xx through 467xx.  However, what happens 
with the upper Cybers varies--the 74 and 176 (as well as the 7600 and 
6600) treat them as no-ops (46xxx).  However, the 750 and 760 treat 
464...467 as illegal instructions and error out.

According to my Cyber 72/73 reference, all CMU instructions must be 
located in the first parcel of an instruction word.  The Cyber 170 
restates this in at least two places in the instruction reference.  So 
no putting an IM in the second or third parcel. The reference for the 
lower 170s states that the machine does not execute any instructions in 
the lower 2 parcels of a word.

  Of course, the other CMU instructions 465-567 occupy a fullword, so no 
problems with alignment.

One of the early "tricks' was to take the IM instruction 464 B KKKKKK 
instruction, set up a B register and offset, such that the offset would 
be encoded as 46000 - a plain old no-op.  So, if your B register was 2, 
the first 2 parcels of an instruction word looked like:

	46420 46000

Two no-ops to a Cyber 74, 7600, 176 so an RJ to the regular move routine 
could be put in the lower half of the word.   Worked like a dream.

But when the upper Cyber 170 systems (750, 760) came onto the scene, 
that "clever" code quit working.  Maybe NOS/NOS-BE recognized the 
illegal instruction exception and implemented the IM and other CMU 
instructions in software, but I was off onto non-Cyber stuff by then.

Regardless, I do recall some grumbling at the time.

I never knew if the CMU ever amounted to much in the real world other 
than for the IM instruction.    You pretty much had to build the 
instructions for CC CU and DM, which involved a fair amount of setup 
code.  I'm sure that Don Nelson had a directive from on high to put them 
into COBOL, but I never saw any benchmark results--I was off working on 
64 bit hardware and 6-bit characters weren't part of my world.

Such is my limited exposure to the late Cyber 70/early Cyber 170 
machines re CMU.  I have no knowledge of how such stuff worked in 60 bit 
mode on the 180s.  It's been 40 years after all.


More information about the cctalk mailing list