Routines |
Prev: 6046 | Up: Map | Next: 607D |
Used by the routine at GameOver.
|
||||
CheckHighScore | 605B | LD DE,$5E48 | DE=5E48 noting due to the INC below this is HighScore_1 - 01. | |
605E | LD HL,$5E4B | HL=5E4B noting due to the INC below this is Score_1 - 01. | ||
6061 | LD B,$03 | B=03 (scores are held in three digits). | ||
CheckHighScore_Loop | 6063 | INC HL | Increment HL by one. | |
6064 | INC DE | Increment DE by one. | ||
6065 | LD A,(DE) | Check DE against HL. | ||
6066 | CP (HL) | |||
6067 | JR C,NewHighScore | If the current score digit is higher than the same digit of the high score then jump to NewHighScore. | ||
6069 | 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. | ||
606B | RET NC | Return if the current score digit is less than the same high score digit. | ||
CheckHighScore_Skip | 606C | 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 | 606E | LD B,$03 | B=03 (scores are held in three digits). | |
6070 | LD HL,$5E4C | HL=Score_1. | ||
6073 | LD DE,$5E49 | DE=HighScore_1. | ||
NewHighScore_CopyLoop | 6076 | LD A,(HL) | Copy the byte from HL to DE. | |
6077 | LD (DE),A | |||
6078 | INC HL | Increment HL by one. | ||
6079 | INC DE | Increment DE by one. | ||
607A | DJNZ NewHighScore_CopyLoop | Decrease counter by one and loop back to NewHighScore_CopyLoop until counter is zero. | ||
607C | RET | Return. | ||
Prev: 6046 | Up: Map | Next: 607D |