Prev: $2573 Up: Map Next: $267A
$2620: Print the score, lines total or hi-score
Used by the routines at $1D37 (to print the score), $1D4A (to print the lines total) and $2E13 (to print the hi-score).
Input
A 0 (score), 1 (lines total) or 2 (hi-score)
($4E) LSB of the address of the value to print
$2620 STA $E6 Store the number identifier at $E6.
$2622 LDA #$00 Set the MSB of the address of the value to print.
$2624 STA $4F
$2626 TAY Copy the value to print to $A3.
$2627 LDA ($4E),Y
$2629 STA $A3
$262B INY
$262C LDA ($4E),Y
$262E STA $A4
$2630 JSR $217E Generate the character codes of the digits of this value at $8A-$8E.
$2633 LDA #$03 Store the width (in character cells) of the area in which the number will be printed at $9D.
$2635 STA $9D
$2637 LDA #$8A Store the address of the digit character codes ($8A) at $D6.
$2639 STA $D6
$263B LDA #$00
$263D STA $D7
$263F JSR $2005 Write the digits of the value into the text graphic buffer.
$2642 LDA $E6 Pick up the number identifier from $E6.
$2644 BNE $2651 Branch unless it's the score.
$2646 LDA #$FB Store the screen bitmap address for the score ($FB40) at $50.
$2648 STA $51
$264A LDA #$40
$264C STA $50
$264E JMP $2668 Jump forward.
$2651 CMP #$01 Are we printing the lines total?
$2653 BNE $2660 Branch if not.
$2655 LDA #$FC Store the screen bitmap address for the lines total ($FC80) at $50.
$2657 STA $51
$2659 LDA #$80
$265B STA $50
$265D JMP $2668 Jump forward.
$2660 LDA #$FD Store the screen bitmap address for the hi-score ($FDC0) at $50.
$2662 STA $51
$2664 LDA #$C0
$2666 STA $50
$2668 LDY #$17 Y will count the bytes to copy from the text graphic buffer.
$266A LDA #$45 Store the address of the first byte to copy from the text graphic buffer ($45E8) at $4E.
$266C STA $4F
$266E LDA #$E8
$2670 STA $4E
$2672 LDA ($4E),Y Copy 24 bytes (3 character cells) from the text graphic buffer to the screen.
$2674 STA ($50),Y
$2676 DEY
$2677 BPL $2672
$2679 RTS
Prev: $2573 Up: Map Next: $267A