Routines |
Prev: B390 | Up: Map | Next: B3D0 |
Used by the routine at A1AA.
|
||||
MessageTeleporting | B3A3 | DI | Disable interrupts. | |
B3A4 | CALL $8BA5 | Call 8BA5. | ||
B3A7 | LD B,$10 | B=10 (colour cycling counter). | ||
MessageTeleporting_Loop | B3A9 | PUSH BC | Stash BC (the colour cycling counter) on the stack. | |
Handle printing "" messaging.
|
||||
B3AA | LD HL,$7058 | HL=7058 (screen buffer location). | ||
B3AD | LD DE,$B3D0 | DE=String_Teleporting. | ||
B3B0 | 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 2000 * 10.
|
||||
B3B3 | LD HL,$2000 | HL=2000 (counter). | ||
Teleporting_Pause | B3B6 | DEC HL | Decrease HL by one. | |
B3B7 | LD A,L | Jump back to Teleporting_Pause until HL is zero. | ||
B3B8 | OR H | |||
B3B9 | JR NZ,Teleporting_Pause | |||
Handle cycling the text INK colour.
|
||||
B3BB | LD A,($B3D0) | A=the attribute byte of String_Teleporting. | ||
B3BE | INC A | Increment A by one. | ||
B3BF | AND %00000111 | Keep only bits 0-2 (INK). | ||
B3C1 | JR NZ,MsgTeleporting_Skip | Jump to MsgTeleporting_Skip if A was not zero. | ||
B3C3 | INC A | Increment A by one. | ||
MsgTeleporting_Skip | B3C4 | OR %01000000 | Set bit 6 (BRIGHT). | |
B3C6 | LD ($B3D0),A | Store A at String_Teleporting to overwrite the attribute byte. | ||
B3C9 | POP BC | Restore BC (the colour cycling counter) from the stack. | ||
B3CA | CALL $B8E8 | Call B8E8. | ||
B3CD | DJNZ MessageTeleporting_Loop | Decrease colour cycling counter by one and loop back to MessageTeleporting_Loop until the counter is zero. | ||
B3CF | RET | Return. |
Prev: B390 | Up: Map | Next: B3D0 |