GUS Programmer's Digest Fri Jun 25 00:07 Volume 2: Issue 19 Today's Topics: DMA Buffers in PC RAM GUS' Timer Precision GUS Programmer's Digest V2 #18 (2 msgs) Standard Info: - Meta-info about the GUS can be found at the end of the Digest. - Before you ask a question, please READ THE FAQ. ---------------------------------------------------------------------- Date: Thu, 24 Jun 93 15:33:13 EDT From: davidm@opl.com Subject: DMA Buffers in PC RAM Message-ID: I know, my third message in one day. Pardon my bandwidth overutilization :-) I know that if you call UltraStartRecord with the AutoInit flag set, it will return an error if the autoinit buffer crosses a 64K boundry. It is my understanding that the PC DMA controller generates only the 16 low order bits of an address while the 4 high order bits are stored in a "page register" (or something like that). This indicates to me that the entire DMA buffer (regardless of its size) must reside within a single 64K page of memory. This leads me to the following questions: 1) Is it true that the entire DMA buffer (regardless of its size) must reside within a single 64K page of memory? 2) If so, does anyone know how I can allocate memory that will be garunteed to all be within a single 64K page of memory? Regarding question two, I know that if I allocate a block of memory that is twice the size of my desired buffer (assuming that my desired buffer size is less than 32768), then a block will exist somewhere within that oversized block that will reside in a single 64K page. Is there a cleaner way? I looked in the FAQ of comp.os.msdos.programmer and didn't see anything about this in there. Thanks for your help, Dave David MacMahon Systems Administrator davidm@opl.com ------------------------------ Date: Thu, 24 Jun 93 12:05:28 EDT From: davidm@opl.com Subject: GUS' Timer Precision Message-ID: I have a question about the GUS' timers. The SDK says that the ticks of timer 1 are 80us the ticks of timer 2 are 320us. Are these exact values? I assume that there is an oscillator on the GUS whose frequency is divided down to give these times, but do the frequency and the divisor work out to exactly 80us for timer 1? I also assume that the freq. of timer 2 exactly equals 1/4 the freq. of timer 1. Assuming my first assumption is correct, does anyone know the frequency of the oscillator and/or the value by which it is divided? Thanks for any input, Dave David MacMahon Systems Administrator davidm@opl.com ------------------------------ Date: Thu, 24 Jun 93 09:11:22 EDT From: dulimart@cps.msu.edu (Hansye S. Dulimarta) Subject: GUS Programmer's Digest V2 #18 Message-ID: <9306241311.AA21345@pixel.cps.msu.edu> Date: Wed, 23 Jun 93 15:11:12 EDT From: dulimart@cps.msu.edu (Hansye S. Dulimarta) Subject: Gravis/FORTE - Please read this!!! Message-ID: <9306231911.AA18594@pixel.cps.msu.edu> I'm reading today's digest (Thu, 24 Jun 1993) and found out that I have put a wrong subject in my posting. When the above posting was sent, I was reading Dave MacMahon's posting (david@opl.com) and used "reply" from my emacs' rmail to save my time. Please apologize if the previous subject was inappropriate. Happy GUS hacking, Hans. ------------------------------ Date: Thu, 24 Jun 93 11:50:55 EDT From: davidm@opl.com Subject: Re: GUS Programmer's Digest V2 #18 Message-ID: In GUS Programmer's Digest V2 #18, dulimart@cps.msu.edu (Hansye S. Dulimarta) wrote: > This is what I'm doing: Using the information in the file PATCH.H in the > SDK documentation, I was able to write a program that reads a patch file > and parses the data in it. Then, using the function UltraDownload, the > program downloaded the sample waveform to the GUS DRAM, and then > UltraVoiceOn is called. But.....no sound came out of my speaker. Could > anybody tell me what I'm doing wrong here? I have two ideas: 1) Did you call UltraEnableOutput? 2) Did you call UltraSetVolume? If you don't enable the output and give the voice some volume, you won't hear any sound. Hope this helps, Dave David MacMahon Systems Administrator davidm@opl.com ------------------------------ End of GUS Programmer's Digest V2 #19 ************************************* To post to tomorrow's digest: To (un)subscribe or get help: To contact a human (last resort): FTP sites: archive.epas.utoronto.ca pub/pc/ultrasound wuarchive.wustl.edu systems/msdos/ultrasound Hints: - Get the FAQ from the FTP sites or the request server. - Mail to for info about other GUS related mailing lists (UNIX, OS/2, GUS-MIDI, etc.)