$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