| 1 | SECT PUT\r |
| 2 | / INTEGER FUNCTION PUT(OBJECT,WHERE,PVAL)\r |
| 3 | / C\r |
| 4 | / C PUT IS THE SAME AS MOVE, EXCEPT IT RETURNS A VALUE USED TO SET UP THE\r |
| 5 | / C NEGATED PROP VALUES FOR THE REPOSITORY OBJECTS.\r |
| 6 | / C\r |
| 7 | / IMPLICIT INTEGER (A-Z)\r |
| 8 | / C\r |
| 9 | \r |
| 10 | EXTERN MOVE\r |
| 11 | JA #ST\r |
| 12 | #XR, ORG .+10\r |
| 13 | TEXT +PUT +\r |
| 14 | #RET, SETX #XR\r |
| 15 | SETB #BASE\r |
| 16 | JA .+3\r |
| 17 | #BASE, ORG .+6\r |
| 18 | PVAL, ORG .+3\r |
| 19 | M1, F -1.0\r |
| 20 | ORG #BASE+30\r |
| 21 | FNOP\r |
| 22 | JA #RET\r |
| 23 | FNOP\r |
| 24 | #GOBAK, 0;0\r |
| 25 | #LBL=.\r |
| 26 | ORG #LBL\r |
| 27 | #RTN, BASE #BASE\r |
| 28 | JA #GOBAK\r |
| 29 | #ST, STARTD\r |
| 30 | 0210\r |
| 31 | FSTA #GOBAK,0\r |
| 32 | 0200\r |
| 33 | SETX #XR\r |
| 34 | SETB #BASE\r |
| 35 | LDX 0,1\r |
| 36 | FSTA #BASE\r |
| 37 | FLDA% #BASE,1+\r |
| 38 | FSTA #G1\r |
| 39 | FLDA% #BASE,1+\r |
| 40 | FSTA #G2\r |
| 41 | FLDA% #BASE,1+\r |
| 42 | FSTA PVAL\r |
| 43 | STARTF\r |
| 44 | / CALL MOVE(OBJECT,WHERE)\r |
| 45 | JSR MOVE\r |
| 46 | JA .+6\r |
| 47 | #G1, JA .\r |
| 48 | #G2, JA .\r |
| 49 | / PUT=(-1)-PVAL\r |
| 50 | FLDA M1\r |
| 51 | FSUB% PVAL\r |
| 52 | JA #RTN\r |
| 53 | END\r |