Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // It starts by comparing $0451 to #$05
- 006A5 A2 LDX #$05
- 006A7 EC CPX $0451
- // If they are not equal, it runs a subroutine
- 006AA F0 BEQ $006AF
- 006AC 20 JSR $ED88
- // Store a 0 to $3F
- 006AF A9 LDA #$00
- 006B1 85 STA $3F
- // Pull a value from ram
- 006B3 A5 LDA $FC
- // Compare it to #$02
- 006B5 C9 CMP #$02
- // If not equal, exit
- 006B7 D0 BNE $006CD
- // Call a subroutine with Y set to #$0F
- 006B9 A0 LDY #$0F
- 006BB 20 JSR $AF7F
- // The subroutine must set or clear the carry flag as it's output. If it is set, exit
- 006BE B0 BCS $006CD
- // Pull another value from ram
- 006C0 A5 LDA $D4
- // If it is not 0, exit
- 006C2 D0 BNE $006CD
- // Pull another value from ram
- 006C4 AD LDA $0568
- // Clear carry, and add #$10 to it
- 006C7 18 CLC
- 006C8 69 ADC #$10
- // And store it back
- 006CA 8D STA $0568
- //Exit
- 006CD 4C JMP $B535
- // I need to check if the rest of this code is every actually used
- // It seems as though $B535 is the exit point for all this code, so I am going to break up the code based on that
- 006D0 A0 LDY #$00
- 006D2 20 JSR $88B6
- 006D5 4C JMP $B535
- 006D8 A0 LDY #$01
- 006DA 20 JSR $88B6
- 006DD 8A TXA
- 006DE F0 BEQ $00700
- 006E0 A0 LDY #$02
- 006E2 DD CMP $03A0,X *
- 006E5 20 JSR $88B6
- 006E8 AD LDA $0558
- 006EB C9 CMP #$F0
- 006ED 90 BCC $00700
- 006EF A2 LDX #$12
- 006F1 BD LDA $B98B,X *
- 006F4 9D STA $0157,X
- 006F7 CA DEX
- 006F8 10 BPL $006F1
- 006FA 20 JSR $8952
- 006FD 4C JMP $81EE
- 00700 A5 LDA $48
- 00702 29 AND #$07
- 00704 D0 BNE $00712
- // This section swaps the values in $010A and $010B. Why? I have no idea. But it does.
- 00706 AD LDA $010B
- 00709 AE LDX $010A
- 0070C 8E STX $010B
- 0070F 8D STA $010A
- 00712 4C JMP $B535
- // These two bytes (that just happen to equal "CMP #$2F") are checksum values, and should never be used
- 00715 C9 CMP #$2D
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement