"just plain for() loop and if() conditional checking..right?"
Pretty much.
//going up:
for (group = 0; group <7; group = group+1){ // first 7 rows
for (byte led 1; led != 0; led = led<<1){
digitalWrite (SS,LOW);
SPI.transfer (registerAddress[group]); // register to write to
SPI.transfer (ledIn[led]); // and value
digitalWrite (SS,HIGH);
delay(pause);
}
}
group = 7; // 8th row
for (byte led = walking 1 as above){ 0000001 to 00001000, 4 LEDs only
digitalWrite (SS,LOW);
SPI.transfer (registerAddress[group]); // register to write to
SPI.transfer (ledIn[led]); // and value
digitalWrite (SS,HIGH);
delay(pause);
}
// now backwards, starting with 8th row
for (byte led = B00001000; led = 0; led=led>>1){ // walk the other way until clear
digitalWrite (SS,LOW);
SPI.transfer (registerAddress[group]); // register to write to
SPI.transfer (ledIn[led]); // and value
digitalWrite (SS,HIGH);
delay(pause);
}
for (group = 6; group = 0; group = group -1){
for (byte led = B10000000; led = 0; led=led>>1){ // walk the other way until clear
digitalWrite (SS,LOW);
SPI.transfer (registerAddress[group]); // register to write to
SPI.transfer (ledIn[led]); // and value
digitalWrite (SS,HIGH);
delay(pause);
}
}