Hi, Are there any CCS experts out there? I would basically like to jump directly to the start of a CCS C function (rather then call it). Basically the routine in question never returns (it does a direct jump to another part of the program) and I would like to avoid using a stack location which would be associated with a call. So essentially I would like to do the following void f1() { .... } void f2() { ..... #asm goto f1 #endasm ..... } I know I could do this by making use of the CCS label_address and goto_address (or even setjmp, longjmp). But I would rather not have the RAM and ROM overhead associated with these calls. I could also sort of do this using #inline except I want to jump to the same function from many locations in the code and only want one copy of f1(). I could also place f1 at a fixed address and simply goto that but again I would rather not do it that way... Other things I have tried (and which don't work) 1. Declaring a label inside the #asm/#endasm in f1 and using that as the destination of the goto. 2. Adding a C style label (e.g. label: )at the start of f1 and using that as the destination (of both and asm goto and a C goto from f2) again no luck. 2. Trying to reference the above label as f1.label (which is how it appears in the CCS symbols provided to the debugger) - yes I am willing to try anything! Any help much appreciated...... Andy -- http://www.piclist.com hint: The PICList is archived three different ways. See http://www.piclist.com/#archives for details.