Hello, Guest the thread was called754 times and contains 4 replays

last post from Jodigi at the

Was sind Sekundäradressen?

  • Ich will mich mal in die Materie des C64 reinhängen...


    Jetzt hab ich auch schon die erste Frage:


    OPEN 1, 8, 8, "DATEINAME,USR,R"
    (Diskettenlaufwerk #1 ansprechen und User-Datei zum Lesen öffnen)

    Beschreibung von Sekundäradresse der Diskette:
    0…14 = Datenkanäle (0 = Read/Lesevorgang; 1 = Write/Schreibvorgang); 15 = Befehls-/Fehlerkanal


    :Entnommen aus dem Wiki-Eintrag OPEN


    Bei dem oben genannten Beispiel steht die 1 für Dateinummer 1 (klar soweit)
    8, für die Gerätenummer 8 also 1. Diskettenlaufwerk.
    Aber warum Sekundäradresse 8? Es gibt doch nur 0 Lesen; 1 Schreiben; 15 Befehle.
    Warum wird 8 Benutzt und nicht 0 ?

  • Aber warum Sekundäradresse 8? Es gibt doch nur 0 Lesen; 1 Schreiben; 15 Befehle.
    Warum wird 8 Benutzt und nicht 0 ?


    Es gibt auf dem seriellen Bus alle Sekundäradressen von 0 bis 15. Bei Diskettenlaufwerken (davon gehe ich im Folgenden ständig aus) werden 0, 1 und 15 speziell behandelt - auf 15 werden Befehle verarbeitet und Fehlermeldungen zurückgeliefert. Alle Sekundäradressen von 0 bis 14 werden für Dateizugriffe verwendet - wenn du mehr als eine Datei gleichzeitig öffnen willst, muss für jede Datei eine andere Sekundäradresse verwendet werden.


    Die Adressen 0 und 1 haben zwei Besonderheiten im Vergleich zu 2 bis 14: Auf 2 bis 14 wird ohne Angabe eines Dateityps SEQ verwendet und ohne Angabe eines Modus der Lesemodus - OPEN1,8,3,"BLA" würde also eine SEQ-Datei namens BLA zum Lesen öffnen. Auf 0 und 1 wird dagegen als Dateityp automatisch PRG angenommen, wobei bei 0 der Lesemodus und bei 1 der Schreibmodus Voreinstellung ist - dadurch funktionieren die LOAD/SAVE-Befehle mit PRG-Dateien, denn LOAD/SAVE übermitteln an das Laufwerk immer die festen Sekundäradressen 0 (LOAD) bzw. 1 (SAVE) unabhängig davon was man beim Befehl angibt.


    Eine wirkliche Antwort auf die Frage "Warum 8" kann ich allerdings auch nicht geben - die 8 funktioniert an der Stelle genauso gut wie jede andere Sekundäradresse von 2 bis 14, womöglich verwendete der Autor des Textes die 8 weil das geringfügig schneller zu tippen ist als mit dem Finger auf eine andere Zifferntaste zu wechseln.

  • Dazu kann ich sagen, wir haben u.a. verschiedene Sekundäradressen gewählt, um zu demonstrieren, daß es auch mit anderen Sekundäradressen als mit 0, 1, und 15 funktioniert.
    Es wurden in den Beispielen u.a. die Sekundäradressen 0 bis 4, 7, 8, und 15 verwendet.


    PS: Danke das Du im C64-Wiki nachgeschaut hast :zustimm: