// Display 0 to 9999 in loop with dealy
// work done 02-03-24
void setup() {
  #define MAX 10
  

  // put your setup code here, to run once:
  volatile char *dirf,*dirk,*dira,*dirc;
  volatile char *outf,*outk,*outa,*outc;
  volatile long a[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x67};
  volatile long b[]={0xBF,0x86,0xDB,0xCF,0xE6,0xED,0xFD,0x87,0xFF,0xE7};
  volatile long i,j=0,k=0,l=0,m=1,lop1=0,lop2=0,lop3=0;
  dirf=0xFF,dirk=0xFF,dira=0xFF,dirc=0xFF;
  dirf = 0x30; outf = 0x31; 
  dirk = 0x107; outk = 0x108;
  dira = 0x21; outa = 0x22;
  dirc = 0x27; outc = 0x28;

  for(i=0;i<10;i++)//0 to 9
  {
    *outc=a[i];
    delay(MAX);
  }
  //----------10 to 99-----------
  j=1;
  while(lop1<9)
  {
    
  for(i=0;i<10;i++)//10 to 99
  {
  *outc=a[i];
  *outa=a[j];
  delay(MAX);
  }
  j++;
  lop1++;
  }
  //------------100 to 999------------------
  j=0;
  k=1;
  while(lop2<9)
  {
    j=0;
    lop1=0;
  while(lop1<10)
  {
  for(i=0;i<10;i++)
  {
    *outc=a[i];
    *outa=a[j];
    *outk=a[k];
    delay(MAX);
  }
  lop1++;
  j++;
  }
  lop2++;
  k++;
 }
 //---------------------999 to 9999-------------------
 l=1;
 k=0;
 j=0;
 lop1=0;
 lop2=0;
 while(lop3<9)
 {
  k=0;
  lop2=0;
 while(lop2<10)
 {
  j=0;
  lop1=0;
 while(lop1<10)
 {
 for(i=0;i<10;i++)
  {
    *outc=a[i];
    *outa=a[j];
    *outk=a[k];
    *outf=a[l];
    delay(MAX);
  }
  j++;
  lop1++;
 }
 k++;
 lop2++;
 }
 l++;
 lop3++;
 }
  
}
  

  

void loop() {
  // put your main code here, to run repeatedly:

}
mega:SCL
mega:SDA
mega:AREF
mega:GND.1
mega:13
mega:12
mega:11
mega:10
mega:9
mega:8
mega:7
mega:6
mega:5
mega:4
mega:3
mega:2
mega:1
mega:0
mega:14
mega:15
mega:16
mega:17
mega:18
mega:19
mega:20
mega:21
mega:5V.1
mega:5V.2
mega:22
mega:23
mega:24
mega:25
mega:26
mega:27
mega:28
mega:29
mega:30
mega:31
mega:32
mega:33
mega:34
mega:35
mega:36
mega:37
mega:38
mega:39
mega:40
mega:41
mega:42
mega:43
mega:44
mega:45
mega:46
mega:47
mega:48
mega:49
mega:50
mega:51
mega:52
mega:53
mega:GND.4
mega:GND.5
mega:IOREF
mega:RESET
mega:3.3V
mega:5V
mega:GND.2
mega:GND.3
mega:VIN
mega:A0
mega:A1
mega:A2
mega:A3
mega:A4
mega:A5
mega:A6
mega:A7
mega:A8
mega:A9
mega:A10
mega:A11
mega:A12
mega:A13
mega:A14
mega:A15
sevseg1:COM.1
sevseg1:COM.2
sevseg1:A
sevseg1:B
sevseg1:C
sevseg1:D
sevseg1:E
sevseg1:F
sevseg1:G
sevseg1:DP
sevseg2:COM.1
sevseg2:COM.2
sevseg2:A
sevseg2:B
sevseg2:C
sevseg2:D
sevseg2:E
sevseg2:F
sevseg2:G
sevseg2:DP
sevseg3:COM.1
sevseg3:COM.2
sevseg3:A
sevseg3:B
sevseg3:C
sevseg3:D
sevseg3:E
sevseg3:F
sevseg3:G
sevseg3:DP
sevseg4:COM.1
sevseg4:COM.2
sevseg4:A
sevseg4:B
sevseg4:C
sevseg4:D
sevseg4:E
sevseg4:F
sevseg4:G
sevseg4:DP