altos/scheme: Add ports. Split scheme code up.
[fw/altos] / src / scheme / ao_scheme_port.scheme
diff --git a/src/scheme/ao_scheme_port.scheme b/src/scheme/ao_scheme_port.scheme
new file mode 100644 (file)
index 0000000..e4fa06c
--- /dev/null
@@ -0,0 +1,39 @@
+;
+; Copyright © 2018 Keith Packard <keithp@keithp.com>
+;
+; This program is free software; you can redistribute it and/or modify
+; it under the terms of the GNU General Public License as published by
+; the Free Software Foundation, either version 2 of the License, or
+; (at your option) any later version.
+;
+; This program is distributed in the hope that it will be useful, but
+; WITHOUT ANY WARRANTY; without even the implied warranty of
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+; General Public License for more details.
+;
+; port functions placed in ROM
+
+
+(define newline
+  (lambda args
+    (if (null? args)
+       (write-char #\newline)
+       (write-char #\newline (car args))
+       )
+    )
+  )
+
+(newline)
+(newline (open-output-file "/dev/null"))
+
+(define (load name)
+  (let ((p (open-input-file name))
+       (e))
+    (while (not (eof-object? (set! e (read p))))
+          (write (eval e)) (newline)
+          )
+    (close-port p)
+    )
+  )
+
+(load "/dev/null")