Prev: 9FC7 Up: Map Next: A09D
A050: Introduce what an object holds, for LIST_HELD
Used by the routines at DO_OPEN and LIST_HELD.
Only for something that can be seen into and holds anything visible: a character's is "... is carrying", a thing's the phrase for how things sit with it (PLACED_WORD), its name, and "is" or "are" there. Otherwise a new line, and carry set, so LIST_HELD goes no deeper.
Input
A The object
Output
F Carry set if there is nothing to list
CONTENTS_INTRO A050 PUSH IX
A052 PUSH BC
A053 PUSH DE
A054 LD C,A
A055 CALL GET_OBJECT
A058 LD A,(IX+$07)
A05B AND $28
A05D JR Z,CONTENTS_INTRO_4
A05F LD A,C
A060 CALL COUNT_HELD
A063 CP $00
A065 JR Z,CONTENTS_INTRO_4
A067 BIT 6,(IX+$07)
A06B JR Z,CONTENTS_INTRO_0
A06D LD A,C
A06E PUSH AF
A06F LD HL,MSG_CARRYING_B
A072 JR CONTENTS_INTRO_2
CONTENTS_INTRO_0 A074 LD HL,$039B
A077 DEC A
A078 JR Z,CONTENTS_INTRO_1
A07A LD HL,$0065
CONTENTS_INTRO_1 A07D PUSH HL
A07E LD L,(IX+$08)
A081 LD A,(IX+$09)
A084 AND $0F
A086 LD H,A
A087 PUSH HL
A088 CALL PLACED_WORD
A08B LD HL,MSG_THERE
CONTENTS_INTRO_2 A08E CALL RUN_MESSAGE_HL
A091 AND A
CONTENTS_INTRO_3 A092 POP DE
A093 POP BC
A094 POP IX
A096 RET
CONTENTS_INTRO_4 A097 CALL NEW_LINE
A09A SCF
A09B JR CONTENTS_INTRO_3
Prev: 9FC7 Up: Map Next: A09D