home *** CD-ROM | disk | FTP | other *** search
- {**************************************************************************}
- {* Voici un petit programme d'exemple d'intégration de mes routines *}
- {* dans un programme en pascal. *}
- {* *}
- {* L'ordre d'appel des fonctions est important. *}
- {* Ce programme utilise l'unité pascal CRYSTAL.TPU dont la source est *}
- {* CRYSTAL.PAS *}
- {* *}
- {* Programmé par Sébastien Granjoux *}
- {* Commencé le 06/01/93 *}
- {* Modification le 25/10/94 *}
-
- PROGRAM CRYSEXP;
-
- {$M 4096,0,8192} { Comme mes routines se chargent seules d'allouer la place
- mémoire nécessaire au chargement du MOD, il faut leur
- laisser de la place. }
-
-
- Uses CRYSTAL; { Utilise l'unité }
-
- VAR
- Fichier:STRING;
- Test:INTEGER;
- Device,Irq,Dma:BYTE;
- Dport:WORD;
-
- BEGIN
-
-
- Fichier:='c:patega.mod'+chr(0); { J'utilise la convention du C qui est
- différentes de celle du pascal pour
- la représentation des chaines de
- de caractères. Elles doivent se
- terminer par 0 et commencer au
- premier caractère. }
-
- Dport:=0;
- Irq:=0;
- Dma:=0;
- Device:=5;
-
- DETECTSND(Device,Dport,Irq,Dma); { Cherche la meilleur cartes sonore
- dans les variables d'environnements }
-
- Test:=FLOADMOD(Addr(Fichier[1])); { Charge le MOD. Le nom est passé sous
- la forme d'une chaine C }
-
- Test:=SETMOD(180,Device,Dport,Irq); { Prepare la 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. }
-
- REPEAT
- BEGIN
- MAKEMOD; { Calcule 1/50s de musique }
- END
- UNTIL PORT[$60]<$80; { Beaucoup plus rapide qu'une fonction
- du genre de keypress 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 }
-
- END.
-