$CB84/52100: Open direct access channel, number
Jump from $D819:
CB84: AD 8E 02 LDA $028E ; last drive number
CB87: 85 7F STA $7F ; drive number
CB89: A5 83 LDA $83 ; channel number
CB8B: 48 PHA
CB8C: 20 3D C6 JSR $C63D ; check drive and initialize
CB8F: 68 PLA
CB90: 85 83 STA $83
CB92: AE 74 02 LDX $0274 ; length of filename
CB95: CA DEX
CB96: D0 0D BNE $CBA5 ; greater than one?
CB98: A9 01 LDA #$01
CB9A: 20 E2 D1 JSR $D1E2 ; layout buffer and channel
CB9D: 4C F1 CB JMP $CBF1 ; set flags, done
Jump from $CBAF, $CBC4, $CBCB:
CBA0: A9 70 LDA #$70
CBA2: 4C C8 C1 JMP $C1C8 ; 70, 'no channel'
Jump from $CB96:
CBA5: A0 01 LDY #$01
CBA7: 20 7C CC JSR $CC7C ; get buffer number
CBAA: AE 85 02 LDX $0285 ; buffer number
CBAD: E0 05 CPX #$05 ; bigger than 5?
CBAF: B0 EF BCS $CBA0 ; 70, 'no channel'
CBB1: A9 00 LDA #$00
CBB3: 85 6F STA $6F
CBB5: 85 70 STA $70
CBB7: 38 SEC
Jump from $CBBD:
CBB8: 26 6F ROL $6F
CBBA: 26 70 ROL $70
CBBC: CA DEX
CBBD: 10 F9 BPL $CBB8
CBBF: A5 6F LDA $6F
CBC1: 2D 4F 02 AND $024F
CBC4: D0 DA BNE $CBA0
CBC6: A5 70 LDA $70
CBC8: 2D 50 02 AND $0250
CBCB: D0 D3 BNE $CBA0
CBCD: A5 6F LDA $6F
CBCF: 0D 4F 02 ORA $024F
CBD2: 8D 4F 02 STA $024F
CBD5: A5 70 LDA $70
CBD7: 0D 50 02 ORA $0250
CBDA: 8D 50 02 STA $0250
CBDD: A9 00 LDA #$00
CBDF: 20 E2 D1 JSR $D1E2 ; search channel
CBE2: A6 82 LDX $82 ; channel number
CBE4: AD 85 02 LDA $0285 ; buffer number
CBE7: 95 A7 STA $A7,X
CBE9: AA TAX
CBEA: A5 7F LDA $7F ; drive number
CBEC: 95 00 STA $00,X
CBEE: 9D 5B 02 STA $025B,X
Jump from $CB9D:
CBF1: A6 83 LDX $83 ; secondary address
CBF3: BD 2B 02 LDA $022B,X
CBF6: 09 40 ORA #$40 ; set READ and WRITE flags
CBF8: 9D 2B 02 STA $022B,X
CBFB: A4 82 LDY $82 ; channel number
CBFD: A9 FF LDA #$FF
CBFF: 99 44 02 STA $0244,Y ; end pointer
CC02: A9 89 LDA #$89
CC04: 99 F2 00 STA $F2,Y ; set READ and WRITE flags
CC07: B9 A7 00 LDA $A7,Y ; buffer number
CC0A: 99 3E 02 STA $023E,Y
CC0D: 0A ASL ; times 2
CC0E: AA TAX
CC0F: A9 01 LDA #$01
CC11: 95 99 STA $99,X ; buffer pointer to one
CC13: A9 0E LDA #$0E
CC15: 99 EC 00 STA $EC,Y ; flag for direct access
CC18: 4C 94 C1 JMP $C194 ; done
Previous Page / Next Page