tdeck extended editor

This commit is contained in:
Able 2024-11-22 21:03:01 -06:00
parent 0e41f059c6
commit 2dd2605c0c

View file

@ -6,15 +6,61 @@
const char LispLibrary[] PROGMEM = const char LispLibrary[] PROGMEM =
"(defun load-package (filename)" "(defun load-package (filename) (with-sd-card (str filename) (loop (let ((ln (eval (read str)))) (unless ln (return nothing))))))"
" (with-sd-card (str filename)"
" (loop"
" (let ((ln (eval (read str))))"
" (unless ln (return nothing))))))"
"(defun save-package (filename list) (with-sd-card (str filename 2) (dolist (f list) (symbol-def f str))))" "(defun save-package (filename list) (with-sd-card (str filename 2) (dolist (f list) (symbol-def f str))))"
"(defun add-to-package (filename list) (with-sd-card (str filename 1) (dolist (f list) (symbol-def f str))))" "(defun add-to-package (filename list) (with-sd-card (str filename 1) (dolist (f list) (symbol-def f str))))"
;
"(defvar *cmds* nil)"
"(defvar *picn* 0)"
"(defun %edit (fun)"
" (cond"
" ((null *cmds*) fun)"
" ((eq (car *cmds*) #\\b) (pop *cmds*) fun)"
" ((eq (car *cmds*) #\\e) (pop *cmds*) (%edit (list fun)))"
" ((eq (car *cmds*) #\\h) (pop *cmds*) (%edit (cons 'highlight (list fun))))"
" ((consp (car *cmds*))"
" (let ((val (cdar *cmds*)))"
" (case (caar *cmds*)"
" (#\\r (pop *cmds*) (%edit val))"
" ((#\\c #\\i) (pop *cmds*) (%edit (cons val fun)))"
" (#\\f (cond"
" ((null fun) nil)"
" ((equal val fun) (pop *cmds*) (%edit fun))"
" ((atom fun) fun)"
" (t (cons (%edit (car fun)) (%edit (cdr fun)))))))))"
" ((atom fun) (pop *cmds*) (%edit fun))"
" ((eq (car *cmds*) #\\d) (pop *cmds*) (%edit (cons (car fun) (%edit (cdr fun)))))"
" ((eq (car *cmds*) #\\a) (pop *cmds*) (%edit (cons (%edit (car fun)) (cdr fun))))"
" ((eq (car *cmds*) #\\x) (pop *cmds*) (%edit (cdr fun)))"
" (t fun)))"
"(defun butlast (lst) (subseq lst 0 (1- (length lst))))"
"(defun edit (name)"
" (let ((fun (eval name))"
" cc)"
" (setq *cmds* nil)"
" (loop"
" (write-byte 12)"
" (setq cc (append cc (list #\\h)))"
" (setq *cmds* cc)"
" (pprint (%edit fun))"
" (setq cc (butlast cc))"
" (let ((c (get-key)))"
" (case c"
" (#\\q (set name fun) (return name))"
" (#\\s (setq *cmds* cc) (set name (%edit fun)) (return name))"
" (#\\z (when cc (setq cc (butlast cc))))"
" ((#\\r #\\c #\\i #\\f #\\e)"
" (write-byte 11) (princ c) (princ #\\:)"
" (setq cc (append cc (list (cons c (read))))))"
" ((#\\d #\\a #\\x #\\b)"
" (setq cc (append cc (list c))))"
" (t (write-byte 7)))))))";
// Compile options // Compile options
#define resetautorun #define resetautorun
@ -44,6 +90,7 @@ const char LispLibrary[] PROGMEM =
#define TDECK_PERI_POWERON 10 #define TDECK_PERI_POWERON 10
#define TDECK_SPI_MOSI 41 #define TDECK_SPI_MOSI 41
#define TDECK_SPI_MISO 38 #define TDECK_SPI_MISO 38
#define TDECK_SPI_SCK 40 #define TDECK_SPI_SCK 40
#define TDECK_TFT_CS 12 #define TDECK_TFT_CS 12
#define TDECK_TFT_DC 11 #define TDECK_TFT_DC 11