Xref: news2.mv.net comp.os.msdos.djgpp:650 From: malcolm AT manawatu DOT gen DOT nz (Malcolm Taylor) Newsgroups: comp.os.msdos.djgpp Subject: Re: aligment / based pointers Date: Sun, 28 Jan 1996 22:21:14 GMT Organization: Grafik Software Lines: 36 Message-ID: <4egp3g$a3q@news.manawatu.gen.nz> References: <960118222321_100662 DOT 3563_EHV63-1 AT CompuServe DOT COM> <4e74he$976 AT news DOT manawatu DOT gen DOT nz> <4ee70i$ite AT electra DOT saaf DOT se> Reply-To: malcolm AT manawatu DOT gen DOT nz NNTP-Posting-Host: malcolm.manawatu.gen.nz To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp pausch AT electra DOT saaf DOT se (Paul Schlyter) wrote: >In article <4e74he$976 AT news DOT manawatu DOT gen DOT nz>, >> What is a based pointer? > >It's Microsoft's way of declaring a C near pointer so that it uses >some other segment register than DS. Usually SS is used instead. > >This really only applies to segmented 16-bit code. Since DJGPP >uses a 32-bit "flat" memory model, where all segment registers are >equal (with the possible exception of CS): all pointers are "near" >and "far" pointers does not exist. They're not needed since 32-bit >addresses can cover all of addressable memory. > >Thus, the concept of a "based pointer" is meaningless in DJGPP as >well as in any other environment using the "flat" memory model. Well that is not entirely true. The memory space of the program is one big flat segment, but other programs (processes etc.) will be residing in different segments. The best example of needing far-pointers is trying to access dos memory. You can use the functions in sys/farptr.h or a little more dangerous is using sys/nearptr.h. >(in principle 32-bit code could be segmented too, but no environment >in use today uses 32-bit segmented code. The "flat" memory model >seems to have been universally accepted for 32-bit code on the x86). These days the segments are used to seperate the processes, it means there is no need for relocation data in the executable, and that the code can be shifted without any changes needed. So segments are still very much in use. Malcolm