: (key) ( inc then fetch ) [ ACIAR> LITN ] @ 1+ DUP [ ACIA) LITN ] @ = IF DROP [ ACIA( LITN ] @ THEN ( As long as R> == W>-1, it means that buffer is empty ) BEGIN DUP [ ACIAW> LITN ] @ = NOT UNTIL [ ACIAR> LITN ] ! [ ACIAR> LITN ] @ C@ ; : (emit) ( As long at CTL bit 1 is low, we are transmitting. wait ) BEGIN [ ACIA_CTL LITN ] PC@ 0x02 AND UNTIL ( The way is clear, go! ) [ ACIA_IO LITN ] PC! ;