Prev: 45968 Up: Map Next: 46032
45987: Message: Teleporting
Used by the routine at 41386.
MessageTeleporting 45987 DI Disable interrupts.
45988 CALL 35749 Call 35749.
45991 LD B,16 B=16 (colour cycling counter).
MessageTeleporting_Loop 45993 PUSH BC Stash BC (the colour cycling counter) on the stack.
Handle printing "teleporting" messaging.
45994 LD HL,28760 HL=28760 (screen buffer location).
45997 LD DE,46032 DE=String_Teleporting.
46000 CALL PrintStringColour Call PrintStringColour.
Create a small pause so the player can read the messaging. This is an inner loop, as it's called for each time the INK is changed - hence it's 8192 * 16.
46003 LD HL,8192 HL=8192 (counter).
Teleporting_Pause 46006 DEC HL Decrease HL by one.
46007 LD A,L Jump back to Teleporting_Pause until HL is zero.
46008 OR H
46009 JR NZ,Teleporting_Pause
Handle cycling the text INK colour.
46011 LD A,(46032) A=the attribute byte of String_Teleporting.
46014 INC A Increment A by one.
46015 AND %00000111 Keep only bits 0-2 (INK).
46017 JR NZ,MsgTeleporting_Skip Jump to MsgTeleporting_Skip if A was not zero.
46019 INC A Increment A by one.
MsgTeleporting_Skip 46020 OR %01000000 Set bit 6 (BRIGHT).
46022 LD (46032),A Store A at String_Teleporting to overwrite the attribute byte.
46025 POP BC Restore BC (the colour cycling counter) from the stack.
46026 CALL 47336 Call 47336.
46029 DJNZ MessageTeleporting_Loop Decrease colour cycling counter by one and loop back to MessageTeleporting_Loop until the counter is zero.
46031 RET Return.
Prev: 45968 Up: Map Next: 46032