Hi, I have 2 sections of code, each uses many of the others files. One compiles/assembles, the other does not do so without frightening warnings. I feel that I must resolve these warnings. I have Read The Fine Manual (as some support people no doubt say to do), and I have only one CREG statement, that is the only code statement that has an "AT 0", and in fact the only use of an AT construct in the entire code. (I feel that I should have an explicit NOOVERLAY direction to the compiler, but I can not find my notes and can not find that in the manual.) I wish that the linker could tell me where it found those match ups (what files they came from, or what module names they have. Linker is silent on things that it knows. Also wishlist: a help file that will give remedys for common and even uncommon problems: a error section that would tell what to look for when the error occurs. Actually there is this, or a first cut attempt at this for the Compiler. Where is this for the linker? So I do not know what to look for, nor what the common things to do for this error are. I have reviewed my settings for the second project target. In Misc Controls part of L51 Misc, it is blank. Should it be? And where in the manual is there a place to tell me what could go in the L51 Misc box? Error messages and *.m51 output follow. * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 00DEH ABSOLUTE * OVERLAP * CODE 0000H 0034H ABSOLUTE * OVERLAP * CODE 0000H 000EH ABSOLUTE ... ... *** WARNING L5: CODE SPACE MEMORY OVERLAP FROM: 0000H TO: 00DDH *** WARNING L5: CODE SPACE MEMORY OVERLAP FROM: 0000H TO: 00DDH
This problem was a hard one. The orgs and CREGS and such were in order. But I had put a whole bunch of $IF (Is_HandHeld) in the code and then ran it with Is_Remote defined instead of Is_handheld. The asm style ifdef killed a few of " ASM_CODE SEGMENT CODE RSEG ASM_CODE ", and the following code did not know what segment it was in. So, as per Intel style assemblers, and totally unknown to me, it started another CODE segment at zero. It did not announce that it had done so in a conventional way, but the linker listing had these two zero based line numbers, one in one file and one in another. But I could not understand why a code segment would (re-)start in the middle of a file. Now I know. With great thanks to both Mark Olson who supplied answers and suggestions and helped me in many ways, and most especially to John W.(in Dallas) who stayed until 7pm (Late!) to help find and solve this problem. Sean