$DC46/56390: Read block, allocate buffer Jump from $D47E, $D7E4, $D80B, $D9D0: DC46: A9 01 LDA #$01 DC48: 20 E2 D1 JSR $D1E2 ; find channel and buffer for read DC4B: 20 B6 DC JSR $DCB6 ; set pointer DC4E: AD 4A 02 LDA $024A ; file type DC51: 48 PHA ; save DC52: 0A ASL DC53: 05 7F ORA $7F ; drive number DC55: 95 EC STA $EC,X DC57: 20 9B D0 JSR $D09B ; read block in buffer DC5A: A6 82 LDX $82 ; channel number DC5C: A5 80 LDA $80 ; track DC5E: D0 05 BNE $DC65 ; following track? DC60: A5 81 LDA $81 ; sector DC62: 9D 44 02 STA $0244,X ; as end pointer Jump from $DC5E: DC65: 68 PLA ; file type DC66: C9 04 CMP #$04 ; rel-file? DC68: D0 3F BNE $DCA9 ; no DC6A: A4 83 LDY $83 ; secondary address DC6C: B9 2B 02 LDA $022B,Y ; channel number DC6F: 09 40 ORA #$40 DC71: 99 2B 02 STA $022B,Y ; set flag for READ and WRITE DC74: AD 58 02 LDA $0258 ; record length DC77: 95 C7 STA $C7,X DC79: 20 8E D2 JSR $D28E ; find buffer for side-sector DC7C: 10 03 BPL $DC81 ; found? DC7E: 4C 0F D2 JMP $D20F ; 70, 'no channel' Jump from $DC7C: DC81: A6 82 LDX $82 ; channel number DC83: 95 CD STA $CD,X DC85: AC 59 02 LDY $0259 DC88: 84 80 STY $80 ; track for side-sector DC8A: AC 5A 02 LDY $025A DC8D: 84 81 STY $81 ; sector for side-sector DC8F: 20 D3 D6 JSR $D6D3 ; transmit parameters to disk controller DC92: 20 73 DE JSR $DE73 ; read block DC95: 20 99 D5 JSR $D599 ; and verify Jump from $DD8A: DC98: A6 82 LDX $82 ; channel number DC9A: A9 02 LDA #$02 DC9C: 95 C1 STA $C1,X ; pointer for writing DC9E: A9 00 LDA #$00 DCA0: 20 C8 D4 JSR $D4C8 ; buffer pointer to zero DCA3: 20 53 E1 JSR $E153 ; find next record DCA6: 4C 3E DE JMP $DE3E ; get track and sector number Jump from $DC68: DCA9: 20 56 D1 JSR $D156 ; get byte from buffer DCAC: A6 82 LDX $82 ; channel number DCAE: 9D 3E 02 STA $023E,X ; byte in output register DCB1: A9 88 LDA #$88 ; set flag for READ DCB3: 95 F2 STA $F2,X DCB5: 60 RTS Previous Page / Next Page |