Path: utzoo!attcan!uunet!mitel!sce!cognos!geovision!gd From: gd@geovision.uucp (Gord Deinstadt) Newsgroups: comp.arch Subject: Re: 68000 architecture Message-ID: <660@geovision.UUCP> Date: 7 Jun 89 02:14:08 GMT References: <1989May30.171335.473@utzoo.uucp> <658@geovision.UUCP> <40938@bbn.COM> Reply-To: gd@geovision.UUCP (Gord Deinstadt) Organization: GeoVision Corp, Ottawa, Canada Lines: 52 In article <40938@bbn.COM> slackey@BBN.COM (Stan Lackey) writes: >In article <658@geovision.UUCP> gd@geovision.UUCP (Gord Deinstadt) writes: >>In article <1989May30.171335.473@utzoo.uucp> henry@utzoo.uucp (Henry Spencer) writes: >>> >>>Just to be heretical, one can observe that the same thing is true of >>>addresses. You can run the 68k family with 16-bit addresses (although >>>they have to be *signed* 16-bit addresses!). >> >>Can anyone tell my why Motorola did such a twisted, sick thing? > >I suspect that the reason 16-bit absolute addresses are signed is >because all instruction stream data is sign extended, and the >designers figured that 32Kbytes of scalar addressing was enough >anyway, so why make an exception for addresses. I suspect that's it. From Henry Spencer's follow-up, it seems the intent was that all your pointers would be 32-bit, and offsets would likely only be used for accessing fields within a structure and perhaps local variables off the frame pointer. Someone also pointed out via e-mail that you can use the 16-bit absolute mode for easy addressing into either very high or very low memory. This is handy because very low mem contains interrupt vectors and the like, and i/o is usually mapped into very high mem. Actually, I don't mind the absolute addresses being signed; it's a fairly minor issue. It's the signed offsets in base+offset mode that burn me up. You *can* work around it (ie. still get a 64k address range with 16-bit offsets) by fudging all your base addresses by 32768; but you shouldn't have to. Especially considering that this was in the days when people still wrote a lot of assembler. (Gosh, did people actually do that when I was young? ;-P) >The reason for the 16-bit absolute addressing mode was because in >1977? when the 68000 was designed, 1) people cared about the amount of >memory their application needed, and 2) lots and lots of applications >used less than 32K bytes for scalar data. And of course Intel was going around bragging about how compact 8086 code was. >I feel that including 32-bit features at all showed great insight by >its designers, and I also feel that the 68000 family was partially >responsible for the emergence of the workstation as a market entity. No argument about that from here. I like the 68000, generally, and often chafe at having to use 8086-family machines for the "wrong" reasons. My admiration for the 68000 only adds to my disappointment at what I consider to be a flaw in the architecture. Gord "an unsigned for the times" Deinstadt