--- /dev/null
+ SECT PUT\r
+/ INTEGER FUNCTION PUT(OBJECT,WHERE,PVAL)\r
+/ C\r
+/ C PUT IS THE SAME AS MOVE, EXCEPT IT RETURNS A VALUE USED TO SET UP THE\r
+/ C NEGATED PROP VALUES FOR THE REPOSITORY OBJECTS.\r
+/ C\r
+/ IMPLICIT INTEGER (A-Z)\r
+/ C\r
+\r
+ EXTERN MOVE\r
+ JA #ST\r
+#XR, ORG .+10\r
+ TEXT +PUT +\r
+#RET, SETX #XR\r
+ SETB #BASE\r
+ JA .+3\r
+#BASE, ORG .+6\r
+PVAL, ORG .+3\r
+M1, F -1.0\r
+ ORG #BASE+30\r
+ FNOP\r
+ JA #RET\r
+ FNOP\r
+#GOBAK, 0;0\r
+ #LBL=.\r
+ ORG #LBL\r
+#RTN, BASE #BASE\r
+ JA #GOBAK\r
+#ST, STARTD\r
+ 0210\r
+ FSTA #GOBAK,0\r
+ 0200\r
+ SETX #XR\r
+ SETB #BASE\r
+ LDX 0,1\r
+ FSTA #BASE\r
+ FLDA% #BASE,1+\r
+ FSTA #G1\r
+ FLDA% #BASE,1+\r
+ FSTA #G2\r
+ FLDA% #BASE,1+\r
+ FSTA PVAL\r
+ STARTF\r
+/ CALL MOVE(OBJECT,WHERE)\r
+ JSR MOVE\r
+ JA .+6\r
+#G1, JA .\r
+#G2, JA .\r
+/ PUT=(-1)-PVAL\r
+ FLDA M1\r
+ FSUB% PVAL\r
+ JA #RTN\r
+ END\r