    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