(FILECREATED " 2-Feb-86 18:52:45" {DSK}<LISPFILES2>PUTWRITE.LSP;2 6967   

      changes to:  (VARS PUTWRITECOMS))


(* Copyright (c) 1986 by Quintus Computer Systems, Inc. All rights reserved.)

(PRETTYCOMPRINT PUTWRITECOMS)

(RPAQQ PUTWRITECOMS ((FNS R.initialize.Yn R.put.Ai.constant R.put.Ai.list R.put.Ai.nil 
			    R.put.Ai.structure R.put.Ai.symbol R.put.Ai.unsafe.Yn R.put.Ai.value.Xn 
			    R.put.Ai.value.Yn R.put.Ai.variable.Yn R.put.Ai.void W.initialize.Yn 
			    W.put.Ai.constant W.put.Ai.list W.put.Ai.nil W.put.Ai.structure 
			    W.put.Ai.symbol W.put.Ai.unsafe.Yn W.put.Ai.value.Xn W.put.Ai.value.Yn 
			    W.put.Ai.variable.Yn W.put.Ai.void W.unify.boxed W.unify.constant 
			    W.unify.float W.unify.list W.unify.local.Xn W.unify.local.Yn W.unify.nil 
			    W.unify.structure W.unify.symbol W.unify.value.Xn W.unify.value.Yn 
			    W.unify.variable.Xn W.unify.variable.Yn W.unify.void)
	(MACROS unify.any.constant write.local.variable)))
(DEFINEQ

(R.initialize.Yn
  (LAMBDA NIL
    (put.24 R (loc.Yval N))
    (put.cell R 0 (tag.ref R))
    (continue 0)))

(R.put.Ai.constant
  (LAMBDA NIL
    (put.Aval N (cell.operand))
    (continue 2)))

(R.put.Ai.list
  (LAMBDA NIL
    (put.Aval N (tag.list H))
    (continue.writing 0)))

(R.put.Ai.nil
  (LAMBDA NIL
    (put.Aval N (tag.symbol NIL))
    (continue 0)))

(R.put.Ai.structure
  (LAMBDA NIL
    (put.Aval N (tag.struct H))
    (put.cell H 0 (cell.operand))
    (increment.cell.pointer H)
    (continue.writing 2)))

(R.put.Ai.symbol
  (LAMBDA NIL
    (put.16 I (get.code P 0))
    (put.Aval N (tag.symbol.fast I))
    (continue 1)))

(R.put.Ai.unsafe.Yn
  (LAMBDA NIL
    (put.32 T0 (get.Yval N))
    (select.4 T0 (ref.tag.8 (put.24 R (untag.ref T0))
			    (put.32 T0 (get.cell R 0))
			    (reselect.when.bound T0 R)
			    (if (before E R)
				then (put.32 T0 (tag.ref H))
				       (bind.local R T0)
				       (put.cell H 0 (get.32 T0))
				       (increment.cell.pointer H)))
	      (PROGN))
    (put.16 I (get.code P 0))
    (put.Aval I (get.32 T0))
    (continue 1)))

(R.put.Ai.value.Xn
  (LAMBDA NIL
    (put.16 I (get.code P 0))
    (put.Aval I (get.Aval N))
    (continue 1)))

(R.put.Ai.value.Yn
  (LAMBDA NIL
    (put.32 T0 (get.Yval N))
    (put.16 I (get.code P 0))
    (put.Aval I (get.32 T0))
    (continue 1)))

(R.put.Ai.variable.Yn
  (LAMBDA NIL
    (put.24 R (loc.Yval N))
    (put.cell R 0 (tag.ref R))
    (put.16 I (get.code P 0))
    (put.Aval I (tag.ref R))
    (continue 1)))

(R.put.Ai.void
  (LAMBDA NIL
    (put.Aval N (tag.ref H))
    (put.cell H 0 (tag.ref H))
    (increment.cell.pointer H)
    (continue 0)))

(W.initialize.Yn
  (LAMBDA NIL
    (put.24 R (loc.Yval N))
    (put.cell R 0 (tag.ref R))
    (continue 0)))

(W.put.Ai.constant
  (LAMBDA NIL
    (put.Aval N (cell.operand))
    (continue 2)))

(W.put.Ai.list
  (LAMBDA NIL
    (put.Aval N (tag.list H))
    (continue.writing 0)))

(W.put.Ai.nil
  (LAMBDA NIL
    (put.Aval N (tag.symbol NIL))
    (continue 0)))

(W.put.Ai.structure
  (LAMBDA NIL
    (put.Aval N (tag.struct H))
    (put.cell H 0 (cell.operand))
    (increment.cell.pointer H)
    (continue.writing 2)))

(W.put.Ai.symbol
  (LAMBDA NIL
    (put.16 I (get.code P 0))
    (put.Aval N (tag.symbol.fast I))
    (continue 1)))

(W.put.Ai.unsafe.Yn
  (LAMBDA NIL
    (put.32 T0 (get.Yval N))
    (select.4 T0 (ref.tag.8 (put.24 R (untag.ref T0))
			    (put.32 T0 (get.cell R 0))
			    (reselect.when.bound T0 R)
			    (if (before E R)
				then (put.32 T0 (tag.ref H))
				       (bind.local R T0)
				       (put.cell H 0 (get.32 T0))
				       (increment.cell.pointer H)))
	      (PROGN))
    (put.16 I (get.code P 0))
    (put.Aval I (get.32 T0))
    (continue 1)))

(W.put.Ai.value.Xn
  (LAMBDA NIL
    (put.16 I (get.code P 0))
    (put.Aval I (get.Aval N))
    (continue 1)))

(W.put.Ai.value.Yn
  (LAMBDA NIL
    (put.32 T0 (get.Yval N))
    (put.16 I (get.code P 0))
    (put.Aval I (get.32 T0))
    (continue 1)))

(W.put.Ai.variable.Yn
  (LAMBDA NIL
    (put.24 R (loc.Yval N))
    (put.cell R 0 (tag.ref R))
    (put.16 I (get.code P 0))
    (put.Aval I (tag.ref R))
    (continue 1)))

(W.put.Ai.void
  (LAMBDA NIL
    (put.Aval N (tag.ref H))
    (put.cell H 0 (tag.ref H))
    (increment.cell.pointer H)
    (continue 0)))

(W.unify.boxed
  (LAMBDA NIL
    (unify.any.constant)))

(W.unify.constant
  (LAMBDA NIL
    (unify.any.constant)))

(W.unify.float
  (LAMBDA NIL
    (unify.any.constant)))

(W.unify.list
  (LAMBDA NIL                                                (* scratch S)
    (put.24 S (add.cell H 1))
    (put.cell H 0 (tag.list S))
    (put.24 H (get.24 S))
    (write.continue 0)))

(W.unify.local.Xn
  (LAMBDA NIL
    (put.32 T0 (get.Aval N))
    (write.local.variable)))

(W.unify.local.Yn
  (LAMBDA NIL
    (put.32 T0 (get.Yval N))
    (write.local.variable)))

(W.unify.nil
  (LAMBDA NIL
    (put.cell H 0 (tag.symbol NIL))
    (increment.cell.pointer H)
    (write.continue 0)))

(W.unify.structure
  (LAMBDA NIL                                                (* scratch S)
    (put.24 S (add.cell H 1))
    (put.cell H 0 (tag.struct S))
    (put.cell S 0 (cell.operand))
    (increment.cell.pointer H 2)
    (write.continue 2)))

(W.unify.symbol
  (LAMBDA NIL
    (put.16 I (get.code P 0))
    (put.cell H 0 (tag.symbol.fast I))
    (increment.cell.pointer H)
    (write.continue 1)))

(W.unify.value.Xn
  (LAMBDA NIL
    (put.cell H 0 (get.Aval N))
    (increment.cell.pointer H)
    (write.continue 0)))

(W.unify.value.Yn
  (LAMBDA NIL
    (put.cell H 0 (get.Yval N))
    (increment.cell.pointer H)
    (write.continue 0)))

(W.unify.variable.Xn
  (LAMBDA NIL
    (put.Aval N (tag.ref H))
    (put.cell H 0 (tag.ref H))
    (increment.cell.pointer H)
    (write.continue 0)))

(W.unify.variable.Yn
  (LAMBDA NIL
    (put.cell H 0 (tag.ref H))
    (put.Yval N (tag.ref H))
    (increment.cell.pointer H)
    (write.continue 0)))

(W.unify.void
  (LAMBDA NIL
    (until (zero N)
	     (put.cell H 0 (tag.ref H))
	     (increment.cell.pointer H)
	     (decrement.counter N))
    (write.continue 0)))
)
(DECLARE: EVAL@COMPILE 
(PUTPROPS unify.any.constant MACRO (OPENLAMBDA NIL (put.cell H 0 (cell.operand))
					       (increment.cell.pointer H)
					       (write.continue 2)))
(PUTPROPS write.local.variable MACRO (OPENLAMBDA NIL (select.4 T0 (ref.tag.8
								 (put.24 R (untag.ref T0))
								 (put.32 T0 (get.cell R 0))
								 (reselect.when.bound T0 R)
								 (if (waybefore H R)
								     then
								     (put.32 T0 (tag.ref H))
								     (bind.local R T0)))
							       (PROGN))
						 (put.cell H 0 (get.32 T0))
						 (increment.cell.pointer H)
						 (write.continue 0)))
)
(PUTPROPS PUTWRITE.LSP COPYRIGHT ("Quintus Computer Systems, Inc" 1986))
(DECLARE: DONTCOPY
  (FILEMAP (NIL (976 6273 (R.initialize.Yn 986 . 1098) (R.put.Ai.constant 1100 . 1187) (R.put.Ai.list 
1189 . 1278) (R.put.Ai.nil 1280 . 1364) (R.put.Ai.structure 1366 . 1527) (R.put.Ai.symbol 1529 . 1649)
 (R.put.Ai.unsafe.Yn 1651 . 2109) (R.put.Ai.value.Xn 2111 . 2226) (R.put.Ai.value.Yn 2228 . 2371) (
R.put.Ai.variable.Yn 2373 . 2549) (R.put.Ai.void 2551 . 2693) (W.initialize.Yn 2695 . 2807) (
W.put.Ai.constant 2809 . 2896) (W.put.Ai.list 2898 . 2987) (W.put.Ai.nil 2989 . 3073) (
W.put.Ai.structure 3075 . 3236) (W.put.Ai.symbol 3238 . 3358) (W.put.Ai.unsafe.Yn 3360 . 3818) (
W.put.Ai.value.Xn 3820 . 3935) (W.put.Ai.value.Yn 3937 . 4080) (W.put.Ai.variable.Yn 4082 . 4258) (
W.put.Ai.void 4260 . 4402) (W.unify.boxed 4404 . 4463) (W.unify.constant 4465 . 4527) (W.unify.float 
4529 . 4588) (W.unify.list 4590 . 4799) (W.unify.local.Xn 4801 . 4894) (W.unify.local.Yn 4896 . 4989) 
(W.unify.nil 4991 . 5113) (W.unify.structure 5115 . 5372) (W.unify.symbol 5374 . 5532) (
W.unify.value.Xn 5534 . 5657) (W.unify.value.Yn 5659 . 5782) (W.unify.variable.Xn 5784 . 5938) (
W.unify.variable.Yn 5940 . 6094) (W.unify.void 6096 . 6271)))))
STOP