Microsoft KB Archive/32206

= Huge Addressing under OS/2 =

Article ID: 32206

Article Last Modified on 12/1/2003

-

APPLIES TO


 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1
 * Microsoft FORTRAN Compiler 4.1
 * Microsoft FORTRAN Compiler 5.0
 * Microsoft FORTRAN Compiler 5.1

-



This article was previously published under Q32206



SUMMARY
When a huge array is allocated space, OS/2 allocates segments from the Segment Selector Table in increments of n+0i, n+1i, n+2i, etc., where &quot;n&quot; is the starting selector and &quot;i&quot; is the incremental value. The value of &quot;i&quot; must be determined at load time for different versions of the OS/2 and for different configurations of the similar versions. The way that huge addressing is performed under OS/2 is identical to the way in which MS-DOS accesses huge addresses. However, under MS-DOS, &quot;i&quot; is always 4,096.

Below is an example of how to obtain the value of &quot;i&quot; in a FORTRAN program. The value of &quot;i&quot; is 2 raised to the power returned by DosGetHugeShift. This information is discussed in detail in the Microsoft Press book &quot;Inside OS/2&quot; by Gordon Letwin, Section 9.2.2.



MORE INFORMATION
The following example shows how to obtain the value of &quot;i&quot; in a FORTRAN program: INTERFACE TO INTEGER*2 FUNCTION DosGetHugeShift + [ALIAS: 'DOSGETHUGESHIFT'] (SHIFT) INTEGER*2 SHIFT END INTEGER*2 SHIFT,DosGetHugeShift INTEGER*2 I      I = DosGetHugeShift(SHIFT) PRINT *,'DosGetHugeShift = ',SHIFT PRINT *,'i = ',(2**SHIFT) STOP END

Additional query words: kbinf 4.10 5.00 5.10

Keywords: KB32206

-

[mailto:TECHNET@MICROSOFT.COM Send feedback to Microsoft]

© Microsoft Corporation. All rights reserved.