$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 |