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()).