16-Bit Applications in a 32-Bit Environment

One of the major concerns when developing OS/2 Version 2.0 was to ensure compatibility with applications written for previous versions of OS/2. Since there are a significant number of 16:16 modules and resources in existence, consideration was also given to the coexistence and interaction of 16:16 and 0:32 modules and resources within an application, with issues such as:

  • 32 applications using existing 16:16 DLLs and libraries

  • 16:16 applications using 0:32 DLLs and libraries

  • Huge" segments (greater than 64KB in size).

    The 16:16 applications are placed in the compatibility region and accessed through tiled local descriptor tables (LDTs); see Address Conversion and Translation for further explanation. Such applications take advantage of the fact that memory in the compatibility region may be addressed with both 16:16 and 0:32 addressing schemes. Addressing memory objects from both 16-bit and 32-bit applications is therefore quite simple, since no physical movement of the memory object is required. Since the entire process address space under OS/2 Version 2.0 is located within the compatibility region, this also means that communication between 16-bit and 32-bit applications and modules may take place.


    [Back: Processing Page Faults]
    [Next: Address Conversion and Translation]