# As recommended by the Mecrisp-Stellaris unofficial docs
# @ https://mecrisp-stellaris-folkdoc.sourceforge.io/serial-terminals.html
connect:
- picocom -b 115200 /dev/ttyUSB0 \
+ picocom -b 115200 -f h /dev/ttyUSB0 \
--imap lfcrlf,crcrlf \
--omap delbs,crlf \
- --send-cmd "ascii-xfr -s -l200"
+ --send-cmd "ascii-xfr -s"
\ Words to explore and utilize UART
+\ Requires gpio.fs
\ Base registers
$40034000 constant UART0_BASE
: rts-enabled? ( addr -- flag ) @ 1 14 lshift AND 0 > ;
: cts-enabled? ( addr -- flag ) @ 1 15 lshift AND 0 > ;
-: rts-toggle ( addr -- ) dup @ 1 14 lshift XOR swap ! ;
-: cts-toggle ( addr -- ) dup @ 1 15 lshift XOR swap ! ;
+: rts-toggle ( addr -- ) DUP @ 1 14 lshift XOR SWAP ! ;
+: cts-toggle ( addr -- ) DUP @ 1 15 lshift XOR SWAP ! ;
+
+: rts-enable ( addr -- ) DUP @ 1 14 lshift OR SWAP ! ;
+: cts-enable ( addr -- ) DUP @ 1 15 lshift OR SWAP ! ;
+
+: loopback-enabled? ( addr -- flag ) @ 1 7 lshift AND 0 > ;
+: loopback-enable ( addr -- ) DUP @ 1 7 lshift OR SWAP ! ;
+
+\ Enable hardware flow control
+: hfc-enable ( addr -- )
+ 2 pin UART funcsel! DUP cts-enable
+ 3 pin UART funcsel! rts-enable ;