[comp.sys.amiga.tech] Definitions for Bits in IO_Flags field on IOStdReq structure

rickf@pnet02.cts.com (Rick Flower) (04/13/89)

Does ANYONE (perhaps someone at CATS) know what all of the individual bit
positions mean in the IO_Flags field of a IOStdReq structure?? Ive noticed
when using the console port that bits 6 and 7 get set every time that a key is
pressed and then those two bits are cleared after being processed.. Also, bit
5 seems to ALWAYS be set... Perhaps someone could tell me what these bits
stand for or how I could go about finding out..

Thanks in advance..

===============================================================================
                                I Thought So...

UUCP: {ames!elroy, <backbone>}!gryphon!pnet02!rickf
INET: rickf@pnet02.cts.com
===============================================================================

dillon@HERMES.BERKELEY.EDU (Matt Dillon) (04/25/89)

>Does ANYONE (perhaps someone at CATS) know what all of the individual bit
>positions mean in the IO_Flags field of a IOStdReq structure?? Ive noticed
>when using the console port that bits 6 and 7 get set every time that a key is
>pressed and then those two bits are cleared after being processed.. Also, bit
>5 seems to ALWAYS be set... Perhaps someone could tell me what these bits
>stand for or how I could go about finding out..
>
>Thanks in advance..

	All the bits except IOF_QUICK are reserved for the IO device.  Each
device will use these reserved bits in different ways.

	DoIo() and SendIO() preclear all the reserved bits while BeginIO() 
is a direct call to the IO device and does not touch any of the bits.
This is why you have to use BeginIO() with the audio.device, because the
audio.device expects the program to set certain flag bits depending on the
action it wishes to take.

	DoIO(ior) {
	    ior->io_Flags = IOF_QUICK;
	    BeginIO(ior);
	    WaitIO(ior);
	}

	SendIO(ior) {
	    ior->io_Flags = 0;
	    BeginIO(ior);
	    WaitIO(ior);
	}


					-Matt

dillon@HERMES.BERKELEY.EDU (Matt Dillon) (04/25/89)

	Oops, I made a mistake... SendIO() does *not* do a WaitIO()... 
	obviously.

	SendIO(ior)
	{
	    ior->io_Flags = 0;
	    BeginIO(ior)
	}