Better, but it still needs a way to limit it to the "bounds" of the array. Or, it will overwrite all your other variables. Maybe like this.
Code:
'---[RX - inmterrupt handler]----------------------------------------------
Int_RX:
PORTA.1 = 1 'to check RX int has come
hserin [cadena(i)]
i = i +1
if i >= 20 then i = 0
@ INT_RETURN
Of course this still has the problems of not knowing how many bytes were received, if the buffer overflows, if USART errored etc.
You might want to take a look at this program from Joe S.
LCD serial backpacks
http://www.picbasic.co.uk/forum/showthread.php?p=28336
It has a complete "Circular Buffer" using DT_INTS.
<br>
Bookmarks