$F1FA/61946:   Find free sectors in current track

Jump from $CD09, $CD27, $F195, $F1A1, $F1ED:

F1FA: 20 11 F0  JSR $F011       ; find BAM field for this track
F1FD: 98        TYA             ; point to number of free blocks
F1FE: 48        PHA
F1FF: 20 20 F2  JSR $F220       ; verify BAM
F202: A5 80     LDA $80         ; track
F204: 20 4B F2  JSR $F24B       ; get max number of sectors of the track
F207: 8D 4E 02  STA $024E       ; save
F20A: 68        PLA
F20B: 85 6F     STA $6F         ; save pointer

Jump from $F21B:

F20D: A5 81     LDA $81         ; compare sector
F20F: CD 4E 02  CMP $024E       ; with maximum number
F212: B0 09     BCS $F21D       ; greater than or equal to?
F214: 20 D5 EF  JSR $EFD5       ; get bit number of sector
F217: D0 06     BNE $F21F       ; sector free?
F219: E6 81     INC $81         ; increment sector number
F21B: D0 F0     BNE $F20D       ; and check if free

Jump from $F212:

F21D: A9 00     LDA #$00        ; no sectors free

Jump from $F217:

F21F: 60        RTS

    Previous Page / Next Page