dillon@CORY.BERKELEY.EDU (Matt Dillon) (11/01/87)
Urk. I looked at the ROM code again. SendIO()/DoIO() basically do this: SendIO(req) struct IoStdReq *req; { req->io_Flags = 0; BeginIO(req); } DoIO(req) struct IoStdReq *req; { req->io_Flags = IOF_QUICK; BeginIO(req); if ((req->io_Flags & IOF_QUICK) == 0) WaitIO(req); return(req->io_Error); } So if you need the upper four Flag bits preserved, simply: req->io_Flags &= ~0x0F; in SendIO() and req->io_Flags = (req->io_Flags & ~0x0F) | 1; in DoIO() That is, in your own custom SendIO/DoIO() routines. Frankly, I think this is a bug in the OS... the EXEC library Send/DoIO() routines should have done this. -Matt