The quirk of using different CPU and PORT

I wanted to use http://forum.arduino.cc/index.php?topic=171567.0 for my scanner project, and I wanted to make it small so I could deadbug them and fit them inside a LEGO KITT. I have checked a few other Larson scanner examples but on an ATTiny84 they either flickered badly or didn't fade right, I guess it's the limitation of using a smaller CPU half the size of '328p

ATTiny84 used different PORT assigning than '328p and fortunately it was a simple matter of changing all 'D' to 'A' and leaving 'B' I didn't use digital pin 0 or 11 because the 10 LEDs version used up 448 out of max 512 byte RAM.

I am sure there are more efficient code somewhere but as I mentioned, slower CPU doesn't handle software PWM well and other didn't look as good.

//
// PORTAB_larsen2ways modified from 
// http://forum.arduino.cc/index.php?topic=171567.0
// 
// goes both ways: Back AND Forth  :)

// 
//                              1   
//                              0987654321    
const word dimbits[] = { 0b0000000001111000, // frame 1
                         0b0000000001110000,
                         0b0000000001100000, 
                         0b0000000001100000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              098765432                                 
                         0b0000000011110000, // frame 2
                         0b0000000011100000,
                         0b0000000011000000, 
                         0b0000000011000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000000111100000, // frame 3
                         0b0000000111000000,
                         0b0000000110000000, 
                         0b0000000110000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                
                         0b0000001111000000, // frame 4
                         0b0000001110000000,
                         0b0000001100000000, 
                         0b0000001100000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000011110000000, // frame 5
                         0b0000011100000000,
                         0b0000011000000000, 
                         0b0000011000000000, 
                         0b0000010000000000, 
                         0b0000010000000000, 
                         0b0000010000000000, 
                         0b0000010000000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000011100000000, // frame 6
                         0b0000011000000000,
                         0b0000011000000000, 
                         0b0000011000000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000001000000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000011100000000, // frame 7
                         0b0000011100000000,
                         0b0000001100000000, 
                         0b0000001100000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000100000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,

Due to 9000 char limit I had to split my code:

//                              0987654321                                 
                         0b0000011110000000, // frame 8
                         0b0000001110000000,
                         0b0000000110000000, 
                         0b0000000110000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000010000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                             10987654321                                 
                         0b0000001111000000, // frame 9
                         0b0000000111000000,
                         0b0000000011000000, 
                         0b0000000011000000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000001000000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000000111100000, // frame 10
                         0b0000000011100000,
                         0b0000000001100000, 
                         0b0000000001100000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                                 
                         0b0000000011110000, // frame 11
                         0b0000000001110000,
                         0b0000000000110000, 
                         0b0000000000110000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                             
                         0b0000000001111000, // frame 12
                         0b0000000000111000,
                         0b0000000000011000, 
                         0b0000000000011000, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                             
                         0b0000000000111100, // frame 13
                         0b0000000000011100,
                         0b0000000000001100, 
                         0b0000000000001100, 
                         0b0000000000000100, 
                         0b0000000000000100, 
                         0b0000000000000100, 
                         0b0000000000000100, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                             
                         0b0000000000011111, // frame 14
                         0b0000000000001111,
                         0b0000000000000111, 
                         0b0000000000000111, 
                         0b0000000000000011, 
                         0b0000000000000011, 
                         0b0000000000000011, 
                         0b0000000000000011, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000, 
//                              0987654321                             
                         0b0000000000001111, // frame 15
                         0b0000000000000111,
                         0b0000000000000111, 
                         0b0000000000000111, 
                         0b0000000000000111, 
                         0b0000000000000100, 
                         0b0000000000000100, 
                         0b0000000000000100, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000, 
//                              0987654321                             
                         0b0000000000001111, // frame 16
                         0b0000000000001111,
                         0b0000000000001100, 
                         0b0000000000001100, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000001000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                              
                         0b0000000000011111, // frame 17
                         0b0000000000011100,
                         0b0000000000011000, 
                         0b0000000000011000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000010000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
//                              0987654321                              
                         0b0000000000111100, // frame 18
                         0b0000000000111000,
                         0b0000000000110000, 
                         0b0000000000110000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000100000, 
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000,
                         0b0000000000000000};   

unsigned long duration = 0;
unsigned long times_out = 1250;  // frame's time out "speed"
                                 // 500 for way fast on '328p
                                 // 50000 for way slow
                        
int idx;
byte framepointer = 0;

[code]void setup ()
{

  pinMode(1, OUTPUT);
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);
  pinMode(4, OUTPUT);
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);

  
}
void loop ()
{
  for (framepointer = 0; framepointer < 216; framepointer = (framepointer + 12))

  {
    for(duration=0; duration<times_out; duration++)
    // times_out is the number of
    // frame repetitions
    {
      for(idx = framepointer; idx < (framepointer + 12); idx++)
      {
        commitPORTs();
      }
    }
  }
  framepointer = 0;

}

void commitPORTs ()
{
  PORTA = dimbits[idx];
  PORTB = dimbits[idx]/256;
}

No experience with the Tiny. You can place your dimbits in PROGMEM; that will free RAM at the expense of program memory.

Thanks for the tip on PROGMEM, would have to see if it works in the morning. ATTiny84 has: 8KB ISP flash memory, 512-Byte EEPROM, 512-Byte SRAM