|
- : (key)
- ( inc then fetch )
- [ ACIAR> LITN ] C@ 1+ [ ACIA_BUFSZ 1- LITN ] AND
- ( As long as R> == W>-1, it means that buffer is empty )
- BEGIN DUP [ ACIAW> LITN ] C@ = NOT UNTIL
- DUP [ ACIA( LITN ] @ + C@ ( ridx c )
- SWAP [ ACIAR> LITN ] C! ( 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!
- ;
|