Routines |
Prev: 6374 | Up: Map | Next: 63CB |
Used by the routine at PlayerReset.
|
||||
NewHighScore | 6398 | LD HL,($5CF4) | ||
639B | LD DE,($5CF7) | |||
639F | LD A,L | |||
63A0 | LD L,H | |||
63A1 | LD H,A | |||
63A2 | LD A,E | |||
63A3 | LD E,D | |||
63A4 | LD D,A | |||
63A5 | AND A | |||
63A6 | SBC HL,DE | |||
63A8 | JR C,COMPARE_2UP_SCORE | |||
63AA | JR NZ,COMPARE_1UP_SCORE | |||
63AC | LD A,($5CF6) | E=5CF6. | ||
63AF | LD E,A | |||
63B0 | LD A,($5CF9) | Compare E with 5CF9. | ||
63B3 | CP E | |||
63B4 | JR C,COMPARE_1UP_SCORE | Jump if carry flag is set to COMPARE_1UP_SCORE | ||
Tests to see if the highscore has been beaten by 2UP.
|
||||
COMPARE_2UP_SCORE | 63B6 | LD HL,$5CF7 | HL=2UP_Score | |
This entry point is used by the routine at UPDATE_HIGHSCORE.
|
||||
CHECK_HIGHSCORE | 63B9 | PUSH HL | Push HL onto the stack (see UPDATE_HIGHSCORE) | |
63BA | LD DE,$5CF0 | DE=High_Score | ||
63BD | LD B,$03 | B=$03 | ||
NewHighScore_0 | 63BF | LD A,(DE) | Compare A against High_Score | |
63C0 | CP (HL) | |||
63C1 | JR C,UPDATE_HIGHSCORE | If it's higher, update the highscore | ||
63C3 | JR NZ,NewHighScore_1 | Jump if not zero to NewHighScore_1 (so if it's less than the current highscore) | ||
63C5 | INC HL | Increase HL by one | ||
63C6 | INC DE | Increase DE by one | ||
63C7 | DJNZ NewHighScore_0 | Decrease B by one, jump to NewHighScore_0 if not zero | ||
NewHighScore_1 | 63C9 | POP HL | Fetch HL off the stack (to clear it) | |
63CA | RET | Return |
Prev: 6374 | Up: Map | Next: 63CB |