>How is re-entrancy handled when all variables have a fixed address? The linker also knows which libaray routines are called within the ISR which are also used by the application. It adds a module of code to save the variables from these dual-use routines somewhere in RAM, then proceeds to use the same addresses for the other. This provides "true" re-entrancy. Or, it could have a second copy of the library routine which uses different RAM addresses. This provides "functional" re-entrancy. In an ideal world, the programmer should be able to select which method to use each shared function. Personally, I like to keep the ISR to a minimum and set flags telling the application level what to do with the data collected during the ISR. Andy