![]() |
Routines |
Prev: 24646 | Up: Map | Next: 24701 |
Used by the routine at GameOver.
|
||||
CheckHighScore | 24667 | LD DE,24136 | DE=24136 noting due to the INC below this is HighScore_1 - 1. | |
24670 | LD HL,24139 | HL=24139 noting due to the INC below this is Score_1 - 1. | ||
24673 | LD B,3 | B=3 (scores are held in three digits). | ||
CheckHighScore_Loop | 24675 | INC HL | Increment HL by one. | |
24676 | INC DE | Increment DE by one. | ||
24677 | LD A,(DE) | Check DE against HL. | ||
24678 | CP (HL) | |||
24679 | JR C,NewHighScore | If the current score digit is higher than the same digit of the high score then jump to NewHighScore. | ||
24681 | JR Z,CheckHighScore_Skip | If both the same digits of the current score and high score are the same number jump straight onto CheckHighScore_Skip. | ||
24683 | RET NC | Return if the current score digit is less than the same high score digit. | ||
CheckHighScore_Skip | 24684 | DJNZ CheckHighScore_Loop | Decrease counter by one and loop back to CheckHighScore_Loop until counter is zero. | |
A new High Score has been made, so update HighScore.
|
||||
NewHighScore | 24686 | LD B,3 | B=3 (scores are held in three digits). | |
24688 | LD HL,24140 | HL=Score_1. | ||
24691 | LD DE,24137 | DE=HighScore_1. | ||
NewHighScore_CopyLoop | 24694 | LD A,(HL) | Copy the byte from HL to DE. | |
24695 | LD (DE),A | |||
24696 | INC HL | Increment HL by one. | ||
24697 | INC DE | Increment DE by one. | ||
24698 | DJNZ NewHighScore_CopyLoop | Decrease counter by one and loop back to NewHighScore_CopyLoop until counter is zero. | ||
24700 | RET | Return. | ||
Prev: 24646 | Up: Map | Next: 24701 |