home *** CD-ROM | disk | FTP | other *** search
/ Sound Sensations! / sound_sensations.iso / programr / modobj-1 / tpmod.pas < prev   
Pascal/Delphi Source File  |  1992-04-13  |  2KB  |  51 lines

  1. PROGRAM tpmod;
  2. USES crt;
  3.  
  4. {$M $4000,0,0}             {16k stack, no heap - adjust as needed }
  5. {$L MOD-obj.OBJ}             { Link in Object file }
  6. {$F+}                 { force calls to be 'far'}
  7. procedure modvolume(v1,v2,v3,v4:integer); external ; {Can do while playing}
  8. procedure moddevice(var device:integer); external ;
  9. procedure modsetup(var status:integer;device,mixspeed,pro,loop:integer;var str:string); external ;
  10. procedure modstop; external ;
  11. procedure modinit; external;
  12. {$F-}
  13.  
  14. var
  15.  dev,mix,stat,pro,loop : integer;
  16.  md : string;
  17.  ch: char;
  18.  
  19. begin
  20.         modinit;
  21.     moddevice ( dev ); { Returns device number in DEV or 255 if 'no sound' }
  22.         if (dev =255) then halt(1);         { Exit - no sound }
  23.         if (dev = 0 ) then
  24.            begin
  25.            writeln;
  26.            writeln('* The PC Speaker is not very good at playing modules');
  27.            writeln('* Why not build a simple resistor D/A converter as');
  28.            writeln('* detailed in HARDWARE.DOC - its really great quality');
  29.            writeln('* and only costs a couple of pounds/dollars');
  30.            writeln;
  31.            end;
  32.            write('Enter module filename             : ');
  33.            readln(md);
  34.         mix := 10000;   {use 10000 normally }
  35.         pro := 0; {Leave at 0}
  36.         loop :=4; {4 means mod will play forever}
  37.         modvolume (255,255,255,255);    { Full volume }
  38.     modsetup ( stat, dev, mix, pro, loop, md );
  39.            case stat of
  40.            1: writeln('Not a mod');
  41.            2: writeln('Already playing');
  42.            4: writeln('Out of memory');
  43.            else
  44.            begin
  45.               writeln('Your program does something here! Press a key');
  46.               ch := readkey;
  47.               modstop;
  48.            end;
  49.         end;
  50. end.
  51.