.. index:: repl, terminal hooks, hooks,uart handlers The Mecrisp REPL ================ Terminal handlers ----------------- emit, emit?, key and key? are the UART handlers. If you wish to use blocking IO, you can set hook-emit? and hook-key? statically to true. Repl Maximum Character Length ----------------------------- You can change the accepted length in forth-core.s for "Maximaleeingabe" which is currently set to 200 characters. Ledcomm Example from Matthias ----------------------------- https://sourceforge.net/p/mecrisp/discussion/general/thread/e29549a8d5/?limit=25#4afd/6b1e [matthias.koch]_ :: key? ( -- ? ) is giving you a flag meaning if there is (at least) one character in the receive buffer. key ( -- c ) is waiting until a character is received (it calls key? internally in a loop) and gives back that character. The hooks are just vectors, accepting a pointer to a definition. hook-key takes a definition which works as "key" and hook-key? takes a definition which works as "key?" Look at this snipplet: 0 variable tx-puffer 0 variable rx-puffer Communication is done from/to buffer variables driven by timers/interrupts Then wire the buffers in accordingly: : ledcomm-key? ( -- ? ) rx-puffer @ 0<> ; : ledcomm-key ( -- c ) begin ledcomm-key? until rx-puffer @ 0 rx-puffer ! ; : ledcomm-emit? ( -- ? ) tx-puffer @ 0= ; : ledcomm-emit ( c -- ) begin ledcomm-emit? until tx-puffer ! ; Switch terminal to new definitions: ['] ledcomm-key? hook-key? ! ['] ledcomm-key hook-key ! ['] ledcomm-emit? hook-emit? ! ['] ledcomm-emit hook-emit !