From: utzoo!decvax!genradbo!mitccc!barmar Newsgroups: net.unix-wizards Title: Re: Information on Unix/Vax peculiarities Article-I.D.: mitccc.222 Posted: Tue Dec 14 03:33:00 1982 Received: Wed Dec 15 05:37:10 1982 References: sri-unix.4758 The Honeywell 68/DPS and DPS/8 computers, which run the Multics time-sharing system (no, the name is NOT a hack on UNIX, but in fact the reverse is true!), uses double-words for its pointers when it is running segmented (most of the time), so its pointers are 72 bits long. The natural length for int would be 18 bits because the accumulator is 36 bits wide (it is possible to do double-word arithmetic using the combination of the Accumulator and Quotient registers called the AQ, but it is not as "natural"). These pointers are also more precise than *charyou can address arbitrary bit boundaries. Note that all the actual addressing information fits in less than 36 bits; these 72-bit pointers contain additional information, such as ring-number and fault tags (there are nine bits eventually left over that Multics Maclisp uses to implement typed-pointers). An 18-bit int would be a fine subscript, though, as 18 bits is enough to address any word in a segment (20 bits are necessary if you want to address any character, though). By the way, there are places in Multics that pass around pointers (the 36-bit "packed pointer" type I alluded to earlier) as PL/I type "fixed bin (35)", i.e. 35-bits plus sign. This is generally done so that the program is callable from languages that do not support pointers, such as Fortran and COBOL.