1
0
mirror of https://github.com/PDP-10/its.git synced 2026-03-20 08:28:43 +00:00

Compile LLOGO.

This commit is contained in:
Lars Brinkhoff
2018-09-24 14:53:53 +02:00
parent c840d0b1f7
commit b38fca7255
3 changed files with 50 additions and 5 deletions

View File

@@ -922,3 +922,33 @@ respond "*" ":complr\r"
respond "_" "kle;forth\r"
respond "_" "\032"
type ":kill\r"
# Lisp Logo
respond "*" ":cwd llogo\r"
respond "*" ":complr\r"
respond "_" "\007"
respond "*" {(load "ioc")}
respond "T" "(maklap)"
respond "_" "define\r"
respond "_" "\032"
type ":kill\r"
respond "*" ":complr\r"
respond "_" "\007"
respond "*" {(load "ioc")}
respond "T" {(load "define")}
respond "0" "(maklap)"
respond "_" "error\r"
respond "_" "parser\r"
respond "_" "primit\r"
respond "_" "print\r"
respond "_" "reader\r"
respond "_" "setup\r"
respond "_" "tvrtle\r"
respond "_" "unedit\r"
respond "_" "\032"
type ":kill\r"
respond "*" ":lisp loader\r"
respond "?" "Y\r"
respond "?" "LLOGO\r"
respond ";BKPT" "\032"
type ":kill\r"

13
src/llogo/ioc.lsp Normal file
View File

@@ -0,0 +1,13 @@
;;; -*- lisp -*-
(defmacro ioc (sym)
(cond
((eq sym 'G) `(^G))
((eq sym 'R) `(setq ^R t))
((eq sym 'T) `(setq ^R nil))
(t (error "Unknown IOC character"))))
(defmacro iog (sym &rest forms)
`(let ((^Q nil) (^R nil) (^W nil)
,@(if sym `((ioc ,sym))))
,@forms))

View File

@@ -11,6 +11,8 @@
(DECLARE (COUTPUT (READ)))
(load "ioc")
(DEFUN HOW-BIG NIL
(REMPROP 'HOW-BIG 'EXPR)
((LAMBDA (FREE)
@@ -42,7 +44,7 @@
(MAPC
'(LAMBDA (SOURCE-FILE)
(APPLY 'UREAD
(CONS SOURCE-FILE '(> AI LLOGO)))
(CONS SOURCE-FILE '(> DSK LLOGO)))
(MAPC 'PRINC
(LIST 'READING
'/
@@ -81,9 +83,9 @@ FASLOADING/ FASL-FILE
'/ FASL))
(APPLY 'FASLOAD
(CONS FASL-FILE
'(FASL AI LLOGO))))
'(FASL DSK LLOGO))))
(CDR (GET 'LLOGO 'FILES)))))
(AND DUMP (UWRITE AI LLOGO) (IOC R)
(AND DUMP (UWRITE DSK LLOGO) (IOC R)
(MAPC 'PRINC
(LIST '/
CREATING/ DUMP
@@ -139,7 +141,7 @@ UUO:/ ) (PRINC (COND ((NUMBERP PURE) (* PURE 2048.)) (0.)))
(TERPRI)
(SSTATUS TOPLEVEL '(START-UP))
(COND ((AND DUMP (STATUS FEATURE ITS))
(ERRSET (UFILE LLOGO > AI LLOGO) NIL)
(ERRSET (UFILE LLOGO > DSK LLOGO) NIL)
(IOG NIL (PRINC 'VERSION/ NUMBER?/ )
(PUTPROP 'LLOGO (LIST DUMP (READ)) 'VERSION))
(UCLOSE)
@@ -194,4 +196,4 @@ UUO:/ ) (PRINC (COND ((NUMBERP PURE) (* PURE 2048.)) (0.)))
(AND (STATUS FEATURE BIBOP) (SETQ INITIAL-SIZE (HOW-BIG)))
(SSTATUS TOPLEVEL '(CREATE))