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