Every application has a DATA segment. The DATA segment contains the application's stack, local heap, and static and global data. Like a code segment, the DATA segment cannot be larger than 64K.
A DATA segment can be fixed or movable, but not discardable. If the DATA segment is movable, Windows automatically locks the segment upon passing control to the application. Otherwise, a movable DATA segment may move if an application allocates global memory, or if the application attempts to allocate more memory than is currently available in the local heap. For this reason, it is important not to keep long pointers to variables in the DATA segment.
You define the attributes of the DATA segment by using the DATA statement
in the module-definition file. The default attributes are MOVEABLE and
MULTIPLE. The MULTIPLE attribute directs Windows to create one copy ofan application's data segment for each instance of the application. This means the contents of the DATA segment are unique to each instance of the application.
A large-model application may have additional data segments, but only one DATA segment. Using large model with additional data segments is not recommended. If your application requires multiple segments of data, you can allocate them by using the GlobalAlloc function during the initialization of the application.