home *** CD-ROM | disk | FTP | other *** search
/ Groovy Bytes: Behind the Moon / groovybytes.iso / GROOVY / SND_TOOL / CRYS250.ZIP / CRYSEXP.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1994-10-23  |  2.7 KB  |  75 lines

  1. {**************************************************************************}
  2. {*   Voici un petit programme d'exemple d'intégration de mes routines     *}
  3. {*   dans un programme en pascal.                                         *}
  4. {*                                            *}
  5. {*   L'ordre d'appel des fonctions est important.                         *}
  6. {*   Ce programme utilise l'unité pascal CRYSTAL.TPU dont la source est   *}
  7. {*   CRYSTAL.PAS                              *}
  8. {*                                      *}
  9. {* Programmé par Sébastien Granjoux                                       *}
  10. {* Commencé le 06/01/93                                                   *}
  11. {* Modification le 25/10/94                          *}
  12.  
  13. PROGRAM CRYSEXP;
  14.  
  15. {$M 4096,0,8192} { Comme mes routines se chargent seules d'allouer la place
  16.            mémoire nécessaire au chargement du MOD, il faut leur
  17.            laisser de la place.                                     }
  18.  
  19.  
  20. Uses CRYSTAL;    { Utilise l'unité                                          }
  21.  
  22. VAR
  23.    Fichier:STRING;
  24.    Test:INTEGER;
  25.    Device,Irq,Dma:BYTE;
  26.    Dport:WORD;
  27.  
  28. BEGIN
  29.  
  30.  
  31.    Fichier:='c:patega.mod'+chr(0);  { J'utilise la convention du C qui est
  32.                      différentes de celle du pascal pour
  33.                      la représentation des chaines de
  34.                      de caractères. Elles doivent se
  35.                      terminer par 0 et commencer au
  36.                      premier caractère.                    }
  37.  
  38.   Dport:=0;
  39.   Irq:=0;
  40.   Dma:=0;
  41.   Device:=5;
  42.  
  43.   DETECTSND(Device,Dport,Irq,Dma);    { Cherche la meilleur cartes sonore
  44.                        dans les variables d'environnements  }
  45.  
  46.   Test:=FLOADMOD(Addr(Fichier[1]));   { Charge le MOD. Le nom est passé sous
  47.                        la forme d'une chaine C              }
  48.  
  49.   Test:=SETMOD(180,Device,Dport,Irq); { Prepare la MOD à 18kHz avec la carte
  50.                        son trouvé                           }
  51.  
  52.   STARTMOD;                  { Commence la musique            }
  53.  
  54.   { A partir de ce moment il ne peut y avoir que les interruptions clavier
  55.    ou horloge, vous devez donc démasquer les interruptions qui pourraient
  56.    vous être utile comme celle du disque dur ou de la souris. Toutefois si
  57.    vous tenez à avoir une musique de la meilleur qualité possible évitez
  58.    de le faire et n'utilisez que des routines simples.                    }
  59.  
  60.    REPEAT
  61.    BEGIN
  62.     MAKEMOD;                      { Calcule 1/50s de musique            }
  63.    END
  64.    UNTIL PORT[$60]<$80;               { Beaucoup plus rapide qu'une fonction
  65.                        du genre de keypress et donc meilleur
  66.                        pour la qualité de la musique        }
  67.  
  68.    STOPMOD;                       { Arrête la musique et remet le PC dans
  69.                        son état initial                }
  70.  
  71.    UNLOADMOD;                        { Rend la mémoire utilisé pour charger
  72.                        le MOD au DOS                   }
  73.  
  74. END.
  75.