Prev: 53386 Up: Map Next: 53460
53420: Animate Title Screen
Used by the routine at DisplayIntroductionScreen.
AnimateTitleScreen 53420 LD HL,16384 HL=16384 (screen buffer destination).
53423 LD DE,27000 DE=IntroductionScreen (source).
Find the next instance of "5" in the source data.
AnimateTitleScreen_Loop 53426 LD A,(DE) Jump to AnimateTitleScreen_Increment if *DE is not equal to 5.
53427 CP 5
53429 JR NZ,AnimateTitleScreen_Increment
53431 LD A,(HL) Seems to do nothing; as both A and the flags are overwritten in the UpdateAnimationCounter call.
53432 CP 0
53434 CALL UpdateAnimationCounter Call UpdateAnimationCounter.
On returning; A=(*55407*5)+1.
53437 CP 128 Jump to AnimateTitleScreen_Reset if A is higher than 128.
53439 JR NC,AnimateTitleScreen_Reset
53441 LD (HL),A Write A to the screen buffer pointer address.
53442 JR AnimateTitleScreen_Increment Jump to AnimateTitleScreen_Increment.
This byte has finished its cycle, so reset it.
AnimateTitleScreen_Reset 53444 LD A,0 Reset the current byte in the screen buffer back to 0.
53446 LD (HL),A
Increment both source and destination pointers and loop back until the entire screen buffer has been processed.
AnimateTitleScreen_Increment 53447 INC HL Increment screen buffer pointer by one.
53448 INC DE Increment source data pointer by one.
53449 LD A,H Jump to AnimateTitleScreen_Loop if H is not equal to 88.
53450 CP 88
53452 JR NZ,AnimateTitleScreen_Loop
53454 LD A,L Jump to AnimateTitleScreen_Loop if L is not equal to 0.
53455 CP 0
53457 JR NZ,AnimateTitleScreen_Loop
The end of the screen buffer has been reached, so return.
53459 RET Return.
Prev: 53386 Up: Map Next: 53460