![]() |
Routines |
Prev: 45968 | Up: Map | Next: 46032 |
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 "
![]() |
||||
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 |