$D599/54681:   Verify execution

Jump from $D59C, $C8BE, $CAAC, $CAC6, $CF73, $D0A1, $D4B3, $DB9F, $DC95,
          $DD6A, $DD84, $DDF9, $E05A, $E068, $E430, $E4A9, $E4F0:

D599: 20 A6 D5  JSR $D5A6       ; verify execution
D59C: B0 FB     BCS $D599       ; wait for end
D59E: 48        PHA
D59F: A9 00     LDA #$00
D5A1: 8D 98 02  STA $0298       ; erase error flag
D5A4: 68        PLA
D5A5: 60        RTS

Jump from $D599:

D5A6: B5 00     LDA $00,X       ; command code (bit 7) still in register?
D5A8: 30 1A     BMI $D5C4       ; yes
D5AA: C9 02     CMP #$02
D5AC: 90 14     BCC $D5C2       ; error-free execution
D5AE: C9 08     CMP #$08        ; 8
D5B0: F0 08     BEQ $D5BA       ; write protect
D5B2: C9 0B     CMP #$0B        ; 11
D5B4: F0 04     BEQ $D5BA       ; ID mismatch
D5B6: C9 0F     CMP #$0F        ; 15
D5B8: D0 0C     BNE $D5C6

Jump from $D5B0, $D5B4:

D5BA: 2C 98 02  BIT $0298
D5BD: 30 03     BMI $D5C2
D5BF: 4C 3F D6  JMP $D63F       ; create error message

Jump from $D5AC, $D5BD:

D5C2: 18        CLC             ; execution ended
D5C3: 60        RTS

Jump from $D5A8:

D5C4: 38        SEC             ; execution not yet ended
D5C5: 60        RTS

    Previous Page / Next Page