perm filename LISP.INI[LSP,BGB] blob sn#043280 filedate 1973-05-17 generic text, type T, neo UTF8
(SETQ IBASE (ADD1 7)) 

(DEFPROP INITFNS 
 (NIL PRINQ PRINL MFUNC SAVE MYFNS FOR MAPFOR WHILE UNTIL REPEATWHILE REPEATUNTIL DSETQ BASE *NOPOINT MAP2CAR
 DRAW DPOUT %%%DPSPRINT FRMOUT DISPINIT FRM EDD DSKIN GETQ DPYPRINT REMDEF GRIN CDRQ PANIC CHANGE_NAME) 
VALUE)

(DEFPROP GETQ 
 (LAMBDA (L) (GET (CAR L) (CADR L))) 
FEXPR)

(DEFPROP DPYPRINT 
 (LAMBDA (L) (PROG NIL (DTYOS) (GVECT 0 0 46 1 0) (PRINT L) (DTYOU) (SHOW 17) (CLEAR))) 
EXPR)

(DEFPROP REMDEF 
 (LAMBDA (L) (REMPROP (CAR L) (CADR L))) 
FEXPR)

(DEFPROP GRIN 
 (LAMBDA(L)
  (PROG NIL
	(COND ((GET (QUOTE DTYOS) (QUOTE SUBR)) (PROG2 (CLEAR) (GVECT -1000 714 146 1 0) (DTYOS))) (T NIL))
	((LABEL GRIN1
		(LAMBDA(L M)
		 (COND ((NULL (CDDR L)) NIL)
		       (T
			(PROG2 (TERPRI)
			       ((LAMBDA (L) (SPRINT L 1 1)) (LIST (QUOTE DEFPROP) M (CADR L) (CAR L)))
			       (GRIN1 (CDDR L) M))))))
	 (CDAR L)
	 (CAR L))
	(COND ((GET (QUOTE DTYOS) (QUOTE SUBR)) (PROG NIL (DTYOU) (SHOW 17) (CLEAR))) (T NIL)))) 
FEXPR)

(DEFPROP CDRQ 
 (LAMBDA (L) (CDAR L)) 
FEXPR)

(DEFPROP PANIC 
 (LAMBDA NIL (SAVE (PANIC . LSP))) 
EXPR)

(DEFPROP CHANGE_NAME 
 (LAMBDA(L)
  (PROG (%%%A %%%B)
	(SETQ %%%A (CAR L))
	(SETQ %%%B (CADR L))
	(EVAL (LIST (QUOTE REMOB) %%%B))
	(EVAL (LIST (QUOTE REMOB) %%%A))
	(RPLACA (GET %%%A (QUOTE PNAME)) (CAR (GET %%%B (QUOTE PNAME))))
	(RPLACD (GET %%%A (QUOTE PNAME)) (CDR (GET %%%B (QUOTE PNAME))))
	(INTERN %%%A))) 
FEXPR)

(DEFPROP PRINQ 
 (LAMBDA (L) (PRINL L)) 
FEXPR)

(DEFPROP PRINL 
 (LAMBDA (L) (PROG2 (MAPC (MFUNC (L) (PROG2 (PRINC L) (PRINC (QUOTE " ")))) L) L)) 
EXPR)

(DEFPROP MFUNC 
 (LAMBDA (L) (LIST (QUOTE FUNCTION) (CONS (QUOTE LAMBDA) (CDR L)))) 
MACRO)

(DEFPROP SAVE 
 (LAMBDA (L) (EVAL (LIST (QUOTE DSKOUT) (CAR L) (QUOTE (GRINL ALLFNS))))) 
FEXPR)

(DEFPROP FOR 
 (LAMBDA(L)
  (PROG (%%LOOP)
	(SETQ L (CDR L))
	(RETURN
	 (LIST (QUOTE PROG)
	       (LIST (CAR L))
	       (LIST (QUOTE SETQ) (CAR L) (CAADR L))
	       (SETQ %%LOOP (GENSYM))
	       (LIST (QUOTE COND)
		     (LIST (LIST (QUOTE *LESS) (CADADR L) (CAR L)) (QUOTE (RETURN NIL)))
		     (LIST T (CADDR L)))
	       (LIST (QUOTE SETQ)
		     (CAR L)
		     (COND ((NULL (CDDADR L)) (LIST (QUOTE ADD1) (CAR L)))
			   (T (LIST (QUOTE *PLUS) (CAR L) (CADDR (CADR L))))))
	       (LIST (QUOTE GO) %%LOOP))))) 
MACRO)

(DEFPROP MAPFOR 
 (NIL . UNBOUND) 
VALUE)

(DEFPROP MAPFOR 
 (LAMBDA(L)
  (PROG (%%NAME)
	(SETQ L (CDR L))
	(SETQ %%NAME (GENSYM))
	(RETURN
	 (LIST (LIST (QUOTE LABEL)
 		     %%NAME
		     (LIST (QUOTE LAMBDA)
			   (LIST (CAR L))
			   (LIST (QUOTE COND)
				 (LIST (LIST (QUOTE *LESS) (CADADR L) (CAR L)) NIL)
				 (LIST (QUOTE T)
				       (LIST (QUOTE CONS)
					     (CADDR L)
					     (LIST %%NAME
						   (COND ((NULL (CDDADR L)) (LIST (QUOTE ADD1) (CAR L)))
							 (T
							  (LIST (QUOTE *PLUS) (CAR L) (CADDR (CADR L)))))))))))
	       (CAADR L))))) 
MACRO)

(DEFPROP WHILE 
 (LAMBDA(L)
  (PROG (%%LOOP)
	(RETURN
	 (LIST (QUOTE PROG)
	       (LIST (SETQ %%LOOP (GENSYM)))
 	       %%LOOP
	       (LIST (QUOTE COND) (LIST (CADR L) (CADDR L)) (QUOTE (T (RETURN))))
	       (LIST (QUOTE GO) %%LOOP))))) 
MACRO)

(DEFPROP UNTIL 
 (LAMBDA(L)
  (PROG (%%LOOP)
	(RETURN
	 (LIST (QUOTE PROG)
	       (LIST (SETQ %%LOOP (GENSYM)))
 	       %%LOOP
	       (LIST (QUOTE COND) (LIST (CADR L) (QUOTE (RETURN))) (LIST T (CADDR L)))
	       (LIST (QUOTE GO) %%LOOP))))) 
MACRO)

(DEFPROP REPEATWHILE 
 (LAMBDA(L)
  (PROG (%%LOOP)
	(RETURN
	 (LIST (QUOTE PROG)
	       (LIST (SETQ %%LOOP (GENSYM)))
 	       %%LOOP
	       (CADR L)
	       (LIST (QUOTE COND) (LIST (CADDR L) (LIST (QUOTE GO) %%LOOP)) (QUOTE (T (RETURN)))))))) 
MACRO)

(DEFPROP REPEATUNTIL 
 (LAMBDA(L)
  (PROG (%%LOOP)
	(RETURN
	 (LIST (QUOTE PROG)
	       (LIST (SETQ %%LOOP (GENSYM)))
 	       %%LOOP
	       (CADR L)
	       (LIST (QUOTE COND) (LIST (CADDR L) (QUOTE (RETURN))) (LIST T (LIST (QUOTE GO) %%LOOP))))))) 
MACRO)

(DEFPROP DSETQ 
 (LAMBDA(L)
  (PROG2 (COND ((MEMBER (CAR L) ALLFNS) NIL) (T (SETQ ALLFNS (CONS (CAR L) ALLFNS))))
	 (SET (CAR L) (EVAL (CADR L))))) 
FEXPR)

(DEFPROP BASE 
 (NIL . 10) 
VALUE)

(DEFPROP BASE 
 T 
SPECIAL)

(DEFPROP *NOPOINT 
 T 
SPECIAL)

(DEFPROP MAP2CAR
 (LAMBDA (FN L M) (COND ((NULL L) NIL) (T (CONS (FN L M) (MAP2CAR FN (CDR L) (CDR M)))))) 
EXPR)


(SETQ IBASE (ADD1 7)) 


(DEFPROP LISPDP 
 (NIL DISPINIT FRM FRMOUT EDD %DPSPRINT DPOUT DRAW) 
VALUE)

(DEFPROP DISPINIT 
 (LAMBDA NIL
  (PROG NIL
	(GETSYM SUBR
 		AIVECT
 		AVECT
 		APT
 		RIVECT
 		RVECT
 		RPT
 		DTYOS
 		DTYOU
 		LOCATE
 		CLEAR
 		FIXUP
 		DJUMP
 		DJSR
 		DPINIT
 		SHOW
 		KILL
 		GVECT
 		CHINIT)
	(DPINIT -540 5001)
	(AIVECT -1000 460.)
	(SHOW 16)
	(CHINIT 2 105 -1000)
	(DEFPROP ED (17 1 160 -1000) FRM)
	(ED T)
	(PUTPROP (QUOTE %%DPSPRINT) (GET (QUOTE %DPSPRINT) (QUOTE SUBR)) (QUOTE SUBR))
	(PUTPROP (QUOTE %DPSPRINT) (GET (QUOTE %%%DPSPRINT) (QUOTE EXPR)) (QUOTE EXPR))
	(CLEAR))) 
EXPR)

(DEFPROP FRM 
 (LAMBDA(%%A)
  (PROG (N)
	(CLEAR)
	(SETQ N (GET %%A (QUOTE FRM)))
	(GVECT 0 0 46 (CADR N) 0)
	(SHOW (CAR N))
	(CHINIT (CADR N) (CADDR N) (CADDDR N))
	(RETURN (CAR N)))) 
EXPR)

(DEFPROP FRMOUT 
 (LAMBDA(DP%L)
  (PROG (DP%N)
	(CLEAR)
	(SETQ DP%N (FRM (CAR DP%L)))
	(DTYOS)
	(MAPC (FUNCTION EVAL) (CDR DP%L))
	(DTYOU)
	(KILL DP%N)
	(SHOW DP%N)
	(CLEAR))) 
FEXPR)

(DEFPROP EDD 
 (LAMBDA NIL (PROG NIL
	(KILL 17) (ED) (KILL 17))) 
EXPR)

(DEFPROP %%%DPSPRINT
 (LAMBDA(X)
  (PROG NIL
	(FRMOUT ED
		(COND ((EQ (CAR X) (QUOTE DEFPROP)) (PRINC (QUOTE "
("))						    (PRIN1 (CAR X))
						    (PRINC (QUOTE " "))
						    (PRIN1 (CADR X))
						    (TERPRI)
						    (%%DPSPRINT (CADDR X))
						    (PRIN1 (CADDDR X))
						    (PRINC (QUOTE ")
")))		      (T (%%DPSPRINT X)))))) 
EXPR)

(DEFPROP DPOUT 
 (LAMBDA(L)
  (PROG NIL (CLEAR) (DTYOS) (MAPC (FUNCTION EVAL) (CDR L)) (DTYOU) (KILL (CAR L)) (SHOW (CAR L)) (CLEAR))) 
FEXPR)

(DEFPROP DRAW 
 (LAMBDA (L) (MAPC (FUNCTION (LAMBDA (X) (RVECT (CAR X) (CADR X)))) L)) 
EXPR)

(SYSIN SMILE)
(BAKGAG T)

(DEFPROP DSKIN 
 (LAMBDA(%L)
  (PROG (%X %%D)
	(SETQ %%D (QUOTE DSK:))
   L1   (COND ((NULL %L) (RETURN (QUOTE ***)))
	      ((DEVP (CAR %L)) (SETQ %%D (CAR %L)) (SETQ %L (CDR %L)) (GO L1)))
	(COND ((ERRSET (EVAL (LIST (QUOTE INPUT) %%D (CAR %L))) NIL) T)
	      (T (EVAL (LIST (QUOTE INPUT) %%D (CONS (CAR %L) (QUOTE LSP))))))
	(INC T)
   L2   (SETQ %X (ERRSET (READ) T))
	(COND ((ATOM (SETQ %X (CAR %X))) (SETQ %L (CDR %L)) (GO L1))
	      ((AND (NOT (ATOM %X))
		    (EQ (CAR %X) (QUOTE DEFPROP))
		    (MEMQ (CADDDR %X) (QUOTE (EXPR FEXPR MACRO)))
		    (GETL (CADR %X) (QUOTE (EXPR FEXPR SUBR FSUBR LSUBR MACRO))))
	       (PRINT (LIST (CADR %X) (QUOTE REDEFINED)))))
	(EVAL %X)
	(GO L2))) 
FEXPR)

(PRINQ TVR'S LIBRARY LOADED)