;; Packet Forth's spartan interface contains: ;; (pf-push item) pushes an item on the data stack. ;; (pf-pop) pops an item from the data stack. ;; (pf-exec code) executes code. ;; symbol: lookup + execute xt ;; list/string: interpret ;; (pf-eval) evaluates expression on tos ;; The stuff below defines some scheme specific glue ;; to map pf operations to scheme functions. ;; shortcuts (define exec pf-exec) (define pop pf-pop) (define push pf-push) (defmacro pf (code) `(begin (exec ,code) (pop))) ;; basic io (define (grab) (pf 'grab)) (define (blit frame) (pf `(,frame blit undef))) ;; our killer app (define (hot-demo) (blit (grab)) (hot-demo))