Routines |
Prev: CDAE | Up: Map | Next: CE12 |
Used by the routine at CAE7.
|
||||
Scoring | CDC3 | LD IX,$D165 | Calls Scoring_Prep three times with IX containing; | |
CDC7 | CALL Scoring_Prep | |||
CDCA | LD IX,$D173 | |||
CDCE | CALL Scoring_Prep | |||
CDD1 | LD IX,$D181 | |||
CDD5 | CALL Scoring_Prep | |||
CDD8 | CALL Draw_Score | Call Draw_Score. | ||
CDDB | RET | Return. | ||
Passes the higher and lower score values to Scoring_Apply for the current door.
|
||||
Scoring_Prep | CDDC | LD HL,$CD87 | References Scoredigit05. | |
CDDF | LD B,(IX+$06) | Retrieves IX+$06, stores it in B then reset it to zero. | ||
CDE2 | LD (IX+$06),$00 | |||
CDE6 | CALL Scoring_Apply | Call Scoring_Apply. | ||
CDE9 | LD HL,$CD88 | References Scoredigit04. | ||
CDEC | LD B,(IX+$07) | Retrieves IX+$07, stores it in B then reset it to zero. | ||
CDEF | LD (IX+$07),$00 | |||
CDF3 | CALL Scoring_Apply | Call Scoring_Apply. | ||
CDF6 | RET | Return. | ||
Applies the door scores into the player score.
|
||||
Scoring_Apply | CDF7 | LD A,(HL) | Pass the current score digit to Scoring_Base_10 and overwrite the digit with the result. | |
CDF8 | CALL Scoring_Base_10 | |||
CDFB | LD (HL),A | |||
CDFC | LD E,$05 | Sets a counter to 05 (5 more digits in the score). | ||
Scoring_Apply_Loop | CDFE | INC HL | Move onto the next scoring digit. | |
CDFF | LD A,(HL) | Pass the current score digit to Scoring_Base_10 and overwrite the digit with the result. | ||
CE00 | CALL Scoring_Base_10 | |||
CE03 | LD (HL),A | |||
CE04 | DEC E | Loop back to Scoring_Apply_Loop until the counter is zero (and all scoring digits are accounted for). | ||
CE05 | JR NZ,Scoring_Apply_Loop | |||
CE07 | 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 | CE08 | ADD A,B | Adds current score digit with passed score. | |
CE09 | LD B,$00 | Reset passed score to zero. | ||
CE0B | CP $0A | Return if result is less than $0A (base 10). | ||
CE0D | RET C | |||
CE0E | SUB $0A | Subtract $0A to keep this digit in base 10 (e.g. "11" becomes "1", "12" becomes "2", and so on). | ||
CE10 | INC B | Add one onto the passed score (which carries onto the next digit as it goes lowest to highest) and return. | ||
CE11 | RET |
Prev: CDAE | Up: Map | Next: CE12 |