[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]