; Juno First high score save ; Matt Osborn, 2003 ; ; changes to code in ROM at position 9B ; (HS RAM at position 8B) ; (encrypted opcodes in parens) ;A048 8E(A6) 81 00 LDX #$8100 ; change this RAM init to start after the HS data A048 8E(A6) 81 A0 LDX #$81A0 ; Juno First HS reset code: ;A0C0 10(32) 8E(AC) 81 00 LDY #$8100 ; init HS table ;A0C4 86(A4) 14 LDA #$14 ;A0C6 97(15) DA STA $DA ;A0C8 8E(A6) D7 04 LDX #$D704 ;A0CB C6(4E) 08 LDB #$08 ;A0CD A6(8E) 80 LDA ,X+ ;A0CF A7(2F) A0 STA ,Y+ ;A0D1 5A(78) DECB ;A0D2 26(A4) F9 BNE $A0CD ;A0D4 0A(28) DA DEC $DA ;A0D6 26(A4) F0 BNE $A0C8 ; sets all 20 HS entries to: ; 01 00 00 02 41 41 41 3F "10000 2 AAA" ; replace the above with the following: ; Juno First conditional HS reset A0C0 B6(94) 88 2D LDA $882D ; complement of DSW 2 stored at $882D A0C3 84(06) 08 ANDA #$08 ; check switch #4 (unused) A0C5 27(05) 11 BEQ $A0D8 ; if OFF jump over reset code ; reset code: (all entries set to "10101 1 ") A0C7 86(04) 01 LDA #$01 A0C9 8E(A6) 81 00 LDX #$8100 A0CC A7(8F) 80 STA ,X+ A0CE 8C(04) 81 A0 CMPX #$81A0 A0D1 26(04) F9 BNE $A0CC ; got 5 bytes left to play with... let's put a couple virtual coins in ;-) A0D3 86(04) 02 LDA #$02 A0D5 B7(95) 88 23 STA $8823 ; (game comes up with 2 credits after successful reset)