Prev: 92ED Up: Map Next: 93DA
939E: GIVE TO
Used by the routine at ELROND_GIVES_LUNCH.
The giver must be carrying it, and the one given it must be able to carry it too ("you are carrying too much."). Then it is theirs, and in their place, with everything inside it.
DO_GIVE 939E LD IY,(INSTRUMENT_RECORD) Not carrying it: refused
93A2 CALL ACTOR_HAS_FIRST
93A5 LD HL,MSG_NOT_CARRYING_IT
93A8 JP NC,RUN_MESSAGE_HL
GIVE_TOO_MUCH 93AB LD A,(INSTRUMENT) More than the other can carry: refused
93AE CALL WEIGHT_HELD
93B1 LD IX,(TARGET_RECORD)
93B5 ADD A,(IX+$03)
93B8 PUSH AF
93B9 POP BC
93BA LD A,(IY+$03)
93BD SUB B
93BE LD HL,MSG_CARRYING_TOO_MUCH
93C1 JP C,RUN_MESSAGE_HL
93C4 CALL FOR_REAL The test ends here
93C7 LD A,(INSTRUMENT) Theirs now, and where they are
93CA LD (IX+$01),A
93CD LD A,(IY+$10)
93D0 LD (IX+$10),A
93D3 LD B,A With all it holds
93D4 LD A,(TARGET)
93D7 JP MOVE_CONTENTS
Prev: 92ED Up: Map Next: 93DA