Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!seismo!rutgers!ames!amdahl!amdcad!rpw3 From: rpw3@amdcad.AMD.COM (Rob Warnock) Newsgroups: comp.unix.wizards,comp.arch Subject: Re: *Why* do modern machines mostly have 8-bit bytes? Message-ID: <17721@amdcad.AMD.COM> Date: Tue, 28-Jul-87 03:01:23 EDT Article-I.D.: amdcad.17721 Posted: Tue Jul 28 03:01:23 1987 Date-Received: Wed, 29-Jul-87 04:30:17 EDT References: <142700010@tiger.UUCP> <2792@phri.UUCP> <8315@utzoo.UUCP> <3532@ihlpg.ATT.COM> <1037@vaxb.calgary.UUCP> Reply-To: rpw3@amdcad.UUCP (Rob Warnock) Followup-To: comp.arch Organization: [Consultant] San Mateo, CA Lines: 47 Xref: mnetor comp.unix.wizards:3450 comp.arch:1714 In article <1037@vaxb.calgary.UUCP> radford@calgary.UUCP (Radford Neal) writes: +--------------- | Yup. The LGP-30, of 1950's vintage, had 31 bit memory words. The accumulator | had 32 bits, though. They seem to have thought of their memory as being | 32-bit words, but the low-order bit was always zero... | Radford Neal +--------------- Close... the accumulator was continously recirculating (reading data off the drum and writing it back 32 bits "in front" of the read head), so you never had to turn off the write gate on the drum. The memory, on the other hand, was (merely) word addressed (actually track+sector), and you nearly nearly a bit time to turn off the write gate if you weren't going to overwrite the next word in memory. It was a "Little-Endian" machine (at the bit level -- had to be, it used bit-serial arithmetic!), but numbered the bits "Big-Endian" style (the opposite of the 68000 confusion!), and bit 31 (the LSB of the AC) was the one that got snuffed (well... ignored) when you wrote to memory. Thus the low-order bit of an input character would be lost if you didn't multiply it by 2 before storing! Further, the LSB of the address field in an instruction was bit 29 of the AC (there were a *lot* of unused bits in its single-address instructions!), and when keying in absolute machine instructions (like a bootstrap), you had to manually account for the lost bit 31 and unused bit 30, so that sequential words were addressed as "0, 4, 8, J, 10, 14, 18, 1J,..." (pronounced "zero, four, eight, jay, ten, fourteen, eighteen, jayteen"). Oh yes, the LGP-30 used a version of hexadecimal long before IBM decreed hex was "0-9A-F". The LGP-30 programmer counted: "0, 1, 2, 3, 4, 5, 6, 7, 8, 9, F, G, J, K, Q, W". The low-order 4 bits of the Friden "Flexowriter" character code for the "hex" digits happened to be, of course, the correct binary values, so no "conversion" was needed. That would work in ASCII iff hex was defined as "0-9J-O", but nobody could *stand* a number system with both "zero" and "oh" in it! (Oddly enough, the low-order 4 bits of the first letters of the assembler opcodes were also the correct bit pattern for that opcode, so "b0004" (4-bit mode) == 10004 == "Bring (load) loc. 4", "a123j" was "Add 123j", etc. There was a separate 6-bit input mode for doing real text input.) Rob Warnock Systems Architecture Consultant UUCP: {amdcad,fortune,sun,attmail}!redwood!rpw3 ATTmail: !rpw3 DDD: (415)572-2607 USPS: 627 26th Ave, San Mateo, CA 94403