     $E1CB/57803:   Get last side-sector

    Jump from $CA56, $CA69, $DB32, $DF0B, $E31F:

    E1CB: 20 D2 DE  JSR $DED2       ; get number of the side-sector
    E1CE: 85 D5     STA $D5         ; save
    E1D0: A9 04     LDA #$04
    E1D2: 85 94     STA $94         ; pointer to side-sectors
    E1D4: A0 0A     LDY #$0A
    E1D6: D0 04     BNE $E1DC

    Jump from $E1DE:

    E1D8: 88        DEY
    E1D9: 88        DEY
    E1DA: 30 26     BMI $E202

    Jump from $E1D6:

    E1DC: B1 94     LDA ($94),Y     ; track number of the previous block
    E1DE: F0 F8     BEQ $E1D8
    E1E0: 98        TYA
    E1E1: 4A        LSR             ; divide by 2
    E1E2: C5 D5     CMP $D5         ; = number of the actual block?
    E1E4: F0 09     BEQ $E1EF       ; yes
    E1E6: 85 D5     STA $D5         ; else save all numbers
    E1E8: A6 82     LDX $82         ; channel number
    E1EA: B5 CD     LDA $CD,X       ; buffer number
    E1EC: 20 1B DF  JSR $DF1B       ; read block

    Jump from $E1E4:

    E1EF: A0 00     LDY #$00
    E1F1: 84 94     STY $94         ; buffer pointer
    E1F3: B1 94     LDA ($94),Y     ; track number
    E1F5: D0 0B     BNE $E202       ; another block?
    E1F7: C8        INY
    E1F8: B1 94     LDA ($94),Y     ; sector number = end pointer
    E1FA: A8        TAY
    E1FB: 88        DEY
    E1FC: 84 D6     STY $D6         ; save end pointer
    E1FE: 98        TYA
    E1FF: 4C E9 DE  JMP $DEE9       ; set buffer pointer

    Jump from $E1DA, $E1F5, $E286:

    E202: A9 67     LDA #$67
    E204: 20 45 E6  JSR $E645       ; 67, 'illegal track or sector'

        Previous Page / Next Page