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 |