Need help with multiplexed displays

If anyone is interested I have some new code that will scroll numbers on the display.

byte anodePins[] = {A0,A1,2,3,4,5};
int segmentPins[] = {6,7,8,9,10,11,12,13};

int digits[10][8] = {
                  {6,7,8,9,12,13,13,13},
                 {6,7,6,7,6,7,6,7},
                 {6,8,9,10,11,12,12,12},
                 {6,7,9,10,11,12,12,12},
                 {6,7,10,11,13,13,13,13},
                 {7,9,10,11,12,13,13,13},
                 {7,8,9,10,11,12,13,13},
                 {6,7,6,7,6,7,6,12},
                 {6,7,8,9,10,11,12,13},
                 {6,7,7,9,10,11,12,13}
                };
                
byte counter[6] = {42,42,42,42,42,42};               

byte scroll[30] = {1,2,3,4,5,42,42,42,5,4,3,2,1,42,42,1,2,3,4,7,42,42,42,42,4,2,6,2,5,9};

int hold = 1;

int scrollPos = 0;

int anodePosition = 0;
int segmentPosition = 5;

void setup() 
{
  for(int a = 0; a < 6; a++)
  {
    pinMode(anodePins[a], OUTPUT);
     anodesOff();
  }
  
  for(int s = 0; s < 8; s++)
  {
    pinMode(segmentPins[s], OUTPUT);
    segmentsOff();
  }  
}

void loop() 
{
 for(int i = 0; i < 150; i++)
  updateDisplay();
  
  shiftArray();
}

void anodesOff()
{
  for(int a = 0; a < 6; a++)
  {
     digitalWrite(anodePins[a], LOW);
  }
}

void segmentsOff()
{
  for(int s = 0; s < 8; s++)
  {
    digitalWrite(segmentPins[s], LOW);
  }
}

void updateDisplay()
{
  if(anodePosition == 6 && segmentPosition == -1 )
  {
    anodePosition = 0;
    segmentPosition = 5;
  }
 else if(counter[segmentPosition] == 42)
 {
       digitalWrite(anodePins[anodePosition], LOW);
       for(int p = 0; p < 8; p++)
     {
       digitalWrite(digits[counter[segmentPosition]][p], LOW);
     }
     delay(hold);
      anodesOff();
       segmentsOff();
       
     anodePosition += 1;
     segmentPosition -= 1;
 }
 else
 {    
    digitalWrite(anodePins[anodePosition], HIGH);
 
     for(int p = 0; p < 8; p++)
     {
       digitalWrite(digits[counter[segmentPosition]][p], HIGH);
     }
     delay(hold);
      anodesOff();
       segmentsOff();
       
     anodePosition += 1;
     segmentPosition -= 1;
     }
}
  
void shiftArray()
{

  for(int i = 0; i < 5; i++)
  {
    counter[i] = counter[i+1];
  }
  
  counter[5] = scroll[scrollPos];
  ++scrollPos;
  if (scrollPos >= 30)
  {
    scrollPos = 0;
  }
}