$D1E2/53730: Find read channel and buffer Jump from $CB9A, $CBDF, $DC48, $ECA4: D1E2: 18 CLC ; flag for reading Jump from $D1E0: D1E3: 08 PHP ; save D1E4: 85 6F STA $6F ; buffer number D1E6: 20 27 D2 JSR $D227 ; close channel D1E9: 20 7F D3 JSR $D37F ; allocate free channel D1EC: 85 82 STA $82 ; channel number D1EE: A6 83 LDX $83 ; secondary address D1F0: 28 PLP D1F1: 90 02 BCC $D1F5 ; read channel? D1F3: 09 80 ORA #$80 ; flag for writing Jump from $D1F1: D1F5: 9D 2B 02 STA $022B,X ; set D1F8: 29 3F AND #$3F D1FA: A8 TAY D1FB: A9 FF LDA #$FF ; default value D1FD: 99 A7 00 STA $A7,Y D200: 99 AE 00 STA $AE,Y ; write in associated table D203: 99 CD 00 STA $CD,Y D206: C6 6F DEC $6F ; decrement buffer number D208: 30 1C BMI $D226 ; done already? D20A: 20 8E D2 JSR $D28E ; find buffer D20D: 10 08 BPL $D217 ; found? Jump from $D221, $DC7E, $DD13: D20F: 20 5A D2 JSR $D25A ; erase flags in table D212: A9 70 LDA #$70 D214: 4C C8 C1 JMP $C1C8 ; 70, 'no channel' Jump from $D20D: D217: 99 A7 00 STA $A7,Y ; buffer number in table D21A: C6 6F DEC $6F ; buffer number D21C: 30 08 BMI $D226 ; already done? D21E: 20 8E D2 JSR $D28E ; find buffer D221: 30 EC BMI $D20F ; not found? D223: 99 AE 00 STA $AE,Y ; buffer number in table Jump from $D208, $D21C: D226: 60 RTS Previous Page / Next Page |