Hi, During porting of some old code to an 18F452 chip I've discovered an strange error that I cannot figure out. I have one part of the access ram that is dedicated to local variables for use inside routines only ( i.e. never to be assumed persistent across calls). I have declared the bank portion as: .. DATABANK NAME=3Daccesstmp START=3D0x7A END=3D0x7D=09 .. SECTION NAME=3DACCESS_TEMP RAM=3Daccesstmp .. In the linker control file, then 'declaring' ram I use: ACCESS_TEMP UDATA_OVR ; overlaid temp data Temp RES 4 ; temp used in divison and fixed point routines Now this ram is located in side the 0x00-0x7F access data range and hence the compiler/linker should not use the BSR register for access. But looking at the output is does, this code: CLRF Temp ; CLRF Temp+1 ; CLRF Temp+2 ; generates: 6B7A : CLRF 0x7A,0x1 6B7B : CLRF 0x7B,0x1 6B7C : CLRF 0x7C,0x1 Which indeed are using the BSR for access as the highest bit low byte is set. Why is this ? do I need to manually add the ',A', I belive that this should not be needed, is there something I'm doing wrong or can be done in another way to accomplish the correct result ? BTW: Mplab IDE 6.10.00 Thanks In advance, /Tony -- http://www.piclist.com hint: To leave the PICList mailto:piclist-unsubscribe-request@mitvma.mit.edu