
--------8<----------------------------------
#pragma callee_saves DspSelect      /* be careful with this pragma */

extern void DspSelect();

xdata unsigned char at 0x5000 ADspTab ;
#define EndDspTab 16

void foo() {
  unsigned char DspTabCount = 0;
  unsigned char xdata * DspTabPoint;

  DspTabPoint = &ADspTab;
  do {
    if (*DspTabPoint == 0)
      break;
    DspTabPoint++;
    DspSelect();
  } while ( ++DspTabCount != EndDspTab);
  // return DspTabCount;
}
-------->8----------------------------------
