Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site abnjh.UUCP
Path: utzoo!watmath!clyde!burl!ulysses!mhuxl!abnjh!usenet
From: usenet@abnjh.UUCP (usenet)
Newsgroups: net.lang.c
Subject: Re: pointer question
Message-ID: <508@abnjh.UUCP>
Date: Fri, 16-Mar-84 17:25:41 EST
Article-I.D.: abnjh.508
Posted: Fri Mar 16 17:25:41 1984
Date-Received: Sat, 17-Mar-84 03:43:48 EST
References: <140@log-hb.UUCP>
Organization: ATTIS, NJ
Lines: 22

Another example of a machine where pointers to ints are significantly
different from pointers to chars is the Sperry 1100 series.  They are
also 36 bit word addressable machines with add-ons to the instruction
set to allow working with character strings.  (Note, I said strings,
NOT individual characters -- and no, the latter is not a special case
of the former.  If you want the details, ask me by email, there is no
point in bothering the net with them.)  extracting a character from a
word in memory is possible, but complicated.  Due to 'upward
compatibility' mania the basic pointer to integer will fit into a
half-word (18 bits) (And yes, this means you cannot have a program
bigger than 256K words. And yes, this is a pain.  And yes, later
models in the series allow you to get around this restriction by
standing on your head and spitting thru your teeth, but it is still a
pain.)  But a pointer to a character string encodes the starting word,
the starting character and the character size (usually a quarter
word -- 9 bits -- but other sizes are possible, including 6, 12
and 18 bits).  All of this uses up most of a 36 bit word.  The string
length is encoded in a separate word.

Rick Thomas.
ihnp4!abnjh!usenet   ihnp4!abnji!rbt