Hello,
There are a few reasons why your code will not compile without error.
Firstly, I assume that you have already defined ACK and T100MS as numeric macros? How have you defined the macro ILOP, since this is one of the problem areas? I also notice that you have used ILOP as a label name, as well as a macro name.
You are assuming that the macro SCIS1_RDRF represents a bit number. In fact, the macro identifies a component of a bit field, and is normally used in the context of ... if (SCIS1_RDRF) { } You will presumably need to define your own macro to represent the bit number for the RDRF bit.
When a C function is called via inline assembly, the empty parameter braces should not be included. Additionally, you should call using JSR, rather than BSR, because you do not know the precise location of the C function code. If the C function requires any parameters, or returns a value, the assembly code would need to take into account the C calling convention for the MCU type. If this is the case, it is sometimes less error prone to make use of global variables for the passing of values.
I assume that your inline code forms part of a separate function? It must not be placed directly within main() because of the presence of the RTS instruction (and main() must never exit). Actually, the final RTS is not required because the compiler will automatically provide the RTS when it exits the function.
Finally, I would tend to convert all binary numbers to hexadecimal format as it is possible that some compilers will not recognise the binary format. It is my understanding that ANSI C does not include binary numbers - maybe others can clarify this aspect.
Regards,
Mac