[comp.sys.ibm.pc] Far Pointers

bobmon@iuvax.cs.indiana.edu (RAMontante) (12/14/88)

Turbo C manipulates far pointers with the following 3 "functions"
(actually macros):

void far *MK_FP(unsigned segment, unsigned offset);	/* makes
							   far pointers */
unsigned FP_OFF(void far *far_pointer);	/* returns offset */
unsigned FP_SEG(void far *far_pointer);	/* returns segment */


Just for laughs, here's the actual definition of the MK_FP macro, from
<dos.h> :

#define MK_FP(seg,ofs)	((void far *) \
			   (((unsigned long)(seg) << 16) | (unsigned)(ofs)))

So Holzmann's "long-integer" representation of a far pointer would be
acceptable to Turbo C.  Aren't you glad you asked ?  :-)