Path: utzoo!mnetor!uunet!husc6!mit-eddie!uw-beaver!tektronix!gvgpsa!gvgspd!mrk From: mrk@gvgspd.UUCP (Michael R. Kesti) Newsgroups: comp.sys.ibm.pc Subject: Re: Neat voice|gag program (REPOST)/How does it work? Message-ID: <373@gvgspd.UUCP> Date: 29 Dec 87 04:16:14 GMT References: <2715@watcgl.waterloo.edu> <1147@titan.camcon.uucp> Reply-To: mrk@gvgspd.UUCP (Michael R. Kesti) Distribution: all Organization: Grass Valley Group, Grass Valley, CA Lines: 34 In article <1147@titan.camcon.uucp> mb@camcon.uucp (Mike Bell) writes: >Clearly I'm going to put the 'scope on the thing over Christmas to >see which one is right. (Or are there any more explanations I should >test for?) I disassembled this out of curiosity, and found the following: Being a .com, code starts at 0x100 and consists of a jump to 0x7633. Data begins at 0x103 and uses all the space until code starts again at 7633. The program sequentially reads each byte in the data space, and sequentially outputs each bit of those bytes to the speaker control port, inserting a small delay between bits. Interestingly, it checks the machine ID byte, and uses two completely separate routines depending on whether the machine is an AT. The only difference between the two are the manner of interbit delay. If its an AT, a null loop is performed, otherwise a series of nulls is used. The program was unitelligible on my V30'd 6300 so I changed the sense of the id byte test and fiddled with the loop counter and was able to get it to sound better, but still not intelligible. The 6300 speaker is not a ordinary speaker, and does not provide as much low pass filtering action as an ordinary speaker does, and the result is a very raspy sound. I think that all of this is adequate proof that pulse width modulation is being used here. The real fun would be encoding the data. Does anyone have any ideas on (cheaply) doing that? -- ============================================================================ Michael Kesti Grass Valley Group, Inc. | "Like one and one don't make two, P.O. Box 1114 Grass Valley, CA 95945 | one and one make one." UUCP: ...!tektronix!gvgpsa!gvgspd!mrk | - The Who, Bargain