Copy ($c8f0)
876E: A9 00 LDA #$00 Flag: 'Bampuffer leer' setzen
8770: 8D 00 0A STA $0A00
8773: A9 1F LDA #$1F alle Kanaele freigeben
8775: 85 70 STA $70
8777: 20 99 80 JSR $8099 ':' suchen
877A: D0 03 BNE $877F gefunden
877C: 4C 7E 89 JMP $897E 31, SYNTAX ERROR
Einsprung von $877A:
877F: 20 AC 80 JSR $80AC Eingabezeile pruefen
8782: 20 0B 82 JSR $820B Drivenummer(n) holen
8785: AD A2 02 LDA $02A2 Syntaxflag pruefen (Bedeutung: s. $db9c)
8788: 29 55 AND #$55 Ist ein ',' hinter dem '=' ?
878A: D0 0F BNE $879B ja, ==>
878C: AE 91 02 LDX $0291
878F: BD 00 02 LDA $0200,X beginnt der 1. Filename mit einem '*' ?
8792: C9 2A CMP #$2A
8794: D0 05 BNE $879B nein, ==>
Einsprung von $87A0:
8796: A9 30 LDA #$30 30, Syntax Error
8798: 4C 7C 80 JMP $807C
Einsprung von $878A, $8794:
879B: AD A2 02 LDA $02A2 Ist ein '*' in der Befehlszeile ?
879E: 29 D9 AND #$D9
87A0: D0 F4 BNE $8796 ja, ==>
87A2: 20 B9 82 JSR $82B9 alle angegebenen Files suchen
87A5: AD 2F 02 LDA $022F Anzahl der gefundenen Files
87A8: C9 03 CMP #$03 < 3 (also = 2) ?
87AA: 90 42 BCC $87EE ja, ==>
File vor dem '=' mit 1. File hinter dem '=' vergleichen
87AC: A5 EF LDA $EF sind die Drivenummern gleich ? [Wenn keine
87AE: C5 F0 CMP $F0 Nummern angegeben werden, ist die eine $00
87B0: D0 3C BNE $87EE und die andere $80 !!!] nein, ==>
87B2: A5 EA LDA $EA Zeiger in Dir-Block gleich ?
87B4: C5 EB CMP $EB
87B6: D0 36 BNE $87EE nein, ==>
87B8: A5 E5 LDA $E5 Stehen beide Files im selben Dir-Block ?
87BA: C5 E6 CMP $E6
87BC: D0 30 BNE $87EE nein, ==>
Neue Datei(en) an eine alte anhaengen (CONCAT)
87BE: 20 03 89 JSR $8903 pruefen, ob alle Files existieren
87C1: A9 01 LDA #$01 Zeiger auf das 1. File nach dem '=' setzen
87C3: 8D 30 02 STA $0230
87C6: 20 41 88 JSR $8841 File zum Lesen oeffnen
87C9: 20 5F 90 JSR $905F aktuellen Dateityp holen
87CC: B0 04 BCS $87D2 = REL-Datei, ==>
87CE: C9 02 CMP #$02 Wenn keine SEQ Datei, dann:
87D0: D0 05 BNE $87D7
Einsprung von $87CC:
87D2: A9 64 LDA #$64 64, File type mismatch
87D4: 20 7C 80 JSR $807C
Einsprung von $87D0:
87D7: A9 12 LDA #$12 Auf internen Schreibkanal schalten
87D9: 85 52 STA $52
87DB: A5 B9 LDA $B9 internen Schreibkanal in
87DD: 85 BA STA $BA Lesekanal umwandeln
87DF: A9 FF LDA #$FF Lesekanal loeschen
87E1: 85 B9 STA $B9
[Nun ist das 1. File hinter dem '=' auf dem Schreibkanal zum Lesen
geoeffnet. Bei dem Aufruf der Append-Funktion wird der benutzte Lesekanal
automatisch wieder in einen Schreibkanal zurueckverwandelt.]
87E3: 20 CC 98 JSR $98CC Append: Dateiende suchen
87E6: A2 02 LDX #$02 mit 2. File nach dem '='
87E8: 20 00 88 JSR $8800 'normales' COPY beginnen
87EB: 4C 4C 80 JMP $804C
normales COPY
Einsprung von $87AA, $87B0, $87B6, $87BC:
87EE: 20 F4 87 JSR $87F4 eigentliche Copy-Routine aufrufen
87F1: 4C 4C 80 JMP $804C
Einsprung von $87EE:
87F4: 20 1E 89 JSR $891E existieren nur die Files hinter dem '=' ?
(Rueckkehr nur bei 'Ja')
87F7: 20 E0 93 JSR $93E0 neues File anlegen
87FA: 20 AB 95 JSR $95AB und im Directory eintragen
87FD: AE 2E 02 LDX $022E 1. File nach dem '='
Einsprung von $87E8, $8838:
8800: 8E 30 02 STX $0230 als aktuelles File setzen
8803: 20 41 88 JSR $8841 File auf SA 17 zum Lesen oeffnen
8806: A9 11 LDA #$11 und aktivieren
8808: 85 52 STA $52
880A: 20 27 90 JSR $9027 (Kanalnummer holen)
880D: 20 5F 90 JSR $905F Filetyp holen
8810: D0 03 BNE $8815 kein REL-File, ==>
8812: 20 95 88 JSR $8895 REL-File zum Kopieren vorbereiten
Einsprung von $8810:
8815: A9 08 LDA #$08 Flag 'EOI empfangen' loeschen
8817: 85 51 STA $51
8819: 4C 1F 88 JMP $881F
Einsprung von $8827:
881C: 20 5C 8E JSR $8E5C Byte in Ziel-Datei schreiben
Einsprung von $8819:
881F: 20 76 88 JSR $8876 Byte aus Quell-Datei holen
8822: A9 80 LDA #$80 b7=1: 'Dateiende' ?
8824: 20 E4 9C JSR $9CE4 (Dateistatus testen)
8827: F0 F3 BEQ $881C nein, ==>
8829: 20 5F 90 JSR $905F Filetyp holen
882C: F0 03 BEQ $8831 REL-Datei, ==>
882E: 20 5C 8E JSR $8E5C Byte in Zieldatei schreiben
[Das Byte, das bei EOI zurueckgegeben wird,
ist noch gueltig; bei REL-Dateien wurde
bereits auf einen nicht existierenden
Record zugegriffen.]
Einsprung von $882C:
8831: AE 30 02 LDX $0230 naechstes File holen
8834: E8 INX
8835: EC 2F 02 CPX $022F noch eins vorhanden ?
8838: 90 C6 BCC $8800 ja, ==>
883A: A9 12 LDA #$12 Schreibkanal holen
883C: 85 52 STA $52
883E: 4C 9F 99 JMP $999F Ziel-Datei schliessen
Previous Page / Next Page