Subject: Read before: Priority and speed (Long...)
To: None <port-i386@netbsd.org>
From: Grant Stockly <gussie@stockly.com>
List: port-i386
Date: 06/17/1999 00:34:06
Sorry, I forgot to explain the IO routine... (look at the comments)

Grant

do {
	while((inb(STATUS) & BUSYo) == BUSYo); /* Wait for BUSY go HIGH */
	outb(DATA, mpeg_storage[i]); /* Apply current byte to DATA port */
	outb(CONTROL, (inb(CONTROL) | STROBEo)); /* Set STROBE */
	while((inb(STATUS) & BUSYo) != BUSYo); /* Wait for BUSY go LOW */
	outb(CONTROL, (inb(CONTROL) & STROBEa)); /* Clear STROBE */
	i++; /* Increase pointer to next byte */
} while( i != curread ) ; /* write all bytes fread returned */

And yes, I'm aware that BUSY and STROBE are hardware inverted.

The UNIX box looks promising, every few seconds it gives a burst of sound.
Otherwise its sending the bytes not with the hardware.

Grant