From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00,INVALID_MSGID autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 10f6aa,76b1fcc14e8dced X-Google-Attributes: gid10f6aa,public X-Google-Thread: 1014db,8b6c45fbebd7d3b7 X-Google-Attributes: gid1014db,public X-Google-Thread: 114917,76b1fcc14e8dced X-Google-Attributes: gid114917,public X-Google-Thread: 103376,c9c309a1859318a1 X-Google-Attributes: gid103376,public X-Google-Thread: 109fba,76b1fcc14e8dced X-Google-Attributes: gid109fba,public From: miker3@ix.netcom.com (Mike Rubenstein) Subject: Re: HELP ! need to insert value in array !! Date: 1997/07/05 Message-ID: <33bf5dcc.102201087@nntp.ix.netcom.com>#1/1 X-Deja-AN: 254808091 References: <33A9C27C.22F7@post4.tele.dk> <5oci49$97g@crl.crl.com> <866920621snz@genesis.demon.co.uk> <5p0v7l$9uc@nntp.seflin.org> <33b64c2f.43589878@nntp.ix.netcom.com> <5pht85$d4o$1@goanna.cs.rmit.edu.au> <33be891f.47731103@nntp.ix.netcom.com> Organization: Netcom X-NETCOM-Date: Sat Jul 05 8:13:40 AM PDT 1997 Newsgroups: comp.lang.c,comp.lang.c++,comp.os.msdos.programmer,comp.lang.asm.x86,comp.lang.ada Date: 1997-07-05T08:13:40-07:00 List-Id: dewar@merv.cs.nyu.edu (Robert Dewar) wrote: > Mike said > > < that handled 7 bit characters specially. The PDP10 (like its > predecessor the PDP6) had a byte pointer construction that could be > used to access any byte in a word where the byte size was specified as > part of byte pointer. There was an instruction that would get a byte > and increment the pointer, handling word boundaries properly (a byte > could not be split across words). Byte pointers and the associated > instructions worked equally well with any byte size up to 36 bits, > though, of course, some word sizes resulted in more wasted bits than > others. > >> > > Sure, but why do you think those instructions where there (the ones to > handle odd chunk sizes). The answer is that the motivation was precisely > to allow convenient support of the 7 bit format. The use of these > instructions for any other size was rare. What happened was that there > was a requirement for supporting the 5 char/word format in the hardware, > and the designers generalized it to any byte size (rememebr this was the > hey day of extravagant CISC design). In other words, there were no instructions that specifically supported 7 bit characters, but it was a software convention -- exactly what Richard and I said. The byte pointers would have been just as useful had the software used 6 bit characters, which was quite common in those days. It would also have been useful for 9 bit characters which were used on Univac and Honeywell machines. If the idea had been to use 7 bit characters, why not do it simply by using a 35 or 42 bit word rather than 36? Or make the machine byte addressable with 7 bit bytes? And, of course, the reason that the byte pointer instructions were used mostly for 7 bit objects was that the software convention used 7 bit characters. I doubt if anyone who saw only the instruction set for the PDP6/10 would immediately recognize that the machine was designed for 7 bit characters. In retrospect it seems obvious; after all, ASCII is a 7 bit code, but in the early 60s when the machine was designed ASCII was not commonly used as an instruction set on computers. On the IBM 709x the most common shifts used were multiples of 6 bits. Does this mean that shifts were put in to support 6 bit characters? Of course not -- just the reverse, 6 bit characters made 6 bit shifts more common. Michael M Rubenstein