Eintrag im Directory mit gesuchten Eintraegen vergleichen ($c4d8)

Einsprung von $82D0, $8309:

8327: A2 FF     LDX #$FF
8329: 8E 6D 02  STX $026D        Flag fuer 'kein gesuchter Eintrag gefunden'
832C: E8        INX
832D: 8E A1 02  STX $02A1        Jokerflag loeschen

8330: 20 D7 83  JSR $83D7        pruefen, ob noch Dateien nicht gefunden
8333: F0 06     BEQ $833B        wurden. ja, ==>

Einsprung von $8339:

8335: 60        RTS

Einsprung von $8344, $834B, $8362, $8368, $8383, $8421:

8336: 20 E2 83  JSR $83E2        naechste nicht gefundene Datei pruefen
8339: D0 FA     BNE $8335        keine da ? ja, ==>

Einsprung von $8333:

833B: A9 00     LDA #$00         Aktuelle Drivenummer
833D: 55 EF     EOR $EF,X        mit angegebener Drivenummer vergleichen
833F: 4A        LSR
8340: 90 0B     BCC $834D        gleich, ==>
8342: 29 40     AND #$40         war eine Drivenummer angegeben ?
8344: F0 F0     BEQ $8336        ja, (naechste Datei) ==>
8346: A9 02     LDA #$02         (macht bei der 1581 keinen Sinn)
8348: CD A3 02  CMP $02A3        ist immer 0 !
834B: F0 E9     BEQ $8336        wird nie ausgefuehrt

Einsprung von $8340:

834D: BD 91 02  LDA $0291,X      Position des Dateinamens holen
8350: AA        TAX
8351: 20 26 85  JSR $8526        Laenge des Dateinamens ermitteln
8354: A0 03     LDY #$03         Dateiname steht ab der 3.Position
8356: 4C 6C 83  JMP $836C        im Direktory-Eintrag

Einsprung von $8376:

8359: BD 00 02  LDA $0200,X      Zeichen aus Kommandozeile
835C: D1 64     CMP ($64),Y      mit Zeichen aus Dir-Eintrag vergleichen
835E: F0 0A     BEQ $836A        gleich, ==>
8360: C9 3F     CMP #$3F         Joker '?' ?
8362: D0 D2     BNE $8336        nein, (Name nicht richtig) ==>
8364: B1 64     LDA ($64),Y      Dateinamenende ?
8366: C9 A0     CMP #$A0         (LOAD"test?" findet kein "test")
8368: F0 CC     BEQ $8336        ja, (Name nicht richtig) ==>

Einsprung von $835E:

836A: E8        INX              naechste Zeichen vergleichen
836B: C8        INY

Einsprung von $8356:

836C: EC 90 02  CPX $0290        Dateinamenende erreicht ?
836F: B0 0A     BCS $837B        ja, ==>
8371: BD 00 02  LDA $0200,X      Ist ein '*' an der aktuellen Position
8374: C9 2A     CMP #$2A
8376: D0 E1     BNE $8359        nein, ==>
8378: 4C FA 83  JMP $83FA        1581: Zeichen hinter '*' pruefen

Einsprung von $836F:

837B: C0 13     CPY #$13         max. Dateinamenlaenge (3+16) ?
837D: B0 06     BCS $8385        ja, ==>
837F: B1 64     LDA ($64),Y      Auf Dateinamenende pruefen
8381: C9 A0     CMP #$A0         ($a0: Endkennzeichen)
8383: D0 B1     BNE $8336        nein, (Name nicht richtig) ==>

Dateidaten der gefundenen Datei merken

Einsprung von $837D, $841E:

8385: AE 30 02  LDX $0230        Nummer des gefundenen Dateinamens merken
8388: 8E 6D 02  STX $026D
838B: B5 F4     LDA $F4,X        Jokerflag holen
838D: 29 80     AND #$80         und merken
838F: 8D A1 02  STA $02A1        (fuer uebergeordnete Routinen)
8392: AD 32 02  LDA $0232        Position und Dir-Block
8395: 95 EA     STA $EA,X        des Dateieintrages merken
8397: A5 4E     LDA $4E          [Parameter wird eigentlich in $71
8399: 95 E5     STA $E5,X         uebergeben - na ja, egal]
839B: A0 00     LDY #$00
839D: B1 64     LDA ($64),Y      Dateityp holen
839F: C8        INY
83A0: 48        PHA
83A1: 29 40     AND #$40         Scratch-Schutz merken
83A3: 85 40     STA $40
83A5: 68        PLA
83A6: 29 DF     AND #$DF         Scratch-Schutz ausblenden
83A8: 30 02     BMI $83AC        ist Datei geschlossen ? ja, ==>
83AA: 09 20     ORA #$20         Dateityp mit '*'-Flag merken

Einsprung von $83A8:

83AC: 29 27     AND #$27
83AE: 05 40     ORA $40          Scratch-Schutz einblenden
83B0: 85 40     STA $40
83B2: A9 80     LDA #$80         Flag fuer Joker holen
83B4: 35 F4     AND $F4,X
83B6: 05 40     ORA $40          Dateityp einblenden
83B8: 95 F4     STA $F4,X
83BA: B5 EF     LDA $EF,X        Drivenummer merken
83BC: 29 80     AND #$80         ['ORA Drivenummer' entfaellt]
83BE: 95 EF     STA $EF,X        b7=1: kein Laufwerk angegeben
83C0: B1 64     LDA ($64),Y      Track merken
83C2: 9D 97 02  STA $0297,X
83C5: C8        INY
83C6: B1 64     LDA ($64),Y      Sektor merken
83C8: 9D 9C 02  STA $029C,X
83CB: AD 6F 02  LDA $026F        ist Recordlaenge gesetzt ?
83CE: D0 07     BNE $83D7        ja, ==>
83D0: A0 15     LDY #$15         Recordlaenge merken
83D2: B1 64     LDA ($64),Y
83D4: 8D 6F 02  STA $026F

    Previous Page / Next Page