   arduboy.clear();
   printText("HI SCORES", 8, 1, 2);
 
-  for (byte i = 0; i < 4; i++) {
+  for (byte i = 0; i < NUM_HIGH_SCORES; i++) {
     strncpy(hiInitials, highScoreTable + ((9 * i) * sizeof(char)), 3);
     hiInitials[3] = '\0';
     strncpy(hiScore, highScoreTable + (((9 * i) + 3) * sizeof(char)), 6);

  // Store the new high score, newHiPos == 0 is highest score
  sprintf(textBuf, "%c%c%c%06d", currInitials[0], currInitials[1], currInitials[2], score);

  if (newHiPos < 3) {
    // shuffle existing results around
    for (currPos = 26; currPos > (9 * newHiPos); currPos--) {
      highScoreTable[currPos + 9] = highScoreTable[currPos];
    }

byte isNewHighScore() {
  char hiScore[7];
  hiScore[6] = '\0';
  for (byte i = 0; i < NUM_HIGH_SCORES; i++) {
    strncpy(hiScore, highScoreTable + ((9 * i) + 3), 6);
    if (score > strtol(hiScore, NULL, 10)) {
       return i;
