Ok, I think, BL51 tries to fool me. I tell him where to place my code segments and he gives me this link map:
TYPE BASE LENGTH RELOCATION SEGMENT NAME ----------------------------------------------------- * * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" DATA 0008H 0017H UNIT SPECIAL IDATA 001FH 0001H UNIT INDIRECT BIT 0020H.0 0006H.5 UNIT BITS 0026H.5 0000H.3 *** GAP *** DATA 0027H 0036H UNIT INTERN * * * * * * * X D A T A M E M O R Y * * * * * * * XDATA 0000H 244DH UNIT EXTERN * * * * * * * C O D E M E M O R Y * * * * * * * CODE 0000H 00A0H UNIT VECTORP CODE 00A0H 895FH UNIT PROG CODE 89FFH 2DECH UNIT TEXT
00000000 70 DC 01 FF 58 41 35 31 20 22 64 65 33 35 32 2E p...XA51 "de352. 00000010 61 73 6D 22 20 4E 4F 4D 4F 44 35 31 20 47 45 4E asm" NOMOD51 GEN 00000020 20 53 45 54 28 53 4D 41 4C 4C 29 20 50 52 49 4E SET(SMALL) PRIN 00000030 54 28 2E 5C 6C 73 74 5C 64 65 33 35 32 2E 6C 73 T(.\lst\de352.ls 00000040 74 29 20 4F 42 4A 45 43 54 28 2E 5C 6F 62 6A 5C t) OBJECT(.\obj00000050 64 65 33 35 32 2E 6F 62 6A 29 20 45 50 00 00 14 de352.obj) EP... 00000060 C4 F7 41 0F 2E 5C 6F 62 6A 5C 64 65 33 35 32 2E ..A..\obj\de352.
C:\KEIL\C51\BIN\BL51.EXE .\obj\de352.obj, .\obj\clockio.obj, .\obj\init.obj, .\obj\interrupts.obj, .\obj\keyport.obj, .>> obj\logger.obj, .\obj\printer.obj, .\obj\useful.obj, .\obj\variables.obj, .\obj\constanten.obj, .\obj\com_2.obj, .\ob >> j\display.obj, .\obj\compreter2_lib.obj, .\obj\compreter2.obj, .\obj\vt100.obj, .\obj\charleader.obj TO .\obj\a.out P >> RINT (.\lst\a.m51) RAMSIZE (256) NODL, NODP, NODS CODE (VECTORP (0X0000), PROG, TEXT)