home *** CD-ROM | disk | FTP | other *** search
- #include <conio.h>
- #include "vga.h"
-
- #define LG 24
- #define HT 25
-
- extern int CTx[256],CTy[256]; //Abscisses et ordonnees precalculees
- extern unsigned char far *Video; //Pointeur qui pointe sur la memoire video
-
- void DetCoordLettre(int car);
- void CreatTabLettre(void);
-
- unsigned char far Page2[64000]; //Buffer qui va conserver le contenu du fichier font.pcx
- unsigned char far Page1[64000]; //Buffer temporaire
- unsigned char far Pal[768]; //Buffer qui va conserver la palette de couleur utilisee
-
- unsigned char far Texte[]="CECI EST UN SCROLLING TEXTE HORIZONTAL ";
-
- void main(void)
- {
- int car; //Caractere affiche
- int x=0; //Colonne du graphique en cours de traitement
- int num=0, //Numero du caractere en cours de traitement dans Texte
- lg=0; //Longueur du texte
-
- InitVGA(); //Initialisation du mode VGA
- LoadPCX("font",Page2,Pal); //Chargement du fichier font.pcx
- SetAllPal(Pal); //Mise en place de la palette de couleur presente dans le fichier font.pcx
-
- CreatTabLettre(); // Remplissage des tableaux CTx et CTy
-
- while(Texte[lg++]); //Determination du nombre de caractere dans Texte
- lg--;
-
- while(!kbhit()) //Le programme s'arrete si on appuie sur une touche
- {
- car=Texte[num];
- CpyBlk2(2,95,318,HT,0,95,Page1,Page1); //Scrolling de 2 colonnes
- CpyBlk2(CTx[car]+x,CTy[car],2,HT,318,95,Page2,Page1); //On affiche les 2 colonnes suivantes du graphique
-
- VBL; //Cette fonction permet de ralentir ce programme et d'eviter l'affichage de scintillement sur l'ecran
-
- CpyBnd(95,HT,95,Page1,Video);
-
- if((x+=2)>=LG) //On verifie si on a traite toutes les colonnes du graphique
- {
- x=0; //On va traiter la premiere colonne du graphique
- num++; //On s'occupe du caractere suivant
- }
-
- if (num>=lg) num=0;
- }
-
- InitTexte(); //On initialise le mode texte
- }
-