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