$C4D8/50392: ?
Jump from $C475, $C4BA:
C4D8: A2 FF LDX #$FF
C4DA: 8E 53 02 STX $0253 ; flag for data found
C4DD: E8 INX
C4DE: 8E 8A 02 STX $028A
C4E1: 20 89 C5 JSR $C589 ; set pointer to data
C4E4: F0 06 BEQ $C4EC
Jump from $C4EA:
C4E6: 60 RTS
Jump from $C4F5, $C4FC, $C513, $C519, $C533:
C4E7: 20 94 C5 JSR $C594 ; pointer to next file
C4EA: D0 FA BNE $C4E6 ; end, then done
Jump from $C4E4:
C4EC: A5 7F LDA $7F ; drive number
C4EE: 55 E2 EOR $E2,X
C4F0: 4A LSR
C4F1: 90 0B BCC $C4FE
C4F3: 29 40 AND #$40
C4F5: F0 F0 BEQ $C4E7
C4F7: A9 02 LDA #$02
C4F9: CD 8C 02 CMP $028C ; search both drives?
C4FC: F0 E9 BEQ $C4E7 ; yes
Jump from $C4F1:
C4FE: BD 7A 02 LDA $027A,X
C501: AA TAX
C502: 20 A6 C6 JSR $C6A6 ; get length of filename
C505: A0 03 LDY #$03
C507: 4C 1D C5 JMP $C51D
Jump from $C529:
C50A: BD 00 02 LDA $0200,X ; get chars out of command line
C50D: D1 94 CMP ($94),Y ; same character in directory?
C50F: F0 0A BEQ $C51B ; yes
C511: C9 3F CMP #$3F ; '?'
C513: D0 D2 BNE $C4E7 ; no
C515: B1 94 LDA ($94),Y
C517: C9 A0 CMP #$A0 ; shift blank, end of name?
C519: F0 CC BEQ $C4E7 ; yes
Jump from $C50F:
C51B: E8 INX ; increment pointer
C51C: C8 INY
Jump from $C507:
C51D: EC 76 02 CPX $0276 ; end of the name in the command?
C520: B0 09 BCS $C52B ; yes
C522: BD 00 02 LDA $0200,X ; next character
C525: C9 2A CMP #$2A ; '*'
C527: F0 0C BEQ $C535 ; yes, file found
C529: D0 DF BNE $C50A ; continue search
Jump from $C520:
C52B: C0 13 CPY #$13 ; 19
C52D: B0 06 BCS $C535 ; reached end of name
C52F: B1 94 LDA ($94),Y
C531: C9 A0 CMP #$A0 ; shift blank, end of name
C533: D0 B2 BNE $C4E7 ; not found
Jump from $C527, $C52D:
C535: AE 79 02 LDX $0279
C538: 8E 53 02 STX $0253
C53B: B5 E7 LDA $E7,X
C53D: 29 80 AND #$80
C53F: 8D 8A 02 STA $028A
C542: AD 94 02 LDA $0294
C545: 95 DD STA $DD,X
C547: A5 81 LDA $81 ; sector number of the directory
C549: 95 D8 STA $D8,X ; enter in table
C54B: A0 00 LDY #$00
C54D: B1 94 LDA ($94),Y ; file type
C54F: C8 INY
C550: 48 PHA
C551: 29 40 AND #$40 ; isolate search-protect bit
C553: 85 6F STA $6F ; (6) and save
C555: 68 PLA
C556: 29 DF AND #$DF ; erase bit 7
C558: 30 02 BMI $C55C
C55A: 09 20 ORA #$20 ; set bit 5
Jump from $C558:
C55C: 29 27 AND #$27 ; erase bits 3 and 4
C55E: 05 6F ORA $6F ; get bit 6 again
C560: 85 6F STA $6F
C562: A9 80 LDA #$80
C564: 35 E7 AND $E7,X ; isolate flag for wildcard
C566: 05 6F ORA $6F
C568: 95 E7 STA $E7,X ; write in table
C56A: B5 E2 LDA $E2,X
C56C: 29 80 AND #$80
C56E: 05 7F ORA $7F ; drive number
C570: 95 E2 STA $E2,X
C572: B1 94 LDA ($94),Y
C574: 9D 80 02 STA $0280,X ; first track of file
C577: C8 INY
C578: B1 94 LDA ($94),Y
C57A: 9D 85 02 STA $0285,X ; get sector from directory
C57D: AD 58 02 LDA $0258 ; record length
C580: D0 07 BNE $C589
C582: A0 15 LDY #$15
C584: B1 94 LDA ($94),Y ; record length
C586: 8D 58 02 STA $0258 ; get from directory
Jump from $C4E1, $C580:
C589: A9 FF LDA #$FF
C58B: 8D 8F 02 STA $028F
C58E: AD 78 02 LDA $0278
C591: 8D 79 02 STA $0279
Jump from $C4E7, $C5A4:
C594: CE 79 02 DEC $0279
C597: 10 01 BPL $C59A
C599: 60 RTS
Jump from $C597:
C59A: AE 79 02 LDX $0279
C59D: B5 E7 LDA $E7,X ; wildcard flag set?
C59F: 30 05 BMI $C5A6 ; yes
C5A1: BD 80 02 LDA $0280,X ; track number already set
C5A4: D0 EE BNE $C594 ; yes
Jump from $C59F:
C5A6: A9 00 LDA #$00
C5A8: 8D 8F 02 STA $028F
C5AB: 60 RTS
Previous Page / Next Page