

GUS Programmer's Digest     Thu, 18 Nov 93  4:46         Volume 6: Issue  10  

Today's Topics:

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: Wed, 17 Nov 1993 13:41:59 -0500
From: GUYLAIN LAVOIE <lavog00@DMI.USherb.CA>

Hi all...
         After having waited too long to get my OS/2 gus driver,
I decided to program one myself.  At this time, it is quite fun.
I can peek and poke to the card... Set up voices... Until now,
all worked fine, but now I'm in deep trouble, I really don't know
how to program the dma transferts (on the motherboard and card)...
I checked the sdk source but it is very hard to read. 

This is what I understand now: 
DMA transfert cannot cross a 64k boundary (motherboard)
so I have to split my transfert in <= 64k individual transfert.  I
understand how to translate segment:offset to physical memory, but
in os/2 it will be a little different.  16 bits transferts must
not cross a 256k (card dram) boundary.  I also know that there
are 8 and 16 bits dma channels.  

Ok now what I don't understand! :)
How do I tell the card the dma channel that the dma will use?
What is this thing about dma transfert speed?
How do I tell the dma to pitch the buffer to the card?
Must I trap the dma controller irq (if one exist) or trap the
card irq?  And in witch case?
There is 2 dma controlers that exist, one 8 bits, the other 16 bits.
Are these in my computer at the same time?  If so... does 8 bits channels
goes through the 8 bits controler and 16 bits channels through 16 bits one?

All I want to do is dmadac transferts for recording and
dmadram read write.  At this time, I don't use the dma, I poke
at the board memory one byte at the time...... aaaaaaaaaahhhhrg
it is too long...

My goal is to create a physical driver that will do all the low level
work with the card.... And over that, I will put a dll that will do
the memory and voices managements and will provide almost all the
calls contains in the gus sdk so that you mod coders could port your
best mod players in native mode os/2 :)

And one last thing... I would like to know if my approch to simulate
irqs for an application is correct.  An application that wants to
receive interrupts create a thread with the max priority and that thread
wait on a semaphore that the driver will clear when an irq is generated.
The only problem so far is that it may be 0 to x milliseconds  between
the time the driver  cleared the semaphore and the time the thread is free
to pass over the wait.  In os/2, by default the max time than a thread
can have the control is 3 milliseconds. So normally the thread will
wait between 0 and 3 milliseconds.  Does someone think that this
time is too long to make the driver useful for mod and general card use?

Anybody has suggestion???

Ok I will stop here... Maybe I asked too mush for the first time!!! :)


Thank
Guylain

===================================================================
Guylain Lavoie                      Internet: LAVOG00@DMI.USherb.CA
School: 1381 Leonard, Sherbrooke, QC Canada          (819) 829-1030
Home: 359 De La Montagne, Rouyn-Noranda, QC  J9X-5J9 (819) 764-6055
 ------------------------------------------------------------------
IBM OS/2 PowerPC IBM OS/2 PowerPC IBM OS/2 PowerPC IBM OS/2 PowerPC
===================================================================

------------------------------

Date: Thu, 18 Nov 1993 09:56:51 GMT
From: francois leroy <leroy_r@epita.fr>

I have started to write a modplayer few days ago ...
But I haven t got any info on coding the effects .
Has someone got dox or sources ?

Thanks,
Bye.

ChAiRmAn Of----------------PAQUET RuLeS------------------OfFiCiAl FuCkEr Of BDC
         _/_/_/_/  _/  _/_/_/_/  _/_/_/_/  _/_/_/_/
        _/    _/  _/  _/    _/  _/    _/  _/        _/_/_/  _/_/_/  _/_/_/    
       _/_/_/_/  _/  _/_/_/_/  _/    _/  _/_/_/_/  _/  _/  _/_/      _/ 
      _/        _/  _/        _/    _/        _/  _/  _/  _/        _/
     _/        _/  _/        _/_/_/_/  _/_/_/_/  _/_/_/  _/        _/ 
 FX: The starboard nacelle has sustained a direct impact. We are venting drive
  plasma. JS: Initiating emergency core shutdown. || C'est pour pas gacher...
leroy_r@epita.fr----//\oO/\\------(C) PIPOsoft Corp. 1993  AlL RiGhTs ReSeRvEd.

------------------------------

End of GUS Programmer's Digest V6 #10
*************************************

To post to tomorrow's digest:                    <gus-sdk@dsd.es.com>
To (un)subscribe or get help:            <gus-sdk-request@dsd.es.com>
To contact a human (last resort):          <gus-sdk-owner@dsd.es.com>

FTP sites:           archive.epas.utoronto.ca              /pub/pc/ultrasound
                     wuarchive.wustl.edu            /systems/msdos/ultrasound
                     archive.orst.edu                    /pub/packages/gravis
                     theoris.rz.uni-konstanz.de                /pub/sound/gus
FTP mail server:     mail-server@nike.rz.uni-konstanz.de

Hints:
      - Get the FAQ from the FTP sites or the request server.
      - Mail to <gus-sdk-request@dsd.es.com> for info about other GUS
	related mailing lists (general use, musician's, etc.).



