Path: utzoo!censor!comspec!humvax!becker!hybrid!scifi!bywater!uunet!midway!valley From: valley@uchicago (Doug Dougherty) Newsgroups: comp.os.msdos.programmer Subject: Re: Teaching and Old Dog New Tricks Message-ID: Date: 19 Dec 90 16:16:23 GMT References: <1990Dec16.071745.19811@NCoast.ORG> <4550@amc-gw.amc.com> Sender: news@midway.uchicago.edu (News Administrator) Distribution: usa Organization: University of Chicago Lines: 27 hughes@maelstrom.Berkeley.EDU (Eric Hughes) writes: >In article <4550@amc-gw.amc.com> jwbirdsa@amc-gw.amc.com (James >Birdsall) writes: > [about segment arithmetic] >>Why were programs written this way? Well, the easy answer is: large >>data objects. >Not only that. The old Lattice C compiler, when using large model, >used to normalize every pointer so that the offset was between >one and sixteen. They did this to facilitate pointer comparisons, >from what I could tell. >What numbskulls. >Eric Hughes >hughes@ocf.berkeley.edu You mean between 0 & 15 (0 & 0F). In TC, these are called huge pointers and you only get them (even if you compile in the huge model (!)) if you explicitly request them (via the "huge" modifier in the pointer definition) This scheme is logical, but it caught me when I assumed that compiling in the huge model would automatically get me huge pointers...