Hallo, I have written in my experimental(!) code a global variable : int idata arr[60]; The stack is explicitly assigned to internal memory space (memory type : idata - 256 byte maximum). But I got in the *.m51-File an error message. IGNORED SEGMENTS: ?STACK *** ERROR L123: ABSOLUTE DATA/IDATA SEGMENT DOES NOT FIT MODULE: TIMER01.OBJ (TIMER01) FROM: 0088H TO: 0089H *** ERROR L107: ADDRESS SPACE OVERFLOW BL51 BANKED LINKER/LOCATER V4.02 05/02/2001 11:10:58 PAGE 2 SPACE: IDATA SEGMENT: ?STACK LENGTH: 0001H *** ERROR L107: ADDRESS SPACE OVERFLOW SPACE: IDATA SEGMENT: ?STACK LENGTH: 0001H *** ERROR L119: REFERENCE MADE TO ERRONEOUS SEGMENT SEGMENT: ?C_C51STARTUP MODULE: C:\MYFILES\LIB\C51S.LIB (?C_STARTUP) ADDRESS: 4042H I don't understand why the stack can not be placed in the upper memory (0x80 to 0xFF)? The memory type of the stack is idata (0x00 - 0xFF). If I have located a variable in the upper 128 bytes of internal RAM like this: int idata var _at_ 0x81; I have got also the error messages! But why? I thought if I use the memory type idata, then I can use all the lower and the upper internal RAM. Best Regards.