home *** CD-ROM | disk | FTP | other *** search
/ Freelog 8 / Freelog008.iso / Prog / CREATTAB.C next >
C/C++ Source or Header  |  2000-02-05  |  2KB  |  85 lines

  1. #include <dos.h>
  2.  
  3. #define LG 24
  4.  
  5. int Xc,Yc;           //Abscisse et ordonnee d'une lettre
  6. unsigned short CTx[256],CTy[256]; //Abscisses et ordonnees precalculees
  7.  
  8. unsigned char far *Video=MK_FP(0xa000,0);
  9.  
  10. void DetCoordLettre(int car);
  11. void CreatTabLettre(void);
  12.  
  13. // Fonction qui associe a un caractere les coordonnees
  14. // de sa representation graphique dans le fichier font.pcx
  15.  
  16. void DetCoordLettre(int car)
  17. {
  18.  
  19. //Traitement des lettres majuscules
  20. //Premiere ligne du fichier font.pcx
  21.   if(car>='A' && car<='J')
  22.   {
  23.     Xc=(car-'A')*(LG+1);
  24.     Yc=0;
  25.   }
  26.  
  27. //Seconde ligne du fichier font.pcx
  28.   else if(car>='K' && car<='T')
  29.   {
  30.     Xc=(car-'K')*(LG+1);
  31.     Yc=25;
  32.   }
  33.  
  34. //Troisieme ligne du fichier font.pcx
  35.   else if(car>='U' && car<='Z')
  36.   {
  37.     Xc=(car-'U')*(LG+1);
  38.     Yc=50;
  39.   }
  40.  
  41. //Traitement des chiffres
  42. //Troisieme ligne du fichier font.pcx
  43.   else if(car>='0' && car<='3')
  44.   {
  45.     Xc=150+(car-'0')*(LG+1);
  46.     Yc=50;
  47.   }
  48.  
  49. //Quatrieme ligne du fichier font.pcx
  50.   else if(car>='4' && car<='9')
  51.   {
  52.     Xc=(car-'4')*(LG+1);
  53.     Yc=75;
  54.   }
  55.  
  56.  
  57. //Traitement d'autres caracteres
  58. //Quatrieme ligne du fichier font.pcx
  59.  
  60.   else
  61.   {
  62.     Yc=75;
  63.     if(car==39) Xc=225;        //Apostrophe
  64.     else if(car==',') Xc=150;  //Virgule
  65.     else if(car=='.') Xc=200;  //Point
  66.     else if(car==' ') Xc=175;  //Espace
  67.   }
  68. }
  69.  
  70. // Fonction qui permet de remplir les tableaux CTx et CTy contenant
  71. // les coordonnees des equivalents graphiques de caracteres dans le
  72. // fichier font.pcx
  73.  
  74. void CreatTabLettre(void)
  75. {
  76.   int i;
  77.  
  78.   for(i=0;i<256;i++)
  79.   {
  80.     DetCoordLettre(i);  //Fixe Xc et Yc
  81.     CTx[i]=Xc;
  82.     CTy[i]=Yc;
  83.   }
  84. }
  85.