Sekundäradresse

Aus C64-Wiki
Zur Navigation springenZur Suche springen

Sekundäradressen sind Teil eines OPEN-Befehls und können von 0 bis 15 vergeben werden, ihre Bedeutung ist abhängig vom angesprochenen Gerät. Bei Diskettenlaufwerken haben die Sekundäradressen 0, 1 und 15 folgende spezielle Bedeutungen:

  • Sekundäradresse 0 öffnet eine Datei zum Lesen, der Zugriffsmodus im Dateinamen (",R" oder ",W") wird dann ignoriert. Als Dateityp wird PRG erwartet, dies kann man durch eine explizite Angabe (",S" oder ",U") zu SEQ oder USR ändern.
  • Sekundäradresse 1 öffnet eine Datei zum Schreiben, der Zugriffsmodus im Dateinamen (",R" oder ",W") wird dann ignoriert. Als Dateityp wird PRG benutzt, dies kann man durch eine explizite Angabe (",S" oder ",U") ändern.
  • Sekundäradresse 15 öffnet einen Kommando- bzw. Statuskanal zum Gerät.

Mit den übrigen Sekundäradressen 2 bis 14 kann jeder Dateityp gelesen werden. Beim Anlegen einer neuen Datei wird SEQ benutzt, dies kann man durch eine explizite Angabe ("P" oder "U") zu PRG oder USR ändern.

Wenn weder die Sekundäradresse den Zugriffsmodus festlegt, noch der Zugriffsmodus im Dateinamen gegeben ist, ergibt sich daraus automatisch der Lesemodus. Eine fehlende Sekundäradresse entspricht einer 0, was wiederum dem Lesezugriff entspricht.

Für jede zu öffnende Datei auf dem gleichen Laufwerk (siehe Beispiele) müssen verschiedene Sekundäradressen benutzt werden, wenn beispielsweise gleichzeitige Dateizugriffe in verschachtelten OPEN-Strukturen erfolgen.

Bedeutung der Sekundäradresse bei üblichen Gerätenummern:

Gerätenummer Gerät Sekundäradresse
0 Tastatur
(nicht das 1. Gerät!)
 
1 Datassette 0 = Lesevorgang; 1 = Schreibvorgang; 2 = Schreibvorgang mit Tape-Ende (EOT - End-Of-Tape) schreiben
2 Modem / RS-232 0
3 Bildschirm 0 oder 1
4 oder 5 Drucker 0 = Großschrift/Grafikzeichen; 7 = Groß-/Kleinschrift
8 bis 11 Diskettenlaufwerk 0…14 = Datenkanäle (0 = Read/Lesevorgang; 1 = Write/Schreibvorgang); 15 = Befehls-/Fehlerkanal