------------------------------------------------------------------------------------------------ MAPPY-1D.BIN ------------------------------------------------------------------------------------------------ address purpose new => old A106: 7E 8E jmp $BFA4 ; check_HSS_valid A107: BF A1 A108: A4 52 A118: 7E B6 jmp $BFC8 ; sets the onscreen "high score" value A119: BF 48 ; based on the top high score table A11A: C8 14 ; entry A153: 00 20 ; modified default high score table A156: 00 03 ; A157: 4A 42 ; A158: 50 45 ; A159: 52 48 ; A15B: 00 19 ; A15C: 00 87 ; A15E: 00 03 ; A15F: 4A 55 ; A160: 50 48 ; A161: 52 4F ; A163: 00 17 ; A164: 00 56 ; A166: 00 02 ; A167: 4A 48 ; A168: 50 4F ; A169: 52 59 ; A16B: 00 12 ; A16C: 00 13 ; A16E: 00 02 ; A16F: 4A 44 ; A170: 50 41 ; A171: 52 50 ; A173: 00 10 ; A174: 00 32 ; A176: 00 01 ; A177: 4A 50 ; A178: 50 59 ; A179: 52 41 ; end modified default high score table BFA4 ; --------------------------------------------------------------------------- BFA4 check_HSS_valid: ; jump from $A106 ; check HS table has valid values BFA4 8E 14 65 ldx #$1465 ; address of HS table (HST) BFA7 BFA7 cHv_entries_loop: BFA7 C6 03 ldb #3 BFA9 BFA9 cHv_digits_loop: BFA9 86 40 lda #$40 ; '@' BFAB A1 84 cmpa ,x BFAD 24 13 bcc digit_out_range ; digit < $40 clear HST BFAF 86 60 lda #$60 ; '`' BFB1 A1 80 cmpa ,x+ BFB3 25 0D bcs digit_out_range ; digit > $60 clear HST BFB5 5A decb BFB6 26 F1 bne cHv_digits_loop ; check 3 digits BFB8 30 05 leax 5,x ; skip 5 bytes in HS table BFBA 8C 14 8D cmpx #$148D ; last HST entry BFBD 26 E8 bne cHv_entries_loop BFBF 7E A1 18 jmp $A118 ; continue system POR BFC2 ; --------------------------------------------------------------------------- BFC2 BFC2 digit_out_range: BFC2 BFC2 8E A1 52 ldx #new_HSS_names BFC5 7E A1 09 jmp $A109 ; reset_HST BFC8 ; --------------------------------------------------------------------------- BFC8 BFC8 loc_BFC8: BFC8 8E BF DC ldx #$BFDC ; return_addr ( after setting BFCB 34 10 pshs x ; the high score ) BFCD 34 10 pshs x BFCF 34 10 pshs x BFD1 8E 14 60 ldx #$1460 ; set the onscreen high score BFD4 86 FF lda #$FF BFD6 B7 20 39 sta $2039 ; this code isn't actually needed BFD9 7E F2 AF jmp loc_F2AF ; call set score BFDC ; --------------------------------------------------------------------------- BFDC BFDC return_addr: BFDC FC 14 60 ldd $1460 ; copy top high score from HST BFDF FD 13 85 std $1385 ; to internal high-score var BFE2 B6 14 62 lda $1462 ; checked during gameplay BFE5 B7 13 87 sta $1387 BFE8 B6 48 14 lda $4814 ; restore code moved from POR BFEB 7E A1 1B jmp $A11B ; jump back to continue_POR BFEB ; --------------------------------------------------------------------------- BFFF: 1B B0 ; ROM checksum fix ------------------------------------------------------------------------------------------------ MAPPY-1B.BIN ------------------------------------------------------------------------------------------------ Offset purpose new => old F3E6: 09 07 ; text color change to white in TEST page F3F1: 09 07 ; text color change to white in TEST page F404: 09 07 ; text color change to white in TEST page F436: 09 07 ; text color change to white in TEST page F620: 07 03 F621: 00 60 ; size of RAM test reduced from $700 to $360 bytes ( DON'T CLEAR HIGH SCORE RAM ) 16B4: 09 07 ; text color change to white in TEST page 16B5: 09 07 ; text color change to white in TEST page 1FEF: E2 92 ; ROM checksum fix