On 2/22/06, Sean 'Captain Napalm' Conner <spc at conman.org> wrote:
Also, on the 8086, sequential segments were 16 bytes
apart and many
programs relied upon this behavior. I know that OS/2 included support for
sequential selectors but one had to call a function to get the offset
between each selector. Not that I used such functions---just that I recall
seeing them in the documentation.
There was a function called DosGetHugeShift(). The segment increment
was (1<<HugeShift) But they always return the same value in a given
environment (3 in the case of OS/2). They were primarilty provided
for code portability (so you could use the same object file in dos
assuming you provide a DosGetHugeShift() function that returns 12.)
Most DOS extenders had similar calls although some returned the
increment rather than the shift.