| Chase H.Q. | Data |
| Prev: C2F6 | Up: Map | Next: C59E |
|
Each text string here is encoded as 2 position-control bytes, 1 attribute byte, then ASCII text with the final character's bit 7 set to mark the end of the string (consumed by the print routine reached via C122). The four strings, decoded in full: $C3AF pos=$02,$0A attr=$48 "BEST OFFICERS" $C3BF pos=$C6,$67 attr=$48 "ENTER YOUR INITIALS" $C3D5 pos=$07,$8E attr=$48 ". . ." (3-initial cursor placeholder) $C3DD pos=$C6,$C0 attr=$48 "RANK SCORE STAGE PLAY NAME" The last string's terminator byte falls exactly at $C3FF, where the preset-rows table below begins.
These are followed by the 10 preset high-score table rows themselves (the same 33-byte layout insert_high_score_entry writes into: 8-digit score, stage code, play/attempt count, 3-character initials -- full field breakdown at $C400 below). The preset initials include "JOB" (row 1) -- John O'Brien, this game's programmer.
At $C54B: 10 packed 2-byte values, copied by insert_high_score_entry into the row-offset table at $C401 (one per high-score row, for scroll_score_rows's scroll). At $C567: the 6-entry, 3-byte-per-stage code table read by insert_high_score_entry (" 1 ", " 2 ", " 3 ", " 4 ", " 5 ", "ALL" -- indexed by wanted_stage_number, 8007, which is 1..5 or 6 for the end screen). At $C55F: the 8-byte score-digit buffer written by check_high_score and read by insert_high_score_entry (initialised here to "00000000").
|
||||
| C3AF | DEFB $02,$0A | Position | ||
| C3B1 | DEFB $48 | Attribute | ||
| C3B2 | DEFM "BEST OFFICER",$D3 | "BEST OFFICERS" | ||
| C3BF | DEFB $C6,$67 | Position | ||
| C3C1 | DEFB $48 | Attribute | ||
| C3C2 | DEFM "ENTER YOUR INITIAL",$D3 | "ENTER YOUR INITIALS" | ||
| C3D5 | DEFB $07,$8E | Position | ||
| C3D7 | DEFB $48 | Attribute | ||
| C3D8 | DEFM ". . ",$AE | ". . ." | ||
| C3DD | DEFB $C6,$C0 | Position | ||
| C3DF | DEFB $48 | Attribute | ||
| C3E0 | DEFM "RANK SCORE STAGE PLAY NAM",$C5 | "RANK SCORE STAGE PLAY NAME" | ||
|
Ten preset rows follow, 33 bytes each (base $C408, stride C065): score (8 ASCII digits), a 4-byte gap, stage code (3 chars), a 5-byte gap, retry digit (1 ASCII char), a 2-byte gap, 3-char name (bit-7 terminated, written by insert_high_score_entry), then a 7-byte tail. The tail is 2 zero bytes followed by the *next* row's 5-char rank suffix ("2ND " etc) -- these suffixes are static screen labels tucked into the previous row's unused stride, not part of the row that follows. Row 10 has no eleventh row to label, so its tail instead begins the packed offset table at $C54B.
|
||||
| C400 | DEFB $00,$00,$00 | Padding | ||
| C403 | DEFM "1ST " | Row 1's rank suffix | ||
| C408 | DEFM "10000000" | Row 1 score | ||
| C410 | DEFB $20,$20,$20,$20 | Gap | ||
| C414 | DEFM "ALL" | Row 1 stage code | ||
| C417 | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C41C | DEFB $32 | Row 1 retry attempt '2' | ||
| C41D | DEFB $20,$20 | Gap | ||
| C41F | DEFM "JO",$C2 | "JOB" (row 1 name) | ||
| C422 | DEFB $00,$00 | Padding | ||
| C424 | DEFM "2ND " | Row 2's rank suffix | ||
| C429 | DEFM " 9888700" | Row 2 score | ||
| C431 | DEFB $20,$20,$20,$20 | Gap | ||
| C435 | DEFM " 5 " | Row 2 stage code | ||
| C438 | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C43D | DEFB $32 | Row 2 retry attempt '2' | ||
| C43E | DEFB $20,$20 | Gap | ||
| C440 | DEFM "BI",$CC | "BIL" (row 2 name) | ||
| C443 | DEFB $00,$00 | Padding | ||
| C445 | DEFM "3RD " | Row 3's rank suffix | ||
| C44A | DEFM " 8900000" | Row 3 score | ||
| C452 | DEFB $20,$20,$20,$20 | Gap | ||
| C456 | DEFM " 4 " | Row 3 stage code | ||
| C459 | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C45E | DEFB $31 | Row 3 retry attempt '1' | ||
| C45F | DEFB $20,$20 | Gap | ||
| C461 | DEFM "JO",$CE | "JON" (row 3 name) | ||
| C464 | DEFB $00,$00 | Padding | ||
| C466 | DEFM "4TH " | Row 4's rank suffix | ||
| C46B | DEFM " 5789000" | Row 4 score | ||
| C473 | DEFB $20,$20,$20,$20 | Gap | ||
| C477 | DEFM " 4 " | Row 4 stage code | ||
| C47A | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C47F | DEFB $32 | Row 4 retry attempt '2' | ||
| C480 | DEFB $20,$20 | Gap | ||
| C482 | DEFM "JA",$CD | "JAM" (row 4 name) | ||
| C485 | DEFB $00,$00 | Padding | ||
| C487 | DEFM "5TH " | Row 5's rank suffix | ||
| C48C | DEFM " 3500000" | Row 5 score | ||
| C494 | DEFB $20,$20,$20,$20 | Gap | ||
| C498 | DEFM " 2 " | Row 5 stage code | ||
| C49B | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C4A0 | DEFB $31 | Row 5 retry attempt '1' | ||
| C4A1 | DEFB $20,$20 | Gap | ||
| C4A3 | DEFM "RO",$C2 | "ROB" (row 5 name) | ||
| C4A6 | DEFB $00,$00 | Padding | ||
| C4A8 | DEFM "6TH " | Row 6's rank suffix | ||
| C4AD | DEFM " 2456000" | Row 6 score | ||
| C4B5 | DEFB $20,$20,$20,$20 | Gap | ||
| C4B9 | DEFM " 2 " | Row 6 stage code | ||
| C4BC | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C4C1 | DEFB $31 | Row 6 retry attempt '1' | ||
| C4C2 | DEFB $20,$20 | Gap | ||
| C4C4 | DEFM "J.",$C2 | "J.B" (row 6 name) | ||
| C4C7 | DEFB $00,$00 | Padding | ||
| C4C9 | DEFM "7TH " | Row 7's rank suffix | ||
| C4CE | DEFM " 956700" | Row 7 score | ||
| C4D6 | DEFB $20,$20,$20,$20 | Gap | ||
| C4DA | DEFM " 1 " | Row 7 stage code | ||
| C4DD | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C4E2 | DEFB $31 | Row 7 retry attempt '1' | ||
| C4E3 | DEFB $20,$20 | Gap | ||
| C4E5 | DEFM "M.",$CC | "M.L" (row 7 name) | ||
| C4E8 | DEFB $00,$00 | Padding | ||
| C4EA | DEFM "8TH " | Row 8's rank suffix | ||
| C4EF | DEFM " 340500" | Row 8 score | ||
| C4F7 | DEFB $20,$20,$20,$20 | Gap | ||
| C4FB | DEFM " 1 " | Row 8 stage code | ||
| C4FE | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C503 | DEFB $31 | Row 8 retry attempt '1' | ||
| C504 | DEFB $20,$20 | Gap | ||
| C506 | DEFM "ST",$C5 | "STE" (row 8 name) | ||
| C509 | DEFB $00,$00 | Padding | ||
| C50B | DEFM "9TH " | Row 9's rank suffix | ||
| C510 | DEFM " 235050" | Row 9 score | ||
| C518 | DEFB $20,$20,$20,$20 | Gap | ||
| C51C | DEFM " 1 " | Row 9 stage code | ||
| C51F | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C524 | DEFB $31 | Row 9 retry attempt '1' | ||
| C525 | DEFB $20,$20 | Gap | ||
| C527 | DEFM "PI",$D8 | "PIX" (row 9 name) | ||
| C52A | DEFB $00,$00 | Padding | ||
| C52C | DEFM "10TH " | Row 10's rank suffix | ||
| C531 | DEFM " 123000" | Row 10 score | ||
| C539 | DEFB $20,$20,$20,$20 | Gap | ||
| C53D | DEFM " 1 " | Row 10 stage code | ||
| C540 | DEFB $20,$20,$20,$20,$20 | Gap | ||
| C545 | DEFB $31 | Row 10 retry attempt '1' | ||
| C546 | DEFB $20,$20 | Gap | ||
| C548 | DEFM "IE",$D3 | "IES" (row 10 name) | ||
|
$C54B: 10 packed 2-byte values, copied by insert_high_score_entry into the row-offset table at $C401 (screen/attribute address pairs used by the scroll code).
|
||||
| C54B | DEFB $80,$38,$C0,$38,$00,$40,$40,$40 | |||
| C553 | DEFB $80,$40,$C0,$40,$00,$48,$40,$48 | |||
| C55B | DEFB $80,$48,$C0,$48 | |||
| C55F | DEFM "00000000" | Score-digit entry buffer | ||
|
$C567: the 6-entry stage-code table indexed by insert_high_score_entry ($C09F) to fill each row's stage-code field.
|
||||
| C567 | DEFM " 1 " | |||
| C56A | DEFM " 2 " | |||
| C56D | DEFM " 3 " | |||
| C570 | DEFM " 4 " | |||
| C573 | DEFM " 5 " | |||
| C576 | DEFM "ALL" | |||
| C579 | DEFB $00,$00,$00,$00,$00,$00 | Padding | ||
| C57F | DEFB $00,$F0,$8E,$48,$40,$40,$40,$90 | |||
| C587 | DEFB $C5,$0C,$00,$0A,$59,$00,$00,$00 | |||
| C58F | DEFB $00,$00,$00,$00,$00,$00,$00,$00 | |||
| C597 | DEFB $00,$00,$00,$F0,$EE,$00,$00 | |||
| Prev: C2F6 | Up: Map | Next: C59E |