A large commit.
[pdp8.git] / sw / adventure / src / MOVE.RA
CommitLineData
84b5715c
PH
1 SECT MOVE\r
2/ SUBROUTINE MOVE(OBJECT,WHERE)\r
3/ C\r
4/ C PLACE ANY OBJECT ANYWHERE BY PICKING IT UP AND DROPPING IT. MAY ALREADY BE\r
5/ C TOTING, IN WHICH CASE THE CARRY IS A NO-OP. MUSTN'T PICK UP OBJECTS WHICH\r
6/ C ARE NOT AT ANY LOC, SINCE CARRY WANTS TO REMOVE OBJECTS FROM ATLOC CHAINS.\r
7/ C\r
8/ IMPLICIT INTEGER (A-Z)\r
9/ COMMON /PLACOM/ ATLOC,LINK,PLACE,FIXED,HOLDNG\r
10/ DIMENSION ATLOC(150),LINK(200),PLACE(100),FIXED(100)\r
11/ C\r
12 EXTERN CARRY\r
13 EXTERN DROP\r
14 JA #ST\r
15#XR, ORG .+10\r
16 TEXT +MOVE +\r
17#RET, SETX #XR\r
18 SETB #BASE\r
19 JA .+3\r
20#BASE, ORG .+6\r
21OBJECT, ORG .+3\r
22WHERE, ORG .+3\r
23HUND, F 100.0\r
24THREHN, F 300.0\r
25FROM, ORG .+3\r
26 ORG #BASE+30\r
27 FNOP\r
28 JA #RET\r
29 FNOP\r
30#GOBAK, 0;0\r
31 #LBL=.\r
32 COMMON PLACOM\r
33ATLOC, ORG .+0702\r
34LINK, ORG .+1130\r
35PLACE, ORG .+0454\r
36FIXED, ORG .+0454\r
37HOLDNG, ORG .+3\r
38 ORG #LBL\r
39#RTN, BASE #BASE\r
40 JA #GOBAK\r
41#ST, STARTD\r
42 0210\r
43 FSTA #GOBAK,0\r
44 0200\r
45 SETX #XR\r
46 SETB #BASE\r
47 LDX 0,1\r
48 FSTA #BASE\r
49 FLDA% #BASE,1+\r
50 FSTA OBJECT\r
51 FSTA #G3\r
52 FSTA #G2\r
53 FLDA% #BASE,1+\r
54 FSTA WHERE\r
55 FSTA #G4\r
56 STARTF\r
57 FLDA% OBJECT\r
58 ATX 7\r
59/ IF(OBJECT.GT.100)GOTO 1\r
60 FSUB HUND\r
61 ATX 5\r
62 JGT #1\r
63/ FROM=PLACE(OBJECT)\r
64 FLDA PLACE-3,7\r
65 FSTA FROM\r
66/ GOTO 2\r
67 JA #2\r
68\r
69/ 1 FROM=FIXED(OBJECT-100)\r
70#1, FLDA FIXED-3,5\r
71 FSTA FROM\r
72\r
73/ 2 IF(FROM.GT.0.AND.FROM.LE.300)CALL CARRY(OBJECT,FROM)\r
74#2, JLE #G1\r
75 FSUB THREHN\r
76 JGT #G1\r
77 JSR CARRY\r
78 JA .+6\r
79#G2, JA .\r
80 JA FROM\r
81/ CALL DROP(OBJECT,WHERE)\r
82#G1, JSR DROP\r
83/ RETURN\r
84/ END\r
85 JA #RTN\r
86#G3, JA .\r
87#G4, JA .\r
88 END\r