home *** CD-ROM | disk | FTP | other *** search
- /**************************************************************************/
- /* Voici un petit programme d'exemple d'intégration de mes routines */
- /* dans un programme C. */
- /* */
- /* Attention comme la routine de chargement du MOD se charge d'allouer */
- /* elle même la mémoire dont elle a besoin,il ne faut pas que le tas */
- /* occupe toutes la mémoire disponible. (compiler en SMALL). Deplus */
- /* l'orde d'appel des fonction est importants. */
- /* Evidament il faut lier ce programme avec CRYS24.OBJ. */
- /* */
- /* Programmé par Sébastien Granjoux */
- /* Commencé le 30/12/93 */
- /* Modification le 25/10/94 */
-
- #include <dos.h>
-
- /* Les définitions des fonctions de CRYS24.OBJ */
-
- extern "C"
- {
- int far pascal SETMOD(unsigned int frequence,char device,int port,char irq);
- int far pascal FLOADMOD(char far *filename);
- int far pascal MLOADMOD(char far *adress);
- void far pascal DETECTSND(unsigned char far *device,unsigned int far *port,unsigned char far *irq,unsigned char far *dma);
- void far pascal UNLOADMOD();
- void far pascal STARTMOD();
- void far pascal MAKEMOD();
- void far pascal STOPMOD();
- };
-
- void main()
- {
- char *Fichier="c:patega.mod"; /* Nom du fichier à jouer */
- unsigned int port=0;
- unsigned char irq=0;
- unsigned char dma=0;
- unsigned char dev=5;
-
- DETECTSND(&dev,&port,&irq,&dma); /* Cherche la meilleur cartes sonore
- dans les variables d'environnements */
-
- FLOADMOD(Fichier); /* Charge le fichier MOD */
-
- SETMOD(180,dev,port,irq); /* Prépare le MOD à 18kHz avec la carte
- son trouvé */
-
- STARTMOD(); /* Commence la musique */
-
- /* A partir de ce moment il ne peut y avoir que les interruptions clavier
- ou horloge, vous devez donc démasquer les interruptions qui pourraient
- vous être utile comme celle du disque dur ou de la souris. Toutefois si
- vous tenez à avoir une musique de la meilleur qualité possible évitez
- de le faire et n'utilisez que des routines simples. */
-
- do
- {
- MAKEMOD(); /* Calcul 1/50s de musique */
-
- }while(inportb(0x60)>=0x80); /* Beaucoup plus rapide qu'une fonction
- du genre de kbhit() et donc meilleur
- pour la qualité de la musique */
-
- STOPMOD(); /* Arrête la musique et remet le PC dans
- son état initial */
-
- UNLOADMOD(); /* Rend la mémoire utilisé pour charger
- le MOD au DOS */
-
- }
-