ciaa
ciaa.icr = 0x7f; /* and keyboard */
ciaa.icr = 0x7f; /* and keyboard */
dispatch_cia_ints (0, ciaa.icr);
#define FDTESTC(bit) ((ciaa.pra & (1 << (bit))) == 0)
ciaa.icr = CIA_ICR_SP; /* CIA SP interrupt disable */
ciaa.cra &= ~(1<<6); /* serial line == input */
ciaa.icr = CIA_ICR_IR_SC | CIA_ICR_SP;
ciaa.cra &= ~(1<<6); /* serial line == input */
ciaa.icr = CIA_ICR_IR_SC | CIA_ICR_SP; /* SP interrupt enable */
ciaa.cra &= ~(1<<6); /* serial line == input */
c = ~ciaa.sdr; /* keyboard data is inverted */
ciaa.cra |= (1 << 6); /* serial line output */
ciaa.cra &= ~(1 << 6);
for (ints = 0; ! ((mask = ciaa.icr) & CIA_ICR_SP);
in = ciaa.sdr;
ciaa.cra |= (1 << 6); /* serial line output */
ciaa.sdr = 0xff; /* ack */
ciaa.cra &= ~(1 << 6);
ciaa.sdr = in;
pra = ciaa.pra;
ciaa.icr = CIA_ICR_IR_SC | CIA_ICR_FLG;
ciaa.icr = CIA_ICR_FLG;
ciaa.prb = ch;
ciaa.ddrb = 0xff;