- : (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!
- ;
|