Routines |
Prev: 52654 | Up: Map | Next: 52754 |
Used by the routine at 51943.
|
||||
Scoring | 52675 | LD IX,53605 | Calls Scoring_Prep three times with IX containing; | |
52679 | CALL Scoring_Prep | |||
52682 | LD IX,53619 | |||
52686 | CALL Scoring_Prep | |||
52689 | LD IX,53633 | |||
52693 | CALL Scoring_Prep | |||
52696 | CALL Draw_Score | Call Draw_Score. | ||
52699 | RET | Return. | ||
Passes the higher and lower score values to Scoring_Apply for the current door.
|
||||
Scoring_Prep | 52700 | LD HL,52615 | References Scoredigit05. | |
52703 | LD B,(IX+6) | Retrieves IX+$06, stores it in B then reset it to zero. | ||
52706 | LD (IX+6),0 | |||
52710 | CALL Scoring_Apply | Call Scoring_Apply. | ||
52713 | LD HL,52616 | References Scoredigit04. | ||
52716 | LD B,(IX+7) | Retrieves IX+$07, stores it in B then reset it to zero. | ||
52719 | LD (IX+7),0 | |||
52723 | CALL Scoring_Apply | Call Scoring_Apply. | ||
52726 | RET | Return. | ||
Applies the door scores into the player score.
|
||||
Scoring_Apply | 52727 | LD A,(HL) | Pass the current score digit to Scoring_Base_10 and overwrite the digit with the result. | |
52728 | CALL Scoring_Base_10 | |||
52731 | LD (HL),A | |||
52732 | LD E,5 | Sets a counter to 5 (5 more digits in the score). | ||
Scoring_Apply_Loop | 52734 | INC HL | Move onto the next scoring digit. | |
52735 | LD A,(HL) | Pass the current score digit to Scoring_Base_10 and overwrite the digit with the result. | ||
52736 | CALL Scoring_Base_10 | |||
52739 | LD (HL),A | |||
52740 | DEC E | Loop back to Scoring_Apply_Loop until the counter is zero (and all scoring digits are accounted for). | ||
52741 | JR NZ,Scoring_Apply_Loop | |||
52743 | RET | Return. | ||
Ensures the current scoring digit remains 0-9 (if $0A then it's reset and the carry digit is forwarded on).
|
||||
Scoring_Base_10 | 52744 | ADD A,B | Adds current score digit with passed score. | |
52745 | LD B,0 | Reset passed score to zero. | ||
52747 | CP 10 | Return if result is less than $0A (base 10). | ||
52749 | RET C | |||
52750 | SUB 10 | Subtract $0A to keep this digit in base 10 (e.g. "11" becomes "1", "12" becomes "2", and so on). | ||
52752 | INC B | Add one onto the passed score (which carries onto the next digit as it goes lowest to highest) and return. | ||
52753 | RET |
Prev: 52654 | Up: Map | Next: 52754 |