;;; -*- Mode: Lisp;  Package: User;  Base: 10. -*-
;;;

(defun run-ada ()
  (let ((fonts (send terminal-io :font-map)))
    (unwind-protect
	(let ((files (cdr (fs:directory-list "CT:ADA;*.ADA#>" :fast))))
	  (send terminal-io :set-font-map '(fonts:bigfnt))
	  (loop for file on files
		do (setf (car file) (list* (send (caar file) :name) #|:font fonts:bigfnt |# :value (car file))))
	  (loop as file = (tv:menu-choose files "Choose an ADA file to execute:") while file
		(send terminal-io :clear-screen)
		;; Next two lines stolen from expansion of ADAF
		(incremental_build_diana_init)
		(adaf_int (list (string file)) terminal-io terminal-io terminal-io terminal-io terminal-io nil)))
      (send terminal-io :set-font-map fonts))))

(defun auto-run-ada ()
  (let ((fonts (send terminal-io :font-map))
	(more? (send terminal-io :more-p)))
    (unwind-protect
	(let ((file '("lm:ada.latest;ijcai85.ada")))
	  (send terminal-io :set-font-map '(fonts:bigfnt))
	  (send terminal-io :set-more-p nil)
	  (loop until (listen) doing
		(send terminal-io :clear-screen)
		;; Next two lines stolen from expansion of ADAF
		(incremental_build_diana_init)
		(adaf_int file terminal-io terminal-io terminal-io terminal-io terminal-io nil)
		(process-sleep 180. "Computer * Thought")))
      (send terminal-io :set-font-map fonts)
      (send terminal-io :set-more-p more?))))
