Software

Code Warrior Code:

```
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */

//CONSTANTS
#define CLOCK 0b100
#define RESET 0b000
#define CLEAR 0b00000000

//Going through each row
unsigned int SegPat[7] = {5, 1, 6, 2, 4, 0};

//The letter A

 int x,i;
 int	A[6][24] = { { 0, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	B[6][24] = { { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 0, 0 } };
 int	C[6][24] = { { 0, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0 } };
 int	D[6][24] = { { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 0, 0 } };
 int	E[6][24] = { { 1, 1, 1, 1, 1, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 0 } };
 int	F[6][24] = { { 1, 1, 1, 1, 1, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 } };
 int	G[6][24] = { { 0, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 1, 1, 0 }, { 0, 1, 1, 1, 0, 0 } };
 int	H[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	I[6][24] = { { 1, 1, 1, 1, 1, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 1, 1, 1, 1, 1, 0 } };
 int	J[6][24] = { { 0, 1, 1, 1, 1, 0 }, { 0, 0, 0, 1, 0, 0 }, { 0, 0, 0, 1, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 0, 1, 1, 0, 0, 0 } };
 int	K[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 1, 1, 0, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	L[6][24] = { { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 0 } };
 int	M[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 1, 0, 1, 1, 0 }, { 1, 0, 1, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	N[6][24] = { { 1, 1, 0, 0, 1, 0 }, { 1, 1, 0, 0, 1, 0 }, { 1, 0, 1, 0, 1, 0 }, { 1, 0, 1, 0, 1, 0 }, { 1, 0, 0, 1, 1, 0 }, { 1, 0, 0, 1, 1, 0 } };
 int	O[6][24] = { { 0, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0 } };
 int	P[6][24] = { { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 } };
 int	Q[6][24] = { { 0, 1, 1, 0, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 1, 0, 0, 1, 0, 0 }, { 0, 1, 1, 1, 1, 0 } };
 int	R[6][24] = { { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 1, 1, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	S[6][24] = { { 0, 1, 1, 1, 1, 0 }, { 1, 0, 0, 0, 0, 0 }, { 0, 1, 1, 1, 0, 0 }, { 0, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0 } };
 int	T[6][24] = { { 1, 1, 1, 1, 1, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 } };
 int	U[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 0, 1, 1, 1, 0, 0 } };
 int	V[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 0, 1, 0, 1, 0, 0 }, { 0, 0, 1, 0, 0, 0 } };
 int	W[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 0, 0, 1, 0 }, { 1, 0, 1, 0, 1, 0 }, { 1, 1, 0, 1, 1, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	X[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 0, 1, 0, 1, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 1, 0, 1, 0, 0 }, { 0, 1, 0, 1, 0, 0 }, { 1, 0, 0, 0, 1, 0 } };
 int	Y[6][24] = { { 1, 0, 0, 0, 1, 0 }, { 0, 1, 0, 1, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 }, { 0, 0, 1, 0, 0, 0 } };
 int	Z[6][24] = { { 1, 1, 1, 1, 1, 0 }, { 0, 0, 0, 0, 1, 0 }, { 0, 0, 1, 1, 0, 0 }, { 0, 1, 1, 0, 0, 0 }, { 1, 0, 0, 0, 0, 0 }, { 1, 1, 1, 1, 1, 0 } };

 int	HELLO[6][48] = {  { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
                       { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
                      { 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
                      { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
                      { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, },
                      { 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, } };

 void delay(long);

 void main(void)
 {
    DDRA = 0b00000111; // configure Port A for  switching rows
   DDRE = 0b11111111; // configure Port E for clock
   DDRB = 0b00000001; //Configure Port B for serial

   do
   {
     int b;//doesnt leave row
    int k;//scroll direction

    for(k=0; k<36; k++)
    {

       for(i=0;i<6;i++)
      {

         for(x=36;x>0;x--)
        {      //shift through entire row

          PORTA=SegPat[i];
          b=x+k;
          if (b>35)
          {          //gets rid of junk when k>x
            b=b-36 ;
          }

           PORTB=HELLO[i][b];          //display choose letter

           PORTE=CLOCK;            //shift
          PORTE=RESET;

        }
         delay(800);
      }
     }
   }while(1);

   	EnableInterrupts;

  for(;;)
   {
     _FEED_COP(); /* feeds the dog */
  } /* loop forever */
  /* please make sure that you never leave main */
}

void delay(long s)
{
  long d;
   for(d = 0; d<s; d++);
}

```