Routines |
Prev: BA66 | Up: Map | Next: BAB3 |
Used by the routine at E79B.
|
||||
BA6E | LD A,($BAB3) | Are we in the middle of printing a message? | ||
BA71 | OR A | |||
BA72 | RET NZ | Return if so, busy at the moment. | ||
Not redrawing the room, so the message can be printed.
|
||||
BA73 | LD HL,$DFDC | Point HL at the character set. (DFDC) | ||
BA76 | LD ($B7E9),HL | Set the printing routine in B7BA to use this. | ||
BA79 | LD A,(IY+$0F) | Get the current room in A. | ||
BA7C | LD HL,$7F1F | Point HL at the start of the room text entries. | ||
BA7F | CALL $AC6C | Search for the right entry, returns with HL pointing to the correct address for the room's text. | ||
BA82 | PUSH HL | Store HL. | ||
BA83 | CALL $BACE | Put the string's length in C. | ||
BA86 | LD C,B | |||
BA87 | LD H,$7C | Point H at the high byte for the character names. (7C00) | ||
BA89 | LD L,(IY-$23) | Get the low byte from the character. (BC44) | ||
BA8C | PUSH HL | Remember the address for the character in HL. | ||
BA8D | CALL $BACE | Put the string's length in B. | ||
BA90 | LD A,$07 | Given the total string length (character + room + extra), work out the position on screen that will put the display justified in the centre. | ||
BA92 | ADD A,B | |||
BA93 | ADD A,C | |||
BA94 | LD C,A | |||
BA95 | LD A,$20 | |||
BA97 | SUB C | |||
BA98 | SRL A | |||
BA9A | LD E,A | |||
BA9B | LD D,$04 | Start drawing at row 4. | ||
BA9D | POP HL | Restore the character name in HL. | ||
BA9E | LD C,$4E | Set bright yellow on blue attribute. | ||
BAA0 | CALL $B84B | Draw the graphic. | ||
BAA3 | LD HL,$BA66 | Point HL at "{character} is in {room}" text. (BA66) | ||
BAA6 | CALL $B84B | Draw it. | ||
BAA9 | POP HL | Restore the room text in HL. | ||
BAAA | CALL $B84B | Draw it. | ||
BAAD | LD A,$1E | Set the tick count to 1E and return. | ||
BAAF | LD ($BAB3),A | |||
BAB2 | RET |
Prev: BA66 | Up: Map | Next: BAB3 |