Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83 (MC840302); site ttds.UUCP
Path: utzoo!watmath!clyde!bonnie!akgua!sdcsvax!sdcrdcf!hplabs!hao!seismo!mcvax!enea!ttds!arndt
From: arndt@ttds.UUCP (Arndt Jonasson)
Newsgroups: net.arch
Subject: Re: Arbitrary byte alignment
Message-ID: <662@ttds.UUCP>
Date: Mon, 15-Oct-84 02:10:25 EDT
Article-I.D.: ttds.662
Posted: Mon Oct 15 02:10:25 1984
Date-Received: Thu, 11-Oct-84 07:48:37 EDT
References: <470@houxl.UUCP> <420@intelca.UUCP>
Organization: The Royal Inst. of Techn., Stockholm
Lines: 26


    >One of the nicer things the DEC-10s and 20s had was something called a 
    >byte pointer. In this context a byte was any arbitrary grouping of bits

Had? They are still very much alive, although DEC no longer
does any development on them (or so I have heard).

A PDP-10 bytepointer can access any contiguous string of bits
that lies within a 36-bit word. It doesn't have to start on a
word boundary. The usual application of byte pointers is
handling 7-bit bytes, i.e characters, but others are used as
well. In the source code for ITS TECO (the base system for the
*real* Emacs), I recall that 36-bit pointers are used for some 
purpose.

The autoincrementing versions of LDB and DPB (ILDB and IDPB)
increment the pointer before accessing the byte. There is also
an IBP (increment byte pointer). (Actually ILDB and IDPB are
just IBP followed by LDP and DPB). There are no autodecrementing
modes, but later versions of the PDP-10 have an ADJBP (adjust
byte pointer) which adjusts a byte pointer an arbitary amount
(forwards or backwards). ADJBP doesn't fit in very well with
the others, though. It seems like a piece of happy hacking in 
the microcode.

   {decvax,philabs}!mcvax!enea!ttds!arndt