home *** CD-ROM | disk | FTP | other *** search
- {
- 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.
-