Advertisement
glokyfull

makesintab for comet

Sep 11th, 2021
3,453
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  
  2. #include<stdio.h>
  3. #include<stdlib.h>
  4. #include<math.h>
  5. const double PI = 3.14159265358979 ;
  6. int toto(int a,int b);
  7. void add_dcb(int octet);
  8. void flush();
  9.     static int hexadigit[16];
  10.     static int iindex=0;
  11.  
  12. int main(){
  13.     int w;
  14.     int ow=0;
  15.     int z;
  16.     int tabsin512[512];
  17.  
  18. //  printf("sin512:\n");
  19.     for (int f=0;f<512;f++)
  20.     {
  21.          w=(sin(f*2*PI/512)*32766);
  22.          tabsin512[f]=w;
  23.     }
  24.  
  25.     int tab2[511];
  26.     for(int f=1;f<512;f++)
  27.     {
  28.         // printf("%d\t",tabsin512[f]-tabsin512[f-1]);
  29.         tab2[f-1]=tabsin512[f]-tabsin512[f-1];
  30.     }
  31.     printf("\n");
  32.     //for (int f=1;f<511;f++)
  33. //  {
  34.         //printf("%d\t",tab2[f]-tab2[f-1]);
  35.     //}
  36.  
  37.  
  38.  
  39. //  printf("\n");
  40.     printf("\ntablecompact512:\n");
  41.     printf("dc.w %d\n",tabsin512[0]);
  42.     printf("dc.w %d\n",tab2[0]);
  43.     for (int f=1;f<511;f+=2)
  44.     {
  45. //  printf(";nibledc %d %d\n",tab2[f]-tab2[f-1],tab2[f+1]-tab2[f]);
  46.     w = toto(tab2[f]-tab2[f-1],tab2[f+1]-tab2[f]);
  47.     //printf("dc.b %d \n",w);
  48.     add_dcb(w);
  49.     }
  50.     flush();
  51.     printf("\t\teven\n");
  52.  
  53.     int tabsin896[896];
  54.     int tab3[895];
  55.     //printf("\nsin896:\n");
  56.         for (int f=0;f<896;f+=8)
  57.     {
  58.         //printf("\tdc.w ");
  59.         for (int g=f;g<f+7;g++)
  60.         { w=(sin(g*2*PI/896)*32766);
  61.           tabsin896[g]=w;
  62.         // printf("%d,",w);
  63.         }
  64.         w=sin((f+7)*2*PI/896)*32766;
  65.         tabsin896[f+7]=w;
  66.         //printf("%d\n",w);
  67.        
  68.     }
  69.  
  70.        
  71.     for(int f=1;f<896;f++)
  72.     {
  73. //       printf("%d\t",tabsin896[f]-tabsin896[f-1]);
  74.         tab3[f-1]=tabsin896[f]-tabsin896[f-1];
  75.     }
  76.     printf("\n");
  77.     for (int f=1;f<895;f++)
  78.     {
  79. //      printf("%d\t",tab3[f]-tab3[f-1]);
  80.     }
  81.     printf("\n");
  82.     printf("\ntablecompact896:\n");
  83.     printf("\tdc.w %d\n",tabsin896[0]);
  84.     printf("\tdc.w %d\n",tab3[0]);
  85.     for (int f=1;f<895;f+=2)
  86.     {
  87. //  printf(";nibledc %d %d\n",tab2[f]-tab2[f-1],tab2[f+1]-tab2[f]);
  88.     w = toto(tab3[f]-tab3[f-1],tab3[f+1]-tab3[f]);
  89. //  printf("\tdc.b %d \n",w);
  90.     add_dcb(w);
  91.     }
  92.     flush();
  93.     printf("\t\teven\n");
  94.    
  95.  
  96.  
  97.  
  98.     int sintab[1540];
  99.     for (int i=0;i<1540;i++)
  100.     {
  101.         sintab[i]=32766*sin(2*PI*i/1540);
  102.     }
  103.     int sintab2[1539];
  104.     for (int f=1;f<1539;f++)
  105.     {
  106.       sintab2[f-1]=sintab[f]-sintab[f-1];
  107.     }
  108.     printf("\n");
  109.     printf("\ntablecompact1540:\n");
  110.     printf("\tdc.w %d\n",sintab[0]);
  111.     printf("\tdc.w %d\n",sintab2[0]);
  112.     for (int f=1;f<1539;f+=2)
  113.     { w = toto(sintab2[f]-sintab2[f-1],sintab2[f+1]-sintab2[f]);
  114.         add_dcb(w);
  115.     }
  116.     flush();
  117.     printf("\t\teven\n");
  118.  
  119. }
  120.  
  121. int toto(int a,int b)
  122. {
  123.     return (a+8)*16+(b+8);
  124. };
  125. void add_dcb(int octet)
  126. {
  127.    
  128.     hexadigit[iindex]=octet;
  129.     iindex++;
  130.     if (iindex==16)
  131.     {
  132.         iindex=0;
  133.         printf("\tdc.b ");
  134.         for (int g=0;g<15;g++)
  135.         {
  136.             printf("%d,",hexadigit[g]);
  137.         }
  138.         printf("%d\n",hexadigit[15]);
  139.     }  
  140. };
  141. void flush()
  142. {
  143.     if (iindex!=0)
  144.     {
  145.         printf("\tdc.b ");
  146.         if (iindex!=1)
  147.         {
  148.          for (int g=0;g<iindex-2;g++)
  149.          {
  150.              printf("%d,",hexadigit[g]);
  151.          }
  152.          printf("%d\n",hexadigit[iindex-1]);
  153.         } else
  154.         {
  155.             printf("%d\n",hexadigit[0]);
  156.         }
  157.     }
  158.     iindex=0;
  159.                          
  160. };
  161.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement