SBP
inb(SBP(chip, DATA_AVAIL));
inb(SBP(chip, DATA_AVAIL_16));
while ((inb(SBP(chip, STATUS)) & 0x80) != 0 && --timeout > 0)
outb(byte, SBP(chip, WRITE));
inb(SBP(chip, DATA_AVAIL)); /* ack interrupt */
if (inb(SBP(chip, DATA_AVAIL)) & 0x80) {
byte = inb(SBP(chip, READ));
if ((inb(SBP(chip, STATUS)) & 0x80) == 0) {
outb(val, SBP(chip, COMMAND));
if (inb(SBP(chip, DATA_AVAIL)) & 0x80) {
val = inb(SBP(chip, READ));
outb(1, SBP(chip, RESET));
outb(0, SBP(chip, RESET));
if (inb(SBP(chip, DATA_AVAIL)) & 0x80) {
if (inb(SBP(chip, READ)) == 0xaa)
outb(reg, SBP(chip, MIXER_ADDR));
outb(data, SBP(chip, MIXER_DATA));
outb(reg, SBP(chip, MIXER_ADDR));
result = inb(SBP(chip, MIXER_DATA));