( Save ACIA ports from conf ) ACIA_CTL : ACIA_CTL [ LITN ] ; ACIA_IO : ACIA_IO [ LITN ] ; (entry) ~ACIA AF PUSHqq, HL PUSHqq, DE PUSHqq, ( Read our character from ACIA into our BUFIDX ) ACIA_CTL INAn, 0x01 ANDn, ( is ACIA rcv buf full? ) JRZ, L2 FWR ( end, no, wrong interrupt cause. ) ACIAW> @ LDHL(nn), ( is it == to ACIAR>? ) DE ACIAR> @ LDdd(nn), ( carry cleared from ANDn above ) DE SBCHLss, JRZ, L3 FWR ( end, buffer full ) ( buffer not full, let's write ) ACIA_IO INAn, (HL) A LDrr, ( advance W> ) HL INCss, DE ACIAR) @ LDdd(nn), DE SUBHLss, JRNZ, L4 FWR ( skip ) ( end of buffer reached ) ACIA( @ LDHL(nn), L4 FSET ( skip ) ACIAW> @ LD(nn)HL, L3 FSET L2 FSET ( end ) DE POPqq, HL POPqq, AF POPqq, EI, RETI,