Subject: Re: NetBSD/pdp10 ?
To: Christopher Vance <vance@aurema.com>
From: Greg Lehey <grog@lemis.com>
List: tech-kern
Date: 03/11/2002 11:28:04
On Monday, 11 March 2002 at 10:32:06 +1100, Christopher Vance wrote:
> On Sun, Mar 10, 2002 at 01:02:45PM +1030, Greg Lehey wrote:
>>>> [...], but later they moved to 9 bit ASCII.
>>> ...isn't ASCII 7 bit by definition?  Or is "9 bit ASCII" an
>>> abbreviation for "ASCII in the low 7 bits of a 9-bit field"?
>> Yes.
>>> (And in that case, I'm curious: what did the other 3/4 of the
>>> possible values mean, do you happen to know?)
>
> When I used it, the UNIVAC 1100/nn thingy used bytes of 6, 9, 12,
> and 18 bits, or 6, 4, 3, 2 bytes per word.  There was a status bit
> which said whether it would do 12/3 or something else (I think it
> was 9/4) for the same instruction bits.

Right.  The instruction format included a 4-bit field (named J) which
determined which part of a word was to be accessed.  The 1108 and
earlier machines could access either the entire word, either half (18
bits) with or without sign extension, any third word (12 bits), any
sixth, or the lower half word of the instruction itself
(i.e. immediate data), with or without sign extension.  The 1110 and
later defined previously unused bit 10 in the processor state register
to mean "quarter word mode".  In this mode, the XH1 (sign extended
upper half) and third word transfers became replaced by any quarter
word.

> Byte accesses were typically done with an array of instructions set
> up to handle successive bits, and you executed one of the
> instructions in the array, using an appropriate execute indirect
> instruction, whose name I have forgotten.

EX :-)

Here's a typical example:

CHECKREL  JG      A2,(1*/30-1)  NOTSET    . BIT NOT SET
          EX      INDTEST,A0              . SUBSET?
          J       NOTSET                  . NO: ON
          EX      LDINDX,A0               . YES: ADDRESS OF SUBSET
          EX      TESTNDX,X7              . SUBSET SET?
          J       NOTSET                  . NO: ON

INDTEST   TNZ,S1  SUBSETS
	  TNZ,S2  SUBSETS
	  TNZ,S3  SUBSETS
	  TNZ,S4  SUBSETS
	  TNZ,S5  SUBSETS
	  TNZ,S6  SUBSETS

INDTEST was an array of instructions, each accessing a different sixth
of the word.  The second instruction (EX INDTEST,A0) would execute one
of them, depending on the content of register A0.

> 9-bit ASCII just meant the smallest byte size big enough to hold a
> 7-bit ASCII value.  I don't remember playing with undefined bits.
>
> Integers were 1-s complement,

Right.  We had the fun of having to test for both +0 and -0.

Greg
--
Finger grog@lemis.com for PGP public key
See complete headers for address and phone numbers