$EEF4/61172:   Write BAM if needed

Jump from $C8A7, $DB26, $DD87, $E433:

EEF4: 20 93 DF  JSR $DF93       ; get buffer number
EEF7: AA        TAX
EEF8: BD 5B 02  LDA $025B,X     ; command for disk controller
EEFB: 29 01     AND #$01
EEFD: 85 7F     STA $7F         ; isolate drive number

Jump from $EDAD, $EEA0:

EEFF: A4 7F     LDY $7F
EF01: B9 51 02  LDA $0251,Y     ; BAM-changed flag set?
EF04: D0 01     BNE $EF07       ; yes
EF06: 60        RTS

Jump from $EF04:

EF07: A9 00     LDA #$00
EF09: 99 51 02  STA $0251,Y     ; reset BAM-changed flag
EF0C: 20 3A EF  JSR $EF3A       ; set buffer pointer for BAM
EF0F: A5 7F     LDA $7F         ; drive number
EF11: 0A        ASL             ; times 2
EF12: 48        PHA
EF13: 20 A5 F0  JSR $F0A5       ; verify BAM entry
EF16: 68        PLA
EF17: 18        CLC
EF18: 69 01     ADC #$01        ; inrement track number
EF1A: 20 A5 F0  JSR $F0A5       ; verify BAM entry
EF1D: A5 80     LDA $80         ; track
EF1F: 48        PHA
EF20: A9 01     LDA #$01        ; track 1
EF22: 85 80     STA $80

Jump from $EF32:

EF24: 0A        ASL             ; times 4
EF25: 0A        ASL
EF26: 85 6D     STA $6D
EF28: 20 20 F2  JSR $F220       ; verify BAM
EF2B: E6 80     INC $80         ; increment track number
EF2D: A5 80     LDA $80
EF2F: CD D7 FE  CMP $FED7       ; and compare with max val + 1 = 36
EF32: 90 F0     BCC $EF24       ; ok, next track
EF34: 68        PLA
EF35: 85 80     STA $80         ; get track number back
EF37: 4C 8A D5  JMP $D58A       ; write BAM to disk

    Previous Page / Next Page