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