Some major additions:
I’ve added the possibility to send a line or a marked region via serial TX/RX pins and receive an answer, please see the README file for detailed information. I wanted this to utilize any other board running uLisp as a kind of co-processor or to remote control it from the PicoCalc.
To receive commands from PicoEdit on another uLisp machine and send the outcome back, add something like this to a LispLibrary on that other board:
(defun serial-receive ()
(let ((rline nil))
(with-serial (str [your serial port number here] 96)
(loop
(setf rline (read-line str))
(when rline
(ignore-errors (princ (eval (read-from-string rline)) str) (terpri str) (setf rline nil)))))))
(progn
(delay 1000)
(serial-receive))
(The progn block will be invoked directly at startup.)
To implement the serial send feature I slightly modified uLisp and tied the functions for Serial2 to software serial (SerialPIO) on GP2/GP3 at the PicoCalc’s port because the pins marked “UART0” interfere with the USB chip of the PicoCalc (tied in parallel).
I’ve included the awesome GIF library into the PicoEdit extension file as well, thanks a lot to David! Another addition are a bunch of OLED commands (default: disabled) for communication with a display via I2C, please see the extension file.
There’s a dedicated UF2 for the Pico2W now as well.
I will make serial send available to the LispDeck/LispBox version, but since I want to update it to the latest uLisp release as well this will take some time.