[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]

    {
        This is a Program to export a VOC or other Raw Sound File to a Parallel
    port DAC.. (only For LPT1 now, but i think you can make it work on LPT2 by
    changing the 'PORT[$0378]' to 'PORT[$0388]'...

     I know, This is a Real mess For figuring it out... I originally had no
    intention of posting it, but I believe in free access to info, so here it is!
    If you have any questions about it, just ask... and if you figure out where
    that bug is (you'll know what I mean, it only plays PART of the VOC) I'd
    appreciate input.
    }

    {This Program Assumes you have a DAC on LPT1}
    {$M 65520,0,300000}          {only use memory that is needed}
    Program Voc_Play;
    Uses
      Crt;

    Procedure Wait(N : Word);        {Very Crude wait routine}
    Var
      counter : Word;
    begin
      For Counter:= 1 to N do;
    end;

    Type Ra = Array[0..0] of Byte;

    Var
      I2   : ^Ra;
      spd  : Integer;
      res  : Word;
      siz  : LongInt;
      B    : Word;
      s    : String;
      f1   : File of Byte;
      F    : File;

    begin
      Write('Enter Voc Filename: ');
      readln(S);
                                 {Get Size of File}
      Assign(f1,s);
      Reset(f1);
      spd:=30;                   {this is the play speed}
      siz := FileSize(f1);
      close(f1);
                                  {Load up Voc File}
      Assign(f,s);
      Reset(f);
      getmem(I2,siz);               {Allocate Memory For VOC File}
      BlockRead(f,I2^,siz,res);     {Load VOC into Memory)
      Writeln('FileSize = ',siz);   {Testing Point, not needed}

      Repeat                      {This is the actual Play routine}      begin
        For b:=0 to siz do
        begin
          Wait(spd);            {Wait a bit}
          Port[$0378]:=I2^[b];  {Put Byte to DAC}
        end;
      end Until KeyPressed;

    end.

[Back to SOUND SWAG index] [Back to Main SWAG index] [Original]