[comp.sys.amiga] Using BeginIO

dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/01/87)

	Those of you using BeginIO() instead of SendIO()/DoIO() should note
that BeginIO() is used for both syncronous and asyncronous io operations, and
some setup of the io_Flags field in the request is required before issuing
the BeginIO().  

	If you want to do the request asyncronously (have it returned to the
reply port), then clear the lower 4 bits of the io_Flags field in the request
before issuing the BeginIO().  Syncronous (DoIO() like) requests require quite
a bit more work if you want to do it with BeginIO() (I haven't traced the ROM
code completely for DoIO() so I can't tell you what you'd have to do at the
moment).

	This is with respect to those people who are using the AUDIO device.
Mike Meyer reminded me that the AUDIO device requires certain bits in the 
io_Flags field to be set up (the upper 4 bits), meaning that you can't use
SendIO()/DoIO() for many of the commands.  My guess is that *many* people are
using BeginIO() incorrectly due to lack of documentation.

					-Matt

Side note:	QUICK io means SYNCRONOUS (DoIO())... so clearing the lower 
four bits turns OFF quick IO, which means ASYNCRONOUS (SendIO()).