A large commit.
[pdp8.git] / sw / adventure / work / JUGGLE.RA
1 SECT JUGGLE
2 / SUBROUTINE JUGGLE(OBJECT)
3 / C
4 / C JUGGLE AN OBJECT BY PICKING IT UP AND PUTTING IT DOWN AGAIN, THE PURPOSE
5 / C BEING TO GET THE OBJECT TO THE FRONT OF THE CHAIN OF THINGS AT ITS LOC.
6 / C
7 / IMPLICIT INTEGER (A-Z)
8 / COMMON /PLACOM/ ATLOC,LINK,PLACE,FIXED,HOLDNG
9 / DIMENSION ATLOC(150),LINK(200),PLACE(100),FIXED(100)
10 /
11 EXTERN MOVE
12 JA #ST
13 #XR, ORG .+10
14 TEXT +JUGGLE+
15 #RET, SETX #XR
16 SETB #BASE
17 JA .+3
18 #BASE, ORG .+6
19 OBJECT, ORG .+3
20 I, ORG .+3
21 J, ORG .+3
22 #TMP, ORG .+3
23 HUND, F 100.0
24 ORG #BASE+30
25 FNOP
26 JA #RET
27 FNOP
28 #GOBAK, 0;0
29 #LBL=.
30 COMMON PLACOM
31 ATLOC, ORG .+0702
32 LINK, ORG .+1130
33 PLACE, ORG .+454
34 FIXED, ORG .+454
35 HOLDNG, ORG .+3
36 ORG #LBL
37 #RTN, BASE #BASE
38 JA #GOBAK
39 #ST, STARTD
40 0210
41 FSTA #GOBAK,0
42 0200
43 SETX #XR
44 SETB #BASE
45 LDX 0,1
46 FSTA #BASE
47 FLDA% #BASE,1+
48 FSTA OBJECT
49 STARTF
50 FLDA% OBJECT
51 ATX 7
52 / I=PLACE(OBJECT)
53 FLDA PLACE-3,7
54 FSTA I
55 / J=FIXED(OBJECT)
56 FLDA FIXED-3,7
57 FSTA J
58 STARTD
59 / CALL MOVE(OBJECT,I)
60 FLDA OBJECT
61 FSTA #G1
62 STARTF
63 JSR MOVE
64 JA .+6
65 #G1, JA .
66 JA I
67 / CALL MOVE(OBJECT+100,J)
68 / RETURN
69 / END
70 FLDA% OBJECT
71 FADD HUND
72 FSTA #TMP
73 JSR MOVE
74 JA #RTN
75 JA #TMP
76 JA J