Hello Edgs,

Doing a VERY quick lookthrough on your code, I see one major problem (unless I am missing something)

You are calling a routine thorugh a interupt, then using disable. (AS the code below).

then you are looping out of this disable interupt without calling the enable again. Is that what you want??? For a guess, it will only work 1 time (first time) and fail all other times.

Here is the code... Notice the Disable is not commented out, so that tells me the interupt is negated. then the 7th line down you branch out of it to "Display", and from Display you go to "Loop"

Are you sure you don't want to enable it again sometime?

E>>
Disable ' Don't check for interrupts in this section

getbuf: ' move the next character in buffer to bufchar
index_out = (index_out + 1) ' Increment index_out pointer (0 to 63)
If index_out > (buffer_size - 1) Then index_out = 0 ' Reset pointer if outside of buffer
bufchar1=buffer[index_out]
goto display
calle:
hserout["AT+CMFG=",34,"67741418",34,bufchar1]
goto display
<<