home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Freelog 8
/
Freelog008.iso
/
Prog
/
CREATTAB.C
next >
Wrap
C/C++ Source or Header
|
2000-02-05
|
2KB
|
85 lines
#include <dos.h>
#define LG 24
int Xc,Yc; //Abscisse et ordonnee d'une lettre
unsigned short CTx[256],CTy[256]; //Abscisses et ordonnees precalculees
unsigned char far *Video=MK_FP(0xa000,0);
void DetCoordLettre(int car);
void CreatTabLettre(void);
// Fonction qui associe a un caractere les coordonnees
// de sa representation graphique dans le fichier font.pcx
void DetCoordLettre(int car)
{
//Traitement des lettres majuscules
//Premiere ligne du fichier font.pcx
if(car>='A' && car<='J')
{
Xc=(car-'A')*(LG+1);
Yc=0;
}
//Seconde ligne du fichier font.pcx
else if(car>='K' && car<='T')
{
Xc=(car-'K')*(LG+1);
Yc=25;
}
//Troisieme ligne du fichier font.pcx
else if(car>='U' && car<='Z')
{
Xc=(car-'U')*(LG+1);
Yc=50;
}
//Traitement des chiffres
//Troisieme ligne du fichier font.pcx
else if(car>='0' && car<='3')
{
Xc=150+(car-'0')*(LG+1);
Yc=50;
}
//Quatrieme ligne du fichier font.pcx
else if(car>='4' && car<='9')
{
Xc=(car-'4')*(LG+1);
Yc=75;
}
//Traitement d'autres caracteres
//Quatrieme ligne du fichier font.pcx
else
{
Yc=75;
if(car==39) Xc=225; //Apostrophe
else if(car==',') Xc=150; //Virgule
else if(car=='.') Xc=200; //Point
else if(car==' ') Xc=175; //Espace
}
}
// Fonction qui permet de remplir les tableaux CTx et CTy contenant
// les coordonnees des equivalents graphiques de caracteres dans le
// fichier font.pcx
void CreatTabLettre(void)
{
int i;
for(i=0;i<256;i++)
{
DetCoordLettre(i); //Fixe Xc et Yc
CTx[i]=Xc;
CTy[i]=Yc;
}
}