HI, Quentin wrote: >With MPLINK, I use "RES" to assign registers. I use bank 1 (BSR=3D1). What >is going to happen when the bank is full? Since MPLINK now auto assign >labels to registers, when I reach the end of bank1 I must somehow set >BSR=3D2. >I'm not there yet, but before I do, what is the best way to approach this? As Alan noted, you will know at the time when the variables does not fit unless you have supressed that error. Also look at Olin's code, although not for everyone, they will give you pointers and ideas to develop your own environment. Anyway this is also something that you would use the linker control file for. For example on the 18F452 you have quite ample amount of ram, there you probably want to keep buffers inside on ram bank only, in that case add: SECTION NAME=3DBUFFER_BANK RAM=3Dgpr3 At the end section of the linker control file. Then when you 'declare'the ram you use by the following syntax: BUFFER_BANK UDATA ; buffer ram selected RX_Buffer RES RX_BUFFER_SIZE ; buffer for receving, internal uart TX_Buffer RES TX_BUFFER_SIZE ; buffer for sending, internal uart The data will then be reserved in the bufferbank. Use this to 'partion' your ram usage. For example global ram in one bank, local for routines in another etc. /Tony -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu