VIA1
write_via_reg(VIA1, vIER, 0x04);/* turn interrupts off - TO
#define ADB_SET_STATE_IDLE_CUDA() via_reg_or(VIA1, vBufB, (vPB4 | vPB5))
#define ADB_SET_STATE_TIP() via_reg_and(VIA1, vBufB, ~vPB5)
#define ADB_CLR_STATE_TIP() via_reg_or(VIA1, vBufB, vPB5)
#define ADB_TOGGLE_STATE_ACK_CUDA() via_reg_xor(VIA1, vBufB, vPB4)
#define ADB_SET_STATE_ACKOFF_CUDA() via_reg_or(VIA1, vBufB, vPB4)
#define ADB_SET_SR_INPUT() via_reg_and(VIA1, vACR, ~vSR_OUT)
#define ADB_SET_SR_OUTPUT() via_reg_or(VIA1, vACR, vSR_OUT)
#define ADB_SR() read_via_reg(VIA1, vSR)
#define ADB_VIA_INTR_ENABLE() write_via_reg(VIA1, vIER, 0x84)
#define ADB_VIA_INTR_DISABLE() write_via_reg(VIA1, vIER, 0x04)
#define ADB_VIA_CLR_INTR() write_via_reg(VIA1, vIFR, 0x04)
#define ADB_INTR_IS_OFF (vPB3 == (read_via_reg(VIA1, vBufB) & vPB3))
#define ADB_INTR_IS_ON (0 == (read_via_reg(VIA1, vBufB) & vPB3))
#define ADB_SR_INTR_IS_ON (vSR_INT == (read_via_reg(VIA1, \
write_via_reg(VIA1, vSR, adbOutputBuffer[adbSentChars + 1]);
write_via_reg(VIA1, vSR, adbOutputBuffer[adbSentChars + 1]); /* send next byte */
write_via_reg(VIA1, vSR, adbOutputBuffer[adbSentChars + 1]); /* load byte for output */
write_via_reg(VIA1, vIFR, 0x90); /* clear interrupt */
via_reg_or(VIA1, vDirB, 0x30); /* register B bits 4 and 5:
via_reg_and(VIA1, vDirB, 0xf7); /* register B bit 3: input */
via_reg_and(VIA1, vACR, ~vSR_OUT); /* make sure SR is set
write_via_reg(VIA1, vACR, (read_via_reg(VIA1, vACR) | 0x0c) & ~0x10);
write_via_reg(VIA1, vIER, 0x84);/* make sure VIA interrupts
via_reg_or(VIA1, vACR, 0x0c);
via_reg_and(VIA1, vACR, ~0x10);
via_reg_or(VIA1, vACR, 0x1c);
via_reg_or(VIA1, vACR, 0x1c);
write_via_reg(VIA1, vSR, data); /* PM_SR() = data; */
via_reg_or(VIA1, vACR, 0x1c);
via_reg_or(VIA1, vACR, 0x1c);
via1_vIER &= read_via_reg(VIA1, vIER);
write_via_reg(VIA1, vIER, via1_vIER);
write_via_reg(VIA1, vIER, via1_vIER);
write_via_reg(VIA1, vIER, 0x10);
#define PM_SR() read_via_reg(VIA1, vSR)
#define PM_VIA_INTR_ENABLE() write_via_reg(VIA1, vIER, 0x90)
#define PM_VIA_INTR_DISABLE() write_via_reg(VIA1, vIER, 0x10)
ifr = read_via_reg(VIA1, vIFR);
#define PM_VIA_CLR_INTR() write_via_reg(VIA1, vIFR, 0x90)