unsigned char xdata * data fetch_ptr;
unsigned char xdata * data in_ptr;

part of the ISR
if (RI)
{
 *in_ptr = SBUF;
 in_ptr++;

part of the main
while (in_ptr > fetch_ptr)
{
  my_byte = *fetch_ptr;
  fetch_ptr++;