west@turing.toronto.edu (Tom West) (09/20/90)
(1) If a variable in a LARGE model program is declared _near, does the linker
automatically place it in the default data segment (_DATA)? If not, how
do you make certain it is placed there?
(2) Which segment are static variable placed. Obviously I can't find them
in the map file :-). Can I assume they are placed in _DATA if they fit?
(3) Also, a question about segments. Looking through the map file produced
by the MSC 6.0 linker, I notice a number of segments that I don't recognize.
I wonder if anyone else can help. Anything with a purpose of ? is an
unknown to me.
Segment Name Length Class Purpose
MYPROG1_TEXT 40k CODE The code of my program (segment 1)
MYPROG2_TEXT 40k CODE The code of my program (segment 2)
_TEXT 23k CODE The code for the MSC libraries
EMULATOR_TEXT 10k CODE The code for the MSC FP emulator
_GR_TEXT 19k CODE The code for the MSC graphics library
C_ETEXT 0 ENDCODE An end of code segment marker?
EMULATOR_DATA <1k FAR_DATA The data for the MSC FP emulator.
What's FAR_DATA class?
FAR_BSS 6k FAR_BSS ?
NULL <1k BEGDATA ?
_DATA 41k DATA The data of my program and MSC libraries
XIQC <1k DATA ?
DBDATA <1k DATA ?
CDATA <1k DATA ?
XIFB 0 DATA ?
... lots of other really small segments beginning with X ...
XCFE 0 DATA ?
EXEC <1k DATA ?
CONST 2k CONST ?
HDR 0 MSG ?
MSG <1k MSG ?
PAD <1k MSG ?
EPAD <1k MSG ?
_BSS 5k BSS ?
XOB 0 BSS ?
XO 0 BSS ?
XOE 0 BSS ?
c_common 512 BSS ?
STACK 9k STACK ?
Thanks in advance for any help.
(NB) The program uses the far heap a lot, so despite the fact that
the total of data is < 64k, I need to compile LARGE model.
Tom West
west@turing.toronto.edu