Prev: 9246 Up: Map Next: 929C
924F: PUT IN and DROP IN, carried by the containers
What goes in must be something in one place, and not a liquid -- the last part of CAN_LIFT -- and not the container itself. The container must be open -- except to PUT something ON it -- and have room: its size, byte 2, less what is in it, more than the thing's size ("the ... is too full."). Then it is in the container, and where the container is.
DO_PUT_IN 924F CALL CAN_LIFT_HERE Something that can be put anywhere
9252 LD A,(INSTRUMENT) Not into itself
9255 CP (IX+$01)
9258 JP Z,CANNOT_DO
925B LD IY,(INSTRUMENT_RECORD) Shut, unless it is PUT ON: "the ... is closed."
925F LD A,(ACTION)
9262 CP $12
9264 JR Z,DO_PUT_IN_0
9266 BIT 5,(IY+$07)
926A JR Z,DO_PUT_IN_2
DO_PUT_IN_0 926C LD A,(IY+$02) Room for it? "the ... is too full."
926F SUB (IX+$02)
9272 JR C,DO_PUT_IN_1
9274 PUSH AF
9275 LD A,(INSTRUMENT)
9278 CALL SIZE_HELD
927B LD B,A
927C POP AF
927D SUB B
DO_PUT_IN_1 927E LD HL,MSG_IS_TOO_FULL
9281 JP C,RUN_MESSAGE_HL
9284 JP Z,RUN_MESSAGE_HL
9287 CALL FOR_REAL The test ends here
928A LD A,(IY+$10) In it, and where it is
928D LD (IX+$10),A
9290 LD A,(INSTRUMENT)
9293 LD (IX+$01),A
9296 RET
DO_PUT_IN_2 9297 LD A,$05 "the ... is closed."
9299 JP SAY_STATE_OF
Prev: 9246 Up: Map Next: 929C