---------------------------------------------------------------- | SOFTWARE- | OMEX 1600 | | | DOKUMENTATION | | OMOS 1630 | |-----------------| Anleitung fuer den |-----------| | 11/87 | Bediener | 2.0 | ---------------------------------------------------------------- Programmtechnische Anleitung fuer den Bediener Beschreibung Teil 2 Steuerprogrammsystem OMEX 1630 MGS K 1600 VEB Robotron-Vertrieb Berlin Dok.-Nr. C 8065-0527-1M2031 Die vorliegende Software-Dokumentation, Anleitung fuer den Bediener, Teil 2: "Steuerprogrammsystem OMEX 1630", entspricht dem Stand von 11/87. Nachdruck, jegliche Vervielfaeltigung oder Auszuege daraus sind unzulaessig. Die Ausarbeitung erfolgte durch ein Kollektiv des VEB Robotron- Vertrieb Berlin und der Deutschen Post, ORZ Leipzig. Im Interesse einer staendigen Weiterentwicklung werden alle Leser gebeten, Hinweise zur Verbesserung dem Herausgeber mitzuteilen. Herausgeber: VEB Robotron-Vertrieb Berlin Mohrenstr. 62 Berlin 1086 Kurzreferat Die vorliegende Schrift betrifft den Leistungsumfang des Betriebssystems OMEX 1630, Ausgabe 2.0. Sie ist primaer fuer Bediener bestimmt, die mit dem System OMEX 1630 arbeiten. Es werden die Formen der Kommandos sowie ihre Wirkung auf das System erlaeutert. In dieser Schrift wird auch der Aufbau und die Anwendung von Indirekt-Kommandodateien behandelt. Inhaltsverzeichnis ------------------ Seite 1. Einfuehrung 7 1.1. Aufgaben des Kommandoprogramms 7 1.2. Stellung des Kommandoprogramms im System 7 2. Bedienung des Systems 9 2.1. Kommunikationsmoeglichkeiten 9 2.1.1. Anlaufprozedur, Systemanlauf 9 2.1.2. Meldung des Systems 9 2.1.2.1. Standard-Meldung 9 2.1.2.2. Meldung einer Task 10 2.1.2.3. MCR-Meldung 10 2.2. Grundbegriffe bei der Systemarbeit 10 2.3. Dateien und Datentraeger 12 2.3.1. Dateiformat FM16-D 12 2.3.2. Dateischutz 12 2.3.3. Nutzeridentifikationscode (UIC) 14 2.3.4. Dateispezifikation 15 2.4. Geraete 18 2.4.1. Logische Geraetenummern (LUN) 21 2.4.2. Pseudogeraete 21 2.4.3. Logische Geraete 21 2.4.4. Nullgeraet 22 2.4.5. Zuweisen und Umschalten von Geraeten 22 2.4.6. Eigenschaften von Bediengeraeten 23 2.4.6.1. Privilegierte Bediengeraete 23 2.4.6.2. Angeschlossene und getrennte Bediengeraete 24 2.4.6.3. Abhaengige Bediengeraete 24 2.4.6.4. Steuerzeichen der Bediengeraete 24 2.5. Arbeit in Mehrnutzersystemen 29 2.5.1. An- und Abmelden eines Bediengeraets 29 2.5.2. Oeffentliche und private Geraete 31 3. Kommandoprogramm des Systems MCR 33 3.1. Uebersicht ueber die Funktionen von MCR 33 3.2. Syntaxregeln 35 3.2.1. Kommandoname 35 3.2.2. Kommandoparameter 36 3.2.3. Schluesselwoerter 36 3.2.4. Kommandozeilenbegrenzer 37 3.2.5. Kommentar 37 3.3. Beschreibung der Kommandos 37 3.3.1. ABO - Abbruchkommando 39 3.3.2. ACS - Zuteilen von Auslagerungsbereich 41 3.3.3. ACT - Namen der aktiven Tasks 43 3.3.4. ALL - Zuteilen von Geraeten 44 3.3.5. ALT - Wechsel der Prioritaet 46 3.3.6. ASN - Zuordnen eines Geraetes 47 3.3.7. ATX - Aktivieren des TG(Halbduplex)-Drivers 51 3.3.8. ATL - Liste der aktiven Tasks 53 3.3.9. BLK - Blockieren einer installierten Task 56 3.3.10. BOO - Laden eines Systems 57 3.3.11. BRK - Eintritt in den System-Testmodus 59 3.3.12. BRO - Verbreitung einer Mitteilung 60 3.3.13. BYE - Abmelden vom System 62 3.3.14. CAN - Anullierung der zeitbezogenen Anforderungen 63 3 Seite 3.1.15. CLI - Kommandozeilen-Interpreter 64 3.3.16. CLQ - Ausgabe der Uhrschlange 68 3.3.17. DEA - Freigeben von Geraeten 69 3.3.18. DEV - Ausgabe der Geraeteliste 70 3.3.19. DMO - Ausgliedern von Datentraegern 73 3.3.20. DTX - Aktivieren des TT(Vollduplex)-Drivers 75 3.3.21. FIX - Fixieren im Internspeicher 77 3.3.22. FLA - Gruppenglobale Ereignisflags 78 3.3.23. HEL - Anmelden in das System 80 3.3.24. HELP - Kommando-Hilfe 83 3.3.25. HOM - Modifizieren des Home-Blocks 89 3.3.26. INI - Initialisieren von Datentraegern 93 3.3.27. INS - Installieren einer Task 101 3.3.28. LOA - Laden eines Drivers 106 3.3.29. LUN - Logische Geraetenummer 108 3.3.30. MOU - Eingliedern von Datentraegern 109 3.3.31. OPE - Speicherzugriff 121 3.3.32. PAR - Ausgabe der Partitions 125 3.3.33. REA - Aenderung von Geraetezuweisungen 127 3.3.34. RED - Umschalten 128 3.3.35. REM - Streichen einer Task 130 3.3.36. RES - Fortsetzen einer Task 131 3.3.37. RUN - Starten einer Task 132 3.3.38. SAV - Retten eines Systems 138 3.3.39. SET - Festlegen von Systemeigenschaften 141 3.3.40. SSM - Systemwartungsnachricht 170 3.3.41. TAL - Liste der Tasks 171 3.3.42. TAS - Liste der installierten Tasks 173 3.3.43. TIM - Zeitkommando 175 3.3.44. UFD - Erstellen eines Nutzerdateiverzeichnisses 177 3.3.45. UNB - Aufheben der Blockierung einer Task 179 3.3.46. UNF - Aufheben des Fixierens 180 3.3.47. UNL - Ausladen eines Drivers 181 3.3.48. UNS - Fortsetzen einer intern gestoppten Task 182 3.3.49. UPD - Sicherungssystem fuer Festplattenspeicher 183 3.4. Fehlermitteilungen 187 3.4.1. Fehlermitteilungen von MCR bzw. MCR-Tasks 187 3.4.2. Mitteilungen des Zusatzsteuerprozessors (ACP) 4. Verarbeitungsprogramm fuer Indirektkommando-Dateien (AT.-Prozessor) 228 4.1. Uebersicht ueber die Funktionen des Verarbeitungs- programms 228 4.1.1. Allgemeine Erlaeuterung 228 4.1.2. Verarbeitung von Kommandos und Anweisungen 229 4.1.3. Zusammenstellung der Anweisungen 230 4.1.4. Beschreibung der Symbole, Ketten und Ausdruecke 233 4.1.4.1. Symbole allgemein 233 4.1.4.2. Kettensymbole, Unterketten und Ausdruecke 234 4.1.4.3. Numerische Symbole und Ausdruecke 234 4.1.4.4. Logische Symbole 235 4.1.4.5. Reservierte Symbole 235 4.1.4.6. Symbolwertsubstitution 235 4.1.5. Zusammenstellung der Symbole 238 4.1.6. Zusammenstellung und Beschreibung der Schalter 238 4.1.7. Start einer Indirekt-Kommandodatei von einer Task 241 4 Seite 4.2. Syntaxregeln 242 4.2.1. Aufbau der Indirekt-Kommandodatei 242 4.2.2. Format der Anweisungen und Kommentare 242 4.3. Beschreibung der Anweisungen 244 4.3.1. .ASK - Anforderung, einen logischen Wert einzugeben 244 4.3.2. .ASKN - Anforderung, einen numerischen Wert einzugeben 246 4.3.3. .ASKS - Anforderung, eine Zeichenkette einzugeben 249 4.3.4. .BEGIN - Beginnen eines Blocks 251 4.3.5. .CHAIN - Fortsetzung der Verarbeitung durch Benutzung einer anderen Datei 252 4.3.6. .CLOSE - Schliessen einer sekundaeren Datei 253 4.3.7. .DATA - Ausgabe von Daten an eine sekundaere Datei 254 4.3.8. .DEC - Dekrementieren eines numerischen Symbols 255 4.3.9. .DELAY - Verzoegerung der Ausfuehrung einer Indirekt-Kommandodatei 256 4.3.10. .DISABLE - Verhindern eines gewaehlten Operations- modus 257 4.3.11. .ENABLE - Erlauben eines waehlbaren Operationsmodus 258 4.3.12. .END - Beenden eines Blocks 261 4.3.13. .ERASE - Streichen von Symbolen 262 4.3.14. .EXIT - Verlassen der aktuellen Kommandodatei 263 4.3.15. .GOSUB - Verzweigen zu einer Subroutine 264 4.3.16. .GOTO - Verzweigen zu einer Marke 265 4.3.17. Logische Tests 266 4.3.17.1. .IF - Test, ob Symbol eine spezielle Bedingung erfuellt 266 4.3.17.2. .IFACT/.IFNACT - Test, ob Task aktiv ist oder nicht 267 4.3.17.3. .IFDF/.IFNDF - Test, ob Symbol definiert ist oder nicht 268 4.3.17.4. .IFENABLED/.IFDISABLED - Test, ob ein Modus frei- gegeben ist oder nicht 269 4.3.17.5. .IFINS/.IFNINS - Test, ob Task installiert ist oder nicht 270 4.3.17.6. .IFLOA/.IFNLOA - Test, ob der ladbare Driver geladen ist oder nicht 271 4.3.17.7. .IFT/.IFF - Test, ob Symbol wahr oder falsch ist 272 4.3.17.8. Zusammengesetzte Tests 272 4.3.18. .INC - Inkrementieren eines numerischen Symbols 273 4.3.19. .label: - Definieren einer Marke 274 4.3.20. .ONERR - Verzweigen zu einer Marke bei der Erkennung eines Fehlers 275 4.3.21. .OPEN - Eroeffnen einer sekundaeren Datei 277 4.3.22. .OPENA - Eroeffnen einer sekundaeren Datei fuer Anhaengen 278 4.3.23. .OPENR - Eroeffnen einer sekundaeren Datei fuer Lesen 279 4.3.24. .PARSE - Zerlegen von Ketten in Unterketten 280 4.3.25. .PAUSE - Pause fuer Bedienerhandlung 281 4.3.26. .READ - Lesen des naechsten Satzes 282 4.3.27. .RETURN - Rueckkehr von einer Subroutine 283 4.3.28. .SETD/.SETO - Setzen eines numerischen Symbols dezimal oder oktal 284 4.3.29. .SETN - Zuordnung des numerischen Wertes eines Symbols 285 4.3.30. .SETS - Zuordnung der Zeichenkette eines Symbols 286 4.3.31. .SETT/.SETF - Setzen eines logischen Symbols wahr oder falsch 287 5 Seite 4.3.32. .STOP - Beenden der Kommandodateiverarbeitung 288 4.3.33. .TEST - Testen der Laenge eines Symbols 289 4.3.34. .TESTDEVICE - Testen eines Geraets 290 4.3.35. .TESTFILE - Testen einer Datei 292 4.3.36. .TESTPARTITION - Testen einer Partition 293 4.3.37. .WAIT - Warten auf das Ende der Taskabarbeitung 294 4.3.38. .XQT - Aktivierung der parallelen Taskabarbeitung 295 4.3.39. / - Definieren des logischen Endes einer Datei 296 4.4. Beschreibung der Sondersymbole 297 4.5. Anwendungsbeispiele 301 4.6. Fehlermitteilungen 305 4.6.1. Informative Mitteilungen 305 4.6.2. Fehlernachrichten 306 Anlagen ------- 1: Virtuelles Kommandoprogramm VMR 309 2: Zuordnung von MCR- und DCL-Kommandos 315 Abkuerzungsverzeichnis 317 Sachwortverzeichnis 321 Bildverzeichnis --------------- 1: Moeglichkeiten der Zuordnung zwischen LUN und Geraet 20 Tabellenverzeichnis -------------------- 1: Uebersicht ueber die Geraete, die durch OMEX 1630 unterstuetzt werden 19 2: Steuerzeichen der Bediengeraete 25 3: Aufstellung der Statusflags 54 6 1. Einfuehrung ------------------- OMEX 1630 ist die Exekutive eines Echtzeitoperationssystems mit Multiprogrammierung, das die Verteilung der Systemleistungen unter einer Vielzahl von nutzergeschriebenen Tasks organisiert. Ein Bediener tritt mit dem System OMEX 1630 ueber ein Bedienge- raet in Verbindung. Der Nutzer kann Tasks auf dateistrukturierten Datentraegern speichern, sie im System installieren und an- schliessend abarbeiten. Sind Tasks im System installiert und mit Hilfe eines Kommandos aktiviert, bewerben sie sich um die System- leistungen auf der Basis der Prioritaet der einzelnen Tasks und der Verfuegbarkeit des Systems. Die Exekutive organisiert diesen Wettbewerb, um eine effektive Multiprogrammierung zu gewaehrlei- sten und auch eine schnelle Reaktion auf Echtzeitanforderungen zu erlauben. 1.1. Aufgaben des Kommandoprogramms ----------------------------------- Die Kommunikation zwischen einem Bediener und dem System OMEX 1630 erfolgt ueber ein Bediengeraet durch die Eingabe spezieller Kommandos als Antwort auf die Standardmeldung des Systems (>). Das Bediengeraet uebergibt diese Kommandos an eines der beiden im System verfuegbaren Kommandoprogramme. Bei diesen Kommandopro- grammen handelt es sich um MCR (Monitor Console Routine) und DCL als zusaetzlichem CLI (Command Line Interpreter). MCR ist das 'urspruengliche' Kommandoprogramm, das alle Exekutiveanweisungen verarbeitet. DCL ist ein zusaetzliches Kommandoprogramm, das eine fuer den ungeuebten Bediener leichter zu beherrschende Syntax realisiert. Alle DCL-Kommandos werden durch die DCL-Task analy- siert und nach Konvertierung in die MCR-Syntax dem Kommandopro- gramm MCR zur Abarbeitung uebergeben. Das Kommandoprogramm verar- beitet diese Kommandos entweder selbst oder aktiviert Tasks, die die Kommandos bedienen koennen. Das Kommandoprogramm erlaubt einem Bediener: - Installieren und Starten einer Task - Steuerung der Ausfuehrung einer Task - Aufbereitung von dateistrukturierten Datentraegern - Ausgabe von Geraeteinformationen - Ausgabe von System- und Taskinformationen - Aenderung von System- und Taskeigenschaften - Zuteilung oder Freigabe peripherer Geraete - Umschalten von peripheren Geraeten. 1.2. Stellung des Kommandoprogramms im System ------------------------------------------------ Das Kommandoprogramm ist im System als privilegierte Task ent- halten. Zentrale Bestandteile dieses Kommandoprogramms sind das Wurzelsegment und der MCR-Dispatcher. Der MCR-Dispatcher ueber- nimmt eine Kommandozeile und bereitet diese auf. Fuer den Dispatcher sind die ersten 3 Buchstaben des Kommandonames der signifikante Teil einer Kommandozeile. Die eigentliche Verarbei- tung der Kommandos geschieht in Verarbeitungsprogrammen, die ent- weder als selbstaendige Task vorhanden sind oder als Ueberlage- rungssegment in die Partition des Kommandoprogramms geladen werden. Das Wurzelsegment enthaelt gemeinsame Speicherbereiche fuer alle MCR-Ueberlagerungsstrukturen und die Subroutine, die 7 die Ueberlagerungsstrukturen laedt und sie ansteuert. Der Dispatcher sucht zuerst in einer Tabelle, die alle Namen der Kommandos enthaelt, die durch eine Ueberlagerungsstruktur bedient werden. Wenn die Tabelle dieses Kommando enthaelt, wird die Steuerung an das Wurzelsegment uebergeben, das die entsprechende Ueberlagerungsstruktur laedt, die die Verarbeitung der Kommando- zeile fortsetzt. Enthaelt die Tabelle das Kommando nicht, setzt der Dispatcher 3 Punkte (...) vor den Kommandonamen und sucht dann in dem Systemtaskverzeichnis (STD, System Task Directory) nach einer Task mit dem Namen (...tsk). Jede Task, die die Aus- fuehrung eines Kommandos realisiert, ist in dem Systemtaskver- zeichnis unter dem Namen ...tsk enthalten, wobei fuer tsk die 3 Zeichen umfassende Kurzform des Kommandonamens einzusetzen ist. Dies gibt dem Anwender auch die Moeglichkeit, den Umfang der Kommandos durch eigene Tasks beliebig zu erweitern (siehe Beschreibung des Kommandos INS). Wenn in diesem Verzeichnis die angegebene Task nicht enthalten ist, erfolgt von MCR eine Fehlermitteilung. Wenn die verlangte Task in dem Verzeichnis vorhanden ist und sie nicht bereits ueber das anfordernde Bediengeraet gestartet wurde und aktiv ist, veranlasst der Dispatcher die Exekutive, diese Task fuer das Bediengeraet zu starten. Ist die geforderte Task auf diesem Bediengeraet schon aktiv, gibt MCR die Mitteilung "TASK ACTIVE" aus. Wenn die ange- forderte Task auf einem anderen Bediengeraet aktiv ist, erzeugt der Dispatcher eine zeitweilige Task mit dem Namen tskTnn, wobei nn die nummer des Bediengeraetes ist, von dem das Kommando gege- ben wurde, und veranlasst die Exekutive, diese Task zu starten. Wenn die Task tskTnn verlassen wird, loescht die Exekutive auto- matisch diese Task in dem Systemtaskverzeichnis. 8 2. Bedienung des Systems ------------------------ 2.1. Kommunikationsmoeglichkeiten --------------------------------- 2.1.1. Anlaufprozedur, Systemanlauf ------------------------------------ Fuer den Systemanlauf ist ueber die Hauptbedieneinheit die Ein- gabe der Ladegeraeteadresse vorzunehmen. Als Kommandomnemonik folgt "D", das den Abschluss der Zeile bildet. Fehlt die Adresse, dann wird die im PROM festgelegte Adresse (Standardgeraet) verwendet. Das System wird geladen und initialisiert. Auf dem Bediengeraet kann eine Meldung folgenden Inhalts erscheinen: DEVICE ddnn: NOT IN CONFIGURATION Sie zeigt an, welche Geraete gegenueber der Konfiguration zum Zeitpunkt der Generierung nicht angeschlossen sind. Dabei sind dd das Geraetesymbol und nn die Geraetenummer. Jetzt folgt die Systemmeldung: OMEX 1630 ausgabe entwicklungsstufe speichergroesse [MAPPED] >RED ddnn:=SY0: >RED ddnn:=LB0: >MOU ddnn: datentraegername >@[1,2]STARTUP >*PLEASE ENTER TIME AND DATE (HR:MN DD-MMM-YY) [S]: Nun ist das System arbeitsfaehig und fordert die Eingabe von Uhr- zeit und Datum. 2.1.2. Meldung des Systems -------------------------- Erwartet das System von einem Bediener Eingaben, so macht es dies durch eine Ausgabe auf dem Bediengeraet kenntlich. Diese Anforde- rung einer Eingabe kann die folgenden drei unterschiedlichen Formen haben: - die Standard-Anforderung ( > ) - die Anforderung durch ein Systemprogramm ( tsk>) - die Anforderung durch das Kommandoprogramm (MCR>). 2.1.2.1. Standard-Meldung ------------------------- Die Standard-Meldung des Systems wird dargestellt durch das Zei- chen >, das in der ersten Position einer neuen Zeile auf einem Bediengeraet ausgegeben wird. Durch diese Ausgabe auf dem Bedien- geraet wird angezeigt, dass das System bereit ist, neue Eingaben zu empfangen. Alle Zeichen, die vom Bediener nach dieser Systemmeldung eingegeben werden, werden normalerweise an das Kom- mandoprogramm gerichtet. Nach Ausgabe der Standardmeldung kann aber auch eine Task, die eine Eingabe vom Bediengeraet anfordert, diese Zeichen uebernehmen (siehe auch Punkt 2.1.2.3.). 9 2.1.2.2. Meldung einer Task --------------------------- Aktiviert der Bediener eine zum System gehoerende Task, so meldet sich diese auf dem Bediengeraet mit der Ausschrift tsk> wobei tsk den 3 Zeichen umfassenden Namen der Task darstellt. Es wird empfohlen, dass auch Anwenderprogramme mit einer solchen Meldung beginnen. Solange eine sich meldende Task an ein Bedien- geraet gebunden ist, empfaengt sie alle Eingaben, die ueber das Bediengeraet eingegeben werden. Bei einer nichtgebundenen Task besteht jedoch die Moeglichkeit, dass eine andere Task die Einga- ben von dem Bediengeraet empfangen kann. Um eine solche Situation zu vermeiden, sollte jede Task, die Eingabe von einem Bedienge- raet erwartet, folgende Bedingungen erfuellen: - an ein Bediengeraet gebunden sein - eine Anfangsmeldung zur einfachen Identifizierung ausgeben und dann - Eingaben erwarten. 2.1.2.3. MCR-Meldung -------------------- Durch die Eingabe von CTRL/C oder CTRL/C kann ein Bediener das Kommandoprogramm anfordern. Es meldet sich auf dem Bedienge- raet mit der Ausschrift: MCR> Die folgenden Bemerkungen erklaeren den unterschiedlichen Ge- brauch der MCR-Meldung: - Wenn ein Bediengeraet die Standard-Meldung ausgegeben hat, ist nicht garantiert, dass Eingaben, die als Antwort auf die Stan- dard-Meldung gegeben werden, in jedem Fall das Kommandoprogramm erreichen. Um zu sichern, dass das Kommandoprogramm diese Ein- gabe empfaengt, kann der Bediener CTRL/C eingeben, um die MCR- Meldung anzufordern. - Wenn ein Bediengeraet die Meldung einer Task (tsk>) ausgibt, kann der Bediener das Kommandoprogramm anfordern durch die Ein- gabe von CTRL/C . Nachdem das Kommandoprogramm eine Zeile der empfangenen Eingabe verarbeitet hat, wird auf dem Bedienge- raet wieder die urspruengliche Meldung der Task ausgegeben. - Erfolgen auf einem Bediengeraet von einer Task Ausgaben, kann der Bediener diese Ausgaben durch Eingabe von CTRL/C unterbrechen. Ist die laufende E/A-Operation beendet, wird auf dem Bediengeraet die MCR-Anfangsmeldung ausgegeben. Nachdem die Eingabe vom Kommandoprogramm verarbeitet ist, setzt das System die unterbrochenen Ausgaben fort. 2.2. Grundbegriffe bei der Systemarbeit --------------------------------------- Im folgenden sollen einige Begriffe, auf die im weiteren Bezug genommen wird, erlaeutert werden. - Prioritaet Die Zuteilung der Systemleistungen zu einer bestimmten Task wird bestimmt durch die Prioritaet dieser Task. Die Prioritaet einer Task ist eine ganze Zahl, die in dem Bereich von 1 bis 250 liegt. Sie wird der Task entweder bei der Taskerzeugung oder beim Installieren der Task zugeordnet. Die Prioritaet einer in- 10 stallierten Task kann mit Hilfe eines Kommandos geaendert werden. Bewerben sich mehrere Tasks gleichzeitig um Systemleistungen, so erhaelt die Task mit der hoechsten Prioritaet den Zugriff zu diesen Systemleistungen. Erst wenn diese Task blockiert ist, indem sie z.B. auf das Ende einer E/A-Operation warten muss, waehlt die Exekutive von den zu bearbeitenden Tasks die mit der hoechsten Prioritaet aus. Diese erhaelt den Zugriff zu den Systemleistungen. - Partition Eine Task laeuft in einem vorbestimmten, zusammenhaengenden Speicherbereich, der als Partition bezeichnet wird. Eine Par- tition wird durch folgendes gekennzeichnet: - einen Namen - eine definierte Laenge - einen definierten Typ und - eine feste Basisadresse. Im System OMEX 1630 unterscheidet man zwischen systemgesteuerten und nutzergesteuerten Partitions. In einer systemgesteuerten Partition teilt die Exekutive den verfuegbaren Speicherbereich zu, dass so viele Tasks wie moeglich innerhalb einer Zeiteinheit abgearbeitet werden koennen. Eine nutzergesteuerte Partition ist ausschliesslich einer Task zu einer bestimmten Zeit zugeteilt. Die Exekutive kann eine Task zeitweilig auf die Platte auslagern, um Platz fuer eine andere Task zu machen. Eine nutzergesteuerte Partition kann in bis zu sieben, sich nicht ueberlappende Sub- partitions eingeteilt werden. Jede Subpartition kann eine Task enthalten. Innerhalb einer aufgeteilten Hauptpartition koennen bis zu sieben Tasks parallel laufen. - Multiprogrammierung Tasks bewerben sich um Systemleistungen (einschl. Speicher- bereich) auf der Basis der Prioritaet und der Verfuegbarkeit des Systems. Eine Task wird oft blockiert, wenn sie System- leistungen verlangt. Dies erfolgt z.B., wenn sie auf die Been- digung einer E/A-Operation wartet. In diesem Fall sucht die Exekutive nach anderen Tasks, die auf Abarbeitung warten. Es wird diejenige Task ausgewaehlt, die die hoechste Prioritaet hat und Zugriff zu den Systemleistungen erhalten kann, die sie benoetigt. - Auslagerung Die Auslagerung erlaubt einer Task, die sich nicht staendig im Hauptspeicher befindet, Zugriff zur ZVE zu gewinnen. Eine akti- vierte Task kann keinen Zugriff zur ZVE erhalten, wenn ihre Partition, in der sie installiert wurde, belegt ist. Enthaelt diese Partition eine Task, die eine niedrigere Prioritaet hat und als auslagerbar definiert ist, kann die Exekutive diese Task aus dem Speicher entfernen, um Platz fuer die Task mit der hoeheren Prioritaet zu gewinnen. Wenn diese Task beendet ist, wird die vorherige Task wieder in diese Partition geladen und die Bearbeitung an dem Punkt fortgesetzt, an dem sie unterbrochen wurde. 11 2.3. Dateien und Datentraeger ----------------------------- In diesem Abschnitt werden die Beziehungen des Dateiformats FM16-D zu den dateispezifischen MCR-Funktionen erlaeutert. Zuvor wird ein kurzer Ueberblick ueber das Dateiformat FM16-D gegeben. 2.3.1. Dateiformat FM16-D -------------------------- Eine Datei besteht aus einem Dateikennsatz und Nutzdaten, wobei die Nutzdaten auf dem Speichermedium gestreut gespeichert sein koennen. Beim Erstellen einer Datei schreibt das System den Dateinamen in das Nutzerdateiverzeichnis (UFD, User File Direc- tory) und speichert den laufenden Nutzeridentifikationskode (UIC, User Identification Code) in den Dateikennsatz. In den meisten Faellen korrespondiert der UFD mit dem UIC des Nutzers. Stimmt der UIC nicht mit dem UFD ueberein, weist dies darauf hin, dass die Datei unter einem anderen UIC erstellt wurde. Es ist auch moeglich, dass die Datei in mehreren UFD enthalten ist. Der Kern des Dateiformats FM16-D ist die Indexdatei. Diese enthaelt den Systemladeblock, den Datentraegerkennsatz, die Dateikennsatzliste (aktueller Stand der zur Zeit existierenden Dateien) und von allen Dateien die Dateikennsaetze. Der UIC der Indexdatei ist [0,0]. In den Dateikennsaetzen sind u.a. Informationen ueber den Dateieigentuemer, die Schutzmaske und Blockadresszeiger ent- halten. Letztere geben an, welche physischen Bloecke des Daten- traegers fuer diese Datei genutzt werden. Jeder Dateikennsatz be- legt einen logischen Block in der Indexdatei. In dem Hauptdatei- verzeichnis (MFD, Master File Directory) sind alle Namen der Nutzerdateiverzeichnisse (UFD), z.B. 200200.DIR, eingetragen. In den UFD wiederum sind Namen von Nutzerdateien gelistet. Im MFD und in den UFD ist ausser dem Dateinamen noch die Dateiidentifi- kation enthalten. Die Dateiidentifikation ist ein Zeiger zum Datei-kennsatz der betreffenden Datei in der Indexdatei. Da das MFD und die UFD selbst Dateien sind, stehen folgende Kommandos zu ihrer Erstellung zur Verfuegung: INITVOLUME(INI): Mit diesem Kommando wird der Datentraeger initialisiert. Bei der Initialisierung wird u.a. auch das MFD erstellt. USER FILE DIRECTORY Mit diesem Kommando wird ein Nutzerdatei- (UFD) : verzeichnis erstellt. Ausfuehrliche Informationen ueber das Dateiformat FM16-D sind in der "Anleitung fuer den Programmierer", Teil 4 zu finden. 2.3.2. Dateischutz ------------------ Um die Daten vor unerlaubtem Zugriff zu schuetzen, ist in das Dateiformat FM16-D ein Dateischutz integriert. Die Realisierung erfolgt, indem fuer jeden Datentraeger (Datentraegerkennsatz) und jede Datei (Dateikennsatz) eine Schutzmaske existiert. Diese Schutzmaske legt die Zugriffsrechte fuer die einzelnen Nutzer- gruppen fest. 12 Nutzergruppe: System - Eine Task, die unter einer UIC- Gruppennummer kleiner oder gleich 10 laeuft. Eigentuemer- Eine Task, die unter dem gleichen UIC wie der des Dateieigentuemers laeuft. Gruppe - Eine Task, die unter der gleichen UIC-Gruppennummer wie der des Da- teieigentuemers laeuft. Rest - Die Tasks, die nicht zu den obigen drei Kategorien gehoeren. Zugriffsrechte: Lesen - R Schreiben - W Erweitern - E Loeschen - D Die Schutzkodeparameter sind positionsabhaengig, d.h., der Platz des Wertes in der Parameterkette zeigt dem Nutzer, wem der Kode zugeordnet ist. Die Reihenfolge ist fest vorgegeben: System, Eigentuemer, Gruppe, Rest. Die Reihenfolge des Auftretens der zugeordneten Bits fuer die Zugriffsrechte R, W, E, D ist ebenfalls fest. Parameterangabe RWD oder RE sind gueltige Werte, aber WR oder DRW sind nicht zu- laessig. Aufbau der Schutzmaske: 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 --------------------------------------- D E W R D E W R D E W R D E W R --------------------------------------- \ /\ /\ /\ / ---------- ------- ------ -------- | | | | | | | |-------System | | | | | |----------------Eigentuemer | | | |-------------------------Gruppe | |------------------------------------Rest Ein gesetztes Bit in dem Maskenwort bedeutet, dass fuer diesen Zugriff die jeweilige Nutzergruppe keine Erlaubnis hat. Der Dateieigentuemer weist die Zugriffsrechte zu den Dateien wie folgt zu: 1. Mit dem MCR-Kommando INI wird die Schutzmaske fuer alle Dateien, die auf dem Datentraeger erstellt werden, bei der Initialisierung festgelegt. Die Schutzmaske befindet sich im Datentraegerkennsatz. 2. Mit dem MCR-Kommando MOU wird dem Nutzer beim Eingliedern des Datentraegers die Moeglichkeit gegeben, die Schutz- maske, die mit dem Kommando INI festgelegt wurde, zu aendern. 3. Mit dem MCR-Kommando UFD werden die Zugriffsrechte fuer die UFD-Dateien festgelegt. 13 4. Mit dem Datei-Transferprogramm PIP (Peripheral Inter- change Program) koennen die Zugriffsrechte zu Dateien geaendert werden. Wenn ein Nutzer zu einer Datei zugreifen will, muessen ihm also das UFD, in dem die Datei eingetragen ist, die Schutzmasken fuer das UFD und die Datei bekannt sein. Wuenscht der Nutzer, in eine existierende Datei zu schreiben, so benoetigt er Lesezugriff zum UFD und Schreibzugriff zu der Datei. Beim Erstellen einer neuen Datei benoetigt der Nutzer Schreib- und Erweiterungszugriff zum UFD. Nutzer mit der Gruppennummer 1 bis 10 sind privilegierte Nutzer. 2.3.3. Nutzeridentifikationscode (UIC) -------------------------------------- Der UIC bestimmt, zu welchen Dateien ein Nutzer (Bediengeraet, Task) zugreifen kann. UIC des Bediengeraetes ---------------------- - Kein Mehrnutzerschutz Jedes Bediengeraet hat einen UIC, zugeordnet durch das MCR- Kommando SET /UIC, oder [200,200], wenn der UIC des Bediengerae- tes waehrend der Systemgenerierung nicht geaendert wurde. Das System nutzt den laufenden UIC des sendenden Bediengeraetes, wenn der Nutzer das UIC-Feld bei der Dateispezifikation aus- laesst. Das System vergleicht dann diesen UIC mit der Schutzmaske des UFD und der Datei, zu dem der Nutzer zugreifen will. Damit ist die Ueberpruefung der Zugriffsrechte des Nutzers zu der Datei abgeschlossen. - Mehrnutzerschutz Jedes Bediengeraet hat zwei UIC. Der Schutz-UIC wird benutzt, um die Zugriffsrechte anhand der Dateischutzmaske zu bestimmen. Der Standard-UIC bestimmt den UFD, zu dem zugegriffen wird, wenn der Nutzer das UIC-Feld in der Dateispezifikation aus- laesst. Das System setzt diese zwei UIC abhaengig von dem pri- vilegierten Status des Nutzers am Bediengeraet. ..nichtprivilegierte Nutzer Das Bediengeraet bekommt als Schutz- und Standard-UIC den UIC zugewiesen, den der Nutzer beim Kommando HELLO angegeben hat. Durch Eingabe des Kommandos SET /UIC wird der Standard-UIC geaendert. Der Standard-UIC kann damit vom Schutz-UIC abwei- chen. ..privilegierte Nutzer Das Bediengeraet bekommt als Schutz- und Standard-UIC den UIC zugewiesen, den der Nutzer beim Kommando HELLO angegeben hat. Durch Eingabe des Kommandos SET /UIC wird der Schutz- und Standard-UIC geaendert. Beide UIC koennen also nicht vonein- ander abweichen. UIC der Task ------------ - Kein Mehrnutzerschutz Eine Task kann unter einem beliebigen UIC angefordert werden. Wenn kein UIC in der Taskanforderung angegeben ist, nimmt das 14 System, unabhaengig von dem UIC der anfordernden Task, den UIC vom Kopf der angeforderten Task, der zur Taskerstellungszeit angegeben wurde. Bei einer Anforderung ueber das Bediengeraet nimmt das System den UIC, den das Bediengeraet hat. - Mehrnutzerschutz Jede aktive Task hat zwei UIC, einen Schutz- und einen Stan- dard-UIC. Der Schutz-UIC bestimmt die Taskzugriffsrechte bei den Dateieroeffnungen und beim Binden von Regionen. Wenn eine Task eine Datei zu eroeffnen versucht, vergleicht das System den Taskschutz-UIC mit der Schutzmaske des angegebenen UIC. Der Standard-UIC wird von den Dateizugriffsroutinen (FCS, File Control Services) genutzt, um den Standard-UIC zu bestimmen, wenn eine Dateieroeffnungsoperation keinen UIC enthaelt. Der Standard-UIC hat keine Bedeutung beim Binden von Regionen.Die Task-UIC werden vom System bei der Aktivierung der Task er- stellt. Im allgemeinen nimmt die Task den Schutz- und Standard- UIC des aussendenden Bediengeraetes an, wenn das MCR-Kommando RUN gegeben wurde. Wenn der Nutzer jedoch das UIC-Schluessel- wort bei den MCR-Kommandos INS oder RUN angibt, wird dieser UIC der Standard-UIC der aktivierten Task. Wenn das Bediengeraet privilegiert ist, wird dieser UIC auch der Schutz-UIC der akti- vierten Task. In der gleichen Art und Weise werden die UIC er- stellt, wenn eine Task eine Exekutiveanweisung RQST% oder RUN% aussendet. Der Schutz- und Standard-UIC der aussendenden Task werden im allgemeinen die UIC der angeforderten Task. Wenn eine nichtprivilegierte Task einen UIC in der Exekutiveanweisung RQST% bzw. RUN% angibt, wird dieser UIC nur der Standard-UIC der angeforderten Task. Bei einer privilegierten Task wird dieser UIC der Standard- und Schutz-UIC der angeforderten Task. Zusammenfassend kann gesagt werden: Durch Vergleich des UIC des Anfordernden mit dem UIC des Angefor- derten wird die Nutzergruppe bestimmt, und anhand der Schutzmaske werden fuer die bestimmte Nutzergruppe die Zugriffsrechte ueber- prueft. 2.3.4. Dateispezifikation ------------------------- OMOS hat ein Standardformat fuer den Aufbau einer Kommandokette: ausdatei_1,...,ausdatei_n=eindatei_1,...,eindatei_m Eine Kommandokette darf maximal 80 Zeichen enthalten. Die Komman- dos INI, HOM und MOU bilden eine Ausnahme. Durch Eingabe eines Bindestrichs in der Kommandozeile wird angewiesen, dass die Kommandozeile auf der naechsten Zeile fortgesetzt wird. Wenn die Eingabeseite nicht gefordert wird, kann das Gleichheitszeichen weggelassen werden. Die Dateispezifikation fuer eine Datei hat folgendes Format: geraet:[g,m]dateiname.typ;version/schalter_1/.../schalter_n 15 Feld Bedeutung ---- --------- geraet: ist die physische oder logische Geraeteeinheit. Sie wird angegeben durch zwei alphabetische Zei- chen und eine max. drei Ziffern lange oktale Geraetenummer. Den Abschluss bildet ein Doppel- punkt, z.b. DK0:, TT11:, LP:. [g,m] ist der Nutzeridentifikationskode (UIC), der das UFD angibt, in dem die Datei eingetragen ist. g und m sind oktale Ziffern von 0...377, die die Gruppennummer (g) und eine Nutzernummer (m) re- praesentieren. Die eckigen Klammern muessen ange- geben werden. dateiname ist der Name und kann 1 bis 9 Zeichen lang sein. Ein Punkt trennt ihn vom Dateityp. .typ ist eine 3 Zeichen lange Mnemonik, die den Datei- typ angibt. ;version ist eine oktale Ziffer von 0...77777, die zur Unterscheidung der einzelnen Versionen der Datei dient. Bei der Dateierstellung ordnet das System der Datei die Versionsnummer 1 zu. Bei einer nachfolgenden Korrektur mit dem Systemprogramm EDI zum Beispiel bleibt die Originaldatei mit der Versionsnummer 1 erhalten, und es wird eine Datei mit dem gleichen Namen und Typ, aber mit der Versionsnummer 2 erstellt. /schalter besteht aus einer meistens 2 Zeichen langen Zeichenkette, z.B.: sw. Der Schalter kann dann eine der drei Formen annehmen: /sw Setzen des Schalters /-sw Negieren der Schalterfunktion oder /NOsw Zusaetzlich zu dem Schalter kann noch eine Anzahl von Werten folgen. Die zugelassenen Werte sind Textzeichenketten, oktale und dezimale Zahlen. -Zahlen, die mit einem Punkt abgeschlossen werden, sind dezimal. -Zahlen, die, mit einem # beginnen, sind oktal. -Ob der Standard fuer einen numerischen Wert oktal oder dezimal ist, ist abhaengig von der Task, der der Schalter zugeordnet ist. -Ein numerischer Wert kann mit einem + oder - versehen sein. Das Vorzeichen muss vor dem Wert stehen. -Das Vorzeichen muss vor dem # stehen. Die Anzahl der moeglichen Werte und die Interpre- tation des Schalters ist abhaengig von dem Systemprogramm, dem der Schalter zugeordnet ist. Beispiele: /DE /LI 16 Standards fuer die Dateispezifikation ------------------------------------- Einige Angaben in der Dateispezifikation, ausser dem Dateinamen, koennen vom Nutzer ausgelassen werden. Folgende Standardwerte werden angenommen: Feld Standard ---- -------- geraet: Pseudogeraet SY: Im allgemeinen ist es das Geraet, das als System- datentraeger benutzt wird. Das MCR-Kommando BOO und die Angabe $ fuer geraet in den MCR-Kommandos INS und RUN nehmen als Standardgeraet LB: an. Wird die Geraetenummer weggelassen, wird die Geraetenummer Null angenom- men. [g,m] Der Standard-UIC wird fuer jedes Bediengeraet festgelegt: - bei der Systemgenerierung - mittels des MCR-Kommandos SET /UIC=[g,m] - mittels des MCR-Kommandos HELLO dateiname Kein Standard moeglich. Eine Ausnahme bildet das Kommando BOO, bei ihm kann der Dateiname weggelassen werden (dann wird die Datei OMEX.SYS geladen und gestartet). .typ Die Standardwerte sind abhaengig von der Task, fuer die die Dateikennzeichnung gilt. Beim Assembler ist z.B. der Typ der Eingabedatei standardmaessig MAC und der Typ der Ausgabedatei OBJ. ;version Bei Eingabedateien ist die hoechste existierende Versionsnummer Standard. Bei Ausgabedateien ist die hoechste existierende Versionsnummer +1 Standard. Beim Loeschen von Dateien durch PIP muss die Versionsnummer immer angegeben werden, um den Nutzer vor unbeabsichtigtem Loeschen einer Datei zu schuetzen. Die Versionsnummern -1 und 0 besitzen eine besondere Bedeutung. Bei der Angabe von -1 wird die aelteste Versionsnummer verwen- det. 0 entspricht dem Standardwert (keine Angabe). /schalter Die Standards der Schalter sind abhaengig von den jeweiligen Systemprogrammen. Mit der Sternvereinbarung wird dem Nutzer die Moeglichkeit einge- raeumt, mehr als eine Datei in einer einzelnen Dateikennzeichnung anzugeben. Beispiele --------- - Mit PIP sollen alle Versionen des Quellprogramms TEST.MAC in allen Nutzerdateiverzeichnissen geloescht werden: PIP> [*,*]TEST.MAC;*/DE - Mit PIP sollen alle Dateien in dem Standard-Nutzerdateiver- zeichnis [200,200] geloescht werden: PIP> *.*;*/DE 17 Standarddateitypen ------------------ Im folgenden sind die Standarddateitypen, die von allen OMOS- Systemprogrammen unterstuetzt werden, aufgelistet. Es ist aber auch moeglich, eigene Dateitypen zu definieren. Ein Dateityp muss immer aus 3 Zeichen bestehen. Typ Dateiinhalt --- ----------- CMD Indirekt-Kommandodatei DAT Daten DIR Verzeichnisdatei (z.B. UFD) LST Liste MAC Assemblerquellprogramm MAP TKB-Speicherbelegungsliste MLB Makrobibliothek OBJ Objektmodul ODL Ueberlagerungsbeschreibung fuer den Taskbilder TKB OLB Objektmodulbibliothek SML Systemmakrobibliothek SYS Systemabbild TMP Temporaere Datei TSK Taskabbild TXT Textdatei 2.4. Geraete ------------ In diesem Abschnitt wird eine Uebersicht ueber die Benutzung der Geraete unter OMEX 1630 gegeben. Um Geraeteunabhaengigkeit zu sichern, wird in der E/A-Anweisung das Geraet nicht direkt, sondern durch eine logische Geraetenummer (LUN, Logical Unit Number) angegeben. Bevor man sich auf die LUN in einer Exekutive- Anweisung beziehen kann, muss eine Zuordnung zwischen LUN und realem Geraet vorgenommen werden. Fuer jede Task kann eine eigene Zuordnung zwischen LUN und realem Geraet hergestellt werden. Die realen Geraete werden in OMEX 1630 als physische Geraete be- zeichnet. Neben den physischen Geraeten gibt es im OMEX 1630 lo- gische Geraete, die eine weitere Form der Geraeteunabhaengigkeit realisieren und die Handhabung der Geraete durch den Program- mierer erleichtern. Bevor man sich auf ein logiches Geraet be- ziehen kann, muss diesem ein physisches Geraet zugeordnet worden sein. Die vom OMEX 1630 standardmaessig vorgesehenen logischen Geraete werden als Pseudogeraete (siehe 1.5.2.) bezeichnet. Zu- saetzlich zu diesen vom System vorgesehenen logischen Geraeten kann der Nutzer eigene, seinem Problem angepasste logische Ge- raete (siehe 1.5.3.) definieren. Darueber hinaus wird von OMEX 1630 ein Nullgeraet (siehe 1.5.4.) unterstuetzt. Jedes Geraet wird eindeutig durch seinen Geraetenamen und seine Einheiten- nummer identifiziert. Die in OMEX 1630 verwendete Geraetebezeich- nung zur Identifikation eines Geraets enthaelt nicht dessen voll- staendigen Geraetenamen, sondern einen symbolischen Geraetenamen, der aus zwei Buchstaben des KOI-7-Codes besteht und i.allg. nach mnemonischen Gesichtspunkten ausgewaehlt wird. Die in OMEX 1630 benutzte Geraetebezeichnung hat den nachfolgenden allgemeinen Aufbau: 18 ddnn: dd = symbolischer Geraetename, bestehend aus zwei Buch- staben des KOI-7-Codes nn = Einheitennummer, bestehend aus einer bis drei Oktalziffern (0 <= nn <= 377). Die Angabe der Geraeteeinheitennummer 0 kann entfallen, da sie als Standardwert angenommen wird. : = Abschluss der Geraetebezeichnung Tabelle 1 gibt eine Uebersicht ueber die von OMEX 1630 unter- stuetzten Geraete, ihre Geraetenamen sowie ihre symbolischen Ge- raetenamen. Auf besondere Eigenschaften der Bediengeraete wird im Punkt 2.4.6. eingegangen. Bild 1 gibt eine Uebersicht, durch welche Kommandos und ueber welche Schritte die Zuordnung zwischen LUN und physischem Geraet moeglich ist. Tabelle 1: Uebersicht ueber die Geraete, die durch OMEX 1630 unterstuetzt werden Geraeteart Geraetename Symbolischer Geraetename -------------------------------------------------------------- physische Bediengeraet TT/TG Geraete Kassettenmagnetband CT Lochbandstanzer PP Lochbandleser PR Kassettenplattenspeicher DK Festplattenspeicher DM Folienspeichereinheit DY Zeilendrucker LP 1/2" Magnetbandgeraet MT Bildspeicher RM Displayprozessor DD Grafiksteuerung GD Rollkugeleinheit TB Plotter-K64xx, DZT PD Plotter-Digigraf PL Digitalisiergeraet RD -------------------------------------------------------------- Pseudogeraete Bediengeraet der Task TI Listenausgabegeraet CL Systemmitteilungsgeraet CO Systembibliotheksgeraet LB Systemgeraet des Nutzers SY -------------------------------------------------------------- Nullgeraet Nullgeraet NL -------------------------------------------------------------- logische Geraete durch den Nutzer frei waehlbar -------------------------------------------------------------- 19 ------------ | logische | | Geraete- | | nummer | | LUN | ------------ | | | Kommando REASSIGN (REA) | Exekutiveanweisung ALUN$ | TKB-Option ASSIGN | | |->------------------------------ | | | -------->| | | | | | ---------------- | | | logisches | | | | Geraet | | | ---------------- | | | | |--------| | | ASN ------------|----------|--------| | | | | | | | | | |<----------| | | | ----->| | | | | | | | | | | | ----------- | | | | | | Pseudo- | | | | | | | Geraet | | | | | | |---------- | | | | | | | | | | |-----| | | | | | | RED | | | RED | | |-------------------|-----------| | | | | | | | --------- -------- | | physi-| | Null-| | | sches | |geraet| | | Geraet| | | | --------- -------- | | | | | | |-----------|-----------| | | | | | | Bild 1: Moeglichkeiten der Zuordnung zwischen LUN und Geraet 20 2.4.1. Logische Geraetenummern (LUN) ------------------------------------- Ausfuehrliche Informationen ueber die LUN sind in der "Anleitung fuer den Programmierer" Teil 3 zu finden. Die Angabe des Geraets in den E/A-Anweisungen erfolgt nur durch die Angabe der LUN. Die Zuweisung des Geraetenamens zur LUN muss erfolgen, bevor die Task diese nutzt (vgl. 2.4.5.). Die Zuordnung der physischen Geraete zu den LUN erfolgt auf folgenden Wegen: . mit der Taskbilderoption /ASG . mit dem Kommando REA (die Task muss installiert und unbenutzt sein) . mit der Exekutiveanweisung ALUN$ oder der . Standardzuordnung, die der Taskbilder festlegt. 2.4.2. Pseudogeraete --------------------- Pseudogeraete sind systemlogische Geraete. Ihnen werden vorzugs- weise auszufuehrende Funktionen zugeordnet (z.B. Listenausgabe). Speziell die Systemprogramme beziehen sich bei ihren Ein-/Ausga- ben auf Pseudogeraete. Sie stellen ein Mittel dar, um eine pro- blemorientierte Programmierung zu unterstuetzen. Bevor sich eine Ein-/Ausgabeanweisung auf ein Pseudogeraet beziehen kann, muss diesem ein physisches Geraet mit dem Kommando RED (REDIRECT) zugeordnet worden sein. Die durch OMEX 1630 unterstuetzten Pseu- dogeraete sind in Tabelle 1 enthalten. Bei der Generierung wird durch OMEX 1630 folgende Standardzuordnung zwischen Pseudogeraet und physischem Geraet vorgenommen: Pseudogeraet Physisches Geraet CL: TT0: CO: TT0: LB: DK0: SY: DK0: Das Pseudogeraet TI: wird vom System automatisch zugeordnet und kann nicht per Kommando umgeschaltet werden. TI: ist das Bedien- geraet der Task. Jede Task hat ihr eigenes TI:. Die Zuordnung zwischen TI: und physischem Geraet ist abhaengig davon, wie die Task gestartet wird. - Wird eine Task durch das Kommando RUN aktiviert, erhaelt das TI: der Task das physische Geraet des Bediengeraetes zugewiesen, von dem das Kommando gegeben wurde. - Wird eine Task durch eine andere aktiviert, erhaelt das TI: der aktivierten Task das gleiche physische Geraet zugeordnet, wie die aktivierende Task. - Wenn die Exekutive eine Task in eine Uhrwarteschlange zur zeitzyklischen Aktivierung eintraegt, wird TI: durch CO: ersetzt. 2.4.3. Logische Geraete ----------------------- Die Unterstuetzung von logischen Geraeten ist eine Generierungs- option. Wird sie genutzt, liefert sie dem Nutzer eine Moeglich- keit, die logischen Geraete mit der Ausfuehrung problemspezi- fischer Funktionen zu verbinden. Bevor sich eine Ein-/Ausgabean- weisung auf ein logisches Geraet beziehen kann, muss diesem durch 21 das Kommando ASN (ASSIGN) ein physisches Geraet zugeordnet worden sein. Der symbolische Geraetename eines logischen Geraetes be- steht aus zwei Buchstaben des KOI-7-Codes und kann von dem Nutzer frei gewaehlt werden. Im OMEX 1630 wird zwischen globalen und lokalen logischen Geraetezuordnungen unterschieden. Global: Globale Zuordnungen gelten fuer alle Tasks, die im System laufen. Die Zuordnungen koennen nur von privilegierten Bediengeraeten vorgenommen werden. Lokal: Lokale Zuordnungen gelten nur fuer die Tasks, die von dem Bediengeraet aktiviert wurden, das die Zuordnung vor- nimmt. Da die Zuordnungen nur lokal fuer die Tasks gelten, die von dem betreffenden Bediengeraet aktiviert wurden, kann an verschiedenen Bediengeraeten mit den gleichen logischen Geraeten gearbeitet werden. Werden gleiche logische Geraete fuer die globale und lokale Zuordnung benutzt, so ueberschreiben die lokalen die globalen Zuordnungen. Bezieht sich eine Task oder ein Kommando auf ein Geraet, wird immer zuerst die Tabelle der logischen Geraete durchsucht. Dadurch ist es moeg- lich, dass logische und physische Geraetebezeichnungen identisch sein koennen, aber sich nicht auf das gleiche physische Geraet beziehen muessen. 2.4.4. Nullgeraet ----------------- Das Nullgeraet ist kein reales Geraet. Es wird meist fuer Test- zwecke oder bei der Arbeit mit Indirektkommando-Dateien verwendet. Z.B. wenn Ein-/Ausgaben in bestimmten Situationen un- erwuenscht sind, koennen sie auf ein Nullgeraet umgeschaltet werden. Dann findet keine Datenuebertragung statt, und es werden folgende Rueckkehrcodes durch das System bereitgestellt: Lesen: IE.EOF Schreiben: IS.SUC Dem Nullgeraet kann bei Bedarf ein physisches Geraet zugeordnet werden, so dass echte Ein-/Ausgaben moeglich sind. 2.4.5. Zuweisen und Umschalten von Geraeten -------------------------------------------- Mit folgenden Anweisungen koennen Geraetezuweisungen veraendert werden: MCR-Kommandos ------------- ASSIGN (P,NP) Definieren, Loeschen und Ausdrucken logischer Geraetezuordnungen REASSIGN (P) Aenderung der LUN-Zuordnung in der Task REDIRECT (P) Alle E/A-Anforderungen fuer ein Geraet werden auf ein anderes Geraet umgeschaltet (gilt fuer alle Tasks). Es erfolgt keine Aenderung der LUN-Zuord- nung. SET /SLAVE (P) Ein Bediengeraet wird veranlasst, den abhaengigen Status einzunehmen. SET /NOSLAVE (P) Ein Bediengeraet wird veranlasst, den abhaengi- gen Status aufzugeben. 22 Taskbilder-Options ------------------ /UNITS Festlegen der Anzahl der Geraete, die von der Task bedient werden koennen (Laenge der LUT im Taskkopf). /ASG Zuordnen der logischen Geraetenummer (LUN) zu einem Geraet. Exekutiveanweisungen -------------------- ALUN$ Zuordnen der logischen Geraetenummer (LUN) zu einem Geraet. E/A-Exekutivefunktionen ----------------------- IO.ATT Ein Geraet ausschliesslich an eine Task anschliessen. IO.DET Ein Geraet von einer Task trennen. SF.SMC Subfunktion beim Bediengeraet (Generierungs- option). Durch Setzen des Bit TC.SLV in einem Bedien- geraetecharakteristikapuffer wird das Bedienge- raet in einen abhaengigen Status versetzt. Loeschen dieses Bits bewirkt das Aufheben dieses Zustandes. 2.4.6. Eigenschaften von Bediengeraeten --------------------------------------- OMEX 1630 unterstuetzt die Bedienung mehrerer Bediengeraete, wobei jedes Bediengeraet unabhaengig vom anderen arbeitet. Damit ist es moeglich, dass mehrere Tasks zur gleichen Zeit aktiv sind, aber jede Task von einem anderen Bediengeraet aktiviert wurde. Voraussetzung ist natuerlich das Vorhandensein von entsprechend grossem Internspeicher. Die Kommunikation mit dem Mikroprogramm des Rechners, ueber das die virtuelle Konsolfunktion der Bedien- einheit realisiert wird (PROM), ist nur ueber das am 1. Kanal der 1. seriellen Anschlusssteuerung (AIS) angeschlossene Bediengeraet moeglich. Nur von diesem Geraet aus kann der Rechner in den Halt- zustand gesetzt werden, was zur Meldung des Mikroprogramms auf dem Bediengeraet fuehrt. Im folgenden wird beschrieben, wie ver- schiedene Eigenschaften der Bediengeraete die Nutzung durch den Operator bzw. das System festlegen. 2.4.6.1. Privilegierte Bediengeraete ------------------------------------ Privilegierte Kommandos koennen nur ueber privilegierte Bedien- geraete eingegeben werden. In einem Mehrnutzersystem ist ein Nutzer entweder privilegiert oder nichtprivilegiert. Er ist pri- vilegiert, wenn er eine UIC-Gruppennummer besitzt, die kleiner als 10 ist. Beim Anmelden des Nutzers mit dem MCR-Kommando HELLO nimmt das Bediengeraet den Status des Nutzers an. Erfolgt keine Unter- stuetzung des Mehrnutzerschutzes, wird der privilegierte Status bei der Systemgenerierung bestimmt. Mit dem Kommando SET /PRIV ist es moeglich, von einem privilegierten Bediengeraet weiteren Bediengeraeten den privilegierten Status zu verleihen. Mehreren Bediengeraeten den privilegierten Status zu erteilen, erfordert 23 von diesen Bedienern aber eine grosse Uebersicht, denn privile- gierte Kommandos koennen zerstoerend auf die Beziehungen zwischen System und Nutzer wirken. 2.4.6.2. Angeschlossene und getrennte Bediengeraete --------------------------------------------------- Die Task hat das Bediengeraet so an sich angeschlossen, dass keine andere Task dieses Bediengeraet fuer die Ein- und Ausgabe nutzen kann. Realisiert wird dies mit der E/A-Funktion IO.ATT. Wuenscht der Bediener diesen Zustand zu beenden, wird dies z.B. durch CTRL/Z erreicht, das die E/A-Funktion IO.DET ausloest. Damit ist das Bediengeraet von der Task getrennt, und es meldet sich MCR mit einer Eingabeaufforderung. 2.4.6.3. Abhaengige Bediengeraete --------------------------------- Ein abhaengiges Bediengeraet ist ausschliesslich fuer die E/A einer oder mehrerer Tasks zugeordnet. Mit dem MCR-Kommando SET /SLAVE oder der E/A-Exekutivesubfunktion SF.SMC kann ein Be- diengeraet in den abhaengigen Zustand versetzt werden. Der Unter- schied zum angeschlossenen Bediengeraet besteht darin, dass ausser den Textzeichen nur die durch die OFF- und NEXT PAGE-Taste erzeugten Steuerzeichen und CTRL/O bei der Eingabe akzeptiert werden. Ein Beenden des abhaengigen Zustandes kann nur durch das MCR-Kommando SET /NOSLAVE bzw. die E/A-Exekutivesubfunktion SF.SMC realisiert werden. 2.4.6.4. Steuerzeichen der Bediengeraete ---------------------------------------- Die Operationen der Bediengeraete werden mittels Steuerzeichen vom Bediener gesteuert. Steuerzeichen werden durch das Betaeti- gen von Funktionstasten, wie DELETE, ESCAPE, RETURN, TAB, OFF, HOLD usw. erzeugt. Durch gleichzeitiges Betaetigen der Taste CTRL und einer bestimmten alphanumerischen Taste lassen sich neben den Steuerzeichen, die bereits durch eine Funktionstaste erzeugt werden, noch weitere bilden, die ebenfalls eine festgelegte Wir- kung auf das System haben. (Schreibweise: CTRL/x, wobei x die entsprechende alphanumerische Taste verkoerpert). Ausser auf einzelne Steuerzeichen reagiert das Bediengeraet auch auf bestimmte ESC-Folgen (Zeichenfolgen festgelegter Syntax, die mit dem Zeichen ESCAPE beginnen). Diese Folgen koennen von einigen Funktionstasten des Geraetes oder ueber Einzeltastenbedienung erzeugt werden. Falls die Option "Nutzung von ESC-Folgen" gene- riert ist, kann die Steuerwirkung von ESC-Folgen auf das Bedien- geraet direkt provoziert werden. Liegt bei Eingabe einer ESC- Folge durch den Bediener kein Lese-QIO fuer das entsprechende Be- diengeraet an, wird die Folge nicht nur geechot, sondern zusaetz- lich durch das Kommandoprogramm interpretiert. MCR wertet diese Kommandozeilen als fehlerhaft und bringt die entsprechende Aus- schrift. Um das zu verhindern, kann eine Task installiert werden, der diese ESC-Folge mittels GMCR$-Anweisung (siehe Anleitung fuer den Programmierer, Teil 2) uebergeben wird, die aber keine Auswertung uebernehmen muss. Auf diese Weise koennen beliebige ESC-Folgen zum Bediengeraet gesendet werden, um die entsprechende Reaktion hervorzurufen (z.B. doppelte Anzeigehelligkeit einstel- len, Hard-copy-Drucker aktivieren,...), ohne dass eine Interpre- tation der entsprechenden Folge durch MCR erfolgt. 24 Tabelle 2: Steuerzeichen der Bediengeraete ----------------------------------------------------------------- Steuer- Oktal- Einzel- Bedeutung zeichen wert taste ----------------------------------------------------------------- CTRL/C 3 - Mit Hilfe dieses Steuerzeichens kann eine Eingabe an das Kommandoprogramm gerichtet werden. Nach Quittieren des CTRL/C durch das Bediengeraet mit der Ausgabe von MCR> kann die Eingabe der Kommandozeile erfol- gen. Falls eine QIO$-Anweisung mit IO.ATA, IO.RAL oder IO.RST vorliegt, erfolgt die Interpretation der Eingabe durch die entsprechende Task. Gewoehnliche Lesefunktionen werden mit dem Rueckkehrcode IS.CR (Halbduplex-Driver) bzw. IS.CC (Vollduplex-Driver) beendet. HT 11 -->| Es wird eine Horizontaltabulatorschaltung (CTRL/I) bewirkt, wobei die Tabulatoren standard- maessig aller 8 Zeichen eingestellt sind. Bei Anwendung von ESC-Folgen, die eine Cursorpositionierung bewirken, werden erst auf der naechsten Zeile die urspruengli- chen Tabulator-Halts wieder erreicht. CTRL/J 12 LF Zeilenvorschub (LF) CTRL/K 13 - CTRL/K bewirkt eine Vertikaltabulator- schaltung Es werden vier Zeilenschaltungen (LF) ausgegeben. CTRL/L 14 - Form Feed (FF) Es werden 8 (Halbduplex) bzw. 4 (Volldup- lex) Zeilenschaltungen (LF) ausgegegeben. Bei Bedienung eines Druckers durch den Vollduplex-Driver wird ein Formularvor- schub auf dem Drucker ausgefuehrt. CR 15 RETURN Die laufende Eingabezeile wird beendet, der Cursor wird auf die erste Position der naechsten Zeile gesetzt. RETURN gilt als Endezeichen einer Lese-QIO$-Anweisung und wird nicht in den Eingabepuffer uebernom- men. Die Funktion IO.RAL bildet dabei eine Ausnahme. CTRL/O 17 - CTRL/O bewirkt die Unterdrueckung der Ausgabe auf dem Bediengeraet. Bei nicht an die Task angeschlossenen Geraeten betrifft das nur den aktuellen Ausgabepuffer. Bei angeschlossenen Bediengeraeten bleibt die Ausgabeunterdrueckung wirksam bis - zum naechsten Trennen des Geraetes (IO.DET), - zur naechsten Eingabe ueber das Geraet, 25 Tabelle 2 (Fortsetzung) Steuer- Oktal- Einzel- Bedeutung zeichen wert taste ----------------------------------------------------------------- - zum naechsten CTRL/O oder - zu einer QIO$-Anweisung mit Funktions- code IO.CCO, IO.WBT oder beim Halbdu- plex-Driver mit IO.RPR. DC1 CTRL/Q 21 OFF, Abhaengig vom jeweiligen Zustand des Be- DC3 CTRL/S 23 HOLD, diengeraetes wird eines dieser Zeichen bei NEXT Betaetigung der entsprechenden Tasten zum PAGE Rechner gesendet. Sie dienen zum Anhalten (DC3) bzw. Fortsetzen (DC1) der Datenaus- gabe. Unter bestimmten Umstaenden (HOLD- SCREEN-MODUS, SMOOTH-ROLL-MODUS) erzeugt die BDE K8911 diese Zeichen automatisch, wodurch die Synchronisation der Datenaus- gabe erfolgt. CTRL/R 22 Die Bearbeitung von CTRL/R erfolgt nur durch den Vollduplex-Terminaldriver und ist generierungsabhaengig. Wird dieses Zeichen bei Bearbeitung einer nichtabge- schlossenen Eingabezeile vom Driver empfangen, erfolgt eine Zeilenschaltung (LF) mit Rueckpositionierung des Cursors auf die 1. Stelle der Zeile und die Aus- gabe der unvollstaendigen Eingabezeile, wie sie sich im Puffer befindet. DC4 24 - Der Vollduplex-Driver bearbeitet dieses (CTRL/T) Zeichen nicht. Bei Erkennung von DC4 im Eingabedaten- strom bricht der Halbduplex-Driver die laufende E/A-Operation mit dem Rueckkehr- code IE.VER ab. Das geschieht unabhaengig davon, ob DC4 automatisch von der BDE K8911 oder mittels CTRL/T erzeugt wurde. CTRL/U 25 - CTRL/U bewirkt das Loeschen der bisher eingegebenen Zeile. Es erfolgt das Echo ^U auf dem Bildschirm. Anschliessend wird der Cursor auf die erste Stelle der naechsten Zeile positioniert, so dass die Zeile sofort neu eingegeben werden kann. CTRL/X 30 CTRL/X loescht den "Typeahead Buffer" des Vollduplexdrivers. 26 Tabelle 2 (Fortsetzung) Steuer- Oktal- Einzel- Bedeutung zeichen wert taste ----------------------------------------------------------------- CTRL/Z 32 - Mit CTRL/Z wird eine Eingabe ueber das Bediengeraet abgeschlossen. Dienstprogram- me wie Assembler, Editor usw. werten eine mit CTRL/Z abgeschlossene Eingabe als An- weisung, ihre Arbeit zu beenden. Auf dem Bildschirm erscheint als Echo ^Z, und die Steuerung wird an das Kommandoprogramm zurueckgegeben. ESCAPE 33 ESC Falls die Bearbeitung von ESC-Folgen durch den Driver nicht im System generiert ist, wird die laufende Eingabe mit dem Rueckkehrcode IS.ESC beendet. Der Cursor wird nicht zurueckpositioniert. Sind die entsprechenden Voraussetzungen fuer die Arbeit mit ESC-Folgen gegeben, wird ESCAPE als Beginn einer solchen Folge gewertet. Die Behandlung der ESC-Folge erfolgt entsprechend der jeweiligen Gene- rierungs-ption. Bei Eingabe von ESCAPE inner-halb einer MCR-Kommandozeile wird, falls der Halbduplex-Driver aktiv ist, die Zeile byteweise geechot, aber nicht in die Warteschlange des Kommandoprogramms eingereiht, anderenfalls dient ESC auch hier als ALTMODE-Zeichen. CTRL/- 37 - In Systemen, in denen die Bearbeitung von ESC-Folgen durch den Driver generiert ist, hat dieses Zeichen die Funktion des ALTMODE-Zeichens, falls die Voraussetzung 1 zur Arbeit mit ESC-Folgen erfuellt ist. Falls der Halbduplex-Driver aktiv ist, gilt fuer MCR-Eingaben CTRL/- immer als ALTMODE-Zeichen, d.h. die Eingabe wird beendet, aber keine Cursorpositionierung auf die erste Position der neuen Zeile eingeleitet. Dem Kommandoprogramm wird in diesem Fall der Oktalwert 33 uebergeben. (z.B. Beendigungsanweisung fuer Kommando OPE). 175 } Falls die Option "wahlweise Klein-/ Gross- buchstabenumwandlung bei Eingaben ueber 176 ~ Bediengeraet" im System ist und ein MCR- Kommando SET /LOWER=TTn: bzw. eine ent- sprechende QIO$-Anweisung mit SF.SMC gegeben wurde, bedeuten diese Zeichen } bzw. ~. Sind diese Voraussetzungen nicht erfuellt, haben sie die Wirkung des ALTMODE-Zeichens. 27 Tabelle 2 (Fortsetzung) Steuer- Oktal- Einzel- Bedeutung zeichen wert taste ----------------------------------------------------------------- DEL 177 DEL Bei Betaetigung dieser Taste wird das zu- letzt eingegebene Zeichen durch Schreiben einer "Backspace-Space-Backspace-Folge" auf dem Bildschirm geloescht; es wird auch nicht in den Eingabepuffer uebernom- men. Bei eingeschaltetem WRAP-AROUND- Modus (siehe Technische Beschreibung K8911) kommt der gleiche Mechanismus zur Anwendung, mit dem Unterschied, dass bei automatischem Uebergang auf eine neue Zeile maximal die Zeichen der laufenden Zeile auf dem Bildschirm geloescht werden. Der Vollduplex-Driver unterstuetzt diesen Modus nur, wenn bei der Systemgenerierung die entsprechende Option ausgewaehlt und das jeweilige Terminal als CRT-Geraet gekennzeichnet wurde. Andernfalls reagiert der Driver auf DEL mit Ausgabe eines "/" und anschliessendem Echo des geloeschten Zeichens. PF-Tasten Programmstart ueber Einzeltastendruck Ist der Halbduplex-Driver aktiv, koennen mit den Funktionstasten PF1 bis PF12, die sich in der obersten Reihe der Bedientastatur befinden, Anwenderprogramme und Routinen im Rechner aufgerufen werden. Voraussetzung ist, dass die entsprechenden Tasks (Dienstprogramme usw.) vorher installiert worden. Nach dem Druecken einer PF-Taste erscheint am linken Bildschirmrand das Zeichen **, und es meldet sich das jeweilige Dienstprogramm auf dem Bildschirm (siehe Kapitel 3, Kommando SET /PF). ----------------------------------------------------------------- Anmerkung: Da der Vollduplex-Driver ungeforderte Eingaben stets an das Kommandoprogramm uebergibt und somit keine ungeforderten ESC-Folgen bearbeitet, ist die Nutzung der Sondertasten, die ESC-Folgen aussenden (PF-Tasten, Cursor, CLEAR, REC...) in diesem Modus nur bei aktivem Halbduplex-Driver moeglich. 28 2.5. Arbeit in Mehrnutzersystemen --------------------------------- 2.5.1. An- und Abmelden eines Bediengeraets -------------------------------------------- Jeder Nutzer muss sich an einem Bediengeraet anmelden, bevor das System erlaubt, weitere MCR- oder Taskkommandos zu geben. Eine Ausnahme bildet das MCR-Kommando HELP, das ein Nutzer geben kann, ohne sich angemeldet zu haben. In Abhaengigkeit von dem UIC des Nutzers erhaelt das Bediengeraet, an dem der Nutzer sich anmel- det, einen privilegierten oder nichtprivilegierten Status. Nach Beendigung seiner Aufgabe meldet sich ein Nutzer am Bediengeraet aus dem Mehrnutzersystem ab. Der Prozess des An- und Abmeldens eines Nutzers befaehigt das System, Informationen in einem Nutzerverzeichnis ueber jeden Nutzer zu fuehren. Nach jedem An- oder Abmelden eines Nutzers wird auf dem Systemmitteilungsgeraet folgende Information ausgegeben: zeit Login user nutzername [g,m] TTnn: zeit Logout user [g,m] TTnn: Dabei bedeuten nutzername ueblicherweise den Zunamen des Nutzers, [g,m] den UIC des Nutzers, TTnn: den symbolischen Namen des dem Nutzer zugeteilten Bediengeraets. Die MCR-Kommandos, die das An- und Abmelden eines Nutzers realisieren, sind die Kom- mandos HELLO und BYE. - Kommando HELLO Die Parameter des Kommandos HELLO sind der UIC des Nutzers (oder der Nutzername) und ein Kennwort. Das Standardformat fuer die Angabe des UIC ist [g,m], wobei g und m Oktalzahlen im Bereich von 1 bis 377 sind und die Nutzergruppen-Nr. bzw. die Mitglieds-Nr. darstellen. Das Kommando HELLO erlaubt verschie- dene UIC-Formate. Ein privilegierter Nutzer hat eine Gruppen- Nr., die gleich oder kleiner 10 ist. Jedem UIC ist eine 1 bis 6 alphanumerische Zeichen umfassende Zeichenkette oder Kennwort zugeordnet, die das System gegen unbefugten Zugriff sichert. Ein Nutzer kann sich nur erfolgreich an einem Bediengeraet in einem Mehrnutzersystem anmelden, wenn er das korrekte Kennwort fuer den angegebenen UIC (oder Nutzername) eingibt. Beispiele --------- HELLO Account or name: [200,10] Password: Es ist anzumerken, dass das Kommando HELLO seine Parameter an- fordert, wenn der Nutzer nach jedem Element der Kommandofolge eingibt. Der Nutzer kann andererseits auch die vollstaen- dige Kommandofolge auf einer Zeile eingeben. HELLO [200,10]/BAUM In diesem Kommando stellt BAUM (angefuehrt von einem Schraeg- strich) das Kennwort fuer den angegebenen UIC dar. Der Schraeg- strich ist nur erforderlich, wenn das Kennwort in der gleichen Zeile wie der UIC oder der Nutzername eingegeben wird. Wenn der Nutzer das Kennwort als Antwort auf die Anforderung Password: 29 eingibt, werden die eingegebenen Zeichen vom System nicht ausge- geben. Der Nutzer kann das Kommando auch in einer gemischten Form eingeben. Wird nach der Eingabe des ersten Parameters mit quittiert, fordert das Kommando den zweiten Parameter an. Das folgende Beispiel sichert, dass die Ausschrift des Kennwortes des Nutzers unterdrueckt wird. HELLO BLUME Password: In diesem Beispiel des Kommandos HELLO ist der Zuname des Nutzers angegeben, aus dem das System den UIC des Nutzers bestimmt. Nachdem ein Nutzer sich erfolgreich an einem Bediengeraet angemeldet hat, weist das System der Systemplatte des Nutzers automatisch den logischen Namen SY: zu und sucht in dem entsprechenden UFD eine Datei LOGIN.CMD. Diese Datei ist besonders nuetzlich, wenn der Bediener nach jedem Anmelden die gleiche Kommandofolge einzugeben hat. Eine vom Nutzer erzeugte Datei LOGIN.CMD, die von dem Programm fuer Indirektkommando- Dateien verarbeitet wird, kann z.B. folgende Kommandos enthal- ten: SET /LOWER=TI: SET /BUF=TI:80. Mit dieser Kommandofolge werden bestimmte Kenndaten fuer das Bediengeraet festgelegt, deren Bedeutung in Kapitel 3. dieser Schrift bei der Beschreibung des Kommandos SET erlaeutert wird. Indem der Anwender diese Kommandos in eine Indirektkommando- Datei eintraegt, erspart er sich, diese Kommandofolge am Anfang seiner Arbeit jedesmal neu ueber das Bediengeraet einzugeben. Nach jeder Anmeldung des Nutzers wird dann vom System folgendes ausgegeben: >HEL BLUME ---------- Password: OMEX 1630 MULTI-USER SYSTEM Good Morning 10-JUL-87 08:37 Logged on terminal TT7: >@LOGIN.CMD >SET /LOWER=TI: >SET /BUF=TI:80. >@ Bei der Abarbeitung der Kommandodatei LOGIN.CMD werden die in dieser Datei enthaltenen Kommandos bei ihrer Ausfuehrung auf dem Bediengeraet ausgegeben. (Vergl. Kap. 4. der vorliegenden Schrift.) Wenn die Nutzergruppen-Nr. kleiner oder gleich 10 ist, erhaelt das Bediengeraet einen privilegierten Status. Ist die Nutzergruppen-Nr. groesser als 10, nimmt das Bediengeraet einen nichtprivilegierten Status an. - Kommando BYE Wenn ein Nutzer seine Aufgabe beendet hat, gibt er das Kommando BYE ein, um sich aus dem Mehrnutzersystem abzumelden. Dieses Kommando hat keine Parameter. Das System loescht dann alle lo- kalen logischen Geraetezuordnungen sowie die logischen Geraete- zuordnungen im Mehrnutzersystem, gliedert alle eingegliederten 30 privaten Geraete aus, bricht alle aktiven nichtprivilegierten Tasks ab, die von dem Bediengeraet angefordert worden sind, gibt eine Beendigungsmitteilung aus und verhindert den weiteren Gebrauch des Bediengeraets, bis ein anderer Nutzer sich anmel- det. Beispiel -------- >BYE --- > Have a Good Evening 10-JUL-87 20:30 TT6: logged off 2.5.2. Oeffentliche und private Geraete ---------------------------------------- Systeme mit Mehrnutzerschutz erfordern spezielle Charakteristika der Geraete. Geraete koennen entweder oeffentlich, privat oder besitzlos sein. Diese Charakteristika sind wie folgt definiert: - Ein oeffentliches Geraet ist ein Geraet, das jeder benutzen kann. Ein privilegierter Nutzer kann ein Geraet mit Hilfe des MCR-Kommando SET als ein oeffentliches Geraet erklaeren. - Ein privates Geraet ist ein Geraet, das einem Nutzer mit Hilfe des MCR-Kommandos ALLOCATE zugeteilt ist. Nichtprivilegierte Nutzer muessen sich nichtoeffentliche Geraete zuteilen, bevor sie auf ein Geraet mit dem Dateiformat FM16-D/M zugreifen koennen. - Ein besitzloses Geraet ist ein Geraet, das weder oeffentlich noch privat ist. Nur privilegierte Nutzer koennen die folgenden MCR-Kommandos fuer besitzlose Geraete ohne vorherige Zuteilung geben: INI, HOM, MOU, UFD und DMO. Ein privilegierter Nutzer kann jedes Geraet in dem System als ein oeffentliches Geraet kennzeichnen. Geraete, die gewoehnlich oeffentlich sind, sind der Zeilendrucker und die Systemplatte. Ein Geraet kann mit dem Kommando SET /PUB auf einen oeffent- lichen Status gesetzt werden. Mit dem Kommando ALLOCATE kann ein Nutzer ein besitzloses Geraet als sein privates Geraet fest- legen. Die Geraetezuteilung sichert, dass kein anderer nichtprivilegierter Nutzer auf das Geraet zugreifen kann. (Pri- vilegierte Nutzer koennen eine nichtprivilegierte Zuteilung ueberschreiben.) Wenn ein Nutzer auf ein Geraet zugreift, ohne es zugeteilt zu haben, koennen andere Nutzer auf das Geraet zugreifen und/oder es sich zuteilen. Ein nichtprivilegierter Nutzer kann waehlen, ob er sein eigenes privates Geraet durch die Eingabe des Kommandos SET /PUB oeffentlich macht. Der Be- sitzer kann den Geraetestatus auch wieder als privat festlegen. Wenn jedoch der Nutzer sich abmeldet, eliminiert das System automatisch den oeffentlichen Status jedes verbundenen privaten Geraetes, wenn der Nutzer dies noch nicht selbst durchgefuehrt hat. Mit dem Kommando DEALLOCATE wird ein privates Geraet frei- gegeben und wird damit zu einem besitzlosen Geraet, wodurch anderen Nutzern erlaubt wird, Zugriff zu diesem Geraet zu gewinnen. Privilegierte Nutzer koennen jedes private Geraet, auch 31 die ihnen nicht gehoerenden, freigeben. Nichtprivilegierte Nutzer koennen nur ihre eigenen privaten Geraete freigeben. Wenn ein Nutzer sich abmeldet, gliedert das System automatisch jedes private Geraet aus und gibt es frei, soweit es Eigentum dieses Nutzers war. Um das System wirksamer nutzen zu koennen, sollte jeder Nutzer seine Geraete freigeben, sobald diese Geraete nicht laenger benoetigt werden. 32 3. Kommandoprogramm des Systems MCR (Monitor Console Routine) ------------------------------------------------------------- 3.1. Uebersicht ueber die Funktionen von MCR -------------------------------------------- Die nachfolgende Aufstellung enthaelt einen Ueberblick ueber alle MCR-Kommandos. Dabei sind die Kommandos mit aehnlichen Eigen- schaften zu bestimmten Kategorien zusammengefasst. Kommandos mit anschliessender Kennzeichnung (NP) sind fuer alle Nutzer verfuegbar. Kommandos mit anschliessendem (P) sind nur fuer privilegierte Nutzer verfuegbar. Kommandos mit anschliessen- dem (NP,P) sind nichtprivilegierte Kommandos mit privilegierten Options. Kommandos mit anschliessendem (P,NP) sind privilegierte Kommandos mit nichtprivilegierten Options. Diese in Klammern eingeschlossenen Hinweise sind nicht Teil der Syntax. Eine detaillierte Beschreibung aller Kommandos, alphabetisch geordnet, ist im Abschnitt 3.3. enthalten. Initialisierungskommandos ------------------------- ACS (P) Verwaltung von Auslagerungsdateien. ASN (NP,P) Definieren oder Loeschen einer logischen Geraete- zuordnung. Anzeige der augenblicklichen Zuordnungen auf dem Bediengeraet des Nutzers. ATX (NP,P) Aktivieren des TG(Halbduplex)-Drivers fuer das Nutzerterminal bzw. alle Terminals. BOOT (P) Laden eines neuen Systems in den Speicher und Uebergabe der Steuerung an das System. DMOUNT (NP,P) Ausgliederung eines Datentraegers von den Aktivi- taeten des Dateisystems. Loeschung des Datentrae- gersteuerblocks (VCB, Volume Control Block) und Erklaerung des Datentraegers als off-line. DTX (NP,P) Aktivieren des TT(Vollduplex)-Drivers fuer das Nutzerterminal bzw. alle Terminals. FLAGS (NP,P) Erzeugen, Beseitigen oder Anzeigen von gruppen- globalen Ereignisflags. HOME (NP,P) Aendern von Eintragungen in den Feldern des Datentraegerbeschreibungssatzes (Home Block) von FM16-D-Datentraegern. INITVOLUME (NP) Initialisierung eines dateistrukturierten Daten- traegers. INSTALL (P) Installierung einer Task in dem System. LOAD (P) Uebertragen eines ladbaren Drivers in den Intern- speicher. MOUNT (NP,P) Eingliedern eines Datentraegers durch Erzeugung des Datentraegersteuerblocks (VCB) und Festlegung des Datentraegers als on-line fuer den Zugriff durch das Dateisystem. REDIRECT (P) Umleiten aller E/A-Anforderungen von einem physischen Geraet zu einem anderen. SET (NP,P) Aenderung bzw. Anzeige von System-, Geraete- bzw. Taskkenndaten. TIME (NP,P) Eingabe der Zeit und/oder des Datums in das System, Anzeige von Zeit und Datum auf dem betreffenden Bediengeraet. 33 UFD (NP,P) Erzeugung einer Datei des Nutzerdateiverzeichnis- ses (UFD) und Eintragung ihres Dateinamens in die Datei des Hauptdateiverzeichnisses (MFD) des Datentraegers. UNLOAD (P) Entfernen eines ladbaren Drivers aus dem Speicher Informationskommandos --------------------- ACT (NP) Anzeige der Namen aktiver Tasks. ATL (NP) Anzeige der Namen und Statusinformationen aller aktiven Tasks auf dem Bediengeraet des Nutzers. CLQUEUE (NP) Anzeige von Informationen ueber Tasks, die sich in der Uhrwarteschlange befinden, auf dem Bediengeraet des Nutzers. DEVICES (NP) Anzeige der peripheren Geraete, die dem System bekannt sind. LUNS (NP) Anzeige der Zuordnungen der logischen Geraetenum- mern fuer die angegebene Task. PARTITIONS (NP) Anzeige der definierten Partitions. TAL (NP) Anzeige der Namen und Statusinformationen aller Tasks im System oder Name und Status einer bestimmten Task. TASKLIST (NP) Anzeige aller installierten Tasks oder einer be- stimmten installierten Task. Task-Steuerkommandos -------------------- ABORT (NP,P) Abbruch einer laufenden Task. ALTER (P) Wechsel der Prioritaet einer Task. BLK (NP) Blockieren einer Task. CANCEL (NP,P) Annullieren der zeitbezogenen Anforderungen einer Task (keine Auswirkungen auf die augenblicklichen Aktivitaeten). FIX (P) Fixieren einer Task im Internspeicher (die Task wird speicherresident). REASSIGN (P) Aenderung der LUN-Zuordnungen fuer eine Task. REMOVE (P) Entfernen einer Task aus dem System. RESUME (NP) Fortsetzung der Ausfuehrung einer unterbrochenen Task. RUN (NP,P) Ausfuehrung einer Task wird eingeleitet. Die Task kann unmittelbar, nach einer Verzoegerung oder in Synchronisation mit der Systemuhr gestartet werden. UNBLK (NP) Aufheben der Blockierung einer Task. UNFIX (P) Aufheben der Fixierung einer Task im Speicher. UNSTOP (NP,P) Fortsetzung der Ausfuehrung einer intern gestoppten Task. Systemwartungskommandos ----------------------- BRK (P) Uebergabe der Steuerung an das Exekutive-Testsy- stem (XDT). OPEN (P) Anzeige des Inhaltes eines Speicherplatzes auf dem Bediengeraet des Nutzers zum Zweck der Prue- fung oder Modifikation. SAVE (P) Kopieren des aktiven Systems in die Systemabbilddatei, von der es geladen worden war. 34 SSM (P) Einfuegen von Text in die Fehlerprotokolldatei. UPDATE (P) Sicherungssystem fuer Festplattenspeicher. Kommandos fuer Mehrnutzersysteme -------------------------------- ALLOCATE (NP,P) Zuteilen eines Geraetes zu einem Nutzer (Geraet wird privates Geraet des Nutzers). BRO (NP,P) Verbreitung einer Mitteilung an ein Bediengeraet oder an eine Gruppe von Bediengeraeten. BYE (NP) Nutzer meldet sich von einem Mehrnutzersystem ab. DEALLOCATE (NP,P) Freigeben eines privaten Geraetes eines Nutzers. HELLO oder Nutzer meldet sich in einem Mehrnutzersystem an. LOGIN (NP) HELP (NP) Anzeige des Inhalts einer Help-Datei. Kommandos zur Aktivierung von Kommandozeileninterpretern -------------------------------------------------------- CLI (P,NP) Arbeiten mit einen von MCR verschiedenen Kommandozeileninterpreter. DCL (NP) Aufruf des Kommandointerpreters DCL (siehe Anleitung fuer den Bediener, Teil 6). 3.2. Syntaxregeln ----------------- Ein MCR-Kommando besteht aus einer Kommandozeile, die als Antwort auf die Standardmeldung des Systems (>) bzw. auf die explizite MCR-Meldung (MCR>) am Terminal des Nutzers eingegeben wird. Eine Kommandozeile enthaelt drei Komponenten: - den Kommandonamen, - Kommandoparameter und - Zeilenbegrenzer. 3.2.1. Kommandoname ------------------- Bei Kommandonamen ist es im allgemeinen nicht erforderlich, diesen vollstaendig einzugeben. MCR benoetigt nur die drei Buchstaben umfassende Kurzform des Kommandonamens, die meistens aus den drei ersten Buchstaben des vollstaendigen Kommandos besteht. Eine Ausnahme bildet das Kommando HELP, das vollstaendig eingegeben werden muss, um es von dem Kommando HEL[LO] zu unterscheiden. Dem Kommandonamen folgen in derselben Zeile die Kommandoparameter und ein Zeilenbegrenzer. Das Kommando RESUME kann z. B. auf folgende Weise eingegeben werden: >RES taskname oder als lange Form >RESUME taskname Die Variable taskname ist ein Kommandoparameter fuer RESUME, und kennzeichnet als Zeilenbegrenzer die RETURN-Taste. 35 Leerzeichen oder Tabulatoren zeigen das Ende des Kommandonamens an. Folglich duerfen solche Zeichen nicht in Kommandonamen vorkommen. Das Kommando OPENREGISTER adresse ist also gueltig, waehrend OPEN REGISTER adresse syntaktisch falsch ist (REGISTER ist keine numerische Angabe). 3.2.2. Kommandoparameter ------------------------ In der Regel ist ein Kommandoparameter - der Name einer Task, - der Name einer Datei oder - eine Geraetespezifikation. Ein Kommandoparameter kann durch Schluesselwoerter (eins oder mehrere, abhaengig vom speziellen Kommando) modifiziert werden. Wenn MCR eine Kommandozeile zerlegt, wird diese verdichtet, d.h. aus mehrfachen Leerzeichen und Tabulatoren entsteht jeweils nur ein Leerzeichen; Zeichenketten, die mit einem Semikolon (;) bzw. mit einem Ausrufezeichen (!) beginnen, werden als Kommentar behandelt (siehe 3.2.5.). Sind in Kommandoparametern Anfuehrungs- zeichen ("") enthalten, wird die Zeichenkette innerhalb dieser Anfuehrungszeichen exakt uebernommen, ohne dass sie verdichtet wird (gilt fuer Dateibezeichnungen gemaess ANSI X.327-1978, in denen Leerzeichen eingeschlossen sein koennen). Wird nur ein Anfuehrungszeichen (") gefunden, werden die Zeichen nach dem Anfuehrungszeichen bis zum Zeilenende ebenfalls nicht verdichtet (siehe dazu Anleitung fuer den Programmierer, Teil 5: "Datei- zugriffssystem FCS 1630"). 3.2.3. Schluesselwoerter ------------------------ Schluesselwoerter (auch Schalter oder Options genannt) haben Schalterfunktionen. Ein Schluesselwort in einem MCR-Kommando beginnt mit einem Schraegstrich (/) und besteht aus einer alpha- numerischen Zeichenkette. In vielen Faellen koennen dieser Zeichenkette ein Gleichheitszeichen (=) und ein Wert folgen, der diesem Schluesselwort zugewiesen wird: /schluesselwort=wert Folgt das Schluesselwort dem Kommandonamen, modifiziert es das Kommando selbst: >SET /CRT=TI: Folgt das Schluesselwort einem Kommandoparameter, modifiziert es diesen Parameter. Z.B. verlangt das Kommando INSTALL als Kommandoparameter einen Dateinamen, der die Task spezifiziert, die installiert werden soll. An diesen Dateinamen koennen Schluesselwoerter angehaengt werden, wie /TASK fuer den Namen, unter dem die Task installiert werden soll: >INS MAXIM.TSK/TASK=MAX Dieses Kommando installiert die Taskabbilddatei MAXIM.TSK unter dem Namen MAX, der bei weiteren Aufrufen verwendet werden kann. 36 3.2.4. Kommandozeilenbegrenzer ------------------------------ Das Betaetigen - der RETURN-Taste , - der ALTMODE-Taste oder - der ESCAPE-Taste beendet die Eingabe einer Kommandozeile. Nach Ausfuehrung eines Kommandos, dessen Eingabe mit beendet wurde, gibt MCR die Standardmeldung des Systems (>) aus. Diese Meldung wird unterdrueckt, wenn die Eingabe der Kommandozeile mit beendet wurde (ausser bei den Kommandos RUN und OPE, bei denen die ESC-Taste eine Sonderfunktion hat). MCR nimmt aber auch in diesem Fall unaufgeforderte Eingaben an, auch wenn die Standardmeldung nicht erscheint. 3.2.5. Kommentar ---------------- MCR behandelt Textzeilen, die in der ersten Zeichenposition ein Semikolon enthalten, als Kommentarzeilen. Zur Begrenzung von Kommentaren innerhalb von Kommandozeilen wird das Ausrufezeichen verwendet. Das erste Ausrufezeichen zeigt den Beginn, das zweite bzw. ein Zeilenbegrenzer das Ende des Kommen- tars an. Der dazwischenliegende Text wird von MCR nicht ausgewertet. Beispiele: >; Diese Zeile ist eine Kommentarzeile >ACT !Anzeige aktiver Tasks >ACT !Anzeige aktiver Tasks! /ALL Besonders nuetzlich sind Kommentare in Indirekt-Kommandodateien (siehe Kap.4). 3.3. Beschreibung der Kommandos ------------------------------- In diesem Abschnitt werden alle Kommandos in alphabetischer Reihenfolge beschrieben. Es gelten folgende Notationsregeln: - Kleingeschriebene Zeichenketten bezeichnen Variable, deren tatsaechlicher Wert bei der Eingabe des Kommandos bestimmt wird, z.B. wird der Parameter taskname durch den an dieser Stelle angegebenen tatsaechlichen Tasknamen ersetzt. - Eckige Klammern ([]) umschliessen wahlweise Angaben in einer Kommandozeile. Ausnahmen sind hierbei alle UFD-Angaben, bei denen die eckigen Klammern notwendige Syntaxelemente sind, und die Werte des Schalters BAD beim Kommando INI, die ebenfalls in eckige Klammern eingeschlossen werden. - Numerische Werte in einem Kommando koennen, solange sie nicht explizit qualifiziert sind, sowohl dezimal als auch oktal eingegeben werden. Dezimalzahlen werden in der Regel durch einen nachgestellten Punkt (.) angezeigt. Werte ohne diesen Punkt oder mit voran- gestelltem Doppelkreuz (#) gelten als Oktalzahlen. Die Zahlen 255., 377 und #377 stellen also denselben Wert dar. 37 - Im Kopf der Beschreibung sind links die Langform, rechts die Kurzform des Kommandos angegeben (drei Buchstaben). Zusaetzlich sind bei der Langform die drei signifikanten Buchstaben unterstrichen. In der Syntaxbeschreibung werden Grossbuchstaben fuer Kommandonamen verwendet. In der taeglichen Praxis koennen die Kommandos jedoch auch mit Kleinbuchstaben eingegeben werden. - Ein dem Kommando folgendes (NP) zeigt an, dass das Kommando auch von nichtprivilegierten Nutzern eingegeben werden darf. Ein dem Kommando folgendes (P) zeigt an, dass es sich um ein privilegiertes Kommando handelt, das nur von Nutzern mit einer Nutzergruppe unter 10 benutzt werden kann (siehe dazu Abschnitt 2.4.6.). Die Kombination (NP,P) zeigt an, dass ein nichtprivilegiertes Kommando einige Options hat, die nur von privilegierten Nutzern verwendet werden koennen. Die Kombination (P,NP) zeigt an, dass es sich um ein privilegiertes Kommando handelt, das der nichtprivilegierte Nutzer fuer seine Arbeit eingeschraenkt benutzen kann. Diese Angabe ist kein Teil der Syntax. 38 ---------------------------------------------------------------- | ABORT (NP,P) | ABO | | --- | | ---------------------------------------------------------------- 3.3.1. Abbruchkommando ----------------------- Format des Kommandos -------------------- ABO[RT] taskname[/PMD] wobei taskname - Name der Task, die abgebrochen werden soll. Bei Weglassen des Tasknamens versucht das Kommando, die Task TTnn abzubrechen. /PMD - Schluesselwort, das einen Speicherabzug fuer die abzubrechende Task bewirkt (Post-Mortem Dump). Funktionsbeschreibung ---------------------- Das ABORT-Kommando beendet die Ausfuehrung einer nichtprivile- gierten Task. Nichtprivilegierte Nutzer koennen nichtprivilegierte Tasks, die von ihrem eigenen Terminal angefordert wurden, damit abbrechen. Ausserdem koennen sie privilegierte Tasks abbrechen, die von ihrem eigenen Terminal angefordert wurden, wenn diese Tasks einen definierten Ausgang ueber die AST-Direktive SREX$ (Specify Requested Exit AST) besitzen. Privilegierte Nutzer koennen jede beliebige Task abbrechen. Wenn eine Task abgebrochen wird, die einen definierten Ausgangs- AST ueber die SREX$-Direktive besitzt, tritt sie in diesen AST ein, statt unverzueglich abgebrochen zu werden. Privilegierte Tasks treten immer dann in die spezifizierte AST- Routine ein, wenn eine gueltige Abbruchanforderung gegeben wird. Es werden jedoch solange, bis der erste AST der Warteschlange abgearbeitet ist, keine weiteren AST-Ausgaenge in die Warte- schlange eingereiht. Nichtprivilegierte Tasks treten nur einmal in die spezifizierte AST-Routine ein. Danach ist jeder gueltige Versuch, die Task abzubrechen, erfolgreich. Beachte: Das Terminal des Nutzers erhaelt keine Anzeige darueber, ob die Task tatsaechlich abgebrochen wurde oder ob sie den Abbruch-AST empfing. Um eine ordentliche Beendigung der laufenden Task zu bewirken, werden folgende Aktionen vom System durchgefuehrt: - E/A-Beendigung. E/A fuer alle Geraete, die nicht dateistrukturiert sind, werden geloescht. E/A fuer dateistrukturierte Geraete werden beendet, und der Zugriff zu den Dateien wird aufgehoben. Alle ange- schlossenen Geraete werden getrennt. 39 - Freigabe der Partition der Task, wenn die Task nicht im Speicher fixiert ist. - Wenn das System die Anweisung "Alter Priority" (Aendern der Prioritaet) unterstuetzt (eine Systemgenerierungsoption), wird die Prioritaet der Task auf 247 geaendert. Eine Task muss speicherresident sein, wenn sie abgebrochen werden soll; die Prioritaetsaenderung bewirkt gewoehnlich fuer ausgelagerte Tasks eine schnelle Rueckkehr in den Hauptspeicher. - Anforderung einer Mitteilungsroutine bei Taskbeendigung (TKTN, Task Termination Notification Routine), die den Grund fuer die Beendigung auf dem Bediengeraet ausgibt. Wurde das Schluesselwort /PMD spezifiziert und ist die Task nicht ausgelagert, werden auch die Taskregister angezeigt. Das wahlweise Schluesselwort /PMD bewirkt ausserdem, dass nach Abbruch der Task ein Speicherabzug (Post-Mortem-Dump) erzeugt wird. Voraussetzung hierfuer ist, dass die Task PMD im System installiert ist. Beispiele --------- >ABO MIN ------- Task "MIN" terminated Aborted via directive or MCR PC = 042100 PS = 000040 R0 = 000100 R1 = 002440 R2 = 040600 R3 = 000000 R4 = 000010 R5 = 043000 SP = 041764 >ABORT ABC --------- Task "ABCT2" terminated Aborted via directive or MCR Das Kommandoprogramm bricht eine Task mit dem Namen ABCT2 ab. Da dieses Kommando von dem Bediengeraet TT2: gegeben wurde, genuegt es, den Tasknamen mit ABC im Kommando anzugeben. >ABO ABCT2, von einem beliebigen privilegierten Terminal aus eingegeben, bewirkt dasselbe. >ABO --- Task "TT0 " terminated Aborted via directive or MCR Das Kommandoprogramm bricht eine Task mit dem Namen TT0 ab. Mit diesem Namen wird jede Task, die ohne vorheriges Installieren vom Bediengeraet TT0: gestartet wird, zeit- weilig im Systemtaskverzeichnis gefuehrt. 40 ---------------------------------------------------------------- | ALLOCATE CHECKPOINT SPACE (P) | ACS | | - - - | | ---------------------------------------------------------------- 3.3.2. Zuteilen von Auslagerungsbereich ---------------------------------------- Format des Kommandos -------------------- ACS ddnn:/BLKS=n wobei: ddnn: -Geraeteeinheit, die eine eingegliederte Platte mit dem Dateiformat FM16-D enthaelt. Wenn die Geraetenummer nicht angegeben ist, wird der Standardwert 0 angenommen. /BLKS=n -Schluesselwort, das die Zahl (n) der Bloecke auf der Platte angibt, die einer Auslagerungsdatei zugeteilt werden. Ein Block ist 512 Bytes lang. Das Kommando >ACS DK:/BLKS=240. teilt z.B. 240 Bloecke auf der Platte DK0: einer Auslagerungsdatei zu. Wenn n = 0 ist, schliesst das System den Gebrauch der Auslagerungsdatei ab. Z.B. schliesst das Kommando >ACS DK:/BLKS=0 die Auslagerungsdatei auf der DK0:. Das bedeutet aber nicht, dass der der Auslagerungsdatei zugeteilte Platz wieder frei verfuegbar ist. Die Systemauslagerungsdatei [0,0]CORIMG.SYS behaelt den Bereich, der durch das ACS-Kommando urspruenglich zugeteilt wurde, so dass der Bereich, falls er demnaechst wieder benoetigt wird, verfuegbar bleibt. Soll der Auslagerungsbereich wieder freigegeben werden, sind folgende Kommandos noetig: >ACS DK:/BLKS=0 >PIP DK:[0,0]CORIMG.SYS/TR Das PIP-Kommando sollte erst gegeben werden, wenn nach dem ACS-Kommando die Mitteilung ACS__CHECKPOINT FILE NOW INACTIVE erscheint. Funktionsbeschreibung --------------------- Mit diesem Kommando wird eine Auslagerungsdatei auf der Platte zugeteilt oder abgeschlossen fuer Systeme, die eine dynamische Zuteilung von Auslagerungsdateien unterstuetzen. Die Platte, die eine Auslagerungsdatei enthaelt, muss das Dateiformat FM16-D be- sitzen; auf einer Platte ist nur eine Auslagerungsdatei erlaubt, im System koennen jedoch mehrere Auslagerungsdateien in Gebrauch sein. So koennen z.B. 2 Auslagerungsdateien zugeteilt sein, eine auf der Platte DK0:, die andere auf der Platte DK1:. Wenn das System Auslagerungsbereich benoetigt, werden die Ausla- 41 gerungsdateien in der Reihenfolge durchsucht, wie sie erzeugt wurden. Soll eine Task ausgelagert werden, so sucht das System zunaechst in der ersten erzeugten Auslagerungsdatei (Primaerdatei) nach verfuegbarem Platz. Ist in dieser Datei kein Platz vorhanden, wird in der zweiten Datei (Sekundaerdatei) gesucht. Ein ACS-Kommando, das eine Auslagerungsdatei abschliesst, wirkt nicht unmittelbar. Wenn die angegebene Datei eine oder mehrere ausgelagerte Tasks enthaelt, muessen die Tasks in den Speicher zurueckgebracht werden, bevor das System die Datei abschliessen kann. Sobald jedoch die Anforderung zum Abschliessen der Datei durchgefuehrt wird, verwendet das System die Datei nicht mehr fuer weitere auszulagernde Tasks. Beispiele --------- >ACS DK:/BLKS=200. ----------------- >ACS DK1:/BLKS=250. ------------------ Es werden zwei Auslagerungsdateien zugeteilt. Die erste Datei auf DK0: ist 200 Bloecke lang. Die zweite auf DK1: umfasst 250 Bloecke. >ACS DK1:/BLKS=0 --------------- Die Auslagerungsdatei auf DK1: wird abgeschlossen. 42 ---------------------------------------------------------------- | ACTIVE (NP) | ACT | | --- | | ---------------------------------------------------------------- 3.3.3. Namen der aktiven Tasks ------------------------------- Format des Kommandos -------------------- ACT[IVE] [/schluesselwort] schluesselwoerter: /ALL /TERM=TTn: Funktionsbeschreibung --------------------- Dieses Kommando veranlasst das System, auf dem Eingabebedienge- raet die Namen der von diesem Bediengeraet aktivierten Tasks aus- zugeben. Wird das Kommando durch das Schluesselwort /ALL ergaenzt, so werden auf dem Eingabebediengeraet die Namen aller aktiven Tasks ausgegeben. In Verbindung mit dem Schluesselwort /TERM werden auf dem Eingabebediengeraet die Namen aller aktiven Tasks fuer das angegebene Bediengeraet ausgegeben. Beispiele --------- >ACT --- MCR... ...MCR >ACT /ALL -------- LDR... MCR... ...MCR PMT... >ACT /TERM=TT1: -------------- ...PIP > 43 ----------------------------------------------------------------- |ALLOCATE (NP,P) | ALL | |--- | | ----------------------------------------------------------------- 3.3.4. Zuteilen von Geraeten ----------------------------- Format des Kommandos -------------------- ALL[OCATE] dd[nn:][=llnn:][/schluesselwort] wobei dd - mnemonischer Geraetename der Geraeteeinheit, die zugeteilt werden soll nn - wahlfreie Geraeteeinheitsnummer Wenn die Nummer weggelassen wird, dann teilt das System die erste verfuegbare logische Einheit des dd-Typ-Geraetes zu und zeigt das zugeteilte Geraet in dem folgenden Format an: ALL__ddnn: NOW ALLOCATED llnn: wahlfreier Name eines logischen Geraetes, welches das System erzeugt und dem physischen Geraet, das zugeteilt werden soll, zuweist. (Das entspricht einer lokalen Zuweisung, wie sie durch das ASSIGN- Kommando realisiert wird.) schluesselwort: /TERM=TTnn: Nur gueltig fuer privilegierte Nutzer. Gibt das Terminal (TTnn:) an, welchem das Geraet zugeteilt werden soll. Funktionsbeschreibung --------------------- Dieses Kommando gilt nur in Mehrnutzersystemen. Es legt ein ange- gebenes Geraet als privates Geraet eines Nutzers fest. Nichtpri- vilegierte Nutzer koennen einen Datentraeger auf einem nichtzuge- teilten Geraet zuteilen und eingliedern. Ein privilegierter Nutzer kann ein Geraet einem anderen Bediengeraet anstatt TI: zuweisen. Nur der Eigentuemer eines privaten Geraetes und privilegierte Nutzer koennen auf das Geraet zugreifen. Wenn ein nichtprivile- gierter Nutzer ein Geraet zuteilt und einen Datentraeger auf dem Geraet eingliedert, dann koennen andere nichtprivilegierte Nutzer nicht auf den Datentraeger zugreifen. Privilegierte Nutzer koen- nen durch das Geben eines MOUNT-Kommandos auf den Datentraeger zugreifen. Eingegliederte Geraete, oeffentliche Geraete oder private Geraete eines anderen Nutzers koennen nicht zugeteilt werden. Vom System wird automatisch das private Geraet eines Nutzers freigegeben, wenn er sich von dem System durch die Eingabe des Kommandos BYE abmeldet. Im Sinne einer effektiven Nutzung der Systemressourcen sollten die Nutzer die Zuteilung der Geraete jedoch aufheben, sobald die Geraete nicht mehr benoetigt werden. 44 Beispiele --------- >ALL DK: ------- Die Platte DK0: wird zugeteilt. >ALL DK2: ------- Die Platte DK2: wird zugeteilt. >ALL DK=AS0: ----------- ALL__DK3: NOW ALLOCATED Die erste verfuegbare logische Geraeteeinheit von DK: wird zuge- teilt (in diesem Falle DK3:, weil die Geraeteeinheiten 0, 1 und 2 zuvor schon zugeteilt wurden oder oeffentliche Geraete sind) und der logische Name AS0: zugewiesen. 45 ---------------------------------------------------------------- | ALTER (P) | ALT | | --- | | ---------------------------------------------------------------- 3.3.5. Wechsel der Prioritaet ----------------------------- Format des Kommandos -------------------- ALT[ER] taskname/schluesselwort[(er)] taskname Der Name der Task, deren Prioritaet geaendert werden soll. schluesselwoerter: /PRI=n Aendert die statische Prioritaet und, wenn das System die Direktive "Alter Priority" unterstuetzt, die dynamische Prioritaet. /RPRI=n Aendert nur die dynamische Prioritaet. (Dieses Schluessel- wort ist nur gueltig, wenn das System die Direktive "Alter Priority" unterstuetzt.) Funktionsbeschreibung --------------------- Mit diesem Kommando kann die statische und/oder die dynamische Prioritaet einer installierten Task geaendert werden. Die Priori- taet der Task kann als Oktal- oder Dezimalzahl angegeben werden und in dem Bereich von 1 bis einschliesslich 250 liegen. Beispiel -------- >ALT MIN/PRI=240. ------------------ Die Prioritaet der Task MIN wird auf 240 geaendert. 46 ---------------------------------------------------------------- | ASSIGN (NP,P) | ASN | | -- - | | ---------------------------------------------------------------- 3.3.6. Zuordnen eines Geraetes ------------------------------- Format des Kommandos -------------------- Bei allen Formen werden folgende Notationen benutzt: pp physischer, logischer oder Pseudo-Geraetename nn: Geraetenummer ll logischer Geraetename tt Terminal-Geraetename Nichtprivilegierte Kommandoformen: ASN ppnn:=llnn: Der logische Name llnn: wird dem Geraet ppnn: zugeordnet. Mit dem Kommando wird eine lokale Zuordnung fuer das eingebende Bediengeraet festgelegt. ASN Es werden alle lokalen logischen Geraetezuordnungen und alle logischen Geraetezuordnungen in Mehrnutzersystemen ausgegeben. ASN =[llnn:] Die lokalen Zuordnungen des angegebenen logischen Geraetenamens werden geloescht. Bei fehlendem logischem Geraetenamen werden alle lokalen Zuordnungen geloescht. Privilegierte Kommandoformen: ASN ppnn:=llnn:/GBL Es wird eine globale Zuordnung definiert, die den lo- gischen Namen llnn: dem Geraet ppnn: zuordnet. ASN /GBL Es werden alle globalen und lokalen Zuordnungen sowie alle Zuordnungen in Mehrnutzersystemen fuer alle Bedien- geraete in dem System ausgegeben. ASN =[llnn:]/GBL Die globalen Zuordnungen fuer das angegebene Geraet werden geloescht. Bei fehlender Geraeteangabe werden alle globalen Zuordnungen geloescht. ASN ppnn:=llnn:/LOGIN[/TERM=ttnn:] Es wird eine Geraetezuordnung in Mehrnutzersystemen fuer das angegebene Bediengeraet festgelegt. Fehlt die Angabe des Bediengeraetes in dem Kommando, so gilt die Zuordnung fuer das eingebende Bediengeraet. ASN /TERM=ttnn: Auf dem eingebenden Bediengeraet werden alle lokalen Zuordnungen und alle Zuordnungen in Mehrnutzersystemen fuer das angegebene Bediengeraet ausgegeben. ASN =llnn:/LOGIN[/TERM=ttnn:] Die Zuordnung in Mehrnutzersystemen fuer den logischen Geraetenamen llnn: wird fuer das angegebene Bediengeraet geloescht. Bei fehlender Angabe des Bediengeraetes wird die Zuordnung fuer das eingebende Bediengeraet geloescht. 47 ASN =/LOGIN[/TERM=ttnn:] Es werden alle Zuordnungen in Mehrnutzersystemen fuer das angegebene Bediengeraet geloescht, oder fuer das Bedien- geraet, ueber das eingegeben wird, wenn die Angabe des Bediengeraetes im Kommando weggelassen wird. ASN =[llnn:]/TERM=ttnn: Die lokale Zuordnung fuer den Geraetenamen llnn: wird fuer das angegebene Bediengeraet geloescht. Bei fehlender Angabe des logischen Geraetenamens werden alle lokalen Zuordnungen fuer das angegebene Bediengeraet geloescht. Funktionsbeschreibung --------------------- Mit diesem Kommando koennen logische Geraetezuordnungen defi- niert, geloescht oder ausgegeben werden. Logische Geraetezuord- nungen verbinden logische Namen mit physischen Geraeten, Pseudo- geraeten oder anderen logischen Geraeten. Wird ein logischer Name einem Pseudo- oder logischen Geraet zugeordnet, loest das System die Zuordnung zu dem verbundenen physischen Geraet auf. Ein logischer Geraetename hat die gleiche Syntax wie eine physische Geraeteeinheit. Ein logischer Name besteht aus zwei KOI-7-Zeichen (Buchstaben), die wahlweise ergaenzt werden von 1 oder 2 Oktalziffern, die die Nummer des Geraetes kennzeichnen, gefolgt von einem Doppelpunkt als Abschluss des logischen Namens. Es gibt drei Formen der lo- gischen Geraetezuordnung, die im folgenden erlaeutert werden. -Globale Zuordnung Sie wird fuer alle Tasks, die in einem System aktiv sind, ange- wendet. Das Kommando ASN zum Definieren oder Loeschen einer glo- balen Zuordnung kann nur von einem privilegierten Bediengeraet gegeben werden. -Lokale Zuordnung Sie wird nur fuer Tasks verwendet, die von einem Bediengeraet aktiviert werden, von dem das Kommando ASN gegeben wird. Eigene lokale Zuordnungen koennen von jedem beliebigen Bediengeraet de- finiert oder geloescht werden. -Zuordnung in Mehrnutzersystemen (Login-Zuordnungen) Diese Zuordnung kann nur in Mehrnutzersystemen angewendet werden. Wenn ein Nutzer das Kommando HELLO eingibt, um sich in dem Mehrnutzersystem anzumelden, wird von dem System automatisch dem Systemgeraet des Nutzers, das die Dateien des Nutzers enthaelt, der logische Name SY: zugeordnet. Die Zuordnung in Mehrnutzersystemen gilt nur fuer Tasks, die von einem Bedien- geraet aktiviert werden, waehrend der Zeitdauer, in der der augenblickliche Nutzer in dem Mehrnutzersystem angemeldet ist. Die Zuordnung in Mehrnutzersystemen kann von einem Bediener nur von einem privilegierten Bediengeraet aus definiert oder geloescht werden. 48 Lokale Zuordnungen haben den Vorrang vor Zuordnungen in Mehr- nutzersystemen und globalen Zuordnungen, und Zuordnungen in Mehr- nutzersystemen haben den Vorrang vor globalen Zuordnungen. Wird eine lokale Zuordnung definiert, die einen logischen Gerae- tenamen benutzt, der bereits vom System bei der Login-Zuordnung verwendet wird, nimmt das System auf die lokale Zuordnung Bezug. Wenn eine Task installiert wird oder das System eine Direktive "ASSIGN LUN" ausfuehrt, dann durchsucht das System zunaechst die logische Geraetetabelle nach dem spezifizierten Geraet, bevor es die physische Geraetetabelle durchsucht. Das bedeutet, dass ein Nutzer logische Geraetenamen benutzen kann, die identisch mit physischen Geraetenamen sind, auch wenn sie nicht auf dasselbe physische Geraet Bezug nehmen. Deshalb hat, wenn logischer und physischer Geraetename identisch sind, der logische Geraetename den Vorrang. Beispiele --------- >ASN TT:=AB1: ------------ Definieren von AB1: und zuordnen zu TT0: >ASN PP:=AB2: ------------ Zuordnung AB2: zu PP0: >ASN DK:=GB0:/GBL ---------------- Definieren des globalen logischen Geraetenamens GB0: und zuord- nen zu DK0: >ASN --- Ausgabe aller lokalen Zuordnungen und Zuordnungen in Mehrnutzer- systemen AB2: PP0: LOCAL TI - TT0: AB1: TT0: LOCAL TI - TT0: SY : DK1: LOGIN TI - TT0: >ASN /GBL -------- Ausgabe aller Zuordnungen AB2: PP0: LOCAL TI - TT0: AB1: TT0: LOCAL TI - TT0: SY : DK1: LOGIN TI - TT0: GB0: DK0: GLOBAL >ASN =AB2: --------- Loeschen des lokalen logischen Geraetenamens AB2: >ASN =/GBL --------- Loeschen aller globalen Zuordnungen 49 >ASN /TERM=TT0: -------------- Ausgabe aller lokalen Zuordnungen fuer Bediengeraet TT0: AB1: TT0: LOCAL TI - TT0: >ASN =/TERM=TT0: --------------- Loeschen aller lokalen Zuordnungen fuer Bediengeraet TT0: >ASN DK:=XX: ---------- Zuordnung XX: zu DK: >ASN XX:=YY: ---------- Zuordnung YY: zu XX: >ASN --- Ausgabe der Zuordnungen YY0: DK0: LOCAL TI - TT0: XX0: DK0: LOCAL TI - TT0: 50 ---------------------------------------------------------------- | ACTIVATE TG(HALBDUPLEX)-DRIVER (NP,P) | ATX | | - - - | | ---------------------------------------------------------------- 3.3.7. Aktivieren des TG(Halbduplex)-Drivers -------------------------------------------- Format des Kommandos -------------------- ATX [/schluesselwort[(er)]] schluesselwoerter: /CC /AL /LI Erlaeuterung der Schluesselwoerter /CC - copy conditions Bei Angabe dieses Schluesselwortes werden alle fuer TT: getroffenen Einstellungen, wie MOU, ASN, ALL, SET (soweit vom Halbduplex-Driver unterstuetzt) nach der Umschaltung fuer TG: uebernommen. /LI list conditions Bei Angabe dieses Schluesselwortes liefert ATX Informationen ueber die eingestellten Systemeigenschaften nach der Umschaltung auf den Halbduplex-Driver. /AL Dieses Schluesselwort ermoeglicht die Uumschaltung auf den Halbduplex-Driver fuer alle generierten Bedieneinheiten. Beachte: Das Kommando ATX /AL kann nur von privilegierten Nutzern gegeben werden. Die anderen Schluesselwoerter koennen auch nichtprivile- gierte Nutzer anwenden. Alle Schluesselwoerter sind beliebig miteinander kombinierbar. Funktionsbeschreibung --------------------- Mit den MCR-Kommandos ATX und DTX kann der Nutzer festlegen, durch welchen Terminal-Driver (Halbduplex- oder Vollduplex- Driver) eine BDE bedient werden soll (vgl. Anleitung fuer den Programmierer, Teil 3, Kap. 3). Voraussetzung dafuer ist, dass bei SYSGEN die entsprechenden Options (Fragen 30 und 31 der Terminal-Driver-Options) ausgewaehlt wurden und sich der TG- Driver im System befindet. Das Kommando ATX ohne Angabe weiterer Schluesselwoerter bewirkt fuer die BDE, von der das Kommando gegeben wurde, die Umschaltung vom Vollduplex- auf den Halbduplex-Driver und die Umweisung dieses Terminals (REDIRECT) von TT: auf TG:. Danach wirkt die BDE fuer das System wie ein anderes Terminal, da sich alle vorherigen Festlegungen mit den Kommandos SET, ALL, ASN, MOU auf TT: und nicht auf TG: beziehen. Lediglich die Anmeldung im System (HELLO) wird uebernommen und bleibt erhalten. Es erfolgt keine Veraende- 51 rung der Einstellungen durch vorherige MCR-Kommandos fuer TT: und TG:. Diese Eigenschaften lassen sich durch Angabe von Schluessel- woertern beinflussen. Beispiel -------- Einstellungen vor der Umschaltung: UIC = [11,10] eingegliederte Platten DK1:, DK2: zugeteilte Platte DK3: zugewiesen DK1: SY: TI: privilegiert >ATX /CC/LI ---------- Die angegebenen Einstellungen werden uebernommen und auf dem Bildschirm wie folgt angezeigt: + SET + + ALL + + MOU + + ASN + UIC=[11,10] DK3: DK1: DK1: SY: LOC BUF=80. DK2: PRIV 52 ---------------------------------------------------------------- | ACTIVE TASK LIST (NP) | ATL | | - - - | | ---------------------------------------------------------------- 3.3.8. Liste der aktiven Tasks ------------------------------- Format des Kommandos -------------------- ATL [taskname] Funktionsbeschreibung --------------------- Mit Hilfe dieses Kommandos kann auf dem Bediengeraet, ueber das das Kommando eingegeben wird, eine Liste erzeugt werden, die den Namen und den Status aller aktiven Tasks in dem System enthaelt. Werden diese Informationen nur von einer besonderen Task ge- wuenscht, so ist der Name dieser Task im Kommando anzugeben. Der Ausdruck liefert nuetzliche Informationen fuer die Bestimmung des genauen Status jeder aktiven Task und enthaelt fuer jede Task die folgenden Informationen: - Taskname - physische Adresse des Tasksteuerblocks (oktal) - Name der Partition - physische Adresse des Partitionsteuerblocks (oktal) - Bereichsgrenzen der Partition (oktal) - dynamische und Standard-Prioritaet der Task - Status-Flags der Task - physische Geraeteeinheit des Bediengeraetes TI: - Anzahl der noch ausstehenden E/A-Aktivitaeten (dezimal) - lokale Ereignis-Flags der Task - Taskregister und Prozessorstatuswort (nur bei speicherresidenten Tasks) Die ausgegebenen Status-Flags der Task sind in dem Tasksteuer- block (TCB, Task Control Block) oder im Partitionssteuerblock (PCB, Partition Control Block) enthalten. Es wird der Name des Bits ausgegeben, wenn das Bit zur Zeit des Ausdrucks gesetzt ist oder im Partitionssteuerblock enthalten ist. Nichtgesetzte Bits werden nicht ausgegeben. Die Namen der Flags sind drei Zeichen lang und stimmen mit den letzten drei Zeichen der mnemonischen Definition der Status-Bits ueberein. Das Status-Flag MCR stellt z.B. das Bit T3.MCR dar und zeigt an, dass die Task durch MCR aktiviert wurde. Ist dem Status-Flag ein Minuszeichen vorangestellt, so wird angezeigt, dass das Komplement der Bedingung dargestellt wird. So bedeutet z.B. -CHK, dass die Task nicht auslagerbar ist. Wenn die Task nicht im Speicher ist (das OUT-Flag wird ausge- geben), so entfaellt die Ausgabe des Inhaltes des PC, PSW und der Register. 53 Tabelle 3: Aufstellung der Status-Flags Status TCB Flag Bedeutung ----------------------------------------------------------------- ABO T2.ABO Task wird abgebrochen ACP T3.ACP Task ist eine Zusatzsteuerroutine AST T2.AST Task bearbeitet einen AST BLK TS.BLK Task wird durch ein CLI-Kommando blockiert CAF T2.CAF Fehler bei der Zuteilung von Auslagerungsbereich, die Task kann nicht ausgelagert werden CAL T3.CAL Auslagerungsbereich ist dem Task-Abbild zugeteilt -CHK T2.CHK Task ist nicht auslagerbar CKD T2.CKD Task-Auslagerung ist nicht erlaubt CKP TS.CKP Task ist ausgelagert CKR TS.CKR Task wartet darauf, ausgelagert zu werden CLI T3.CLI Task ist eine CLI Task DST TS.DST AST der Task sind nicht erlaubt -EXE T2.EXE Task ist nicht in Ausfuehrung FXD T2.FXD Task ist im Speicher fixiert GFL T3.GFl Task hat seine gruppenglobalen Ereignisflags gesperrt HLD TS.HLD Task ist zur Haelfte geladen HLT T2.HLT Task wurde beendet MCR T3.MCR Task wurde durch MCR aktiviert MSG TS.MSG Task ist abgebrochen, Warten auf TKTN-Mitteilung NET T3.NET Rechnernetz-Protokoll NRP TS.NRP Adressbereich der Task verweist auf eine nicht- residente Partition NSD T3.NSD Task kann keine Daten empfangen (es sind keine Sendedaten erlaubt) OUT TS.OUT Task ist nicht im Hauptspeicher -PMD T3.PMD Unterdrueckung des Speicherabzuges bei SST-Ab- bruch fuer die Task PRV T3.PRV Task ist privilegiert RDN TS.RDN E/A der Task wurde beendet REM T3.REM Task wird nach der Ausfuehrung geloescht REX T2.REX Task bearbeitet einen Abbruchs-AST ROV T3.ROV Task hat residente Ueberlagerungen RST T3.RST Task ist beschraenkt (wird bei geschichteter Software genutzt) SEF T2.SEF Task ist fuer Ereignisflag(s) gestoppt SLV T3.SLV Task ist im abhaengigen Zustand SPN T2.SPN Task ist suspendiert SPNA Task wurde suspendiert vor einem AST STP T2.STP Task stoppt fuer Eingabe vom Bediengeraet; STPA Task wurde vor einem AST gestoppt WFR T2.WFR Task wartet auf ein Ereignis WFRA T2.WFR Task war vor einem AST in einem Wartezustand 54 Beispiele --------- >ATL --- . LDR. 025152 LDR 025120 025004-025004 PRI - 248. DPRI - 248. STATUS: -CHK FXD STP PRV TI - CO0: IOC - 0.EFLG - 000001 000000 PS - 000000 PC - 023000 REGS 0-6 022732 025004 000000 025406 037710 025354 025076 ...MCR 037134 SYSPAR 037620 130100-140000 PRI - 160. DPRI-160. STATUS: CKD -PMD PRV NSD CAL TI - TT0: IOC - 0. EFLG - 000001 040000 PS - 000001 PC - 155702 REGS 0-6 000000 150470 000015 150424 153022 150404 150356 ...INS 037210 GEN 037710 040000-100000 PRI - 100. DPRI - 100. STATUS: OUT -CHK -PMD PRV TI - TT0: IOC - 0. EFLG - 100003 100000 ...PMD 112570 GEN 115550 00331100-00347000 PRI-140. DPRI-140. Status: -EXE BLK OUT-PMD PRV TI-None 10C-0. BIO-0. EFLG-000000 000000 >ATL MCR ------- ...MCR 037134 SYSPAR 037620 130100-140000 PRI - 160. DPRI - 160. STATUS: CKD -PMD PRV NSD CAL TI - TT0: IOC - 0. EFLG - 000001 040000 PS - 000001 Der Bediener kann durch Eingabe von CTRL/O den Ausdruck ab- brechen. 55 ---------------------------------------------------------------- | BLOCK (NP) | BLK | | -- - | | ---------------------------------------------------------------- 3.3.9. Blockieren einer installierten Task ------------------------------------------ (ersetzt das Kommando STOP) Format des Kommandos -------------------- BLK taskname taskname - Name der installierten Task, die blockiert werden soll. Funktionsbeschreibung --------------------- Das BlOCK-Kommando bewirkt das Blockieren einer installierten Task, d.h. die spezifizierte Task wird fuer die Ausfuehrung oder die Bewerbung um Speicherplatz gesperrt. Im Mehrnutzersystem koennen nichtprivilegierte Nutzer nur aktive Tasks blockieren, die vom Terminal angefordert wurden. Privilegierte Nutzer koennen jede beliebige Task blockieren. Zu beachten ist, dass folgende Tasks nicht blockiert werden koennen: ACP-Tasks, CLI-Tasks, Tasks, die gerade abbrechen, und Tasks, die gerade ihre Ausfuehrung beenden. Beim Blockieren einer Task wird im Tasksteuerblock (TCB) das Blockierungsbit gesetzt. Ist dieses Bit gesetzt, hat die Task keinen Zugriff zu den Systemressourcen. Zum Loeschen des Blockierungsbits benutzt man das MCR-Kommando UNBLOCK oder, wenn die Task aktiv ist, bricht man die Task mit dem Kommando ABO ab. (Entblockieren oder Abbrechen der Task sind die einzigen Moeglichkeiten, das BLOCK-Kommando zu annullieren.) Eine blockierte Task hat die effektive Prioritaet 0. Ist die Task auslagerbar, kann sie von jeder beliebigen Task ausgelagert werden. Wurde eine blockierte Task ausgelagert, kann sie sich nicht mehr um Speicherplatz bewerben. Eine blockierte Task, die dann abgebrochen wird, wird vom System automatisch entblockiert. Wenn bei der Task zuvor ein angeforderter Austritts-AST angegeben war, wird die Task entblockiert und der AST ausgefuehrt. Beispiel -------- >BLK ...PAL Blockiert die Task PAL (installiert als ...PAL), die vom Terminal aus aktiviert wurde. 56 ---------------------------------------------------------------- | BOOT (P) | BOO | | --- | | ---------------------------------------------------------------- 3.3.10. Laden eines Systems --------------------------- Format des Kommandos -------------------- BOO[T] [dateispezifikation] dateispezifikation Die Standard-Dateispezifikation hat die Form: dev:[ufd]dateiname.typ;version Mit dieser Spezifikation wird die Datei angegeben, von der ein neues System geladen werden soll. Standardannahmen: dev: Systemgeraet LB: [ufd] UIC, unter dem das Kommando BOOT laeuft dateiname OMEX typ SYS version neueste Version Das Kommando BOOT ist das einzige Kommando, bei dem der Dateiname weggelassen werden kann. Funktionsbeschreibung --------------------- BOO laedt ein System, das als Taskabbild-Datei auf einem Geraet mit Dateiformat FM16-D existiert. Die Arbeit des Systems, in dem das Kommando gegeben wird, wird sofort beendet und das angeforderte System geladen und initialisiert. Ladbare Systeme sind Speicherabbild-Dateien von Tasks, die keine Taskkoepfe ha- ben. Einschraenkungen: Laden eines noch unbenutzten Systems Die physische Geraetenummer des Ladegeraetes muss gleich der lo- gischen Geraetenummer im unbenutzten System sein, sonst wird das anfaengliche SAVE-Kommando nicht wirksam. Es laedt das unbenutzte Systemabbild, beginnend bei Null bis zum Anfang des Anfangsla- ders, in den Speicher. Laden eines geretteten Systems Die physische Geraetenummer des Ladegeraetes muss der logischen Geraetenummer nicht gleichen. SAVE nutzt die zugeordnete phy- sische Geraetenummer fuer die Suche in der Liste der Geraete- steuerbloecke (UCB, Unit Control Block). Bei Uebereinstimmung wird der UCB fuer die Bestimmung der logischen Geraetenummer ver- wendet. Sind mehrere Geraete an mehreren Controllern angeschlos- sen, koennen sie dieselbe physische Geraetenummer besitzen, so dass beim Durchsuchen der UCB-Liste nicht grundsaetzlich der dem Ladegeraet zugeordnete UCB gefunden werden wird. Die Konsequenz davon ist, dass ein System beispielsweise von DK0:, nicht aber von der DK1: mittels BOOT geladen werden kann. Von einem geretteten System laedt BOO nur den ersten Block und uebergibt 57 dann die Steuerung an den Anfangslader dieses Systems, der die weitere Arbeit lenkt. Ist in das System bei der Generierung die Exekutive-Testhilfe XDT mit eingebunden worden, dann meldet sich das XDT beim ersten Start des Systems: XDT> Nach Eingabe eines "G" geht die Steuerung an das System zurueck, und es folgen die normalen Systemausschriften. Nach dem Retten des Systems meldet sich das XDT nur, wenn das Kommando BRK gege- ben oder ein Unterbrechungspunkt gesetzt worden ist. Beispiel -------- >BOO MOTEST ---------- Laden eines Systems, das auf dem Systemgeraet in der Datei MOTEST.SYS enthalten ist. 58 ---------------------------------------------------------------- | BREAKPOINT TO EXECUTIVE DEBUGGING TOOL (P) | BRK | | -- - | | ---------------------------------------------------------------- 3.3.11. Eintritt in den System-Testmodus ---------------------------------------- Format des Kommandos -------------------- BRK Funktionsbeschreibung --------------------- Mit dem Kommando BRK wird die Steuerung an die Exekutive-Testhil- fe (XDT) uebergeben, wenn diese als Bestandteil des Systems gene- riert worden ist. Ist XDT nicht im System enthalten, so hat das Kommando BRK keine Wirkung. Durch das Kommando BRK werden alle Systemaktivitaeten angehalten. Beim Fortsetzen am Unterbrechungs- punkt erhaelt das System seinen vorhergehenden Zustand. Wenn XDT die Steuerung erhaelt, gibt es folgende Mitteilung auf dem Bediengeraet TT0: aus BE:nnnnnn XDT> Der Ausdruck nnnnnn stellt die augenblickliche Speicheradresse bei der Unterbrechung dar. Das Kommando BRK kann von privilegierten Nutzern von beliebigen Bediengeraeten gegeben werden, aber die Nachricht, dass XDT nun die Steuerung hat, erfolgt immer auf der Systemkonsole TT0:. Es koennen jetzt alle gueltigen XDT-Kommandos fuer die Testung der Exekutive oder nutzereigener Driver eingegeben werden. Um die Steuerung an das Kommandoprogramm zurueckzugeben, gibt der Bedie- ner das XDT-Kommando P oder G. Wurde BRK nicht von der Systemkon- sole TT0: gegeben, muss die Kommandozeile mit der RETURN-Taste abgeschlossen werden. Wurde BRK von der Systemkonsole eingegeben, ist kein Zeilenabschluss erforderlich. Das Kommandoprogramm ant- wortet dann mit der Standardmeldung > und setzt die Programm- bearbeitung fort. Beispiel -------- >BRK --- BE: 132722 XDT>P (oder G) - > 59 ---------------------------------------------------------------- | BROADCAST (NP,P) | BRO | | --- | | ---------------------------------------------------------------- 3.3.12. Verbreitung einer Mitteilung ------------------------------------ Format des Kommandos -------------------- Fuer die Kommandoeingabe koennen die folgenden 4 Formen gewaehlt werden: BRO[ADCAST] ttn: mitteilung BRO[ADCAST] @dateiangabe BRO[ADCAST] ALL:mitteilung BRO[ADCAST] LOG:mitteilung Jede dieser Kommandoformen kann auch in einer anderen Weise ein- gegeben werden. Wird unmittelbar nach dem Kommandonamen ein- gegeben, meldet sich das Kommando auf der folgenden Zeile und der Bediener kann die verlangten Parameter eingeben. >BRO[ADCAST] BRO>ttn: mitteilung In den Kommandos bedeuten: ttn: - Bediengeraet, das die Mitteilung empfangen soll mitteilung - Mitteilung, die verbreitet werden soll. Sie be- steht aus einer KOI-7-Zeichenkette, die maximal 80 Zeichen enthalten kann. dateiangabe - Angabe einer Datei, die ein oder mehrere Mit- teilungszeilen in der Form ttn: mitteilung oder fuer privilegierte Nutzer ALL:mitteilung oder LOG:mitteilung. enthaelt. ALL: - Dies ist eine privilegierte Option. Sie zeigt an, dass die angegebene Mitteilung zu allen Be- diengeraeten gesendet wird, die mit dem System verbunden sind. LOG: - Dies ist eine privilegierte Option. Sie zeigt an, dass die angegebene Mitteilung zu allen angemeldeten Bediengeraeten gesendet wird. Funktionsbeschreibung --------------------- Das Kommando BRO veranlasst das System, eine angegebene Mittei- lung auf einem oder mehreren Bediengeraeten auszugeben. Ein pri- vilegierter Nutzer kann eine Mitteilung auf allen Bediengeraeten, die mit dem System verbunden sind, oder in Mehrnutzersystemen auf allen angemeldeten Bediengeraeten ausgeben. Ein nichtprivi- legierter Nutzer kann eine Mitteilung nur auf einem angegebenen Bediengeraet ausgeben. Ein Nutzer kann auch eine Datei benutzen, die ein oder mehrere Zeilen von Kommandos enthaelt. Jede Zeile enthaelt das Bediengeraet und die Mitteilung, die auf diesem Be- diengeraet verarbeitet werden soll. Bei Verwendung einer Komman- 60 dodatei gibt der Nutzer nach dem Kommandonamen die Datei an, die von dem Zeichen "@" angefuehrt wird. Wenn die Mitteilung nicht innerhalb von 20 Sekunden verbreitet werden kann, gibt das System die folgende Fehlernachricht aus: BRO - - TERMINAL IS BUSY - - ttn: . Gilt das Kommando fuer mehrere Bediengeraete (ALL: oder LOG:), gibt das System eine Fehlermitteilung fuer jedes besetzte Be- diengeraet aus. Beispiele --------- >BRO ALL:SYSTEMABSCHALTUNG UM 24.00 UHR -------------------------------------- >BRO ------- BRO>TT1: BANDGERAETE NICHT VERFUEGBAR --------------------------------- 61 ---------------------------------------------------------------- | BYE (NP) | BYE | | --- | | ---------------------------------------------------------------- 3.3.13. Abmelden vom System --------------------------- Format des Kommandos -------------------- BYE Funktionsbeschreibung --------------------- Mit dem Kommando BYE meldet sich ein Nutzer aus einem Mehrnutzer- system ab. Das System schreibt eine Abmeldungsmitteilung auf dem Pseudogeraet CO: aus, und auf dem eingebenden Bediengeraet wird eine Beendigungsmitteilung ausgegeben. Jede aktive nichtprivile- gierte Task, die dem Nutzer gehoert, wird abgebrochen. Jeder pri- vate Datentraeger wird ausgegliedert, und private Geraete des Nutzers werden freigegeben. In Abhaengigkeit von der Tageszeit wird fuer die Beendigungsmit- teilung "Have a Good Morning", "Have a Good Afternoon" oder "Have a Good Evening" bzw. "Have a Nice Day" ausgegeben. Beispiel -------- >BYE --- > DMO--TT6: dismounted from DK1: Have a Good Evening 3-JUL-87 20:15 TT6: logged off 62 ---------------------------------------------------------------- | CANCEL (NP,P) | CAN | | --- | | ---------------------------------------------------------------- 3.3.14. Annullierung der zeitbezogenen Anforderungen ---------------------------------------------------- Format des Kommandos -------------------- CAN[CEL] taskname Funktionsbeschreibung --------------------- Mit diesem Kommando koennen zeitbezogene Anforderungen einer Task annulliert werden, die entweder durch eine RUN$-Anweisung oder durch das MCR-Kommando RUN, das verschiedene Moeglichkeiten eines zeitbezogenen Starts einer Task bietet, in der Uhrschlange einge- tragen worden sind. (Nur privilegierte Nutzer koennen diese Formen des RUN-Kommandos nutzen.) Das Annullierungskommando beeinflusst nicht die Ausfuehrung einer gerade aktiven Task. Mit diesem Kommando werden nur zeitbezogene Anforderungen einer Task gestrichen, die noch in der Uhrschlange enthalten sind. Mit dem Annullierungskommando koennen Tasks, die von einem anderen Bediengeraet in die Uhrschlange eingetragen worden sind, nur dann annulliert werden, wenn das Bediengeraet einen privilegierten Status besitzt, d.h. von einem nichtprivile- gierten Bediengeraet koennen nur die Tasks annulliert werden, die von diesem Bediengeraet in die Uhrschlange eingetragen worden sind. Beispiel -------- >CAN XYZ ------- Es werden alle periodischen und zeitbezogenen Anforderungen fuer die Task XYZ annulliert. 63 --------------------------------------------------------------- | COMMAND LINE INTERPRETER (P,NP) | CLI | | - - - | | --------------------------------------------------------------- 3.3.15 Kommandozeilen-Interpreter ---------------------------------- Format des Kommandos -------------------- CLI /schluesselwoerter=cliname CLI /INI[T]=cliname[/unterschluesselwort[(er)]] cliname Name des alternativen CLI-Programms. Die Laenge des Namens betraegt 1 - 6 Zeichen. schluesselwoerter: /DISABLE=cliname Das angegebene CLI wird solange fuer alle damit benutzten Terminals gesperrt, bis fuer das eingestellte Terminal das CLI wieder freigegeben wird. Wenn das CLI mit dem /MESSAGE-Unterschluesselwort initialisiert wurde, sendet das System eine Meldung ueber die Sperrung an das CLI. /ELIM=cliname oder Entfernt alle Datenstrukturen fuer das /ELIM=* angegebene CLI bzw. fuer alle alternativen CLIs (bei der Sternvereinbarung). Nachdem dieses Kommando ausgefuehrt worden ist, kann die CLI-Task entfernt werden (siehe REMOVE- Kommando). Bei der Entfernung der CLIs ist zu beachten, ob die Terminals auf ein Nicht-MCR-CLI einge- stellt sind, um ggf. deren Sperrung zu vermeiden. Die Terminals koennen frei- gegeben werden, indem sie auf irgendein gueltiges CLI bzw. auf MCR gesetzt werden. Wenn die CLIs mit dem /MESSAGE- Unterschluesselwort initialisiert wurden, sen- det das System eine Meldung, welche die CLIs darueber informiert, dass sie beseitigt worden sind. Die Sternvereinbarung (*) ist fuer die Anwendung waehrend der Systemabschal- tungsprozedur vorgesehen. /ENABLE=cliname Ein zuvor gesperrtes CLI wird freigegeben. Das CLI kann nun Kommandos annehmen. Bei Initiali- sierung des CLI mit dem /MESSAGE-Unterschlues- selwort, sendet das System eine Meldung ueber die Freigabe an das CLI. Zum Einstellen eines Terminals auf ein freigegebenes CLI ist das SET /CLI-Kommando im privilegierten Status von einem anderen Terminal zu geben. 64 /INIT=cliname/unterschluesselwoerter Initialisiert die Datenstrukturen fuer das angegebene CLI, so dass die Terminals auf diese eingestellt werden koennen. Die CLI-Task muss mit der Option /CLI=YES installiert worden sein. Alle CLIs ausser MCR muessen initialisiert worden sein, bevor sie genutzt werden koennen. Wenn das /MESSAGE- Unterschluesselwort angegeben ist, sendet das System eine Meldung ueber die Initialisierung an das CLI. unterschluesselwoerter: /CPR="string" Gibt die Zeichenkette an, die als Meldung nach CTRL/C erscheinen soll. Die Syntax innerhalb der Kette entspricht der .ASCII-Anweisung des MACRO-Assemblers. Beispiel: /CPR="<15><12>/MCR>/" Mit Hilfe dieser Kette fuehrt das System bei CTRL/C ein RETURN und LINEFEED aus und zeigt anschliessend die Aufforderung MCR> an. Wenn Anfuehrungszeichen (") oder Schraegstri- che innerhalb der Kette verwendet werden sol- len, dann sind andere Zeichen als Kettenbe- grenzungszeichen (beliebiges Zeichen, welches in der Kette nicht verwendet wird) zu benut- zen. Eine Nullkette (/CPR="") gibt an, dass keine Aufforderung gegeben wird. Standard: /CPR="<15><12>/cli/", wobei cli der Name des CLI ist. /DISABLE Initialisiert das CLI im gesperrten Modus. Das System weist alle ueber Terminal eingegebenen Kommandos ab, bis das CLI freigegeben ist. Standard: CLI ist freigegeben. /DPR-"string" Gibt die Zeichenkette an, welche erscheinen soll, wenn auf einer leeren Kommandozeile ein- gegeben wird. Die Syntax der Kette entspricht dem Unterschluesselwort /CPR. Soll keine Auf- forderung gegeben werden, ist die Nullkette (/DPR="") zu definieren. Anfuehrungszeichen bzw. Schraegstriche inner- halb der Kette sind analog dem Unterschlues- selwort /CPR zu verwenden. Standard: /DPR="<15><12>/>/" /LGO Gibt an, dass das CLI Kommandos von nichtange- meldeten Terminals her annimmt. Der Nutzer braucht sich fuer diesen Fall nicht anzumelden. Das Terminal kann benutzt werden, um Dateneingaben durchzufuehren, die unter Steuerung durch die CLI-Task realisiert wer- den. Das System kann von diesem Terminal aus nicht bedient werden. Das CLI bestimmt die Arbeitsweise des Nutzers vollstaendig. Bei Datei-E/A-Aktivitaeten von einem unangemelde- ten Terminal ist sehr sorgfaeltig zu arbeiten, da der UIC und Privilegstatus fuer das Termi- 65 nal nicht definiert sind. Standard: Kommandos von einem nichtangemelde- ten Terminal werden abgewiesen und nicht an das CLI uebergeben. /MESSAGE Gibt an, dass das CLI Meldungen vom System her empfangen moechte. Die Systemmeldungen informieren ueber Ereignisse, wie z.B. Freigabestatus, Gesperrtstatus bzw., ob ein Terminal auf das CLI eingestellt oder vom CLI getrennt ist. Standard: CLI empfaengt keine Meldungen vom System /NULL Gibt an, dass das CLI leere Kommandopuffer an- nimmt, die daraus resultieren, dass der Nutzer in der Kommandozeile als erstes Zeichen die Return-Taste drueckt. Es wird keine Aufforderung gegeben. Standard: Das Kommando wird nicht an das CLI uebergeben, und es wird die Standardaufforderung gegeben. /PRIV Gibt an, dass ein Nutzer privilegiert sein muss, um das Terminal auf das CLI einstellen zu koennen. Standard: Ein nichtprivilegierter Nutzer kann das eigene Terminal auf das CLI einstellen. /PROMPT Gibt an, dass das CLI eine Anforderung zur Standardaufforderung wuenscht, wenn eine Task verlassen wird, die zur Ausfuehrung eines Kommandos gestartet wurde. Standard: Die Anforderung wird vom Systemdis- patcher ausgeloest und nicht vom CLI. /QUIET Gibt an, dass die MCR-Kommandos HELLO und BYE stumme An- bzw. Abmeldungen durchfuehren. Das Schluesselwort bewirkt ausserdem die Unter- drueckung von Meldungen, die vom Dispatcher gegeben werden. /RESTRICT Gibt an, dass nur das CLI die SCLI$-Anweisung zum Einstellen des Terminals auf sich selbst geben kann. Es ist zu beachten, dass /RESTRICT nicht fuer solche CLI-Tasks benutzt werden kann, deren Namen in der Form ...xxx festgelegt sind. /TASK=taskname Gibt den Namen der Task an, die als CLI fungieren wird. Dieses Schluesselwort ist dann anzuwenden, wenn sich der Taskname vom CLI- Namen unterscheidet. 66 /MESSAGE=cliname: "message-text" Sendet eine ASCII-Nachricht an das CLI, wenn fuer CLI das MESSAGE-Attribut gesetzt ist. Ist dieses Attribut fuer das CLI nicht gesetzt, dann gibt das Kommando eine Fehlermitteilung. /SHOW (Nichtprivilegiertes Schluesselwort) Zeigt Informationen ueber jedes CLI im System an. Die Informationen beinhalten: - den Namen des CLI - die Task, welche das CLI implementiert - die Anzahl der Terminals, welche auf das CLI eingestellt sind - mehrere Zustandsbits fuer das CLI - Information, ob das CLI aktiv ist Bedeutung der Zustandsbits: ACT CLI ist aktiv DSB CLI ist augenblicklich gesperrt PRV CLI wurde mit dem Unterschluesselwort /PRV initialisiert. Man muss privile- giert sein, um ein Terminal (einschl. TI:) auf dieses CLI einzustellen. RST CLI wurde mit dem Unterschluesselwort /RESTRICT initialisiert. Nur das CLI darf ein Terminal auf sich selbst einstellen. /UNOVR Loescht das Aufhebungsbit, welches fuer das CLI des Terminals gesetzt ist. Wenn das HELLO-Kommando die Kommandodatei LB:[1,2]SYSLOGIN.CMD bearbeitet, wird das Ter- minal auf ein spezielles CLI eingestellt. Es wird jedoch ein Aufhebungsbit auch so ge- setzt, dass die Kommandodatei von MCR aus abgearbeitet werden kann. Das Loeschen des Aufhebungsbits sichert, dass vom Terminal aus gegebene Kommandos zum richtigen CLI gehen. Das Schluesselwort /UNOVR ist nur sinnvoll unmittelbar vor der Kettung von SYSLOGIN.CMD an eine Nutzer-LOGIN-Kommandodatei bzw. beim Verlassen. Funktionsbeschreibung --------------------- Das CLI-Kommando bewirkt die Benutzung eines anderen Kommandozei- len-Interpreters als MCR (z.B. DCL oder ein vom Nutzer geschrie- benes CLI). Eine CLI-Task empfaengt die unaufgeforderte Eingabe von einem Terminal und versucht, die Eingabe als ein Kommando zu interpretieren. Es sind bis zu 15 alternative CLIs moeglich, die zur gleichen Zeit in dem betreffenden System aktiv sein koennen (Anzahl wird bei der Generierung des Systems ausgewaehlt). Bevor man ein alternatives CLI nutzen kann, muss es mit der Option CLI=YES installiert worden sein. Alle CLI-Kommando-Schluesselwoerter und -Unterschluesselwoerter koennen auf 3 Zeichen gekuerzt (abge- schnitten) werden. 67 ---------------------------------------------------------------- | CLQUEUE (NP) | CLQ | | --- | | ---------------------------------------------------------------- 3.3.16. Ausgabe der Uhrschlange ------------------------------- Format des Kommandos -------------------- CLQ[UEUE] Funktionsbeschreibung --------------------- Dieses Kommando gibt auf dem Bediengeraet Informationen ueber diejenigen Tasks aus, die in der Warteschlange der Uhr eingetra- gen sind. Der Ausdruck enthaelt den Namen der Task und den naechsten Zeitpunkt, zu dem die Task gestartet werden soll. Wird der Start der Task zyklisch wiederholt, wird zusaetzlich das Startintervall der Task angegeben. Das System traegt eine Task in die Warteschlange der Uhr ein, wenn die Task durch das Kommando RUN oder eine RUN$-Anweisung aktiviert wird, wobei ein zeitbezo- gener Start angegeben wird. Beispiel -------- >CLQ --- TASKA SCHEDULED AT 10-MAY-87 14:32:30:00 TASKB SCHEDULED AT 10-MAY-87 14:40:00:00 RESCHEDULE INTERVAL 10 MINS Die erste Task wird um 14:32:30:00 Uhr (stunden:minuten:sekun- den:takt) gestartet und wird nicht wiedergestartet. Die zweite Task in der Schlange wird um 14:40:00:00 Uhr gestartet, und der Start wird zyklisch alle 10 Min wiederholt. 68 ---------------------------------------------------------------- | DEALLOCATE (NP,P) | DEA | | --- | | ---------------------------------------------------------------- 3.3.17. Freigeben von Geraeten ------------------------------- Format des Kommandos -------------------- DEA[LLOCATE] [ddnn:] wobei dd - Name des privaten Geraetes, das frei- gegeben werden soll nn - Geraeteeinheitennummer Ist kein Geraetename angegeben, gibt das System alle privaten Geraete frei, die dem Nutzer zu- geteilt sind. Funktionsbeschreibung --------------------- Mit diesem Kommando wird ein privates (zugeteiltes) Geraet eines Nutzers freigegeben, so dass anderen Nutzern der Zugriff zu diesem Geraet erlaubt ist. Dieses Kommando gilt nur in Mehrnutzersystemen. Nichtprivilegierte Nutzer koennen ein Geraet nur dann freigeben, wenn es ihnen selbst zugeteilt ist. Dagegen kann ein privilegier- ter Nutzer jedes Geraet des Systems freigeben. Wurde ein zugeteiltes Geraet eingegliedert, muss es ausgegliedert werden, bevor es freigegeben werden kann. Alle privaten Geraete eines Nutzers werden vom System automatisch freigegeben, wenn dieser Nutzer sich aus dem Mehrnutzersystem mit Hilfe des Kommandos BYE abmeldet. Erkennt jedoch das System bei Aufhebung der Zuteilung eines Geraetes einen Fehler, dann stoppt es und hebt die Zuteilung fuer dieses Geraet und fuer alle restlichen Geraete nicht auf. Die Fehlermitteilung sagt aber nicht aus, welches Geraet den Fehler bewirkte. Im Sinne einer effektiven Nutzung der Systemressourcen sollten die Nutzer die Zuteilung der Geraete je- doch aufheben, sobald die Geraete nicht mehr benoetigt werden. Beispiel -------- >DEA DK1: ------- Platte DK1: wird freigegeben. Auf dieses Geraet koennen jetzt andere Nutzer zugreifen. 69 ---------------------------------------------------------------- | DEVICES (NP,P) | DEV | | --- | | ---------------------------------------------------------------- 3.3.18. Ausgabe der Geraeteliste --------------------------------- Format des Kommandos -------------------- DEV[ICES] [dd:] DEV[ICES] ddnn: DEV[ICES] [/LOG] wobei dd: - Typ von Geraeten, fuer welchen die Informationen ausgegeben werden sollen ddnn: - Spezielles Geraet, fuer welches die Informationen ausgegeben werden sollen /LOG - Bewirkt die Ausgabe aller angemeldeten Bedienge- raete Funktionsbeschreibung --------------------- Das Kommando zur Ausgabe der Geraete erzeugt auf dem Eingabe- bediengeraet eine Liste mit den symbolischen Namen aller Geraete. Ist der Nutzer privilegiert, werden auch die Datentraegernamen bei eingegliederten Datentraegern ausgegeben. Wird im Kommando ein bestimmter Geraetetyp angegeben, so werden nur die Geraete dieses Typs ausgegeben. In der Liste erscheinen neben dem Namen des Geraetes Mitteilungen, die naehere Informa- tionen ueber das Geraet liefern. Beispiele --------- >DEV --- DK0: Loaded DK1: Public Mounted Loaded Label=OMOSSYS DK2: Loaded DK3: Public Mounted Loaded Label=COMPILER DK4: Loaded DK5: Loaded DK6: Loaded DK7: Loaded DY0: Unloaded Type=K5665 DY1: Unloaded Type=K5665 CO0: TE0: LP0: Loaded MT0: Loaded MT1: Loaded 70 MT2: Loaded MT3: Loaded NL0: TT0: [1,54] - Logged in Loaded TT1: [200,61] - Logged in Loaded TT2: Loaded TT3: Loaded TT4: Loaded TT5: Loaded TT6: Loaded TT7: Loaded TT10: Offline Loaded TT11: Offline Loaded TI0: CL0: TE0: LB0: DK1: SY0: DK1: TE0: TT0: >DEV DK: ------- DK0: Loaded DK1: Public Mounted Loaded Label=OMOSSYS DK2: Loaded DK3: Public Mounted Loaded Label=COMPILER DK4: Loaded DK5: Loaded DK6: Loaded DK7: Loaded >DEV DK3: -------- DK3: Public Mounted Loaded Label=COMPILER >DEV TT0: -------- TT0: [1,54] [1,54] CLI = MCR BUF = 80. HFILL = 0 LINES = 24. TERM = VT100 *) OWNER = none BRO LOWER PRIV NOHOLD NOSLAVE ESC CRT NOFORM ECHO NOVFILL HHT NOFDX WRAP NORPA NOEBC TYPEAHEAD *) entspricht standardmaessig dem 8911 Terminal Im folgenden soll die Bedeutung der Mitteilungen erlaeutert wer- den, die zu den einzelnen Geraeten erscheinen. In einer Zeile kann mehr als eine Mitteilung erscheinen. - LOADED bedeutet, dass der Driver fuer das Geraet ladbar ist und zur Zeit geladen ist. - UNLOADED bedeutet, dass der Driver ladbar ist, aber zur Zeit nicht geladen ist. - MOUNTED bedeutet, dass das Geraet eingegliedert ist. Benutzt ein privilegierter Nutzer das Kommando, wird auch die Datentraegerkennzeichnung angezeigt. - MARKED FOR DISMOUNT zeigt an, dass ein eingegliedertes Geraet ausgegliedert werden soll, aber diese Operation noch nicht be- endet ist. - OFFLINE bedeutet, dass die Konfiguration das Geraet nicht ent- haelt, obwohl die Systemtabelle einen Eintrittspunkt fuer 71 dieses Geraet enthaelt. - PUBLIC zeigt an, dass das Geraet einen oeffentlichen Status be- sitzt - NOWRITE zeigt an, dass der Datentraeger softwareseitig schreib- geschuetzt ist (Schreiboperationen auf dem Datentraeger sind nicht zulaessig). - [uic]-LOGGED IN bedeutet, dass ein Nutzer, der durch [uic] (Schutz-UIC) identifiziert ist, an diesem Bediengeraet ange- meldet ist. - Befindet sich in der zweiten Spalte der Name eines Bediengerae- tes, gefolgt von der Mitteilung "-PRIVATE", so bedeutet dies, dass das in der ersten Spalte bezeichnete Geraet dem Nutzer zugeteilt ist, welcher beim Terminal in der zweiten Spalte angemeldet ist. - Ein Geraetename in der zweiten Spalte ist das Geraet, zu dem das entsprechende Geraet in der ersten Zeile umgeschaltet worden ist. - Die Zeilen in der Anzeige fuer ein spezielles Terminal listen die Kenndaten auf, welche fuer dieses Terminal gesetzt wurden. In der Beschreibung des SET-Kommandos sind alle verfuegbaren Kenndaten enthalten. 72 ---------------------------------------------------------------- | DISMOUNT (NP,P) | DMO | | - -- | | ---------------------------------------------------------------- 3.3.19. Ausgliedern von Datentraegern -------------------------------------- Format des Kommandos -------------------- DMO ddnn:[["]label["]][/schluesselwort(er)] DMO /USER[/schluesselwort(er)] wobei ddnn: Geraeteeinheit, auf der der Datentraeger aufliegt, der ausgegliedert werden soll. label Die Datentraegerkennzeichnung fuer FM16-D-Datentraeger kann bis zu 12 Zeichen lang sein, fuer FM16-M-Datentrae- ger bis zu 6 Zeichen. Die Datentraegerkennzeichnung wird benutzt, um zu sichern, dass der richtige Datentraeger ausgegliedert wird. Eine Datentraegerkennzeichnung ist wahlfrei (wird sie im Kommando weggelassen, erfolgt keine Datentraeger- kennzeichnungspruefung). Enthaelt eine Datentraegerkenn- zeichnung fuer ein Magnetband Sonderzeichen, muss die Datentraegerkennzeichnung in Anfuehrungszeichen einge- schlossen werden (moegliche Sonderzeichen siehe MOUNT- Kommando). schluesselwoerter: /DEV (Privilegiertes Schluesselwort) Gliedert alle Nutzer von einem bestimmten Geraet aus. Dieses Schluesselwort muss dann angegeben werden, wenn ein oeffentliches (public) Geraet ausgegliedert wird. /USER Gliedert alle Datentraeger aus, die ein Nutzer ein- gegliedert hat. /TERM=ttnn: (Privilegiertes Schluesselwort) Gliedert alle Datentraeger aus, die ein Nutzer am angegebenen Terminal eingegliedert hat. /LOCK=option Erlaubt logische E/A zu einem Datentraeger, nachdem er ausgegliedert wurde. /LOCK ist nur gueltig fuer Magnetbanddatentraeger. /LOCK kann benutzt werden, um ein Magnetband auszugliedern und wieder neueinzugliedern, ohne dass das Magnetband neu geladen werden muss. Die Options fuer das Schluesselwort /LOCK sind: /LOCK=N[ounload] /LOCK=U[nload] /LOCK=V[irtual] Gibt man die Option Nounload (/LOCK=N) an, wird durch DISMOUNT das Magnetband nicht entladen. Gibt man die Option Unload (/LOCK=U) an, spult DISMOUNT das Magnet- band zurueck bis zur Lademarke. 73 (LOCK=U ist der Standardwert fuer alle Datentraeger, die mit einem Standard-ACP eingegliedert wurden. Die Option Virtual ist privilegiert. Gibt man /LOCK=V an, wird das Magnetband nicht entladen. Die Exekutive erlaubt noch logische E/A zu dem Datentraeger. Funktionsbeschreibung --------------------- Das Kommando bewirkt, dass der Datentraeger ausgegliedert wird und damit auf ihn nicht mehr unter der Steuerung des Dateizu- griffssystems (FCS, File Control Services) zugegriffen werden kann. Der Datentraeger ist damit logisch off-line. Wenn die Aus- gliederung beendet ist, wird die Mitteilung *** dev: DISMOUNT COMPLETE auf dem Systemmitteilungsgeraet CO: ausgegeben. Zwischen der Kom- mandoeingabe und dem Ausdruck dieser Mitteilung kann eine grosse Zeitdifferenz auftreten, wenn eine Anzahl von E/A-Anforderungen noch anstehen und/oder zu Dateien auf den Datentraeger noch zuge- griffen wird. Beispiel -------- >DMO DK3: -------- Dieses Kommando gliedert DK3: aus. 74 ----------------------------------------------------------------- | DEACTIVATE TG(HALBDUPLEX)-DRIVER (NP,P) | DTX | | - - - | | ----------------------------------------------------------------- 3.3.20 Aktivieren des TT(Vollduplex)-Drivers --------------------------------------------- Format des Kommandos -------------------- DTX [/schluesselwort[(er)]] schluesselwoerter /CC /LI /AL Erlaeuterung der Schluesselwoerter: /CC - copy conditions Bei Angabe dieses Schluesselwortes werden alle fuer TG: getroffenen Einstellungen, wie MOU, ASN, ALL, SET (ausser SET /PF), nach der Umschaltung fuer TT: uebernommen. /LI - list conditions Bei Angabe dieses Schluesselwortes liefert DTX Informationen ueber die eingestellten Systemeigenschaften nach der Umschaltung auf den Vollduplex-Driver. /AL - Dieses Schluesselwort bewirkt die Umschaltung auf den Vollduplex-Driver fuer alle sich im TG-Modus befindlichen Bedieneinheiten. Beachte: Das Kommando DTX /AL kann nur von privilegierten Nutzern gegeben werden. Die anderen Schluesselwoerter koennen auch nichtprivilegierte Nutzer anwenden. Alle Schluesselwoerter sind beliebig miteinander kombi- nierbar. Funktionsbeschreibung --------------------- Mit den MCR-Kommandos ATX und DTX kann der Nutzer festlegen, durch welchen Terminal-Driver (Halbduplex- oder Vollduplex- Driver) eine BDE bedient werden soll (vgl. Anleitung fuer den Programmierer, Teil 3, Kap. 3). Voraussetzung dafuer ist, dass bei SYSGEN die entsprechenden Options (Fragen 30 und 31 der Terminal-Driver-Options) ausgewaehlt wurden und sich der TG- Driver im System befindet. Das Kommando DTX ohne Angabe weiterer Schluesselwoerter bewirkt fuer die BDE, von der das Kommando gegeben wurde, die Umschaltung vom Halbduplex- auf den Vollduplex-Driver und die Umweisung dieses Terminals (REDIRECT) von TG: auf TT:. Danach wirkt die BDE fuer das System wie ein anderes Terminal, da sich alle vorherigen Festlegungen mit den Kommandos SET, ALL, ASN, MOU auf TG: und nicht auf TT: beziehen. Lediglich die Anmeldung im System (HELLO) wird uebernommen und bleibt erhalten. Es erfolgt keine Veraende- 75 rung der Einstellungen durch vorherige MCR-Kommandos fuer TT: und TG:. Diese Eigenschaften lassen sich durch Angabe von Schluessel- woertern beeinflussen. Beispiel -------- Einstellungen vor der Umschaltung: UIC = [11,10] eingegliederte Platten DK1:, DK2: zugeteilte Platte DK3: zugewiesen DK1: SY: TI: privilegiert >DTX /CC/LI ---------- Die angegebenen Einstellungen werden uebernommen und auf dem Bildschirm wie folgt angezeigt: + SET + + ALL + + MOU + + ASN + UIC=[11,10] DK3: DK1: DK1: SY: LOC BUF=80. DK2: PRIV 76 ---------------------------------------------------------------- | FIX-IN-MEMORY (P) | FIX | | --- | | ---------------------------------------------------------------- 3.3.21 Fixieren im Internspeicher ---------------------------------- Format des Kommandos -------------------- FIX taskname Der variable Taskname ist der Name der Task, die im Speicher fixiert werden soll. Funktionsbeschreibung --------------------- Mit diesem Kommando kann der Bediener eine Task in ihre Par- tition laden und fixieren. Da die Task speicherresident ist, koennen nachfolgende Anforderungen viel schneller bedient werden, denn das Laden von der Platte entfaellt in diesem Fall. Die Task kann im Speicher nur dann fixiert werden, wenn die Partition, in welcher sie fixiert werden soll, verfuegbar ist. Im Speicher fixierte Tasks verbleiben dort physisch auch nach ihrem Verlassen. Der belegte Speicherbereich kann nur mit den Kommandos UNFIX bzw. REMOVE wieder freigegeben werden. Bei der Fixierung von Tasks im Speicher gelten die folgenden Einschraen- kungen: -Aktive Tasks koennen nicht fixiert werden. -Auslagerbare Tasks koennen nicht fixiert werden. -Eine Task muss installiert werden, bevor sie fixiert werden kann. Beispiel -------- >FIX XYZ -------- Die Task XYZ wird in ihrer Partition im Speicher fixiert. 77 ---------------------------------------------------------------- | GROUP GLOBAL EVENT FLAGS (NP,P) | FLA | | --- | | ---------------------------------------------------------------- 3.3.22 Gruppenglobale Ereignisflags ------------------------------------- Format des Kommandos -------------------- FLA[GS] [g/schluesselwort] g Nutzergruppe (oktal, ohne eckige Klammern), fuer die die globalen Ereignisflags behandelt werden sollen. Standardannahme: gesetzter UIC. schluesselwoerter: /CRE Erzeugt gruppenglobale Ereignisflags fuer die spezifizierte UIC-Gruppe. Wenn die Flags schon existieren, aber zum Loeschen markiert sind, dann werden diese Flags geloescht. /ELIM Eliminiert die gruppenglobalen Ereignisflags fuer die spezifizierte UIC-Gruppe. Ereignisflags werden solange nicht eliminiert, solange der Zugriffszaehler nicht 0 erreicht hat. Ist der Zugriffszaehler groesser als 0, werden die Ereignisflags zum Loeschen markiert. Werden die Gruppennummer und Schluesselwortspezifikation weggelassen, zeigt das Kommando alle gruppenglobalen Ereignisflags in der folgenden Form an: ggg Zugriffszaehler Ereignisflags [DEL] wobei [DEL] die gruppenglobalen Ereignisflags anzeigt, die zum Loeschen markiert wurden. Funktionsbeschreibung --------------------- Das Kommando FLA erzeugt, beseitigt und zeigt gruppenglobale Ereignisflags an. Gruppenglobale Ereignisflags koennen jede UIC- Gruppe mit 32 weiteren Ereignisflags, zusaetzlich zu den 32 gemeinsamen und 32 lokalen Ereignisflags, versorgen. Die gruppen- globalen Ereignisflags aehneln in der Anwendung den gemeinsamen Ereignisflags (siehe Anleitung fuer Programmierer, Teil 2). Tasks koennen jedoch nur diejenigen gruppenglobelen Ereignisflags nutzen, die fuer ihre Nutzergruppe bestimmt sind. Nichtprivilegierte Nutzer koennen nur die gruppenglobalen Ereignisflags erzeugen oder eliminieren, fuer deren UIC-Gruppe sie angemeldet sind. Privilegierte Nutzer koennen gruppenglobale Ereignisflags fuer beliebige UIC-Gruppen erzeugen oder eliminieren. 78 Beispiel -------- >FLA 302/CRE ----------- Mit diesem Kommando werden gruppenglobale Ereignisflags fuer alle die Tasks erzeugt, die unter der UIC-Gruppennummer 302 laufen. Wenn die Flags erzeugt werden, werden sie alle mit 0 initialisiert. >FLA --- 302 1 000010 000000 Anzeige des Zugriffszaehlers (1) und des gesetzten Ereignisflags (in diesem Falle Flag 68) fuer die UIC-Gruppe 302. Der Zugriffszaehler enthaelt die Zahl der Tasks, die dieses Ereignisflag benutzen. Die gruppenglobalen Ereignisflags werden in zwei oktalen Worten dargestellt. Das erste Wort enthaelt die Ereignisflags 65 bis 80 (von rechts nach links), das zweite Wort enthaelt die Ereignisflags 81 bis 96 (von rechts nach links). >FLA 302/ELIM ------------ Eliminiert die gruppenglobalen Ereignisflags fuer die UIC-Gruppe 302. 79 ---------------------------------------------------------------- | HELLO (NP) | HEL | | --- | | ---------------------------------------------------------------- 3.3.23. Anmelden in das System ------------------------------- Format des Kommandos -------------------- Das Kommando kann in einer der folgenden Formen eingegeben werden. Die geschweifte Klammer in dem Kommando zeigt an, dass einer der zwei Parameter verwendet werden kann. {uic } >HEL[LO] {nutzername}/kennwort --- ---------- --------- >HEL[LO] --- {uic } Account or name:{nutzername} ---------- Password:kennwort -------- {uic } >HEL[LO] {nutzername} --- ---------- Password:kennwort -------- In den Kommandoformen bedeuten: uic - Nutzeridentifikationscode (UIC) des Anwenders. Er kann in den folgenden vier Formen angegeben werden: g,m [g,m] g/m [g/m] Die Variablen g und m sind Oktalzahlen im Be- reich von 1 bis 377, die die Nutzergruppen-Nr. bzw. Mitglieds-Nr. darstellen. Um den Ausdruck der Datei LB:[1,2]LOGIN.TXT zu unterdruecken, muss der Anwender die Form waeh- len, bei der die beiden Variablen durch einen Schraegstrich getrennt sind (g/m oder [g/m]). nutzername - Der Zuname des Nutzers kann anstelle eines UIC eingegeben werden, der in der Nutzerverzeichnis- datei enthalten ist. kennwort - Das Kennwort kann 6 alphanumerische Zeichen um- fasssen. Wenn der Nutzer das Kennwort als Ant- wort auf die Meldung "Password:" eingibt, gibt das System die eingegebenen Zeichen nicht aus. 80 Wenn das Kommando HELLO erfolgreich ist, gibt das System die fol- gende Mitteilung aus: OMOS 1630 MULTI-USER SYSTEM gruss tag-mon-jahr h:min Logged on Terminal ttnn: [text] In dieser Mitteilung bedeuten: gruss - In Abhaengigkeit von der Tageszeit wird eine der folgenden Begruessungen ausge- geben: Good Morning Good Afternoon Good Evening tag-mon-jahr - Es wird das augenblickliche Datum ausgegeben. h:min - Es wird die Zeit ausgegeben, zu der der Nutzer sich anmeldet. [text] - Es wird der Inhalt der Datei LB:[1,2]LOGIN.TXT ausgegeben. Funktionsbeschreibung --------------------- Mit dem Kommando HELLO meldet sich ein Nutzer mit einem Bedienge- raet an, um Zugriff zu einem Mehrnutzersystem zu erhalten. Bevor ein Nutzer sich angemeldet hat, weist das System alle MCR-Komman- dos mit Ausnahme der Kommandos HELLO und HELP ab! Die Parameter des Kommandos HELLO sind der Zuname des Nutzers oder der Nutzer- identifikationscode (UIC) und ein Kennwort. Das System prueft diese Parameter auf Uebereinstimmung mit den Eintragungen in der Verzeichnisdatei der zugriffsberechtigten Nutzer. Wenn der Nutzer berechtigt ist und das Kennwort mit dem Namen bzw. dem UIC zusam- menpasst, wird von dem System folgendes durchgefuehrt: - Das Bediengeraet wird auf einen privilegierten oder nichtprivi- legierten Status gesetzt, in Abhaengigkeit von dem UIC des Nutzers. (Ein privilegierter Nutzer hat eine Nutzergruppennum- mer, die kleiner oder gleich 10 ist.) - Der logische Geraetename SY0: wird der Systemplatte des Nutzers zugeordnet (die Systemplatte enthaelt die Dateien des Nutzers). - Der UIC des Nutzers, der der Standard-UIC am Anfang ist, wird festgestellt. - Die augenblickliche Zeit und das Datum sowie andere Informatio- nen ueber das Bediengeraet werden in die Verzeichnisdatei ein- getragen. - Die ESCAPE-Folgen zum Loeschen des Bildschirms, zum Setzen der Tabulatoren und des Wrap-around-Modus werden ausgegeben. - Die Systemkennzeichnung, das augenblickliche Datum und die Zeit, zu der der Nutzer sich am Bediengeraet angemeldet hat, werden ausgegeben. - Der Inhalt der Datei LB:[1,2]LOGIN.TXT kann wahlweise ausgege- ben werden. (Der Nutzer kann den Ausdruck durch die Eingabe von CTRL/O abbrechen.) Werden andere Terminals als K 8911 oder K 8917 benutzt, so kann die Datei LOGIN.TXT auch dazu verwen- det werden, die ESCAPE-Folgen zum Initialisieren der Terminals (Tabulatoren setzen o.ae.) an das Bediengeraet zu uebergeben. - Wenn die Datei SY:[angemeldeter UIC]LOGIN.CMD vorhanden ist, wird sie dem Kommandoprogramm uebergeben und abgearbeitet. - Die Standardmeldung wird ausgegeben. 81 Beispiele --------- >HEL [200,10]/BAUM ----------------- OMOS 1630 MULTI-USER SYSTEM Good Morning 5-JUL-87 09:10 Logged on Terminal TT6: * * HINWEISE FUER NUTZER * * > (Der Nutzer hat den Ausdruck mit CTRL/O abgebrochen.) >HEL --- Account or name:200/12 ------ Password: OMOS 1630 MULTI-USER SYSTEM Good Morning 5-JUL-79 1 51 Logged on Terminal TT12: > 82 ---------------------------------------------------------------- | HELP (NP) | HELP | | ---- | | ---------------------------------------------------------------- 3.3.24. Kommando-Hilfe ----------------------- Format des Kommandos -------------------- 1. HELP[/schluesselwort] [Ausdruck1] [Ausdruck2] [...Ausdruck9] Mit diesem Kommandoformat wird der Inhalt der Standard-Help- Datei LB:[1,2]MCR.HLP angezeigt. HELP in diesem Kommandoformat ist das einzige MCR-Kommando, dass man benutzen kann, ohne angemeldet zu sein. Hinweis: Es sind alle 4 Buchstaben von HELP einzugeben, um es von dem Kommando HELLO zu unterscheiden. 2. HELP % [Ausdruck1] [Ausdruck2] [...Ausdruck9] Mit diesem Kommandoformat wird der Inhalt einer vom Nutzer in seinem eigenen UIC erzeugten Help-Datei, SY:[aktueller UIC] HELP.HLP, angezeigt. Um dieses Kommandoformat nutzen zu koen- nen, muss man ueber HEL oder LOG angemeldet sein. Hinweis: Es sind alle 4 Buchstaben von HELP einzugeben, um es von dem Kommando HELLO zu unterscheiden. schluesselwoerter (sich gegenseitig ausschliessend): /CLI:cliname Richtet HELP auf die Help-Datei fuer einen Kommandozeileninterpreter (CLI) in LB:[1,2]cliname.HLP. Befindet man sich in seinem eigenen CLI und laesst dieses Schluesselwort weg, ist die Standard-Help-Datei LB:[1,2]MCR.HLP. /DCL Gibt an, dass der Help-Text in der Datei LB:[1,2]DCL.HLP beginnt. Fuer Terminals, fuer die DCL gesetzt ist, ist diese Help-Datei die Standardannahme. /FIL:[dateispezifikation] Gibt die Datei an, in der sich der Help-Text befindet. Bei unvollstaendiger Angabe der Dateispezifikation sind die Standardannahmen LB:[1,2]dateiname.HLP. Gibt man nur /FIL: an, ist die Standardannahme LB:[1,2] MCR.HLP. /GRO Weist HELP an, die HELP-Datei [gruppe,1]HELP.HLP auf dem Standard-Datentraeger als Wurzel-Help-Datei zu nutzen. Gruppen- Help-Dateien erlauben Nutzern mit gleicher Gruppennummer, gemeinsame Help-Dateien fuer diese Gruppe zu teilen. 83 /LOC Zeigt den Text an, der in der Datei HELP.HLP in dem Standardverzeichnis auf dem Standard-Datentraeger enthalten ist. Dieses Schluesselwort entspricht dem Kommandoformat HELP %. /MCR Gibt an, dass der Help-Text in der Datei LB:[1,2]MCR.HLP beginnt. Fuer Terminals, fuer die MCR gesetzt ist, ist diese Datei Standardannahme. /OUT:dateispezifikation Sichert den Text der Help-Datei (oder -Dateien) in der mit /OUT: spezifizierten Datei. Laesst man die Angabe der Dateispezifikation weg, wird der Help-Text in einer Datei mit dem Namen .;1 gespeichert. Laesst man das Schluesselwort /OUT:dateispezifikation weg, zeigt HELP die Dateien auf dem Terminal an, auf dem das Kommando eingegeben wurde. /xxx Gibt an, dass der Help-Text in der Datei LB:[1,2]xxx.HLP beginnt, wobei xxx der Name eines CLI ist. Dieses Schluesselwort fuehrt zum selben Ergebnis wie die Angabe /CLI:xxx. Funktionsbeschreibung --------------------- Das Kommando HELP stellt Informationen aus einer Help-Datei, entweder vom System in LB:[1,2]MCR.HLP bereitgestellt, oder vom Nutzer entsprechend seinen Wuenschen in SY:[aktueller UIC] dateiname.HLP selbst gebildet, ueber Terminal oder einem spezifizierten Ausgabegeraet bereit. HELP ist das einzige MCR- Kommando, dass man benutzen kann, ohne angemeldet zu sein (Ausnahme: Kommandoformat HELP % fuer zusaetzliche nutzereigene Help-Dateien). 1. Allgemeiner Aufbau einer Help-Datei Eine Help-Datei ist ueblicherweise wie folgt aufgebaut: 1 Leerzeile (da die erste Zeile in einer Help-Datei nicht angezeigt wird) Textblock, der ausgegeben wird, wenn das Kommando HELP ohne Parameter eingegeben wird. Gewoehnlich sollte dieser allgemeine Textblock Informationen darueber enthalten, wie man sich in dem System anmeldet, und ueber den Inhalt der Help-Datei Auskunft geben. 1 erster Ausdruck1 Textblock, der angezeigt wird, wenn man HELP erster Ausdruck1 ueber Terminal eingibt. Dieser Textblock sollte Informationen ueber diesen ersten Ausdruck1 enthalten und eine Uebersicht ueber moegliche Ausdrucke der zu dieser Ebenennummer 1 gehoerenden naechstniederen Ebenennummern geben. 2 erster Ausdruck2 Textblock, der angezeigt wird, wenn man HELP erster Ausdruck1 erster Ausdruck2 ueber Terminal eingibt. 84 2 zweiter Ausdruck2 Textblock, der angezeigt wird, wenn man HELP erster Ausdruck1 zweiter Ausdruck2 ueber Terminal eingibt. 1 zweiter Ausdruck1 Textblock, der angezeigt wird, wenn man HELP zweiter Aus- druck1 ueber Terminal eingibt. 1 dritter Ausdruck1 Textblock, der angezeigt wird, wenn man HELP dritter Ausdruck1 ueber Terminal eingibt. . . . Die Ziffern, Ebenennummern der Ausdruecke, koennen im Bereich 1 bis einschliesslich 9 liegen und muessen das erste Zeichen auf der Zeile sein. Ueber eine beliebige Anzahl von Leerzei- chen oder Tabulatoren von der Ebenennummer getrennt, folgt der Ausdruck in Grossbuchstaben. Beginnt der Ausdruck mit einem Waehrungssymbol ($) oder Schraegstrich (/), werden $ oder / ignoriert. Die Zeilen der Textbloecke duerfen nicht mit einer Ziffer von 1 bis 9 beginnen, da diese als Ebenen- nummern interpretiert werden. Ausserdem ist die Groesse des Terminalpuffers bei der Anzahl der Zeichen pro Zeile der Textbloecke zu beachten, ebenso die Anzahl der Zeichen pro Textblock. Bei einem Ausdruck braucht nur die Anzahl Zeichen eingegeben zu werden, durch die ein Ausdruck eindeutig iden- tifiziert werden kann. Das Kommando HELP interpretiert die Kommandozeile in einer streng geschachtelten Form. Beim Suchen nach Ausdruecken in einer Help-Datei beginnt HELP mit der Suche nach einer Zeile, die die Ebenennummer 1, gefolgt von dem in der Kom- mandozeile angegebenen ersten Ausdruck, enthaelt. Wird der angegebene Ausdruck gefunden, und wurden in der Help-Komman- dozeile keine weiteren Ausdruecke angegeben, wird der zu dem gesuchten Ausdruck gehoerende Textblock ausgegeben. Sind aber weitere Ausdruecke in der HELP-Kommandozeile angegeben, wird die Suche nach einer Zeile in der Help-Datei, die die Ebenen- nummer 2 enthaelt, gefolgt von dem in der Kommandozeile angegebenen zweiten Ausdruck, fortgesetzt. Sind nun keine weiteren Ausdruecke in der Kommandozeile angegeben, wird der nachfolgende Textblock in der Help-Datei ausgegeben. Diese Korrespondenz zwischen der Position des Ausdrucks in der HELP-Kommandozeile und den Ebenennummern in der Help-Datei wird solange fortgesetzt, bis der letzte Ausdruck gefunden ist. Somit muss beim Aufbau der Help-Dateien die strenge Hierarchie der Ausdruecke beachtet werden. 2. Bezugnahme auf andere Help-Dateien HELP laesst Bezugnahmen innerhalb einer Help-Datei auf andere Dateien zu, die umfangreiche Textblocke und/oder zusaetzliche Ebenennummern und ihre Ausdruecke enthalten. Solche indirek- ten Bezugnahmen zu anderen Dateien senken die Suchzeit und ermoeglichen eine flexiblere Nutzung einer Help-Datei. Um von einer Help-Datei auf andere Help-Dateien Bezug zu nehmen, ist als erstes Zeichen auf einer Zeile (verschieden vom Leerzei- chen) ein At.-Zeichen (@), gefolgt von einer Dateispezifika- tion, einzugeben: 1 HELLO @HELHLP 85 Die Standardannahme fuer den Typ dieser Datei ist .HLP, der Standard-Dateityp der uebergeordneten Help-Datei. Wird je- doch bei @dateispezifikation ein anderer Dateityp angegeben, dann benutzt HELP bei nachfolgenden indirekten Bezugnahmen den angegebenen Dateityp als Standardannahme. Wuerde z.B. @dateiname.TXT angegeben, so wird der Dateityp .TXT die Stan- dardannahme fuer zukuenftige Bezugnahmen. Die Dateiversions- nummer entspricht standardmaessig immer der hoechsten vorhan- denen Version. Die Dateien, auf die Bezug genommen wird, muessen das gleiche Format wie die Help-Datei haben. Enthaelt die Indirektdatei Ebenennummern, so muessen sie stets groe- sser sein als die der uebergeordneten Help-Datei. Enthaelt beispielsweise die Help-Datei die Zeichen 1 BEISP @HELBSP dann kann die Datei HELBSP.HLP nur Ebenennummern groesser 1 (2 bis 9) enthalten. In den Indirektdateien koennen wiederum andere Help-Dateien aufgerufen werden. Maximal 8 Indirektda- teistufen sind zulaessig. 3. Synonyme Suchbegriffe In Help-Dateien sind synonyme Suchbegriffe zugelassen, d.h. dieselben Textbloecke koennen gemeinsam von aehnlichen oder synonymen Ausdruecken in der Help-Datei genutzt werden. Dazu werden die synonymen Ausdruecke der gleichen Ebenennummern in die Help-Datei aufgenommen, anstelle des nachfolgenden Text- blockes steht ein Verweis auf den Ausdruck mit dem nachfol- genden Textblock. Zur Kennzeichnung des Ausdruckes, auf den verwiesen wird, muss das erste vom Leerzeichen verschiedene Zeichen in der Zeile ein Doppelkreuz (#) sein. Da HELP die Help-Datei sequentiell durchsucht, muss der Ausdruck mit dem Textblock nach allen Ausdruecken auftreten, die sich auf ihn beziehen. Es sind somit nur Vorwaertsbezugnahmen zulaessig. Der Ausdruck, dem der Textblock folgt, muss stets die gleiche Ebenennummer haben wie alle Ausdruecke, die sich auf ihn beziehen. 1 ANMELDEN #HELLO 1 LOGIN #HELLO 1 HELLO Textblock, der von den Ausdruecken ANMELDEN, LOGIN und HELLO gemeinsam genutzt wird. Zusammen mit Einwort-Synonymen kann man auch Zeichenketten- Synonyme verwenden: 1 UTILITIES 2 RUNNING #TASKS EXECUTING 1 TASKS 2 EXECUTING Das Zeichenketten-Synonym beginnt immer mit dem Ausdruck der Ebenennummer 1. 86 Beispiel -------- Aufbau einer Help-Datei HELP.HLP im UIC des Nutzers zur Beschrei- bung des Dienstprogramms BRU, wobei diese Help-Datei durch wei- tere Dienstprogramme ergaenzt werden kann. 1 BRU Backup und Restore Dienstprogramm (BRU) BRU wird zur schnellen Sicherung und Rueckspeicherung von Dateien oder ganzen Datentraegerinhalten benutzt. In der Help- Kommandozeile koennen folgende Ausdruecke mit den Ebenennummern 2 angegeben werden: SYNTAX LIST BEISPIELE wobei die Angaben HELP % BRU SYN HELP % BRU LI HELP % BRU BEI genuegen. 2 SYNTAX >BRU [/qualifiers]indev1:,...[dateispez.,...]outdev1:,... [dateispez.,...] qualifiers: ein oder mehrere Schluesselwoerter, die nur durch Schraegstriche getrennt werden. indev,outdev: Ein- oder Ausgabegeraet, bei Magnetband sind auch mehrere Geraete moeglich. dateispezifikation: ein oder mehrere Dateispezifikationen 2 LIST @BRUQUA.HLP (Diese Help-Datei, in diesem Beispiel nicht enthalten, beschreibt alle Qualifiers fuer BRU) 2 BEISPIELE - Uebertragen der BRU-Magnetband-Datei DIENST von MT3: zu DK0:, die eingegliedert ist. >BRU/REW/BAC:DIENST/UFD/MOU MT3:DK0: - Platte zu Platte genaue Kopie, beide Geraete nicht eingegliedert >BRU/INI DK0: DK1: auch moeglich: >BRU/INI ------- from: DK0: ---- to: DK1: ---- HELP-Kommandozeile: >HELP % BRU ---------- Nach Eingeben dieser Kommandozeile erfolgt eine Ausgabe des Textblockes nach 1 BRU in HELP.HLP im Nutzer-UIC. 87 >HELP % BRU LIST --------------- Nach Eingeben dieser Kommandozeile erfolgt eine Ausgabe des Textblockes nach 2 LIST in HELP.HLP im Nutzer-UIC. 88 ---------------------------------------------------------------- | HOME (NP,P) | HOM | | --- | | ---------------------------------------------------------------- 3.3.25. Modifizieren des Home-Blocks ------------------------------------- Format des Kommandos -------------------- HOM[E] ddnn:datentraegername/schluesselwort(er) ddnn: Datentraeger, dessen Home-Block man modifizieren moechte. Der Datentraeger muss zugewiesen und nicht eingegliedert sein oder zugewiesen und und durch Schalter /FOR eingegliedert sein. datentraegername Der augenblickliche Name des Datentraegers (aus dem VOL1- Kennsatz). schluesselwoerter Angaben fuer die Felder, welche man im Home-Block modifizieren moechte. Jedes Schluesselwort erhaelt standardmaessig den Wert, welcher beim Initialisieren des Datentraegers fuer das spezielle Feld angegeben wurde. Die Schluesselwoerter aendern nicht die Dateien, die durch das Kommando INI erzeugt wurden. /DENS=density Prueft die Dichte einer Diskette. Wenn angegeben, wird die vom Laufwerk realisierte Dichte mit dem Schluesselwortwert verglichen. Gueltige Werte: HIGH und LOW /EXT=block-count Gibt die Standard-Dateierweiterungsgroesse an. Eine Datei kann erweitert werden, wenn sie ihren gesamten zugewiesenen Bereich genutzt hat. Gueltige Werte fuer die Blockanzahl liegen im Bereich von 1 bis 255(10). Es ist zu beachten, dass in dem Falle, wenn man /EXT=0 angibt, keine Dateien (einschliesslich Systemdateien) erweitert werden koennen. Neue Dateien koennen auf dem Datentraeger nur dann erzeugt werden, wenn sowohl freier Speicherplatz als auch freie Dateikennsaetze vorhanden sind. /FPRO=[system,owner,group,world] Legt den standardmaessigen Dateischutz auf dem Datentraeger fest. Die Zugriffscodes bestehen aus vier 4-Code-Gruppen im Zugriffsrechte-Wort wie folgt: R - Lesen W - Schreien E - Erweitern D - Loeschen In jedem Falle bedeutet das Fehlen des Codes, dass der Nutzerklasse das Zugriffsrecht verweigert wird. Die Nutzerklassen (System, Eigentuemer, Gruppe, Rest) sind positionsabhaengig. Das bedeutet, dass die Position des Wortes 89 innerhalb der Kette die Nutzerklasse definiert, fuer welche der Code gilt (siehe Reihenfolge in der Syntax). Die eckigen Klammern gehoeren zur Syntax. Durch Angabe eines Sterns (*) fuer die Zugriffscodes wird der Standardwert fuer eine bestimmte Klasse angenommen. /LRU=directory-count Gibt die aufgerundete Zahl von Verzeichnissen an, auf die gleichzeitig zugegriffen werden kann. F11ACP wartet eine Liste der bisher am meisten benutzten Verzeichnisse. Der Wert, welchen man fuer /LRU angibt, legt die Zahl der Eintragungen in diese Liste fest. Verzeichnisoperationen koennen im allge- meinen wesentlich beschleunigt werden, wenn die Zahl der Eintragungen erhoeht wird. Ist ein Verzeichnis in der Liste enthalten, braucht das Verzeichnis nicht im Hauptdateiverzeich- nis (MFD) gesucht zu werden (dazu noetige Platten-E/A wird vermieden). Ausserdem muss bei Verzeichnisoperationen der Dateikopf des Verzeichnisses nicht gelesen werden. Wird /LRU nicht benutzt, gilt als Standard fuer die Anzahl der Verzeich- nisse der Wert, der bei Initialisierung des Datentraegers spe- zifiziert wurde. Gueltige Werte fuer die Anzahl der Verzeich- nisse liegen im Bereich von 1 bis 127(10). Es ist zu beachten, dass ein Vergroessern des Wertes fuer /LRU auch das Vergroe- ssern der Anzahl der benutzten Dateisteuerbloecke (FCB) bedeu- tet und erhoehte Anforderungen an den Systempool stellen kann (siehe Anleitung fuer Systemprogrammierer, Teil 4). Es ist auch zu beachten, dass F11ACP in dem Falle, dass man /LRU=0 angibt, keine Liste der Verzeichnisse fuehrt. Dies ist aber nicht empfehlenswert und kann sich nachteilig auf die Systemeffektivitaet auswirken. /MXF=file-count Gibt die maximale Anzahl von Dateien an, die auf dem Datentrae- ger erlaubt sind. Diese Zahl entspricht der Anzahl der Datei- kennsaetze in der Indexdatei des Datentraegers. Der Wert fuer /MXF schliesst die fuenf Systemdateien ein und kann nicht groesser sein als die Gesamtzahl der Bits, die der Indexdatei- Bitmap zugeteilt ist. Zur Bestimmung der maximalen Anzahl der Dateien, die auf einem Datentraeger erlaubt sind, gilt folgen- der Algorithmus: Maximum = (4096.)*(augenblickliche Blockzahl der Indexdatei- Bitmap) Das Schluesselwort /VI gibt ueber diese Zahl Auskunft. (Siehe dazu die Beschreibung des Schluesselwortes /INF des Kommandos INI, um zu bestimmen, wieviele Indexdatei-Bitmap-Bloecke auf dem Datentraeger sind.) Es ist zu beachten, dass die Maximalzahl der Dateien, die schon fuer diesen Datentraeger spezifiziert wurde, nicht verringert werden kann. /NAME=new-volume-label Gibt einen neuen Kennsatz fuer den Datentraeger an. /OVR (P) Weist das HOME-Kommando an, die Kennsatzverarbeitung zu uebergehen, so dass ein Datentraeger ohne die Angabe des Datentraegerkennsatzes modifiziert werden kann. 90 /OWNER=[group,member] Gibt den Eigentuemer des Datentraegers an. Dieses Schluesselwort ist identisch mit /UIC. Gueltige Gruppen- und Mitgliedsnummern liegen im Bereich von 1 bis 377(8). Die eckigen Klammern sind notwendige Syntax. /PRO=[system,owner,group, world] Gibt den Standard-Schutz fuer einen Datentraeger an. Zugriffscodes bestehen aus vier 4-Code-Gruppen im Zugriffsrechte-Wort wie folgt: R - Lesen W - Schreiben C - Erzeugen D - Loeschen In jedem Falle bedeutet Nichtvorandensein des Codes, dass der Nutzerklasse das Zugriffsrecht verweigert wird. Die Nutzerklas- sen (System, Eigentuemer, Gruppe, Rest) sind positionsabhaen- gig, d.h., die Position des Wortes innerhalb der Kette defi- niert die Nutzerklasse, fuer die der Code gilt (siehe Reihen- folge in der Syntax). Die eckigen Klammern sind notwendige Syntax. Durch Angabe eines Sterns (*) fuer die Zugriffscodes wird der Standardwert fuer eine bestimmte Klasse angenommen. /UIC=[group, member] Gibt den Eigentuemer des Datentraegers an. Gueltige Gruppen- und Mitgliedsnummern liegen im Bereich von 1 bis 377(8). Die eckigen Klammern sind notwendige Syntax. Dieses Schluesselwort ist identisch zum Schluesselwort /OWNER. /VI Listet die HOME-Schluesselwoerter und ihre Initialisierungs- werte fuer den spezifizierten Datentraeger auf. /WIN=anzahl Gibt die Anzahl der Blockadresszeiger an, die den Dateifenstern zugeteilt werden sollen. Ein Dateifenster besteht aus einer Anzahl von Blockadresszeigern und wird im Hauptspeicher ange- legt, wenn die Datei eroeffnet wird. (Zur naeheren Beschreibung der Blockadresszeiger siehe Anleitung fuer Programmierer, Teil 5, FCS 1630.) Gueltige Werte der Blockadresszeigeranzahl lie- gen im Bereich von 1 bis 127 (10). Funktionsbeschreibung --------------------- Mit dem Kommando HOME ist es moeglich, bestimmte Felder in dem HOME-Block eines FM16-D-Plattendatentraegers zu aendern. Das Kommando HOME fuehrt nach den Aenderungen von Feldinhalten umfangreiche Pruefungen durch, um abzusichern, dass ein einwandfreier HOME-Block auf den Datentraeger zurueckgeschrieben wird. Wenn irgendeine dieser Pruefungen Fehler ergibt, versucht HOME, einen alternativen HOME-Block auf den ersten freien Block, auf den HOME-Block-Suchpfad zu schreiben. Ist dies erfolgreich gelungen, gibt HOME eine Warnmeldung zum neuen HOME-Block aus. Jedoch sollte der Datentraeger sobald wie moeglich kopiert werden, da der alternative HOME-Block eines eingegliederten Datentraegers durch Operationen zerstoert werden koennte. Um das HOME-Kommando benutzen zu koennen, muss die INI-Task mit 91 dem Namen ... HOM wie folgt installiert werden: >INS $INI/TASK=...HOM (Beachte, dass INS ein privilegiertes Kommando ist!) Der Unterschied zwischen INI und HOME ist der, dass INI den HOME- Block auf einen Datentraeger schreibt, waehrend HOME Informationen in dem Home-Block aendert (ohne dass sonst irgendetwas geaendert wird). Da das HOME-Kommando und das INI- Kommando innerhalb der gleichen Task implementiert werden, nutzen sie viele der gleichen Fehlermeldungen gemeinsam. Man kann einen Bindestrich (-), gefolgt von , als Zeilenbeendigungszeichen zur Erweiterung der HOM-Kommandozeile benutzen, wenn die ausgewaehlten Schluesselwoerter dazu fuehren, dass das Kommando 80 Zeichen ueberschreitet (bzw. die Puffergroesse, die fuer das Eingabeterminal spezifiziert wurde). Man kann eine beliebige Anzahl von Fortsetzungszeilen verwenden, die Gesamtzahl der angegebenen Zeichen darf jedoch nicht 255 (10) ueberschreiten. Beispiel -------- >HOM DK1:ARB/MXF=25./VI ---------------------- ** Volume information for DK1: ** Label = ARB /Cha = [] /Ext = 5. /Fpro = [RWED,RWED,RWED,R] /Lru = 3. /Mxf = 25. /Pro = [RWCD,RWCD,RWCD,RWCD] /Uic = [1,1] /Win = 7. Maximum possible files = 4096. The Homeblock revision count is 1, Last revised on 15-OCT-87 Volume created on 15-OCT-87 at 14:43:54 92 ---------------------------------------------------------------- | INITVOLUME | INI | | --- | | ---------------------------------------------------------------- 3.3.26. Initialisieren von Datentraegern ----------------------------------------- Format des Kommandos -------------------- INI[TVOLUME] ddnn:["]datentraegername["][/schluesselwort(er)] ddnn: Geraetename und -nummer des Geraetes mit dem zu initialisierenden Datentraeger ["]datentraegername["] Fuer das Dateiformat FM16-D (Magnetplatte, Diskette) kann der Datentraegername bis zu 12(10) Zeichen lang sein, fuer das Dateiformat FM16-M (Magnetbaender) bis zu 6 Zeichen. Beim Dateiformat FM16-M koennen folgende Zeichen verwendet werden: Grossbuchstaben A bis Z Ziffern 0 bis 9 und folgende Sonderzeichen: ! " % & ' () * + , - . / : < = > ? ; Enthaelt ein Datentraegername Sonderzeichen, muss der Datentraegername in Anfuehrungszeichen (") eingeschlossen werden. Enthaelt der Datentraegername selbst Anfuehrungszeichen, muessen dafuer zwei Anfuehrungszeichen codiert werden. Der Datentraegername MT"10 muss in der Kommandozeile als "MT""10" angegeben werden. Alle Kleinbuchstaben in einem Datentraegernamen werden vor jeder Operation in Grossbuchstaben umgewandelt. schluesselwoerter Angaben fuer verschiedene Kenndaten, die der Datentraeger bei der Initialisierung haben soll. Hinweis: Die Kommandozeile kann beim INITVOLUME-Kommando maximal 512(10) Zeichen lang sein. Da der Eingabepuffer eines Terminals begrenzt ist, ist eine Eingabe ueber Folgezeilen moeglich, wobei das Minuszeichen (-) als letztes Zeichen vor dem RETURN () als Fortsetzungszeichen interpretiert wird. Die Anzahl der Fortsetzungszeilen ist beliebig. Dieses Mehrzeilenformat erfordert, dass man zunaechst INI aufruft, und dann mit den Fortsetzungszeilen beginnt, wenn man durch INI dazu aufgefordert wird (INI>). 93 /ACCESS="character" (nur fuer Dateiformat FM16-M) Erlaubt dem Eigentuemer eines Magnetband-Datentraegers, den Zugriffsschutz fuer den Datentraeger anzugeben. INI uebertraegt "character" in VOL1 (Kennzeichen fuer Zugriffsrechte, welches normalerweise leer ist). Gueltige Werte fuer "character" sind: Grossbuchstaben A bis Z Ziffern 0 bis 9 und folgende Sonderzeichen: ! " % & " () * + , - . / : < = > ? ; Standardannahme: leer Es ist zu beachten, dass bei Angabe eines der genannten gueltigen Werte nur ein privilegierter Nutzer den Datentraeger eingliedern kann (siehe Schluesselwort /OVRACC fuer das Kommando MOU). /BAD=[option] (nur gueltig fuer Dateiformat FM16-D) Gibt an, dass die Verarbeitung von Fehlerblockinformationen bei der Datentraegerinitialisierung erfolgen soll. Damit wer- den fehlerhafte Bloecke als belegt markiert und koennen nicht Dateien zugeordnet werden. Die eckigen Klammern sind notwendige Syntax. Moegliche Options sind: [MAN] Eine Liste fehlerhafter Bloecke wird ueber Terminal eingegeben. [AUTO] Die Fehlerblockdatei, die auf der letzten Spur vom Hersteller oder durch das Dienstprogramm BAD erzeugt wurde, wird gelesen. [NOAUTO] Die Fehlerblockdatei wird ignoriert und es wird keine Fehlerblockverarbeitung durchgefuehrt. [AUTO,MAN] Die Fehlerblockdatei wird gelesen und danach koennen fehlerhafte Bloecke ueber Terminal angegeben werden. [OVR] Schliesst die letzte Spur in die BADBLK.SYS-Datei ein. Diese Option geht von der Annahme aus, dass sich die Fehlerblockdatei in dem letzten einwandfreien Block vor der letzten Spur befindet. Diese Option ist nur fuer solche Geraete wie DY: gueltig, die vom Hersteller aufgezeichnete Fehler- blockdaten in den letzten Spuren enthalten. [OVR,MAN] Die vom Hersteller aufgezeichnete Fehlerblock- datei wird uebergangen, die Bloecke werden ueber Terminal eingegeben. Wird in der Kommandozeile [MAN] angegeben, fordert INI die fehlerhaften Bloecke wie folgt an: INI>LBN(S)= 94 Fehlerhafte Bloecke koennen dann in folgendem Format eingegeben werden: blocknum[:anzahl][,blocknum[:anzahl]]... wobei blocknum Nummer des ersten oder einzelnen fehlerhaften Blockes anzahl Anzahl der folgenden Fehlerbloecke, beginnend bei blocknum sind. INI fordert den Doppelpunkt, wenn man eine Folge von Fehler- bloecken angibt. Standardmaessig wird bei blocknum und anzahl eine Dezimalzahl angenommen, wenn der Zahl nicht ein Doppel- kreuz (#) vorangeht. Zur Angabe eines einzelnen Blockes gibt man nur die Blocknummer an und laesst den Doppelpunkt weg. Zur Angabe einer Folge von Fehlerbloecken wird jede Serie von Bloecken durch ein Leerzei- chen, Tabulator oder Komma getrennt (in der Syntax ist nur das Komma angegeben. Z. B. werden durch die Kommandozeile INI>LBN(S)=100:2,3,200:100,45:1 die Bloecke 100, 101, 3, 200 bis 299 und 45 als fehlerhafte Bloecke ueber Terminal eingegeben. Eine Leerzeile (Druecken der RETURN-Taste als Antwort auf die Aufforderung) bewirkt die Ausgabe der eingegebenen Fehlerblock- liste. Die erste Zahl in der Anzeige ist der Anfangsblock der Folge, die zweite Zahl ist die Anzahl der fehlerhaften Bloecke in der Folge (die Zahlen sind dezimal). Mit CTRL/Z oder der ESCAPE-Taste wird die Fehlerblock-Eingabe beendet. Die Standard-Option ist /BAD=[AUTO]. Fuer die Datentraeger, bei denen vom Hersteller keine Fehlerblockdatei auf der letzten Spur angelegt wurde, muss diese Datei mit dem Dienstprogramm BAD erzeugt werden. /DENS-density Das /DENS-Schluesselwort bestimmt die Aufzeichnungsdichte (Bit pro Zoll, bpi) Gueltige Werte: FM16-M: /DENS=800 FM16-D (Diskette): /DENS=HIGH /DENS=LOW Wird ein /DENS-Wert angegeben, wird die Laufwerksdichte mit dem Schluesselwortwert in bezug auf Vertraeglichkeit verglichen. Ist kein /DENS-Wert angegeben, wird keine Vertraeglichkeits- pruefung durchgefuehrt und der Datentraeger wird mit seiner augenblicklichen Dichte initialisiert. 95 /EXT=block-count (nur gueltig fuer Dateiformat FM16-D) Gibt die Zahl der Bloecke an, um die eine Datei erweitert werden kann, wenn der der Datei zugeteilte Platz nicht ausreicht. Gueltige Werte fuer die Blockzahl sind im Bereich 1 bis 255(10). Standardannahme: /EXT=5. Gibt man /EXT=0 an, koennen keine Dateien (einschliesslich Systemdateien) erweitert werden. Wenn keine freien Dateikoepfe in der Indexdatei vorhanden sind, obwohl Platz auf dem Datentraeger vorhanden ist, koennen keine neuen Dateien erzeugt werden. /FPRO=[system,owner,group,world] (nur gueltig fuer Dateiformat FM16-D) Gibt den Standard-Schutz fuer Dateien an, welche auf dem initialisierten Datentraeger erzeugt werden. Der Dateischutzcode spezifiziert fuer jede Nutzergruppe die Zugriffsrechte durch ein Zugriffsrechtewort, bestehend aus vier 4-Code-Gruppen: R - Lesen W - Schreiben E - Erweitern D - Loeschen Die Reihenfolge RWED ist einzuhalten. Die Nutzerklassen (System, Eigentuemer, Gruppe, Rest) sind positionsabhaengig. Das bedeutet, dass die Position des Wortes in der Zeichenkette die Nutzerklasse definiert, zu der der Code gehoert. Die Reihenfolge ist [system,owner,group,world] Die eckigen Klammern sind notwendige Syntax. In jedem Falle bedeutet das Fehlen des Codes, dass der zugehoe- rigen Nutzerklasse das Zugriffsrecht verweigert wird. Bei An- gabe eines Sterns (*) fuer den Zugriffscode einer bestimmten Nutzerklasse wird der Standardwert fuer die bestimmte Nutzer- klasse angenommen. Standardannahme fuer den Dateischutz: /FPRO=[RWED,RWED,RWED,R] /INDX=index-file-position (nur gueltig fuer Dateiformat FM16-D) Gibt die logische Blocknummer fuer den Beginn der Indexdatei an. Das Schluesselwort kann dazu benutzt werden, die Indexda- tei, das Hauptdateiverzeichnis (MFD, Master File Directory) und die Speicherbelegungsdatei ab einem bestimmten Datentraeger- speicherplatz anzulegen, um die Zugriffszeit zu verringern. Es gibt vier Moeglichkeiten fuer index-file-position: BEG - Die Indexdatei wird am Anfang des Datentraegers angelegt. MID - Die Indexdatei wird in der Mitte des Datentraegers angelegt. END - Die Indexdatei wird am Ende des Datentraegers angelegt. BLK:nnn - Die Indexdatei wird an der angegebenen Blocknummer angelegt. Standardannahme: /INDX=MID 96 /INF=initial-indexfile-size (nur gueltig fuer Dateiformat FM16-D) Gibt die Anzahl der Dateikoepfe an, die beim Initialisieren in der Indexdatei zuzuteilen sind. Die fuenf Systemdateien (INDEXF.SYS, BITMAP.SYS, BADBLK.SYS, CORIMG.SYS und 000000.DIR) werden in den Wert fuer /INF nicht eingeschlossen. Die maximale Anzahl der Dateikoepfe, die einem Datentraeger zugeteit werden kann, wird entweder bestimmt durch den Wert, der durch das Schluesselwort /MXF angegeben wurde (abzueglich der 5 Systemdateien) oder durch die Standardannahme. Die Standardannahme ist abhaengig von der Groesse des Datentraegers (siehe Beschreibung des /MXF-Schluesselwortes zur Berechnung der Groesse). Man muss die Maximalzahl der Dateikoepfe, die auf einem Datentraeger erlaubt sind, bestimmen, bevor man die Anzahl der Dateikoepfe berechnen kann, die beim Initialisieren zugeteilt werden sollen. Die Zahl der zugeteilten Dateikoepfe wird entweder durch Angabe eines Wertes fuer /INF bestimmt oder mit einer Formel, die den Wert, der bei /MXF angegeben wird, benutzt: dateikoepfe = maximum/2 wobei dateikoepfe - Anzahl der beim Initialisieren zugeteilten Dateikoepfe maximum - Anzahl der Dateien, die durch /MXF angegeben werden Ist die Dateikopfanzahl kleiner als 100(10), teilt INI 16(10) Dateikoepfe fuer den Datentraeger zu. Standardannahmen: Geraet Anzahl der Dateikoepfe DY: 16 DK: 147 DM: mit 15 MB 834 /LRU=directory-count (nur gueltig fuer Dateiformat FM16-D) Gibt angenaehert die Anzahl der Verzeichnisse an, auf die gleichzeitig zugegriffen werden kann. Der F11ACP fuehrt eine Liste der am meisten benutzten Verzeichnisse. Der Wert fuer directory-count legt die Anzahl der Eintragungen in diese Liste fest. Durch Vergroessern der Zahl der Eintragungen kann die Verarbeitungsgeschwindigkeit von Verzeichnisoperationen bedeu- tend gesteigert werden. Enthaelt die Liste ein Verzeichnis, so ist keine Platten-E/A zum Finden des Verzeichnisses im MFD (Master File Directory) erforderlich. Ausserdem erfordern Verzeichnisoperationen nicht das Lesen des Verzeichnisdateikopfes. Gueltige Werte fuer directory-count liegen im Bereich 1 bis 127(10). Es ist zu beachten, dass der Wert fuer /LRU die Zahl der be- nutzten Dateisteuerbloecke (FCBs) erhoeht und die Groesse des benutzten Systempools steigen kann. Spezifiziert man /LRU=0, legt F11ACP keine Verzeichnisliste an, das koennte sich negativ auf die Systemeffizienz auswirken. Standardannahme: /LRU=3. 97 /MXF=file-count (nur gueltig fuer Dateiformat FM16-D) Spezifiziert die maximale Anzahl der Dateien, die auf dem Datentraeger erlaubt sind. Diese Zahl korrespondiert mit der Anzahl der Dateikoepfe in der Indexdatei des Datentraegers (siehe Schluesselwort /INF). Der Wert fuer /MXF wird berechnet aus der Maximalzahl der Nutzer-UFDs und -dateien und den fuenf Systemdateien CORIMG.SYS, INDEXF.SYS, BITMAP.SYS, BADBLK.SYS und 000000.DIR zum Aufbau der FM16-D-Plattenstruktur. Der Wert fuer /MXF muss kleiner oder gleich dem theoretisch moeglichen Maximum fuer das Geraet sein. Standardannahme: /INF * 2 /OWNER=[g,m] (fuer FM16-D- und FM16-M-Datentraeger) /OWNER="owner" (nur fuer FM16-M-Datentraeger) Gibt den Eigentuemer des Datentraegers an. Dieses Schluesselwort ist aehnlich dem Schluesselwort /UIC, gestattet aber bei Magnetbaendern, dass man eine Syntax ungleich [g,m] nutzen kann. /OWNER="owner" erlaubt, dass man im Datentraegerkennsatzblock das gesamte Nutzerkennzeichnungs-Feld aendern kann, wenn dies fuer den Austausch mit anderen Systemen notwendig ist. /PRO=[system,owner,group,world] Gibt den Standardschutz fuer einen Datentraeger an. Die Zu- griffscodes bestehen aus vier 4-Code-Gruppen in dem Zugriffs- rechtewort wie folgt: R - Lesen W - Schreiben C - Erzeugen D - Loeschen Die Reihenfolge RWED ist einzuhalten. Die Nutzerklassen (System, Eigentuemer, Gruppe, Rest) sind positionsabhaengig. Das bedeutet, dass die Position des Wortes in der Zeichenkette die Nutzerklasse definiert, zu der der Code gehoert. Die Reihenfolge ist [System,Gruppe,Eigentuemer,Rest] Die eckigen Klammern sind notwendige Syntax. In jedem Falle bedeutet das Fehlen des Codes, dass der zugehoerigen Nutzerklasse das Zugriffsrecht verweigert wird. Standardannahme: /PRO=[RWCD,RWCD,RWCD,RWCD] /UIC=[g,m] Gibt den Eigentuemer des Datentraegers an. Gueltige Gruppen- und Mitgliedernummern liegen im Bereich von 1 bis 377(8). Die eckigen Klammern sind notwendige Syntax. Standardannahme: /UIC=[1,1] /VI Listet alle INI-Schluesselwoerter und deren Werte fuer den angegebenen Datentraeger auf. 98 /WIN=anzahl (nur gueltig fuer Dateiformat FM16-D) Gibt die Anzahl der Blockadresszeiger an, die Dateifenstern zugeteilt werden sollen. Ein Dateifenster besteht aus einer Anzahl von Blockadresszeigern und wird im Speicher aufgebaut, wenn die Datei eroeffnet wird. Der Wert anzahl muss zwischen 1 und 127(10) liegen. Standardannahme: /WIN=7. Funktionsbeschreibung --------------------- Durch das Kommando INITVOLUME wird auf einem Datentraeger das Dateiformat FM16 erzeugt. Auf FM16-D-Datentraegern initialisiert das Kommando den Datentraeger (zerstoert alle bestehenden Dateien), schreibt einen Pseudoanfangslader und einen HOME-Block und bildet die Verzeichnisstrukturen. Auf FM16-M-Datentraegern schreibt das Kommando einen Datentraegerkennsatz und eine Pseudodatei, die alle bestehenden Dateien zerstoert. Es ist zu beachten, dass ein durch das INI-Kommando bearbeiteter Magnetband-Datentraeger als ein leerer Datentraeger betrachtet wird. In Mehrnutzersystemen kann ein Datentraeger nur auf zugeteilten, privaten Geraeten initialisiert werden. Der Datentraeger darf aber nicht eingegliedert sein. Eine Aenderung der Standardannahmen fuer die Kommandoparameter erfordert eine genaue Kenntnis der FM16-M- und FM16-D-Dateifor- mate. Beispiel -------- >INI DK1:ARB/INF=16./MXF=40./VI ------------------------------ ** Volume information for DK1: ** Label = ARB /Bad = [Auto] /Cha = [] /Ext = 5. /Fpro = [RWED,RWED,RWED,R] /Indx = Mid /Inf = 16. /Lru = 3. /Mxf = 40. /Pro = [RWCD,RWCD,RWCD,RWCD] /Uic = [1,1] /Win = 7. Theoretical maximum files = 2357. 99 wobei DK1:ARB Name des Datentraegers auf dem Geraet DK1: ist ARB /INF=16. 16 Dateikoepfe werden beim Initialisieren als Anfangs- wert der Indexdatei zugeteilt /MXF=40. Maximal 40 Dateien (einschliesslich der fuenf System- dateien , Nutzer-UFDs und Dateien) sind auf dem Daten- traeger ARB erlaubt. Fuer alle anderen in der Datentraegerinformation angezeigten Parameter wurden Standardannahmen angenommen. >INI MT1:TEST/UIC=[100,10]/VI ---------------------------- ** Volume information for MT1: ** Label = TEST /Access = (leer) /Dens = 800 /Pro = [RWED,RWED,RWED,RWED] /Uic = [100,10] wobei MT1:TEST Name des Datentraegers auf dem Magnetband-Geraet MT1: ist TEST /UIC=[100,10] Der Nutzeridentifikationscode auf dem Datentraeger TEST ist: Gruppe: 100, Mitglied: 10 Fuer alle anderen in der Datentraegerinformation angezeigten Parameter wurden Standardannahmen angenommen. 100 ---------------------------------------------------------------- | INSTALL (P) | INS | | --- | | ---------------------------------------------------------------- 3.3.27. Installieren einer Task -------------------------------- Format des Kommandos -------------------- INS[TALL] [$]dateispezifikation[/schluesselwort(er)] schluesselwoerter: /CKP=option /CLI=option /INC=n /PAR=name /PMD=option /PRI=n /SLV=option /TASK=name /UIC=[g,m] wobei dateispezifikation in der Form ddnn:[g,m]dateiname.typ;version angegeben wird. Die Standardannahme fuer den Typ ist TSK. In freigelassenen Feldern werden die Standardwerte angenommen. Wenn in der Kommandozeile $ angegeben wird, wird als Standard- annahme fuer ddnn: LB: angenommen. Die Standardannahme fuer [g,m] ist dann der System-UIC [1,54]. Zu beachten ist, dass, falls LB: mit dem Kommando REA einem anderen Geraet zugewiesen wurde und das System-UFD dieses Geraetes privilegierte Tasks enthaelt, die fuer ein anderes System gebildet wurden, das System abstuerzt. schluesselwoerter: /CKP=option Gibt an, ob eine Task auslagerbar oder nicht auslagerbar ist. Moeglich fuer option sind YES und NO. Wenn CKP=YES angegeben wird (Standard fuer auslagerbare Tasks), ist die Auslagerung erlaubt. Die Auslagerung einer Task ist nicht erlaubt, wenn CKP=NO angegeben wird. Das Schluesselwort /CKP ueberschreibt den Schalter /CP, der bei der Taskbildung angegeben werden kann. Bei Systemen, die eine dynamische Zuteilung von Auslagerungs- bereich unterstuetzen (eine Option der Systemgenerierung), braucht die Taskabbilddatei bei der Taskbildung keinen Ausla- gerungsbereich zu erhalten. Durch das Schluesselwort /CKP=YES wird das System unterrichtet, Auslagerungsbereich fuer die Task in einer allgemeinen Auslagerungsdatei zuzuteilen, wenn dieser benoetigt wird. (Siehe zur naeheren Erlaeuterung zur Zuteilung von Speicherplatz die Beschreibung des Kommandos 101 ACS.) /CLI=option Gibt an, dass die zu installierende Task ein Kommandozeilen- interpreter (CLI) ist. Moeglich fuer option sind YES und NO. /INC=n Fuer eine Task, die in einer systemgesteuerten Partition laeuft, kann die Zahl der Worte angegeben werden, um die ihr Adressbereich vergroessert werden soll. Die Laenge n kann als Oktal- oder Dezimalzahl angegeben werden. Dieses Schluessel- wort ueberschreibt die Parameter EXTTSK oder PAR, die bei der Bildung der Task angegeben werden koennen. Tasks, die die Groesse der Partition, in welcher sie abgearbeitet werden, damit angeben, benutzen dieses Schluesselwort, um festzulegen, wieviel dynamischen Speicherplatz sie den Symboltabellen oder Puffern zuteilen koennen. Solche Tasks, wie MAC, TKB, PIP, VFY und der Indirektkommandoprozessor AT. nutzen den Speicherplatz vom Ende des Taskabbildes bis zum Ende ihres Adressraumes als dynamischen Speicherplatz. Das bedeutet, dass das Schluessel- wort /INC die Anzahl der Worte in diesem dynamischen Bereich definiert. Eine Task, die speicherresidente Ueberlagerungen benutzt, kann nicht erweitert werden. (Siehe zur naeheren Er- laeuterung Anleitung fuer Bediener, Teil 4: "Dienstprogramme", Kapitel TKB.) Als Standardannahme wird die bei der Bildung der Task angege- bene Laenge oder der Wert 0 verwendet. /IOP=option Gibt an, ob eine privilegierte Task die E/A-Seite ueberspei- chern kann. Moeglich fuer option sind YES und NO. Wenn man /IOP=YES angibt, nimmt des Kommando INSTALL an, dass die Task die E/A-Seite ueberspeichern wird (APR7). Wenn die Task groesser als 8 K Worte ist, wird eine Warnmeldung ausge- geben. Spezifiziert man /IOP=NO, nimmt INSTALL an, dass die Task nicht die E/A-Seite benoetigt. Es wird keine Warnung ausgege- ben. /IOP ergaenzt den Schalter /IP des Taskbilders. /IP informiert INSTALL darueber, dass die Task beabsichtigt, die E/A-Seite zu ueberspeichern. Standardannahme: /IOP=YES /PAR=pname Durch die Angabe eines Partitionnamens wird die Task in dieser Partition installiert. Der bei der Bildung der Task angegebene Name wird ueberschrieben. Handelt es sich bei der fuer die Task spezifizierten Partition um eine nutzergesteuerte Partition, dann wird die Groesse der Task auf die Groesse der Partition erweitert. Wenn die Task mit in der Taskabbilddatei zugeteiltem Auslagerungsbereich gebildet wurde und die Partition erweitert wird (was eine Erweiterung der Taskgroesse zur Folge hat, wenn die Task erneut installiert wird), dann ist demzufolge der zugewiesene Auslagerungsbereich nicht mehr gross genug, um die Task aufzunehmen. Wenn das Schluesselwort eine nicht existierende Partition an- gibt, erfolgt vom System eine Fehlermitteilung und es wird versucht, die Task in der Partition GEN zu installieren. Der Taskbilder verwendet als Standard den Namen GEN. 102 /PMD=option Wird /PMD=YES gesetzt, so wird fuer die Task ein Speicherabzug erzeugt, wenn sie infolge einer SST-Fehlerbedingung abge- brochen wird. Wird die Option verneint (/PMD=NO), wird kein Speicherabzug fuer die Task bei einem SST-Abbruch erzeugt. Voraussetzung fuer die Erzeugung des Speicherabzugs ist, dass die Task PMD... in dem System installiert ist. Dieses Schluesselwort ueberschreibt den Schalter /PM, der bei der Bildung der Task angegeben werden kann. Als Standard wird der bei der Taskbildung angegebene Wert verwendet. /PRI=number Gibt die Prioritaet der Task an, die im Bereich von 1 bis 250(10) liegen kann, wobei 250 die hoechste Prioritaet ist. Standardannahme: /PRI=50. /SLV=option Gibt den Slave-Status fuer die Task an. Moeglich fuer option sind YES und NO. Wird /SLV=YES spezifiziert, werden die an die installierte Task gesendeten Daten mit der Terminalnummer (TI:) der Task markiert, die die Daten sendet. Wenn die installierte Task die Daten empfaengt, dann setzt das System das Terminal TI: auf dasjenige, welches mit den Daten verbun- den ist. Dieses Schluesselwort ueberschreibt den bei Taskbil- dung spezifizierten Schalter /SL. Bei Angabe von /SLV=NO aendert sich TI: nicht, wenn die Task Daten empfaengt. Als Standard wird der bei der Taskbildung angegebene Wert ver- wendet. /TASK=name Es wird der Name festgelegt, unter dem die Task im Systemtask- verzeichnis gefuehrt wird. Standardannahme: Die ersten 6 Zeichen des Dateinamens oder der bei der Taskbildung angegebene Name. /UIC=[group,member] Gibt den UIC fuer die Task an. Die eckigen Klammern sind notwendige Syntax. Der UIC kann auch mit dem RUN-Kommando ueberschrieben werden. Der UIC der Task bestimmt, in welche Dateischutzklasse (System, Eigentuemer, Gruppe, Rest) eine Task gehoert, und hat somit direkten Einfluss auf den Dateizu- griff. Es ist zu beachten, dass der Dateischutz von Datei zu Datei unterschiedlich sein kann. Als Standard wird der bei der Taskbildung angegebene Wert an- gesehen. Dieser Standard erscheint nur bei Tasks, die durch eine SPWN$-, RPOI$- oder eine RUN$-Anweisung oder durch einen zeitverzoegerten Start durch das Kommando RUN gestartet werden. Andere Tasks laufen unter dem Standard-UIC des Bedien- geraetes, von dem das Startkommando eingegeben wurde. 103 Funktionsbeschreibung --------------------- Mit dem Kommando INS wird die angegebene Task dem System bekannt gemacht. Des weiteren kann eine residente Bibliothek in eine Common-Partition geladen werden. Eine installierte Task ist ruhend, solange die Exekutive keine Anforderung empfaengt, diese Task zu starten. Wenn eine Task installiert wird, erzeugt das System einen Task- steuerblock (TCB, Task Control Block) fuer diese Task in einer speicherresidenten Tabelle, dem Systemtaskverzeichnis (STD, Sy- stem Task Directory). Die Taskparameter, die in dem Tasksteuer- block enthalten sind, befaehigen das System, die Task zu starten, wenn dies durch ein MCR-Kommando oder eine Systemanweisung ver- langt wird. Eine Task kann nicht gestartet werden, bevor sie installiert wurde. (Es sei bemerkt, dass das Kommando RUN eine Option besitzt, die eine Task automatisch vor der Abarbeitung installiert und nach der Abarbeitung entfernt.) Ein Tasksteuer- block enthaelt die Adresse des Geraetesteuerblocks (UCB, Unit Control Block) und die logische Blocknummer (LBN, Logical Block Number) der Taskabbilddatei. Da die Taskabbilddateien zusammen- haengend sind, kann die Exekutive das Taskabbild mit einem Zugriff laden, wenn es von einem MCR-Kommando oder einer System- anweisung angefordert wird. Ist die Task jedoch groesser als 32 K Worte, ist mehr als ein Zugriff erforderlich. Durch die Angabe von Schluesselwoertern im Kommando koennen Para- meter festgelegt oder ueberschrieben werden, die nicht bei der Erzeugung der Task angegeben oder als Standard angenommen worden sind. Wenn ein Nutzer eine Task in einem unbenutzten System instal- liert, speichert das System die LBN der Taskabbilddatei in den Taskkopf. Wenn das System mit dem Kommando SAVE gerettet wird, wird die Dateiidentifikation (und nicht der LBN der Datei) in den Tasksteuerblock gebracht. Wird das System wieder geladen, so wird die neue aktuelle logische Blocknummer der Task in den Task- steuerblock gespeichert. Wenn eine Task geloescht wurde, kann das System auf die Taskdatei nicht zugreifen, wenn das System wieder geladen wird. Das System entfernt dann automatisch den TCB der Task aus dem Systemtaskver- zeichnis. Ein gerettetes System haelt nicht die physischen Adressen von installierten Tasks fest. Die Dienstprogramme DSC und BRU koennen eine Systemplatte verdichten und kopieren und somit die Task- dateien auf unterschiedliche physische Speicherplaetze uebertra- gen. Das System kann jedoch normal funktionieren, wenn es erneut geladen wird, weil die Eintragungen im Tasksteuerblock die Dateiidentifikationen der Tasks enthalten und nicht die LBNs. Beispiele --------- >INS MAX -------- Die Task MAX wird installiert. Fuer Prioritaet und UIC werden die Standardwerte angenommen. 104 >INS DK1:[200,3]MAX.TSK;3/PRI=100 -------------------------------- Die Task MAX, Dateityp TSK, Version 3 vom Geraet DK1: mit der Gruppen-Nr. 200 und der Mitglieds-Nr. 3 wird installiert. Die Prioritaet wird auf 100(8) festgelegt. >INS NAME/TASK=...ABC -------------------- Die Task NAME wird installiert und im Systemtaskverzeichnis mit dem Namen ...ABC gefuehrt. Diese Task kann durch die Kommandoein- gabe >ABC (Kommandozeile) aktiviert werden. Enthaelt diese Task die Systemanweisung GMCR$, so wird die Kommandozeile bei Ausfuehrung der Anweisung GMCR$ in einen Puffer uebernommen, der im Anweisungsparameterblock ange- ordnet ist. >INS MAC/INC=2048./PAR=SYSCON ---------------------------- Die Task MAC wird in der systemgesteuerten Partition SYSCON in- stalliert, wobei ihre Laenge um 2048 Worte vergroessert wird. 105 ---------------------------------------------------------------- | LOAD (P) | LOA | | --- | | ---------------------------------------------------------------- 3.3.28. Laden eines Drivers ---------------------------- Format des Kommandos -------------------- LOA[D] dd:[/schluesselwort(er)] wobei dd: 2 KOI-7-Zeichen umfassende Geraetedriverbezeichnung schluesselwoerter /PAR=parname Spezifiziert die Partition (parname), in die der Driver geladen werden soll. Die spezifizierte Partition kann eine Taskpartition oder eine systemgesteuerte Partition sein. Alle ladbaren Driver werden gewoehnlicherweise in derselben Parti- tion gespeichert (im BS OMOS 1630 in der Partition GEN). Wenn in der Kommandozeile dieses Schluesselwort weggelassen wird, dann laedt das System den Driver in die Partition, die bei Bildung des Drivers spezifiziert wurde. Auf jeden Fall ist zu beachten, dass ein Driver nicht oberhalb 124 K geladen werden kann, weil er sonst beim Kommando SAVE nicht als Systembestandteil gilt. /SIZE=parsize Gibt die minimale Groesse (in Worten) der Partition an, in die der Driver geladen werden soll. Ist es eine systemgesteuerte Partition wird eine Subpartition dieser Groesse erzeugt. parsize wird auf die naechsthoehere Einheit von jeweils 100 (oktalen) Worten aufgerundet und muss kleiner als 100000 sein. /HIGH Ist es eine systemgesteuerte Partition, bewirkt /HIGH, dass der Driver in den hoechstmoeglichen Bereich der Partition geladen wird. Das Fehlen von /HIGH bewirkt, dass der Driver in die Partition so niedrig wie moeglich geladen wird. Ist die Partition nicht systemgesteuert, belegt der Driver die gesamte Partition, unabhaengig davon, ob /HIGH spezifiziert wird oder nicht. Funktionsbeschreibung --------------------- Mit dem Kommando LOA wird ein nichtresidenter (ladbarer) Driver fuer das Geraet dd: in den Hauptspeicher geladen, und seine Datenbasis und seine Interruptvektorverbindungen werden an die Ladeadresse angepasst. Mit Hilfe dieses Kommandos besteht die Moeglichkeit, selten benoetigte Geraetedriver nur zu dem Zeit- punkt zu laden, zu dem sie gebraucht werden. Ausserdem werden diese ladbaren Driver nicht Bestandteil der Exekutive. Damit ist es moeglich, den dynamischen Speicherbereich des Systems zu er- 106 hoehen. Es koennen Driver geladen werden, die bis zu 8 K Worte lang sind. Es ist jedoch zu beachten, dass der ladbare Driver bei einer Groesse ueber 4 K selbst fuer die Adresszuweisung der Speicherplaetze ueber 4 K sorgen muss. Der Driver fuer ein Geraet, z. B. XY:, kann eine Beziehung zu einer Partition anzei- gen durch Verwendung des globalen Symbols $XYCOM fuer ein Wort in seinem Quellcode. Wird $XYCOM in einem Driver definiert, kann der Driver solange nicht geladen werden, bis XYCOM erzeugt wird. (LOA schreibt die PCB-Adresse von XYCOM in $XYCOM). Es kann jede beliebige Partition ausser einer Common-Partition angegeben wer- den. Fehlt diese Parameterangabe, wird der Driver in die Parti- tion geladen, die bei seinem Aufbau gewaehlt wurde. Beispiele --------- >LOA LP: ------ Es wird der Driver fuer einen Paralleldrucker geladen. >LOA PP:/PAR=DRVPAR ------------------ Es wird der Driver fuer einen Lochbandstanzer in die Partition DRVPAR geladen. Bemerkungen ----------- - Es sind strenge Vorschriften fuer das Bilden von ladbaren Geraetedriver-Tasks in der Anleitung fuer Systemprogrammierer, Teil 3: "Entwicklung nutzereigener Driver" gegeben. Die System- generierungsprozeduren enthalten Moeglichkeiten, um die Task- bildung von Drivern zu vereinfachen. - Es ist nicht moeglich, alle Geraetedriver ladbar zu machen. Ausserdem koennen nicht alle ladbaren Driver ladbare Datenbasen haben. - Das LOAD-Kommando fordert, dass die Task und die STB-Dateien eines Drivers sich auf der Systemplatte (LB:) unter dem System- UIC befinden. Zum Beispiel fordert das Kommando >LOA PP:, dass die Dateien PPDRV.TSK und PPDRV.STB sich auf LB: unter dem System-UIC [1,54] befinden. - Das LOAD-Kommando bewirkt kein Auslagern, um Platz in der Partition zu schaffen. - LOAD erfordert Pool-Speicherbereich wie folgt: 1. Wird die Driver-Datenbasis geladen, benoetigt sie entsprechend ihrer Groesse zusammenhaengenden Pool- Speicherbereich. 2. Jede Interrupt-Eintragung in dem Speicher benoetigt in dem Driver Pool- Speicherbereich fuer einen Inter- rupt-Steuerblock (ICB, Interrupt Control Block). 3. Wird der Driver in eine systemgesteuerte Partition geladen, wird fuer den Partitionsteuerblock (PCB) Platz im Systempool benoetigt. 107 ---------------------------------------------------------------- | LOGICAL UNIT NUMBER (NP) | LUN | | - - - | | ---------------------------------------------------------------- 3.3.29. Logische Geraetenummer ------------------------------- Format des Kommandos -------------------- LUN[S] taskname taskname - Name einer installierten Task Funktionsbeschreibung ---------------------- Mit diesem Kommando werden auf einem Bediengeraet die statischen Geraetezuweisungen fuer eine angegebene Task ausgegeben. Sta- tische Zuweisungen sind solche, die in der Taskbbilddatei enthal- ten sind. Die Ausgabe der Geraetezuweisungen besteht aus einer Liste, die in einer Spalte die physischen Geraeteeinheiten ent- haelt und in einer zweiten Spalte die zugehoerigen logischen Geraetenummern. Diese Geraetezuweisungen koennen durch Anweisun- gen, die innerhalb einer Task gegeben werden, veraendert werden, so dass die vor dem Start des Programms ausgegebenen Geraete- zuweisungen nicht mehr mit den gueltigen Zuweisungen beim Lauf des Programms uebereinzustimmen brauchen. Wenn die angegebene Task durch die Option "Install-run-remove" (bei der eine Task installiert, gestartet und nach dem Verlassen gestrichen wird) aktiviert wurde, hat die Task keine statischen Geraetezuweisungen und die Fehlerausschrift LUN - - TASK NOT IN SYSTEM wird auf dem Bediengeraet ausgegeben. Beispiel -------- >LUN MCR ------- TI0: 1. CL0: 2. SY0: 3. TT0: 4. LB0: 5. Der Ausdruck zeigt die statischen Geraetezuweisungen fuer die logischen Geraetenummern 1 bis 5, wie sie in dem Dateikopf des Taskabbildes von MCR enthalten sind. 108 ---------------------------------------------------------------- | MOUNT (NP,P) | MOU | | --- | | ---------------------------------------------------------------- 3.3.30. Eingliedern von Datentraegern -------------------------------------- Format des Kommandos -------------------- - Dateiformat FM16-D ------------------- MOU[NT] ddnn:[datentraegername][/schluesselwort(er)] - Dateiformat FM16-M ------------------ MOU[NT] device-list[file-set-id][/schluesselwort(er)] Die Parameter haben folgende Bedeutung: ddnn: - Geraeteeinheit, auf dem der Datentraeger eingegliedert werden soll Standard: keiner, muss immer angegeben werden datentraegername - Der Datentraegername kann beim Dateiformat FM16-D maximal 12 Zeichen lang sein. Er sichert, dass der richtige Datentraeger eingegliedert wird. Standard: keine Namensangabe Es wird keine Pruefung des Daten- traegernamens durchgefuehrt (gilt im Mehrnutzersystem nur fuer privilegierte Nutzer bei Angabe des Schluesselwortes /OVR) device-list - Ein oder mehrere Namen von Geraeten, auf dem der Datentraeger oder auf denen das Datentraegerset eingegliedert werden soll. Mehr als ein Geraetename kann nur fuer Mehrfachdatentraeger-FM16-M-Magnetband-Sets angegeben werden. Spezifiziert das Kommando mehr als einen Geraetenamen, muessen die Namen durch Komma getrennt und in Klammern eingeschlossen werden, in der Form: (ddn:,ddn:,ddn:...). Es ist zu beachten, dass, wenn mehr als ein Geraetename spezifiziert wird, der Zugriff auf die Baender immer durch den ersten Namen in device-list erfolgen muss. (Dies gilt auch, wenn das Band-Set ausgegliedert wird.) Wird versucht, auf ein Band durch einen anderen Geraetenamen zuzugreifen, erscheint eine Fehlernachricht. 109 file-set-ID - Die Identifikation des Magnetbandsets kann bis zu 6 Zeichen lang sein. Als Standard wird der Datentraegername des ersten Bandes des Magnetbandsets verwendet. Um eine Identifikation zu verwenden, die nicht mit dem Datentraegernamen des ersten Bandes uebereinstimmt, muessen diese Identifikation und der Datentraegername des ersten Bandes angegeben werden. Bei einem gerade initialisierten Band benutzt man zum Eingliedern z.B. die folgende Kommandozeile: >MOU MT:TAPSET/VOL=A123 Die Identifikation des Magnetbandsets ist "TAPSET", der Datentraegername des ersten Bandes "A123". File-Set-IDs koennen folgende Zeichen ent- halten: die Ziffern 0 bis 9, Grossbuchstaben A bis Z und Sonderzeichen ! " % & ' () * + , - . / : < = > ? ; Um einen Namen zu benutzen, der Sonder- zeichen enthaelt, muss er in Anfuehrungs- zeichen (") eingeschlossen werden. Wird das Anfuehrungszeichen im Namen benutzt, muss es zweifach angegeben werden. Die Kenn- zeichnung T"1% muss als "T""1%" angegeben werden. Kleinbuchstaben im File-Set-ID oder Datentraegernamen werden automatisch in Grossbuchstaben umgewandelt. Alle unguelti- gen Zeichen werden in ein Fragezeichen (?) umgewandelt. schluesselwoerter: Die Schluesselwoerter ueberschreiben die entsprechenden Werte des Datentraeger-Home-Blocks /ACP=option /OVRFSID /BS=n /PARM="user-parameters" /CC=option /PRO=option /DENS=density /PUB /EXT=block-count /RS=n /FOR /[NO]SHARE /FPRO=protection-spec /TR=option /[NO]HDR3 /UIC=[uic] /[NO]LABEL /UNL /LOCK=option /VI /OVR /VOL=(list) /OVRACC /[NO]WAIT /OVREXP /WIN=option /[NO]WRITE 110 Beschreibung der Schluesselwoerter ---------------------------------- /ACP=option (P) Gibt den Namen des ACP (Ancillary Control Processor, Zusatz- steuerroutine) an, der als Dateiprozessor fuer den einzuglie- dernden Datentraeger zu verwenden ist. Die Option kann der Name einer Task sein, die als ACP installiert wurde, oder kann UNIQUE sein, damit wird spezifiziert, dass ein vom System bestimmter ACP fuer diesen Datentraeger verwendet wird. Nur in Sonderfaellen muss /ACP angegeben werden. Wird die Option UNIQUE spezifiziert, benutzt MOUNT eine Kopie des F11ACP (ACP fuer FM16-D-Datentraeger) , wenn es sich bei dem Geraet um eine Platte handelt; ist das Geraet ein Magnet- band, erzeugt MOUNT eine Kopie von MTAACP (ACP fuer FM16-M- Datentraeger). Datentraeger, die von einem nutzereigenen ACP behandelt werden sollen, muessen immer mit diesem ACP behandelt werden. Standard: abhaengig vom Geraetetyp /BS=n (nur fuer Dateiformat FM16-M) Gibt die Blockgroesse fuer einen Magnetbanddatentraeger ohne Kennsatz bzw. die Blockgroesse fuer Dateien auf einem FM16-M- Magnetband, welche der Ebene 1 oder 2 angehoeren (die keinen HDR2-Kennsatz haben) an. Die Werte fuer n koennen fuer Baender ohne Kennsatz von 14 und fuer FM16-M-Baender von 18 bis 16000 sein. /BS spezifiziert ausserdem die Standardblockgroesse fuer neue Dateien auf einem FM16-M-Magnetband. /CC=option (nur fuer Dateiformat FM16-M) Gibt den Satztyp fuer einen Magnetbanddatentraeger ohne Kenn- satz bzw. den Satztyp fuer Dateien auf FM16-M-Baendern an, die der Ebene 1 oder 2 entsprechen (keinen HDR2-Kennsatz haben), oder die der Ebene 3 entsprechen, aber keinen Systemcode haben. Die Options sind FOR LIST NONE Diese Options entsprechen den FORTRAN-Schluesselwoertern fuer die OPEN-Anweisung. /DENS=density Die Dichte (Bits pro Zoll oder bpi) des auf dem Laufwerk aufgelegten Datentraegers. Sie ist abhaengig vom Geraetetyp. Standard: /DENS=800 fuer FM16-M-Magnetbaender /EXT=block-count (nur fuer Dateiformat FM16-D) Gibt die Anzahl von Bloecken an, um die eine Datei erweitert werden kann, wenn ihre Speicherplatzzuweisung erschoepft ist. Der Wert kann zwischen 1 und 255(10) liegen. Standard: Der Wert, der bei der Datentraegerinitialisierung spezifiziert wurde. 111 /FOR Zeigt einen fremden Datentraeger (Nicht-FM16-Datentraeger) an. Im BS OMOS 1630 wird dieses Schluesselwort empfohlen, ist aber zum Eingliedern fremder Datentraeger nicht erforderlich. Wenn man den Datentraeger nicht eingliedert, ist der Zugriff auf den Datentraeger unbeschraenkt. Wenn man beim Eingliedern eines Datentragers auf einem Geraet /FOR spezifiziert, dann kann kein anderer auf diesen zugreifen. Wenn man keinen ACP-Namen angibt (mit /ACP=option), kann ein Dateisystem (ein ACP) nicht auf den Datentraeger zugreifen. Das Fehlen eines ACP-Namen gestattet es Tasks (solchen wie INI, BAD, DSC oder Nutzertasks, die QIO$- Anweisungen fuer nicht dateistrukturierte Geraete ausfuehren), auf Nicht-FM16-D-Datentraeger zuzugreifen. /FPRO=protection-spec (nur fuer Dateiformat FM16-D) Gibt den Standard-Dateischutz fuer Dateien an, die auf einer FM16-D-Platte erzeugt werden, waehrend die Platte eingegliedert ist. Die Schutzspezifikation hat zwei Formate: (SYSTEM:RWED,OWNER:RWED,GROUP:RWED,WORLD:RWED) oder [RWED,RWED,RWED,RWED] Die Zugriffscodes bestehen aus vier 4-Code-Gruppen in dem Zugriffsrechtewort wie folgt: R - Lesen W - Schreiben E - Erweitern D - Loeschen In jedem Fall bedeutet das Fehlen des Codes, dass dem entsprechenden Nutzer das Zugriffsrecht verweigert wird. Standard: Werte, die vom Home-Block des Datentraegers genommen werden. /[NO]HDR3 (nur fuer Dateiformat FM16-M) Gibt an, ob ein HDR3-Kennsatz beim Erzeugen neuer Dateien geschrieben werden soll. Das Schluesselwort /NOHDR3 ist nur dann notwendig, wenn bekannt ist, dass das Zielsystem ein Band mit einem HDR3-Kennsatz nicht behandeln kann. Dieses Schlues- selwort ist sonst ohne Bedeutung. Standard: /HDR3 /[NO]LABEL (nur fuer Dateiformat FM16-M) Gibt an, dass es sich um einen Magnetbanddatentraeger im FM16- M-Format (/LABEL) oder um einen Magnetbanddatentraeger ohne Kennsatz (/NOLABEL) handelt. Standard: /LABEL 112 /LOCK=option (nur fuer Dateiformat FM16-M) Spezifiziert den Standardwert fuer das Schluesselwort /LOCK des Kommandos DMO. Die Options sind: Nounload (Nicht entladen) Unload (Entladen) Virtual (Virtuell) Gibt man die Option Nounload (/LOCK=N) an, wird das Daten- traeger-Gueltigkeitsbit geloescht, aber das Band wird nicht entladen. Dies ist die Standard-Option fuer Datentraeger, die mit /FOR eingegliedert wurden und fuer die kein ACP spezifi- ziert wurde. Gibt man die Option Unload (/LOCK=U) an, wird das Band zurueckgespult und entladen. Diese Option ist Standard fuer alle Datentraeger, die mit einem Standard-ACP eingegliedert werden. Die Option Virtual (/LOCK=V) ist privilegiert. Gibt man /LOCK=V an, wird das Datentraeger-Gueltigkeits-Bit nicht geloescht und das Band nicht entladen. /LRU=directory-count (nur fuer Dateiformat FM16-D) Gibt die angenaeherte Anzahl von Verzeichnissen an, auf die gleichzeitig bei eingegliedertem Datentraeger zugegriffen wer- den kann. F11ACP fuehrt eine Liste der in letzter Zeit am meisten benutzten Verzeichnisse. Der fuer /LRU angegebene Wert bestimmt die Anzahl der Eintragungen in dieser Liste. Eine Erhoehung der Anzahl der Eintragungen bewirkt im allgemeinen eine Beschleunigung der Verzeichnisoperationen. Ist ein Ver- zeichnis in dieser Liste vorhanden, ist keine Geraete-E/A zum Auffinden des Verzeichnisses im Hauptdateiverzeichnis (MFD) notwendig. Ausserdem erfordern Verzeichnisoperationen kein Lesen des Dateikopfes eines Verzeichnisses. Gueltige Werte liegen zwischen 0 und 127(10). Es ist zu beachten, dass eine Erhoehung des Wertes fuer /LRU auch die Erhoehung der Zahl der Dateisteuerbloecke (FCBs) bewirkt und eine staerkere Belastung des Systempoolbereiches nach sich ziehen kann. Zu weiteren Erlaeuterungen siehe Anleitung fuer Systemprogrammierer, Teil 4. Es ist ausserdem zu beachten, dass, wenn /LRU=0 spezifiziert wird, F11ACP keine Verzeichnisliste fuehrt. Dies ist nicht empfehlenswert und koennte sich auf den Systemdurchsatz nach- teilig auswirken. Wird /LRU nicht benutzt, wird als Standard- wert fuer die Anzahl der Verzeichnisse der Wert genommen, der bei Initialisierung des Datentraegers spezifiziert wurde. /OVR (P) Weist bei Platten das MOUNT-Kommando an, die Kennsatzverarbei- tung zu uebergehen, so dass ein Datentraeger ohne Angabe eines Datentraegerkennsatzes eingegliedert werden kann. Bei Magnet- baendern wird das MOUNT-Kommando angewiesen, die Verarbeitung des File-Set-ID auf dem ersten Band von einem Band-Set zu uebergehen, so dass ein Datentraeger ohne Angabe eines File- Set-ID eingegliedert werden kann. 113 Gibt man /OVR an, wird als File-Set-ID der Datentraegername des ersten Datentraegers in dem Set genommen. MOUNT untersucht den File-Set-ID auch noch nach Angaben zu weiteren Datentraegern des Magnetbandsets. Dies verhindert eine unkorrekte Bandverar- beitung. (Es ist zu beachten, dass die Datentraegernamen fuer die Banddatentraeger uebergangen werden, wenn sie nicht spezi- fiziert sind, egal, ob man /OVR benutzt oder nicht). /OVRACC (P) (nur fuer Dateiformat FM16-M) Weist das MOUNT-Kommando an, den Schutz fuer FM16-M- Magnetbanddatentraeger zu uebergehen (siehe Schluesselwort /ACCESS fuer das Kommando INI). /OVREXP (P) (nur fuer Dateiformat FM16-M) Weist das MOUNT-Kommando an, das Freigabedatum auf Magnetbanddatentraegern zu uebergehen. /OVRFSID (P) (nur fuer Dateiformat FM16-M) Weist das MOUNT-Kommando an, File-Set-IDs auf dem zweiten und allen weiteren Magnetbanddatentraegern eines Datentraeger-Sets zu ignorieren. Die Angabe von /OVRFSID kann aber eine unkorrek- te Bandverarbeitung bewirken. Deshalb sollte es nur dann spezi- fiziert werden, wenn man weiss, dass der Datentraeger nicht dem FM16-M-Standard entspricht. /PARM="user-parameters" Dieses Schluesselwort ist nur gueltig fuer fremde (/FOR) Daten- traeger. Es weist das MOUNT-Kommando an, die Nichtstandardpara- meter der Kommandozeile an einen fremden ACP zu uebergeben. Die Zeichenkette user-parameters kann aus bis zu 40(10) Zeichen bestehen. Die zusaetzlichen Anfuehrungszeichen werden dabei nicht mitgezaehlt. Enthaelt die Zeichenkette selbst ein Anfueh- rungszeichen, muss es zweifach angegeben werden. /PRO=protection-spec (nur fuer Dateiformat FM16-D) Spezifiziert den Standard-Datentraegerschutz fuer eine FM16-D- Platte. Folgende beiden Formate sind zulaessig: (SYSTEM:RWCD,OWNER:RWCD,GROUP:RWCD,WORLD:RWCD) [RWCD,RWCD,RWCD,RWCD] Die Zugriffscodes bestehen aus vier 4-Code-Gruppen in dem Zugriffsrechtewort wie folgt: R - Lesen W - Schreiben C - Erzeugen auf Datentraegerebene; Erweitern auf Dateiebene D - Loeschen /PUB Gibt an, dass alle Nutzer auf den Datentraeger zugreifen koen- nen, abhaengig vom Datentraeger und dem Standarddateischutz fuer diesen Datentraeger. Fuer das Laufwerk wird, falls notwen- dig, die Zuteilung aufgehoben und auf "oeffentlich" gesetzt. 114 Standards: /PUB wenn der Datentraeger oeffentlich ist /SHARE wenn der Datentraeger nicht zugeteilt oder nicht auf oeffentlich gesetzt ist /NOSHARE wenn der Datentraeger einem Nutzer zu- geteilt ist /RS=n (nur fuer Dateiformat FM16-M) Gibt die Zeichenzahl pro Satz fuer Magnetbanddatentraeger ohne Kennsatz bzw. fuer FM16-M-Magnetbaender der Ebene 1 oder 2 (ohne HDR2-Kennsatz) an. Der Wert fuer n kann von 1 bis zu dem Wert gehen, der mit /BS spezifiziert wurde. /[NO]SHARE /SHARE spezifiziert, dass ein Datentraeger mehrfach durch einen oder mehrere Nutzer eingegliedert werden kann. Jeder Nutzer, der den Datentraeger eingliedert, hat Zugriff zu ihm auf der Basis des Datentraeger- und Dateischutzes, der beim ersten Eingliedern eingerichtet wurde. Haben alle Nutzer ein DISMOUNT-Kommando gegeben und wurden alle Dateiaktivitaeten eingestellt, wird der Datentraeger durch den Dateiprozessor freigegeben. /NOSHARE spezifiziert, dass der Datentraeger nur durch den ersten Anwender, der den Datentraeger eingliederte, benutzt werden kann. Keine anderen Nutzer koennen auf diesen Datentrae- ger zugreifen. Das Laufwerk, auf welchem der Datentraeger ein- gegliedert wird, wird dem Bediengeraet des Nutzers zugeteilt und - falls notwendig - nichtoeffentlich gesetzt. Standards: /PUB wenn der Datentraeger oeffentlich ist /SHARE wenn der Datentraeger nicht zugeteilt ist oder nicht auf oeffentlich gesetzt ist /NOSHARE wenn der Datentraeger einem Nutzer zu- geteilt ist /TR=option (nur fuer Dateiformat FM16-M) Gibt die Art der Zeichenumwandlung an, die bei Lese- und Schreiboperationen auf einem Datentraeger ohne Kennsatz benutzt wird. Die Options sind: NONE ohne Umwandlung EBCDIC Umwandlung von DKOI in KOI7 fuer das Lesen; KOI7 in DKOI fuer das Schreiben. (Es ist zu beachten, dass die Umwandlungen nicht voellig symmetrisch sind. Einige Zeichen des einen Zei- chensatzes haben keine aequivalenten Zeichen in dem anderen Zeichensatz). UT1,UT2,UT3 Die Umwandlung erfolgt durch vom Nutzer bereitgestellte Umwandlungstabellen, die zuvor in den MTAACP eingebunden wurden. Bis zu drei Tabellen koennen eingebunden werden. Standard: NONE (ohne Umwandlung) (Zu weiteren Informationen ueber Zeichenumwandlung siehe An- 115 leitung fuer den Programmierer, Teil 5). /UIC=[uic] Gibt den Nutzeridentifikationscode (UIC) fuer den Eigentuemer des Datentraegers in der Form [Gruppe,Mitglied] an. Die eckigen Klammern sind notwendige Syntax. Gruppen- und Mitgliedsnummern sind zwischen 1 und 377(8) gueltig. Dieser UIC ueberschreibt den bei Datentraegerinitialisierung spezifizierten UIC. /UNL (nur fuer Dateiformat FM16-D) Gibt an, dass die Datentraegerindexdatei fuer den Schreib- zugriff durch einen Systemverwalter freigegeben werden (unlocked) soll. Ist die Datei gesperrt (locked), kann die Indexdatei nur gelesen werden. Ist sie nicht gesperrt, kann sie gelesen oder beschrieben werden. Dieses Schluesselwort ist vor allem dann erforderlich, wenn verlorengegangene Bloecke wieder- hergestellt werden bzw. andere Wartungsarbeiten mit dem Dienst- programm VFY durchgefuehrt werden. (Fuer weitere Erlaeuterungen siehe Anleitung fuer Bediener, Teil 4) Es ist zu beachten, dass dieses Schluesselwort nichts mit der Geraete-Schreibsperrung zu tun hat. Standard: gesperrt /VI Anzeige der Datentraegerinformationen auf dem Bediengeraet. Die angezeigten Informationen sind die Daten, mit denen der Datentraeger eingegliedert wurde. Fuer FM16-D-Datentraeger gilt folgendes Format der Daten- traegerinformation: Volume information Class: FM16-D Device: ddnn Volume label: datentraegername Owner: [uic] Protection: [system,owner,group,world] Default: [system,owner,group,world] Processor: acp-name Fuer Geraete, bei denen die Fehlerblockdatei auf der letzten Spur liegt (z.B. DM:), zeigt /VI ausserdem auch, oktal, die Serien-Nummer des Datentraegers an. Fuer fremde Datentraeger gilt folgendes Format der Datentraegerinformation: Volume information Class: Foreign Device: ddnn Volume label: datentraegername 116 Fuer Magnetband-Datentraeger gilt folgendes Format der Datentraegerinformation: Volume information Class: ANSI oder Ohne Kennsatz Device: ddnn Fileset ID: bezeichnung Volume ID: datentraegername Owner: [uic] Processor: acp-name Gehoeren mehrere Geraete zu einem Mehrfach-Datentraeger-Set (Magnetbaender), werden die Zeilen mit den Geraete- und Datentraegernamen fuer jedes Geraet ausgegeben. /VOL=(list) (nur fuer Dateiformat FM16-M) Gibt den Datentraegernamen fuer ein FM16-M-Magnetband an. Wird mehr als ein Datentraegername spezifiziert (fuer ein Mehrfach- Datentraeger-Set), muessen die Datentraegernamen durch Kommata getrennt werden. Zuerst muss das Band mit dem ersten Datentraegernamen physisch auf der ersten Geraeteeinheit, die in der Kommandozeile spezi- fiziert wurde, aufgelegt werden. Die restlichen Baender koennen - muessen aber nicht - auf anderen Einheiten, die in der Kom- mandozeile spezifiziert wurden, aufgelegt werden. Die Daten- traegernamen muessen in der Reihenfolge angegeben werden, in welcher die Datentraeger das Datentraeger-Set bilden, weil das System nach jedem nachfolgenden Datentraeger in der spezifi- zierten Datentraegerfolge sucht. Das gilt auch beim Anfordern eines Datentraegers durch das System. Der zweite und die nachfolgenden Datentraeger sollten auf den zusaetzlichen Einheiten in der Reihenfolge aufgelegt werden, in der sie in der Kommandozeile spezifiziert wurden bzw. wie sie durch Bediengeraetemitteilungen vom MTAACP angefordert werden. Werden mehr Baender benoetigt als beim Eingliedern angegeben, fordert MTAACP automatisch zusaetzliche Datentraeger an. Wird die Kommandozeile eingegeben, prueft das System das Band auf dem ersten Laufwerk, um zu sichern, dass es sich um den ersten Datentraeger des Datentraeger-Sets handelt (siehe dazu das Format der MOUNT-Kommandozeilen fuer Magnetbaender). Wird das Schluesselwort /VOL nicht spezifiziert, prueft das System nicht den Datentraegernamen des Bandes. Aus Gruenden der Kompatibilitaet ist die Kommandozeile >MOU MT:(A,B,C) gleichbedeutend mit der Kommandozeile >MOU MT:A/VOL=(A,B,C) /[NO]WAIT Gibt an, ob man eine Bedienunterstuetzung bei der Durchfuehrung des Eingliederns benoetigt. Hauptsaechlich wird dieses Schluesselwort bei Stapelverarbeitung, Indirektkommandodateien bzw. bei Bediengeraeten, die raeumlich vom Maschinenraum getrennt sind, benutzt. Gibt man /WAIT beim interaktiven Eingliedern an, wird eine Mitteilung an die Bedienconsole gesendet und das Eingliedern wird solange nicht abgeschlossen, bis der Bediener Massnahmen ergreift (z.B. das Geraet "on-line" setzt). Wird /NOWAIT in einem Stapeljob oder in einer Indirektkommando- datei spezifiziert oder erfolgt das Eingliedern interaktiv, erfolgt keine Mitteilung. Der Datentraeger muss zuvor auf dem 117 Geraet aufgelegt worden und fuer den Zugriff bereit sein (volle Drehzahl, on-line). Standard: /NOWAIT /WIN=option (nur fuer Dateiformat FM16-D) Gibt die Anzahl der Blockadresszeiger an, welche den Dateifen- stern zugeteilt werden sollen. Ein Dateifenster besteht aus einer Anzahl von Blockadresszeigern und wird im Hauptspeicher gespeichert, wenn die Datei geoeffnet wird. Die Zahl der Block- adresszeiger muss kleiner als 129(10) sein. Folgende Options sind zulaessig: n Alle Dateien werden auf diesen Standardwert gesetzt, wenn dieser Wert beim Zugriff nicht ueberschrieben wird. Gueltige Werte liegen zwischen 1 und 127(10) oder der Option FULL. USER:n Nutzer-Standardwert fuer den Datentraeger. INDEX:n Anzahl der Zeiger, die dem Indexdateifenster zuge- teilt werden. (USER:n,INDEX:n) Ist n nicht fuer beide gleich, werden standardmaessig der Nutzerstandardwert fuer den Datentraeger und die spezifizierte Anzahl fuer die Indexdatei genommen. FULL Es werden Fenster erzeugt, die soviel wie moeglich von der Datei abbilden. FULL kann fuer n in allen Options von /WIN benutzt werden. Standards: Zahl der Zeiger, die im Home-Block enthalten sind (entweder mit dem INI-Kommando oder dem HOM- Kommando vereinbart) /[NO]WRITE /WRITE gibt an, dass Schreiboperationen auf dem Datentraeger (der Datentraeger ist softwaremaessig fuer Schreiben freigegeben) innerhalb der Grenzen des Datentraegers und des Dateischutzes zugelassen sind. /NOWRITE gibt an, dass keine Schreiboperationen auf dem Datentraeger erlaubt sind (der Datentraeger ist softwaremaessig schreibgeschuetzt). Standard: Schreiboperationen sind erlaubt Funktionsbeschreibung --------------------- Das MOUNT-Kommando gestattet den Dateisystemzugriff auf physische Geraete. MOUNT erzeugt fuer alle Datentraeger auf diesen Geraeten die Steuerbloecke fuer das Dateisystem, welche die Zusatzsteuer- routinen (ACP) zur Unterstuetzung des Zugriffs auf dem Geraet verwenden. Unter der Voraussetzung, dass ein On-line-Schalter vorhanden und geschaltet ist, vereinbart MOUNT ausserdem, dass sich der Datentraeger logisch im On-line-Zustand befindet. Das Kommando fordert dann den ACP auf, den Datentraeger oder die Datentraegergruppe einzugliedern. Das Eingliedern eines Daten- traegers bewirkt auch das Ruecksetzen der QIO- und Fehlerzaehlun- 118 gen auf Null (0). Diese Fehlerzaehlungen werden durch die Pro- gramme der Fehlerprotokollierung (Error Logging Facilities) ge- nutzt. Das MOUNT-Kommando unterstuetzt drei Geraetetypen: dateistrukturiert, sequentiell und nichtdateistrukturiert. Platten sind Beispiele fuer dateistrukturierte Geraete. Diese Geraete werden gewoehnlich durch F11ACP gesteuert, welcher die Struktur FM16-D unterstuetzt. Magnetbaender sind ein Beispiel fuer ein sequentielles Geraet. Magnetbaender werden gewoehnlich durch den MTAACP gesteuert, welcher sowohl Magnetbaender im Da- teiformat FM16-M als auch Magnetbaender ohne Datentraegerkenn- saetze steuert. Nichtdateistrukturierte Geraete muessen im BS OMOS 1630 nicht eingegliedert werden. BS OMOS 1630 gestattet bestimmten Tasks, wie INI und DSC, den Zugriff auf nicht eingegliederte Datentraeger. Jedoch ist es notwendig, ein Magnetband einzugliedern, wenn es ein ANSI-Stan- dardband ist oder wenn man das Band als ein Band ohne Kennsaetze mit FCS oder RMS auf einem System verarbeiten moechte, das ANSI- Magnetbaender unterstuetzt. Wenn ein Geraet ausgegliedert wird, werden ausstehende E/A abgeschlossen, aber es kann auf keine zusaetzlichen Dateien auf diesem Datentraeger mehr zugegriffen werden (siehe Beschreibung des Kommandos DISMOUNT). MOUNT ordnet Geraete und Datentraeger in drei weitere Typen ein: oeffentliche (public), gemeinsam genutzte (shared) und nicht gemeinsam genutzte (nonshared). Ein oeffentlicher Datentraeger ist ein Datentraeger, auf den alle Systemnutzer zugreifen koennen. Ein gemeinsam genutzter Datentraeger ist ein Datentraeger, wel- cher mehrmals durch mehrere Nutzer eingegliedert werden kann. Ein nicht gemeinsam genutzter (privater) Datentraeger ist ein Datentraeger, der einem einzigen Nutzer zugeteilt ist. Ein nichtprivilegierter Nutzer kann einen Datentraeger nur wie folgt eingliedern: - Privates Geraet des Nutzers Kein anderer Nutzer kann auf den Datentraeger zugreifen oder ihn eingliedern, bis der Datentraeger ausgegliedert und die Zuteilung aufgehoben wurde. - Jedes andere Geraet, welches nicht zugeteilt wurde oder oeffentlich erklaert wurde. Wenn ein anderer Nutzer den Datentraeger eingliedert, dann kann er auch auf ihn zugreifen. Einen Magnetbanddatentraeger (bzw. -datentraegergruppe) kann je- weils immer nur ein Nutzer zu einem bestimmten Zeitpunkt einglie- dern. Ist das Geraet physisch nicht bereit, wenn man versucht, den Datentraeger einzugliedern, wartet MOUNT 30 bis 60 Sekunden da- rauf, dass das Geraet bereit wird. Ist das Geraet nach Ablauf dieser Wartezeit nicht bereit, gibt MOUNT eine Fehlermeldung aus. Die obigen Beschreibungen der Formate des MOUNT-Kommandos veran- schaulichen die Parameter und Schluesselwoerter, welche mit FM16- D-Platten und mit FM16-M-Magnetbaendern in Verbindung stehen. Man kann einen Bindestrich (-) gefolgt von , als Fortsetzungs-zeichen zur Erweiterung der MOUNT-Kommandozeile benutzen, wenn die ausgewaehlten Schluesselwoerter dazu fuehren, dass das Kommando 80 Zeichen ueberschreitet (bzw. die Puffer- groesse, die fuer das Eingabe-Terminal spezifiziert wurde). Man kann eine beliebige Anzahl Fortsetzungszeilen verwenden, die Gesamtzahl der eingege-benen Zeichen darf jedoch nicht 255(10) 119 ueberschreiten. Es ist zu beachten, dass das Schluesselwort /OVR zum Uebergehen des Datentraegerkennsatzes eine privilegierte Option des MOUNT- Kommandos in einem Mehrnutzersystem ist. Ein nichtprivilegierter Nutzer muss deshalb immer den Datentraegerkennsatz spezifizieren. Beispiele --------- >MOU DM1:SYS002 -------------- Eingliedern des Datentraegers auf der Geraeteeinheit DM1: (In diesem Beispiel sind keine der wahlweisen Parameter angege- ben worden. Deshalb nutzt MOUNT die Parameterwerte im Home-Block des Datentraegers.). Es werden keine Datentraegerinformationen angezeigt. >MOU (MT0:,MT1:,MT2:)DATSET/VOL=(DAT1,DAT2,DAT3) ----------------------------------------------- Eingliedern des Datentraeger-Sets DATSET auf den Einheiten MT0:, MT1: und MT2:. Zuerst muss DAT1 physisch auf MT0: aufgelegt werden; der erste Datentraeger in einem Set muss immer auf der ersten in der Kommandozeile spezifizierten Einheit aufgelegt werden. DAT2 und DAT3 koennen, muessen aber nicht, aufgelegt werden, wenn die Kommandozeile eingegeben wird. Wenn sie aufgelegt sind, koennen sie auf den uebrigen Einheiten in beliebiger Reihenfolge aufge- legt sein (z.B. koennte DAT3 auf MT1: aufgelegt sein). Das System sucht den naechsten Datentraeger in einem Set nach dem Datentraegernamen, nicht nach der Nummer der Einheit; die Reihenfolge, in welcher die Datentraeger in der Kommando zeile angegeben werden, ist die Reihenfolge, in der das System die Datentraeger sucht und/oder anfordert. Sind DAT2 und DAT3 nicht aufgelegt, dann fordert das System jeden der Reihe nach an. Die Datentraeger koennen entweder auf MT0:, MT1: oder MT2: aufge- legt werden. >MOU DM1:SYS002/LRU=8/WIN=20/VI ------------------------------ Eingliedern des Datentraegers mit dem Datentraegernamen SYS002 auf DM1:. Die Kommandozeile reserviert Platz fuer acht Da- teisteuerbloecke (FCBs) fuer Verzeiochnisse, die im ACP-Pool bzw. im System-Pool verbleiben, aendert die Standardanzahl der Blockadresszeiger fuer Dateien, die auf diesem Datentraeger eroeffnet werden, auf 20(10). Ausserdem wird eine Datentraegerinformation angefordert. 120 ---------------------------------------------------------------- | OPENREGISTER (P) | OPE | | --- | | ---------------------------------------------------------------- 3.3.31. Speicherzugriff ------------------------ Format des Kommandos -------------------- OPE[N] speicheradresse[+n oder -n][/schluesselwort] speicheradresse/speicherinhalt[steuerzeichen][wert] Das Kommando besteht aus zwei Zeilen. Die erste Zeile ist die eigentliche Kommandozeile. Die zweite Zeile zeigt das allgemeine Format der Eingaben fuer OPE. Die Parameter haben folgende Bedeutung: speicheradresse - 1- bis 8-stellige oktale Speicheradresse +n oder -n - Oktalzahl, die zur Speicheradresse addiert oder subtrahiert wird (Angabe ist wahlfrei) schluesselwoerter: /TASK=taskname /PAR=parname /KNL /DRV=dd: Bedeutung der Schluesselwoerter: /TASK erlaubt den Zugriff auf die Taskpartition Der Taskname ist in der gleichen Form anzugeben, wie dieser beim Kommando INS festgelegt wurde. Es ist zu beachten, dass die Task fixiert sein muss. /PAR erlaubt den Zugriff auf die bezeichnete Partition /KNL erlaubt den Zugriff auf den Bereich der Exekutive (die ersten 32 K des Speichers) /DRV erlaubt den Zugriff auf den Bereich des ladbaren Drivers fuer das Geraet dd: Damit werden die angegebene Speicheradresse und ihr Inhalt aus- gegeben. Anschliessend kann sowohl die Ausgabe des Speicherinhal- tes als auch die Eingabe eines neuen Wertes wahlweise an Hand von Steuerzeichen in verschiedenen Formaten erfolgen, bevor die Zeile durch die Eingabe eines Zeilenbegrenzers zeilbegr abgeschlossen wird. 121 Zur Anzeige bzw. zum Einfuegen neuer Werte im Oktal-, ASCII-, Einzelzeichen-ASCII-, Radix-50-, Doppelbyte- oder Dezimal-Format stehen folgende Steuerzeichen zur Verfuegung: / - Oktal (Standardformat) " - ASCII ' - Einzelzeichen-ASCII % - Radix-50 \ - Doppelbyte . - Dezimal Bei der Anzeige des Speicherinhaltes in den wahlweise vorgesehenen Formaten ist nach dem Steuerzeichen die -Taste zu druecken. Zum Eingeben eines neuen Wertes fuer den Speicherplatz ist das gewuenschte Steuerzeichen vor der betreffenden neuen Zeichenfolge einzugeben. Als Zeilenbegrenzer koennen verwendet werden: - Der Speicherplatzzugriff wird beendet. Es ist das einzige Zeichen, das Kommando OPE zu ver- lassen. Bei vorheriger Angabe eines Steuer- zeichens wird der Inhalt des Speicherplatzes in dem gewuenschten Format ausgegeben. - Der folgende Speicherplatz wird ausgegeben. Wird nach einem Steuerzeichen und der Zeichenfolge eines neuen Wertes eingegeben, dann wird der neue Wert im angegebenen Format in den Speicherplatz eingetragen. ^ - Der vorhergehende Speicherplatz wird ausgege- ben. * oder @ - Der Inhalt des Speicherplatzes wird als Adresse interpretiert, deren Inhalt ausgegeben wird. > - Der Inhalt des Eroeffnungsspeicherplatzes wird wie eine Verzweigungsinstruktion behandelt. Die wirksame Adresse der Verzweigung ergibt sich aus der Eroeffnungsadresse 2*8-Bit- Offset vom Speicherinhalt. Funktionsbeschreibung --------------------- Dieses Kommando gestattet die Pruefung und die wahlweise Modifi- zierung des Inhaltes eines Speicherplatzes. Es kann auf jeden physischen Speicherplatz zugegriffen werden. Als Speicheradresse darf nur eine Wortadresse angegeben werden. Die Angabe einer Byteadresse fuehrt zu einer Fehlerausschrift und zum Abbruch des Kommandos. Die eingegebene Speicheradresse kann durch +n oder -n modifiziert werden, wobei n eine gerade oktale Zahl sein muss. Nachdem vom System die Speicheradresse und ihr Inhalt auf einer neuen Zeile ausgegeben worden sind, kann der Bediener sich den Inhalt des Speicherplatzes mit Hilfe spezieller Steuerzeichen auch im ASCII-, Radix-50-, Doppelbyte- bzw. Dezimalformat 122 anzeigen lassen. Zur Anzeige eines dieser Formate ist das ge- wuenschte Steuerzeichen einzugeben und mit der -Taste abzu- schliessen. Fuer den gleichen Speicherplatz koennen in einer Zeile mehrere Formate angezeigt werden, bevor der naechste Spei- cherplatz eroeffnet wird. Zum Einfuegen neuer Werte in einem Speicherplatz im ASCII-, Radix-50-, Doppelbyte- oder Dezimalformat werden die gleichen Steuerzeichen verwendet. Die Eingabe der neuen Zeichenfolge wird mit den wahlweise zur Verfuegung stehenden Zeilenbegrenzern abgeschlossen. Auf Speicherplaetze innerhalb einer Task kann das Kommando nur zugreifen, wenn die Task im Speicher fixiert ist. Wenn /DRV, /PAR und /TASK verwendet werden, dann wird die bereitgestellte Adresse (virtuelle Adresse im Programmbereich) durch + oder -n modifiziert. Die damit gebildete absolute Adresse wird zur Anzeige der zweiten, im Kommandoformat aufgezeigten Zeile verwendet. Im Speziellen werden die virtuellen Adressen (Task bzw. Partition) und ihr Inhalt angezeigt. Die Angabe eines illegalen Speicherplatzes oder der Zugriff ausserhalb der Grenzen der Partition, Task bzw. Drivers fuehrt zu einem Fehler. Der Nutzer ist auf die angegebene Speicherregion (TASK, PAR, DRV) begrenzt. Das kann vermieden werden, indem kein Schluesselwort verwendet wird. In diesem Falle kann auf jede beliebige Speicherstelle zugegriffen werden. Beispiele --------- >OPE 374500 374500/000000 374502/000172 374504/140426^ 374502/000172* 000172/000000> 000174/000000 Der Inhalt des Speicherplatzes 374500 wird ausgegeben. Durch die Eingabe von werden die nachfolgenden Speicherplaetze ausgegeben. Gibt der Bediener ^ ein, so wird der vorherge- hende Speicherplatz ausgegeben. Wird die Kommandozeile mit @ bzw. * abgeschlossen, wird der Inhalt des Speicherplatzes als Adresse gewertet und ausgegeben. Der Abschluss einer Zeile mit > interpretiert den Inhalt des Speicherplatzes als Offset zu einem anderen Speicherplatz und gibt diesen aus. Durch die Einga- be von meldet sich das Kommandoprogramm mit einer Kommando- anforderung. >OPE 0+2/TASK=...NAM 000002/000172.122"Y 000004/140426^ 000002/000171 Bei diesem Beispiel lautet die angegebene virtuelle Adresse der Task ...NAM 0. Da n gleich 2 ist, ergibt die tatsaechlich taskbezogene Adresse 000002. Das System antwortet mit dem Anzeigen der virtuellen Adresse 000002 und nach dem Schraegstrich (/) mit dem Inhalt (000172) dieser Adresse im Oktalformat. Nach Eingabe des Dezimalsteuerzeichens (.) und dem Druecken der 123 Taste, erfolgt in der gleichen Zeile die Anzeige des Inhaltes der Adresse 000002 im Dezimalformat (122). Anschliessend kann der neue Wert (y) fuer die geoeffnete Adresse im ASCII- Format eingegeben werden. Das Einfuegen des neuen Wertes wird mit abgeschlossen und der vorherige Inhalt des virtuellen Speicherplatzes durch den neuen Wert ersetzt. >OPE 54300/PAR=GEN 054300/000000 Dieses Kommando eroeffnet im Partitionsbereich GEN den Speicherplatz 54300 und zeigt den Inhalt oktal an. >OPE 0+10/DRV=DK: 000010/004014 Dieses Kommando eroeffnet die virtuelle Adresse 000010 des Geraetedrivers DK. >OPE 340/KNL 000340/027700 Dieses Kommando bewirkt die Anzeige des Speicherplatzes 000340 im Exekutivebereich. >OPE 6/TASK=TPA 000006/163425\ 347 25> 000062/000000 Dieses Kommando eroeffnet die virtuelle Adresse 000006 der Task TPA und zeigt nach der Eingabe des Steuerzeichens \, mit der -Taste abgeschlossen, den Inhalt des Speicherplatzes im Doppelbyteformat (347 25) an. Der Zeilenbegrenzer > eroeffnet unter Verwendung des 8-Bit-Offsets (25), das in die Verzweigungs- adresse umgerechnet wird, die virtuelle Adresse (000062) der Task TPA. >OPE 2/TASK=TPA 000002/000172.122% CB "z'z\0 172 Dieses Beispiel zeigt, dass die Anzeige des Speicherinhaltes der Adresse 000002 mehrfach fuer die unterschiedlichen Steuerzeichenformate in einer Zeile moeglich ist. 124 ---------------------------------------------------------------- | PARTITION DEFINITIONS (NP) | PAR | | --- | | ---------------------------------------------------------------- 3.3.32. Ausgabe der Partitions ------------------------------- Format des Kommandos -------------------- PAR[TITIONS] Funktionsbeschreibung --------------------- Mit diesem Kommando werden auf dem Terminal der Name und ergaen- zende Informationen fuer jede Partition des Systems ausgegeben. Der Ausdruck enthaelt sechs Spalten, die folgende Informationen liefern: 1. Name der Partition 2. Adresse des Partitionssteuerblockes (PCB) 3. Basisadresse der Partition (oktal) 4. Laenge der Partition (oktal) 5. Art der Partition Hauptpartition MAIN Subpartition SUB 6. Typ der Partition TASK fuer nutzergesteuerte Partition, COM fuer Common-Partition, DEV fuer Geraeteregister, SYS fuer systemgesteuerte Partition, DRIVER fuer eine Partition, die ein ladbarer Driver ein- nimmt, DYNAMIC fuer eine dynamisch angelegte Region, taskname fuer eine dynamisch angelegte Partition, in der eine Task laeuft. COM-Partitions werden verwendet fuer residente Bibliotheken und Common-Datenbereiche. DEV-Partitions werden verwendet, um einer Task den Zugriff auf spezielle Geraeteregister zu ermoeglichen. Eine Beschreibung der system- und nutzergesteuerten Partitions sowie Subpartitions ist in 3.3.39 Festlegen von Systemeigen- schaften zu finden. Dynamische Regionen und Taskregionen sind in der Anleitung fuer Programmierer, Teil 2, beschrieben. Informationen ueber ladbare Driver sind bei der Beschreibung des LOAD-Kommandos zu finden. 125 Beispiel -------- Name Adresse Basis Laenge Art Typ >PAR --- LDRPAR 117734 120000 002600 MAIN TASK TTPAR 117370 122600 040000 MAIN TASK SYSPAR 115570 162600 010100 MAIN TASK FCPPAR 115524 172700 044200 MAIN SYS 056260 172700 044200 SUB (F11ACP) COMPAR 115460 237100 002000 MAIN COM GEN 115414 241100 516700 MAIN SYS 114654 241100 000700 SUB DRIVER -DK: 114554 242000 000200 SUB DRIVER -CO: 114364 242200 001100 SUB DRIVER -LP: 055644 243300 006300 SUB (PMT...) 056070 251600 020000 SUB (...MCR) 055744 364100 003300 SUB DRIVER -MT: 126 ---------------------------------------------------------------- | REASSIGN (P) | REA | | --- | | ---------------------------------------------------------------- 3.3.33. Aenderung von Geraetezuweisungen ----------------------------------------- Format des Kommandos -------------------- REA[SSIGN] taskname lun ddnn: wobei: lun - logische Geraetenummer dd - physischer, logischer oder Pseudo-Geraetename nn - Geraeteeinheitennummer Funktionsbeschreibung --------------------- Mit diesem Kommando kann der Bediener die logische Geraetenummer (LUN) einer Task einem anderen Geraet zuweisen. Diese Zuweisung beeinflusst nur statische Zuweisungen, wie sie in der Platten- Abbilddatei der Task enthalten sind. Das Kommando hat keinen Einfluss auf speicherresidente Tasks, d.h. laufende Tasks koennen mit diesem Kommando nicht anderen Geraeteeinheiten zugewiesen werden. Das gleiche gilt auch fuer im Speicher fixierte Tasks. Eine dynamische Geraetezuweisung ist mit dem Kommando REDIRECT moeglich. Beispiele --------- >REA TEST 2 TT1: --------------- Die logische Geraetenummer 2 der Task TEST wird Geraet TT1: zuge- wiesen. >REA TEST 3 TI: -------------- Die logische Geraetenummer 3 der Task TEST wird dem logischen Geraet TI: zugewiesen. 127 ---------------------------------------------------------------- | REDIRECT | RED | | --- | | ---------------------------------------------------------------- 3.3.34. Umschalten ------------------- Format des Kommandos -------------------- RED[IRECT] nddnn:=oddnn: wobei: nddnn: - die neue Geraeteeinheit, auf die die nachfolgenden E/A-Anforderungen umgeschaltet werden oddnn: - die alte Geraeteeinheit, an die die E/A-Anforderun- gen gerichtet waren Logische Geraetenamen koennen im Kommando nicht angegeben werden. Funktionsbeschreibung --------------------- Das Kommando RED erlaubt dem Bediener, alle E/A-Anforderungen, die an eine physische Geraeteeinheit gerichtet sind, auf eine andere physischen Geraeteeinheit umzuschalten. Dieses Kommando ist besonders nuetzlich, wenn E/A-Einheiten, die von einer Task verlangt werden, nicht verfuegbar sind. Es wirkt nicht auf jene E/A-Anforderungen, die bereits in der Warteschlange eingetragen sind. Folgende Geraeteeinheiten koennen nicht umgeschaltet werden: - das Pseudogeraet TI: - ein gebundenes Geraet - eine Geraeteeinheit, die einen eingegliederten Datentraeger enthaelt. Ausserdem kann ein Pseudogeraet nicht auf ein anderes Pseudoge- raet umgeschaltet werden. Die Ruecksetzung umgeschalteter Geraeteeinheiten ist so durchzufuehren, dass die alte Geraeteeinheit auf sich selbst zurueckgeschaltet wird (z.B. >RED LP:=LP:). Ein angemeldetes Terminal kann auf ein Geraet, das kein Terminal ist, umgeschaltet werden (ausser Nullgeraet). Dies ist im allge- meinen nicht zu empfehlen, da die Terminal-E/A physisch auf das Geraet geschrieben wuerden und damit (bei elektronischen Medien) Informationen zerstoeren koennten. Wenn man ein Terminal auf einen anderen Geraetetyp bzw. ein anderes Terminal umschaltet, dann sollte man das Terminal auf sich selbst zurueckschalten, bevor man sich abmeldet. 128 Beispiele --------- >RED DK5:=DK7: ------------- >DEV DK: ------- DK0: Loaded DK1: Public Mounted Loaded Label=OMOSSYS DK2: Loaded DK3: Public Mounted Loaded Label=COMPILER DK4: Loaded DK5: Loaded DK6: Loaded DK7: DK5: Alle E/A-Anforderungen fuer das Geraet DK7: werden auf das Geraet DK5: umgeschaltet. >RED DK7:=DK7: ------------- >DEV DK: ------- DK0: Loaded DK1: Public Mounted Loaded Label=OMOSSYS DK2: Loaded DK3: Public Mounted Loaded Label=COMPILER DK4: Loaded DK5: Loaded DK7: Nach dieser Kommandoeingabe werden die E/A-Anforderungen von dem Geraet DK7: wieder erfuellt. 129 ---------------------------------------------------------------- | REMOVE (P) | REM | | --- | | ---------------------------------------------------------------- 3.3.35. Streichen einer Task ----------------------------- Format des Kommandos -------------------- REM[OVE] [ddnn:]taskname ddnn: - Geraet, von welchem die Task installiert wurde taskname - Name der zu entfernenden Task Funktionsbeschreibung --------------------- Mit diesem Kommando kann der Bediener einen Tasknamen aus dem Systemtaskverzeichnis (STD) streichen, so dass die Task dem System unbekannt wird. Die Abbild-Datei der Task bleibt erhalten. Dieses Kommando stellt das Komplement zu dem Kommando INSTALL dar. Soll eine Task gestrichen werden, die sich gerade in der Ausfuehrung befindet, so muss der Bediener diese Task vorher abbrechen. REMOVE prueft ausserdem, ob es sich bei der Task um ein initiali- siertes CLI handelt. Wenn dies der Fall ist, dann gibt REMOVE eine Fehlermeldung. Bemerkungen: - Wenn eine Task, die im Speicher fest fixiert ist, gestrichen werden soll, wird sie durch das Kommando REM vorher automatisch freigegeben, bevor sie gestrichen wird. - Das Kommando REMOVE streicht automatisch alle zeitbezogenen An- forderungen der angegebenen Task. - Das Kommando trennt eine Task automatisch von allen noch aus- stehenden Interrupts. - Mit dem Kommando REM werden fuer die angegebene Task alle Be- zugnahmen auf Referenzbloecke abgewiesen, sowie alle gebundenen Regionen freigegeben. Beispiel -------- >REM XYZ ------- Die Task mit dem Namen XYZ wird aus dem Systemtaskverzeichnis entfernt. Nur die Taskabbild-Datei bleibt erhalten. 130 ---------------------------------------------------------------- | RESUME (NP,P) | RES | | --- | | ---------------------------------------------------------------- 3.3.36. Fortsetzen einer Task ------------------------------ Format des Kommandos -------------------- RES[UME] taskname taskname - Name einer suspendierten Task, die fortgesetzt werden soll Funktionsbeschreibung ---------------------- Das Kommando RES erlaubt dem Bediener, die Ausfuehrung einer vorher unterbrochenen Task fortzusetzen. Mit diesem Kommando kann ein nichtprivilegierter Nutzer nur Tasks fortsetzen, die von seinem Terminal gestartet wurden. Ein privilegierter Nutzer kann jede suspendierte Task fortsetzen. Eine Task wird in ihrer Ausfuehrung durch eine Systemanweisung unterbrochen. Eine Task kann nur sich selbst und keine andere Task unterbrechen. Beispiel -------- >RES XYZ ------- Die unterbrochene Task XYZ wird fortgesetzt. 131 ---------------------------------------------------------------- | RUN (NP,P) | RUN | | --- | | ---------------------------------------------------------------- 3.3.37. Starten einer Task --------------------------- Format des Kommandos -------------------- Das Startkommando hat 5 Formatvarianten, die im folgenden be- schrieben werden. 1. Unmittelbarer Start (NP) RUN taskname[/UIC=[g,m]] wobai bedeuten: taskname - Name einer installierten Task (1 bis 6 Zeichen) /UIC - Dieses Schluesselwort ist eine privilegierte Option in Mehrnutzersystemen. Es gibt den UIC an, unter dem die Task laufen soll. Der UIC bestimmt, zu welchen Dateien die Task Zugriff erhaelt. Der UIC hat das Format [g,m], wobei g und m Gruppen- und Mitgliedsnummer darstellen. Gueltige Gruppen- und Mitgliedsnummern liegen im Bereich 1 bis 377(8). Die eckigen Klammern sind notwendige Syntax. Benutzt man /UIC, dann wird der angegebene UIC zum Standard- und Schutz-UIC fuer die Task. Benutzt man /UIC nicht, sucht RUN die Taskabbilddatei im System Task Verzeichnis (STD). Wenn RUN die Task nicht findet, erfolgt eine Fehlermitteilung. Standard: Der Wert, der fuer das Bediengeraet festgelegt ist, von dem das Startkommando eingege- ben wird. 2. Zeitverzoegerter Start nach der Kommandoeingabe (P) RUN taskname dtime[/RSI=magu][/UIC=[g,m]] wobei bedeuten: taskname - Name einer installierten Task (1 bis 6 Zeichen) dtime - Die Zeit, angegeben in einer Zeiteinheit ab Eingabe des Kommandos, zu der die Task gestartet wird. Die Angabe erfolgt in der Form mag - Anzahl der Zeiteinheiten u - Zeiteinheit fuer die Zeiteinheit kann angegeben werden: T - Takt ein Takt ist ein Uhrinterrupt. Fuer eine Uhr, die durch die Netzfrequenz gesteuert wird, betraegt die Rate 50 Takte/Sekunde. Fuer eine programmierbare Uhr kann ein anderer Wert gelten. (Die Frequenz kann 132 bei der Systemgenerierung angegeben wer- den). T kann ein beliebiger positiver Wert von 0 bis zu einer maximalen Laenge von 15 Bits sein. S - Sekunden S kann ein beliebiger positiver Wert von 0 bis zu einer maximalen Laenge von 15 Bits sein. M - Minuten M kann ein beliebiger positiver Wert von 0 bis 1440(10) sein. H - Stunden H kann ein beliebiger positiver Wert von 0 bis 24(10) sein. Die Anzahl haengt von der gewaehlten Ein- heit ab, sie kann aber 24 Stunden nicht uebersteigen. Wird fuer die Anzahl 0 ange- geben, so wird der Wert 1 angenommen. /RSI - Wiederholungsintervall Das Format ist das gleiche wie fuer dtime. Das Wiederholungsintervall gibt an, in welchen Zeit- abstaenden die Task wiederholt gestartet wird. Wird fuer die Anzahl 0 angegeben, so wird das Wiederholungsintervall auf 1 gesetzt. Z. B. ist /RSI=0H das gleiche wie /RSI=1H. Es ist zu beach- ten, dass CANCEL- und REMOVE-Kommandos die Wir- kung dieses Schluesselwortes aufheben. Standard: kein Wiederholstart /UIC - siehe Pkt. 1 3. Zeitverzoegerter Start nach einem vorgegebenen Zeitpunkt (P) Die Startzeit der Task setzt sich zusammen aus einem Warten bis zu einem vorgegebenen Synchronisationszeitpunkt (Stunden, Minuten, Sekunden, Takt) und einem Warten, bis von diesem er- reichten Zeitpunkt aus eine vorgegebene Zeitspanne verstrichen ist. RUN taskname sync [dtime][/RSI=magu][/UIC=[g,m]] wobei bedeuten: taskname - Name einer installierten Task (1 bis 6 Zeichen) sync - H = Synchronisationszeitpunkt bei der naechsten Stunde M = Synchronisationszeitpunkt bei der naechsten Minute S = Synchronisationszeitpunkt bei der naechsten Sekunde T = Synchronisationszeitpunkt beim naechsten Takt dtime - siehe unter Pkt. 2 Ist der Faktor dtime in dem Kommando angegeben, ist er zu dem Synchronisationszeitpunkt zu addie- ren, um die aktuelle Startzeit der Task zu erhal- ten. /RSI - siehe Pkt. 2 /UIC - siehe Pkt. 1 133 4. Start zu einem absoluten Zeitpunkt (P) RUN taskname atime[/RSI=magu][/UIC=[g,m]] wobei bedeuten: taskname - Name einer installierten Task (1 bis 6 Zeichen) atime - absolute Zeitangabe, bei der die Task gestartet wird. Die Eingabe hat das Format hh:mm:ss hh = Stunden mm = Minuten ss = Sekunden (alle Angaben dezimal) /RSI - siehe Pkt. 2 /UIC - siehe Pkt. 1 5. Task installieren, sofort starten und streichen nach dem Verlassen RUN [ddnn:][$]filename[/schluesselwort(er)] wobei bedeuten: ddnn: Geraeteinheit, auf der sich die Taskabbilddatei befindet. $ Gibt an, dass die Datei im System-UFD auf dem Geraet LB: (wenn ddnn: nicht spezifiziert wurde) gefunden werden kann. Das Kommando SET /SYSUIC definiert den System-UIC. Im BS OMOS 1630 ist der System-UIC [1,54]. Gibt man $ nicht an, sucht RUN die Taskab- bilddatei in dem UIC (auf dem Geraet SY:), auf den das Bediengeraet, das die Task anfordert, gesetzt ist. (Dies aehnelt dem unter Pkt. 1 beschriebenen Format, wenn /UIC nicht angegeben ist.) Es ist zu beachten, dass das System abbricht, wenn LB: einem anderen Geraet zugewiesen wurde und der System-UIC dieses Geraetes privilegierte Tasks ent- haelt, die fuer ein anderes System gebildet wurden. filename Name der abzuarbeitenden Taskabbilddatei schluesselwoerter: /CKP=option Gibt an, ob eine Task auslagerbar ist oder nicht. Ist CKP=YES (Standard fuer auslagerbare Tasks), ist Ausla- gerung erlaubt. Ist CKP=NO, ist die Auslagerung fuer die Task nicht erlaubt. Das Schluesselwort /CKP ueberschreibt den Schalter /CP, der bei der Bildung der Task angegeben wurde, Bei Systemen, die eine dynamische Zuteilung von Auslage- rungsbereich unterstuetzen, braucht die Taskabbilddatei kei- nen Auslagerungsbereich zugeteilt zu bekommen; durch das Schluesselwort /CKP=YES wird das System unterrichtet, dass Auslagerungsbereich fuer die Task in einer allgemeinen Aus- lagerungsdatei zuzuteilen ist, wenn dieser benoetigt wird. /CMD="command-line" Gibt die angegebene Kommandozeile zur Verarbeitung an die Task. Die Kommandozeile muss mit dem Tasknamenkuerzel begin- nen und muss fuer die Task gueltig sein (z.B. muss "command- line" eine gueltige MACRO-Kommandozeile sein, wenn die in- 134 stallierte Task MAC ist) oder es tritt ein Syntaxfehler auf. Hat die Task die Ausfuehrung der Kommandozeile beendet, wird die Task entfernt. /EST=option Gibt an, ob eine Task auf den Abschluss von Tochteraufgaben wartet oder nicht und ob sie fuer RUN den Exit-Status gibt oder nicht. Die Options sind YES und NO. Gibt man /EST=YES an, dann wartet die Muttertask vor der weiteren Abarbeitung auf den Abschluss einer beliebigen Tochtertask und in bezug auf RUN auf den Exit-Status. Gibt man /EST=NO an, dann wartet die Muttertask nicht auf den Exit-Status von RUN; sobald die Tochtertask mit der Abarbeitung beginnt, setzt die Mutertask die Ausfuehrung fort. Standard: /EST=YES Mutteraufgaben fuehren ihre Ausfuehrung solange nicht fort, bis RUN den Exit-Status gibt. /INC=size Wenn die Task in einer systemgesteuerten Partition laeuft, kann mit diesem Schluesselwort die Zahl der Worte angegeben werden, um die der Taskbereich vergroessert werden soll. Die Anzahl der Worte wird ueblicherweise oktal angegeben, kann aber durch Anhaengen eines Punktes dezimal angegeben werden. Dieses Schluesselwort ueberschreibt die EXTTSK oder PAR Option, die zur Taskbildungszeit benutzt wurde. Tasks, die die Groesse der Partition angeben, in welcher sie abgearbei- tet werden, benutzen dieses Schluesselwort zur Kennzeich- nung, wieviel dynamischen Speicherplatz sie Symboltabellen oder Puffern zuteilen koennen. Solche Tasks wie MAC, TKB, VFY und AT. nutzen den Speicherplatz vom Ende ihres Taskab- bildes bis zum Ende der Partition als dynamischen Speicher- platz. Tatsaechlich definiert das Schluesselwort /INC die Anzahl der Worte in diesem dynamischen Bereich. Standard: Die bei Taskbildung angegebene Groesse. /IOP=option Gibt an, dass eine privilegierte Task die E/A-Seite ueber- schreiben kann. Die Options sind YES und NO. Gibt man /IOP=YES an, dann nimmt RUN an, dass die Task die E/A-Seite (APR7) ueberschreiben wird, und, wenn die Task groesser als 8 K Worte ist, erfolgt eine Warnung. Gibt man /IOP=NO an, nimmt RUN an, dass die Task die E/A-Seite nicht benutzt. Es erfolgt keine Warnung. /IOP ergaenzt den Schalter /IP beim Taskbilder. Das Angeben von /IP informiert RUN darueber, dass die Task absichtlich die E/A Seite ueberschreibt. Standard: /IOP=YES /PAR=name Der Partitionname gibt die Partition an, in der die Task installiert wird. Standard: Die bei der Erzeugung der Task angegebene Parti- tion. /PMD=option Ist PMD=YES gesetzt, wird ein Speicherabzug fuer die Task erzeugt, wenn sie infolge einer SST-Fehlerbedingung abgebro- chen wird. Wird die Option verneint (PMD=NO), wird kein Speicherabzug fuer die Task bei einem SST-Abbruch erzeugt. 135 Dieses Schluesselwort ueberschreibt den Schalter /PM, der bei der Taskbildung angegeben werden kann. Voraussetzung fuer die Erzeugung des Speicherabzuges ist, dass die Task PMD... in dem System installiert ist. Standard: Die zur Taskbildungszeit angegebene Option /PRI=number (Privilegiertes Schluesselwort) Gibt die Prioritaet der Task an, die im Bereich von 1 bis 250(10) liegen kann, wobei 250 die hoechste Prioritaet ist. Es gelten die standardmaessigen Zahlenvereinbarungen: oktal ist Standard; dezimal, wenn der Zahl ein Punkt (.) folgt. (Dieses Schluesselwort wird ignoriert, wenn es durch einen nichtprivilegierten Nutzer gegeben wird.) Standard: /PRI=50. /SLV=option Ist in dem Kommando /SLV=YES gesetzt, wird die Task eine abhaengige Task und ist einer Sendertask untergeordnet. Sie erhaelt als TI: das Bediengeraet zugeordnet, das die Sender- task besitzt. Dieses Schluesselwort ueberschreibt den Schal- ter /SL, der bei der Bildung der Task angegeben werden kann. Ist in dem Kommando /SLV=NO angegeben, so ist die Task in keinem abhaengigen Zustand. Standard: Angabe bei der Erzeugung der Task /TASK=name Gibt den Namen an, unter dem die Task abgearbeitet wird. Dieser Name ist lediglich eine zeitweise Zuordnung. Wird der Taskname in der STD nicht gefunden, benennt MCR die Task standardmaessig mit TTnn, wobei nn die Einheitennummer des anfordernden Terminals ist. /UIC=[g,m] Dies ist der UIC, unter dem die Task abgearbeitet werden soll. Die eckigen Klammern gehoeren zur Syntax. Standard: Es gilt der UIC des Bediengeraetes, von dem das Kommando RUN gegeben wurde. Funktionsbeschreibung --------------------- Das Kommando RUN startet die Ausfuehrung einer Task. Es besitzt 5 unterschiedliche Formen, die es erlauben, eine Task - unmittelbar zu starten, - zeitverzoegert nach der Kommandoeingabe zu starten, - zeitverzoegert nach einem vorgegebenen Zeitpunkt zu starten, - zu einem absoluten Zeitpunkt zu starten, - zu installieren. unmittelbar zu starten und nach dem Verlassen der Task zu streichen. Ausser der letzten Kommandoform sind diese Formen mit oder ohne zyklische Wiederholung moeglich (nur fuer privilegierte Nutzer). Wird das Kommando RUN, das eine Task unmittelbar startet, mit dem ESCAPE-Zeichen anstelle des CR-Zeichens beendet, wird die Standardmeldung des Systems wiederholt, wenn die angeforderte Task verlassen wird. Dadurch kann der Bediener feststellen, dass eine Task, bei deren Ausfuehrung keine Ausgaben auf dem Bedien- geraet erzeugt werden, beendet ist. 136 Wird eine Task unmittelbar gestartet, wird das Pseudogeraet TI: dem Bediengeraet zugeordnet, von dem die Task gestartet wurde. Bei den anderen Formaten wird das Pseudogeraet CO: dem Bedien- geraet zugeordnet, von dem die Task gestartet wurde. Wird eine Task gestartet, die vorher nicht durch eine Kommando- eingabe installiert wurde, so wird sie im Systemtaskverzeichnis zeitweilig mit dem Namen des Bediengeraetes TTnn gefuehrt, wobei nn die Geraetenummer des Bediengeraetes ist, von dem diese Task aktiviert wurde. Bei allen Kommandos, die auf diese Task Bezug nehmen und ueber das Bediengeraet TTnn eingegeben werden, kann der Taskname im Kommando weggelassen werden. Erfolgt die Komman- doeingabe von einem anderen Bediengeraet, so ist der Name des Bediengeraetes, von dem die Task aktiviert wurde, im Kommando anzugeben. Dies soll an folgendem Beispiel erlaeutert werden: Eine Task, die vorher nicht installiert wurde und von dem Bedien- geraet 1 gestartet wurde, kann ueber das Bediengeraet 1 mit dem Kommando >ABO abgebrochen werden. Mit dem Kommando >ABO TT1 kann die Task entweder von dem Bediengeraet 1 oder von jedem anderen privilegierten Bediengeraet aus abgebrochen werden. Beispiele --------- >RUN NAME 10M ------------ Die Task NAME wird 10 Minuten nach der Eingabe des Kommandos ge- startet. >RUN DK1:AB/PRI=100. ------------------- Die Task in der Datei DK1:AB.TSK wird automatisch installiert, gestartet und nach dem Verlassen gestrichen. Die Prioritaet wird auf dezimal 100 festgelegt. >RUN NAME 5M/RSI=120S/UIC=[5,1] ------------------------------ Die Task NAME wird 5 Min. nach Eingabe des Kommandos gestartet und alle 120 Sekunden wiedergestartet. Der UIC-Code wird auf [5,1] gesetzt. 137 ---------------------------------------------------------------- | SAVE (P) | SAV | | --- | | ---------------------------------------------------------------- 3.3.38. Retten eines Systems ------------------------------ Format des Kommandos -------------------- SAV[E] [/schluesselwort(er)] schluesselwoerter: /WB Zeigt an, dass auf das Systemgeraet ein hardwaremaessiger Systemladeblock geschrieben werden soll, der auf das Systemab- bild verweist. Der neue Systemladeblock zeigt auf die Datei, die mit dem SAV-Kommando gerettet wurde. Beim naechsten hard- waremaessigen Systemladen wird dann diese gerettete Datei geladen. Wird in der Kommandozeile dieses Schluesselwort weg- gelassen, zeigt der Systemladeblock noch auf das vorige Systemabbild, das aber moeglicherweise ueberschrieben wurde. /WB wird nur erkannt, wenn zuvor mindestens ein Leerzeichen gegeben wird. /MOU="string" Die MOU-Kommandozeile ("string") muss in Anfuehrungszeichen (") eingeschlossen werden und muss im richtigen Format ein- schliesslich der Schraegstriche (/) oder Gleichheitszeichen (=) angegeben werden. Es ist zu beachten, dass SAVE nicht die Syntax von string prueft. Dieses Schluesselwort sollte nur fuer zusaetzliche Informatio- nen (Schluesselwoerter des Kommandos MOU) benutzt werden. Der Datentraegername darf nicht angegeben werden. /SFILE="filespec" Beim Systemstart wird automatisch eine Indirektkommandodatei ([1,2]STARTUP.CMD) aktiviert. Mit dem Schluesselwort /SFILE kann eine andere Indirektkommandodatei angegeben werden. Diese Kommandodatei muss in Anfuehrungszeichen (") eingeschlossen werden. Es ist zu beachten, dass SAVE nicht die Syntax von filespec prueft. Funktionsbeschreibung --------------------- Das Kommando SAV kopiert das aktuelle Systemabbild (Inhalt des Hauptspeichers) in die Systemabbilddatei, von der das aktuelle Abbild geladen wurde. (Die Systemabbilddatei ist eine spezielle Taskabbilddatei mit dem vereinbarten Namen OMEX.SYS.) Das Komman- do sichert das Abbild so, dass ein hardwaremaessiger Anfangslader oder das BOOT-Kommando spaeter zum Laden und Wiederanlauf benutzt werden kann. OMOS-Systeme befinden sich auf einem dateistruktu- rierten Datentraeger (ausser Folienspeichereinheit) als ein spe- ziell formatiertes Taskabbild: eine Systemabbilddatei hat keinen 138 Taskkopf. Auf einem Datentraeger kann mehr als ein Systemabbild vorhanden sein (z. B. ein Programmentwicklungssystem und ein Produktions- oder Testsystem). Nichtprivilegierte Tasks koennen in den verschiedenen Systemabbildern gleichzeitig installiert werden. Um die minimale Groesse einer Systemabbilddatei zu be- stimmen, gilt die Formel 4 x SYSIZ + 2 Zum Beispiel: 28 K erfordern 114. Bloecke 32 K erfordern 130. Bloecke 124 K erfordern 498. Bloecke Zur erfolgreichen Sicherung eines Systems muessen folgende Bedingungen erfuellt sein: 1. SAVE muss von CO: aktiviert werden. 2. Die Fehlerprotokollierung darf nicht aktiv sein. 3. Alle Tasks muessen von LB: installiert worden sein. 4. Es duerfen keine Auslagerungsdateien aktiv sein. 5. Es sind keine Datentraeger ausser dem Ladegeraet eingeglie- dert. 6. Das Ladegeraet kann erfolgreich ausgegliedert sein. 7. Es gibt keine Tasks mit ausstehenden E/A-Operationen. 8. Es sind keine Tasks mit Unterbrechungen verbunden. 9. Alle Driver, aktiven Tasks und fixierten Tasks befinden sich innerhalb des Hauptspeicherbereiches, den SAVE in die System- abbilddatei schreiben wird. Die Exekutive nimmt ueber physische Adressen (logische Blocknum- mern LBNs) auf die Taskabbilddateien von installierten Tasks Bezug. Ein mit SAVE sichergestelltes System behaelt nicht immer die physischen Plattenadressen installierter Tasks bei. Zum Bei- spiel kann das Dienstprogramm DSC (Disk Save and Compress Utility Program) eine Platte, die ein sichergestelltes System enthaelt, so verdichten und kopieren, dass die Taskdateien in anderen physischen Bereichen gespeichert werden. Deshalb wandelt SAVE die LBNs aller installierten Tasks in Dateiidentifikationen fuer die Indexdatei um und speichert diese in TCBs (Tasksteuerbloecke) ab. Da die TCBs nach einer Systemsicherstellung die Taskdateiidenti- fikationen und nicht die LBNs enthalten, kann ein System normal funktionieren, wenn es erneut geladen wird, auch dann, wenn sich die LBNs in der Zwischenzeit geaendert haben. Beim erneuten Systemladen eroeffnet SAVE die Taskabbilddatei erneut und speichert die neue LBN der Task in den TCB. Wurde eine Task geloescht, kann das System, wenn es erneut geladen wird, die Taskabbilddatei nicht eroeffnen. In diesem Falle entfernt das System automatisch den TCB der Task aus dem Systemtaskverzeichnis STD. Wenn der Systemladeblock geschrieben wird, wird in ihm die physi- sche Plattenblockadresse der Systemabbilddatei gespeichert. Die Datei kann jedoch geloescht worden sein. Bei irgendeiner Aktion des Dateisystems koennen die Bloecke, die zuvor dem Systemabbild zugeteilt waren, nun einer anderen Datei zugeteilt werden. Bei einem nachfolgenden Systemladen, das den Systemladeblock benutzt, koennten dann moeglicherweise unsinnige Daten geladen werden. 139 Aufgaben des SAVE beim Laden eines sichergestellten Systems: - Auswahl der Systemuhr - Ist die letzte Speicherpartition systemgesteuert, bestimmt SAVE die Speichergroesse und erweitert die Partition so, dass sie den restlichen Speicherplatz bis zur E/A-Seite nutzt. - In Mehrnutzersystemen sichert SAVE, dass das Systemladegeraet nicht zugeteilt wird, und setzt es dann auf den Status "oeffentlich". - SAVE setzt den Status des Konsolterminals auf angemeldet, pri- vilegiert und nonslave. - SAVE gibt eine Systemkennzeichnungsnachricht aus. - SAVE weist alle Pseudogeraete dem Systemladegeraet zu. - SAVE gliedert die Systemplatte ein. - SAVE aktiviert die Datei [1,2]STARTUP.CMD auf dem Ladegeraet. Beispiel -------- >SAV --- Der augenblickliche Zustand des Systems wird auf die Systemplatte gerettet. Systemaenderungen, die durch ein REDIRECT-Kommando oder andere MCR-Kommandos gemacht wurden, werden auch mit dem Systemabbild gespeichert. 140 ---------------------------------------------------------------- | SET (NP,P) | SET | | --- | | ---------------------------------------------------------------- 3.3.39. Festlegen von Systemeigenschaften ------------------------------------------- Format des Kommandos -------------------- SET /schluesselwort=wert Fuer jedes Kommando ist nur ein Schluesselwort erlaubt. Die Wir- kung der Schluesselwoerter kann in den meisten Faellen durch die Vorsilbe NO negiert werden (siehe nachfolgende Uebersicht). Wer- den die dafuer nicht ausgewiesenen Schluesselwoerter (z.B. BUF, UIC) mit der Vorsilbe NO verwendet, erfolgt vom System eine Fehlerausschrift. Schluesselwoerter, die Geraetecharakteristika setzen: /[NO]BRO[=TTnn:] /BUF=ddnn:[size] /CLI=Txnn:[cli] *) /[NO]CRT[=TTnn:] /DCL[=TTnn:] /[NO]EBC[=TTnn:] /[NO]ECHO[=TTnn:] /[NO]ESCSEQ[=Txnn:] *) /[NO]FDX[=TTnn:] /[NO]FORMFEED[=TTnn:] /HFILL=TTnn:[value] /[NO]HHT[=TTnn:] /LINES=TTnn:[value] /[NO]LOWER[=ddnn:] /MCR[=TTnn:] /PF[n][=taskname]:TGnn: /NOPF[n]:TGnn: /[NO]PRIV[=Txnn:] *) /[NO]PUB[=ddnn:] /[NO]RPA[=TTnn:] /[NO]SLAVE[=Txnn:] *) /TERM=TTnn:[value] /[NO]TYPEAHEAD[=TTnn:] /UIC[=[uic][:Txnn:]] *) /[NO]VFILL[=TTnn:] /[NO]WCHK[=ddnn:] /[NO]WRAP[=TTnn:] *) Txnn: x kennzeichnet T oder G Schluesselwoerter zum Freigeben/Sperren der Anmeldung (P) /[NO]LOGON 141 Schluesselwort zum E/A Paket /MAXPKT[=n] Schluesselwort fuer System-UIC /SYSUIC[=[uic]] Schluesselwoerter fuer Speicherzuteilung /MAIN=pname[:base:size:type] /NOMAIN=pname /MAXEXT[=size] /POOL[=top] /SUB=mname:sname[:base:size] /NOSUB=mname:sname /TOP=pname:value Schluesselwort fuer die Pool Monitoring Task /PLCTL[=[high][:[low][:[frsiz][:basep]]]] Schluesselwoerter fuer die Systemabstimmung /RNDC[=nn] /RNDH[=nn] /RNDL[=nn] /SWPC[=nn] /SWPR[=nn] Erlaeuterung der Schluesselwoerter: /BRO[=TTnn:] Freigabe der Moeglichkeit, Nachrichten von anderen Terminals fuer das spezifizierte Terminal zu empfangen. Das Terminal kann Nachrichten empfangen, die von anderen Terminals mit dem Kom- mando BROADCAST gesendet werden. Wird =TTnn: weggelassen, zeigt das System alle Terminals an, die Nachrichten empfangen koen- nen. /BRO kann nicht fuer ein Terminal im TG-Modus gesetzt werden. Unabhaengig davon kann BROADCAST auch bei aktivem TG-Driver ge- nutzt werden, falls diese Option im TT-Modus gesetzt wurde. /NOBRO[=TTnn:] Sperrt die Moeglichkeit zum Nachrichtenempfang fuer das spezi- fizierte Terminal. Das Terminal kann keine Nachrichten empfan- gen, die von anderen Terminals gesendet wurden. Das Terminal kann auch vom SHUTUP-Programm bis fuenf Minuten vor Systemab- schaltung keine Nachrichten empfangen. Es empfiehlt sich, das Schluesselwort /NOBRO nicht staendig zu verwenden, da moegli- cherweise wichtige Nachrichten nicht auf dem Terminal angezeigt wuerden. Wird =TTnn: weggelassen, zeigt das System alle Terminals an, die keine Nachrichten empfangen koennen. /NOBRO kann nicht fuer ein Terminal im TG-Modus gesetzt werden. Unabhaengig davon bleibt BROADCAST gesperrt, falls im TT-Modus SET /NOBRO gegeben wurde. /BUF=ddnn:[size] Bestimmt die Standard-Puffergroesse des spezifizierten Geraetes. Wird size weggelassen, wird die Standard- Puffergroesse fuer das spezifizierte Geraet angezeigt. Ein nichtprivilegierter Nutzer kann sich die Puffergroesse eines beliebigen Geraetes anzeigen lassen, aber nur die Puffer- 142 groesse von TI: setzen. Ein privilegierter Nutzer kann die Puffergroesse eines belie- bigen Geraetes setzen. Die spezifizierte Groesse muss im Be- reich 0 < size < 255(10) sein. Ist ddnn: ein Bediengeraet, muss die angegebene Groesse im Bereich 15(10) < size < 255(10) sein. /BUF ist besonders nuetzlich beim Definieren der Zeilendruckerbreite (80 oder 132 Spalten dezimal) und der maximalen Anzahl von Zeichen, die in einer Kommandozeile er- laubt sind, wenn die Kommandozeile aus mehreren Eingabezeilen bestehen kann (z.B. beim Kommando HOM). /CLI=Txnn:[cli] Bestimmen des Standard-Kommandozeileninterpreters (CLI) fuer das spezifizierte Terminal. CLI kann sein: MCR, DCL oder ein vom Nutzer geschriebenes CLI. (Es ist jedoch zu beachten, dass ein CLI mit dem Kommando "INS name/CLI=YES" installiert sein muss, bevor es genutzt werden kann.) Ein nichtprivilegierter Nutzer kann sich das Standard-CLI fuer jedes beliebige Terminal anzeigen lassen, er kann das CLI aber nur fuer TI: setzen. Ein privilegierter Nutzer kann das Standard-CLI fuer jedes beliebige Terminal einstellen. Wird cli weggelassen, zeigt das System das augenblickliche CLI fuer das spezifizierte Terminal an. /CRT[=TTnn:] (Nur fuer TT-Driver) Das angegebene Terminal wird als Kathodenstrahlroehre (CRT) definiert und erlaubt die Option Rueckwaertsstreichen. Das Betaetigen der RUBOUT- bzw. DELETE-Taste bewirkt, dass die Druckposition um ein Zeichen nach links verschoben wird und das ein an dieser Stelle angezeigtes Zeichen geloescht wird. Ein nichtprivilegierter Nutzer kann alle Terminals, die als CRTs definiert sind, anzeigen, aber er kann nur TI: als CRT definieren. Ein privilegierter Nutzer kann ein beliebiges Terminal als CRT definieren. Wenn man =TTnn: weglaesst, dann zeigt das System alle Terminals an, die als CRTs definiert sind. /NOCRT[=TTnn:] (Nur fuer TT-Driver) Loescht den CRT-Status des angegebenen Terminals und sperrt die Option Rueckwaertsstreichen. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die nicht als CRTs definiert sind, aber er kann nur fuer TI: den CRT-Status loeschen. Ein privilegierter Nutzer kann den CRT-Status fuer ein belie- biges Terminal loeschen. Wenn man =TTnn: weglaesst, dann zeigt das System alle Terminals an, die nicht als CRTs definiert sind. /DCL[=TTnn:] Erlaubt die Erkennung von DCL-Kommandos am angegebenen Termi- nal. Kommandos, die als Antwort auf die Standardaufforderung eingegeben werden, werden von DCL behandelt. Um ein Terminal auf die MCR-Erkennung zurueckzufuehren, ist das DCL-Kommando "SET TERMINAL MCR" anzugeben (siehe auch Anleitung fuer den Bediener, Teil 6: "Kommandosprache DCL"). Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, 143 die DCL-Kommandos erkennen, aber er kann nur fuer TI: die DCL- Erkennung erlauben. Ein privilegierter Nutzer kann die DCL-Kommandoerkennung fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, dann zeigt das System alle Terminals an, bei denen die DCL-Erkennung freigegeben ist. /EBC[=TTnn:] (Nur fuer TT-Driver) Freigeben der 8-Bit-Zeichen Option. Der Terminaldriver uebergibt alle 8 Bits der Eingabezeichen an das angegebene Terminal. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen diese Option freigegeben ist, aber er kann nur fuer TI: die EBC-Option freigeben. Ein privilegierter Nutzer kann die EBC-Option fuer ein belie- biges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die EBC-Option freigegeben ist. /NOEBC[=TTnn:] (Nur fuer TT-Driver) Bewirkt das Sperren der 8-Bit-Zeichen-Option. Bevor die Eingabezeichen an das Geraet uebergeben werden, entfernt der Terminaldriver die jeweiligen Paritaetsbits (es bleiben 7 Bits). Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die die Option gesperrt haben, aber er kann nur fuer TI: die EBC-Option sperren. Ein privilegierter Nutzer kann die EBC-Option fuer ein belie- biges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die EBC-Option gesperrt ist. /ECHO[=TTnn:] (Nur fuer TT-Driver) Weist den Terminaldriver an, alle Eingabezeichen, die auf dem angegebenen Terminal eingegeben werden, anzuzeigen. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Echo-Option freigegeben ist, aber er kann nur fuer TI: die Echo-Option freigeben. Ein privilegierter Nutzer kann die Echo-Option fuer ein belie- biges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Echo-Option freigegeben ist. /NOECHO[=TTnn:] (Nur fuer TT-Driver) Weist den Terminaldriver an, die Anzeige aller Eingabezeichen, die auf dem angegebenen Terminal eingegeben werden, zu sperren. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die eingegebene Zeichen nicht als Echo senden, aber er kann nur fuer TI: die Echo-Option sperren. Ein privilegierter Nutzer kann die Echo-Option fuer ein belie- biges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Echo-Option gesperrt ist. 144 /ESCSEQ[=Txnn:] Erlaubt die Erkennung von ESCAPE-Folgen vom eingebenden Terminal. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die ESC-Folgen senden oder empfangen koennen, aber er kann nur fuer TI: die ESC-Folge-Erkennung einrichten. Ein privilegierter Nutzer kann fuer ein beliebiges Terminal die ESC-Folge-Erkennung einrichten. Wenn man =Txnn: weglaesst, zeigt das System alle Terminals an, bei denen die ESC-Folge-Erkennung erlaubt ist. /NOESCSEQ[=Txnn:] Sperrt die Erkennung von ESC-Folgen am angegebenen Terminal. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Erkennung von ESC-Folgen gesperrt ist, aber nur sein eigenes Terminal (TI:) fuer die ESC-Folge-Erkennung sper- ren. Ein privilegierter Nutzer kann ein beliebiges Terminal fuer die Erkennung von ESC-Folgen sperren. Wenn man =Txnn: weglaesst, zeigt das System alle Terminals an, bei denen die ESC-Folge-Erkennung gesperrt ist. /FDX[=TTnn:] (Nur fuer TT-Driver) Weist den Terminaldriver an, eine Eingabe von dem angegebenen Terminal anzunehmen, waehrend gleichzeitig auf dieses ausgegeben wird (Vollduplex-Operation des Terminals). Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, aber er kann nur fuer TI: die Option freigeben. Ein privilegierter Nutzer kann die Vollduplex-Option fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Vollduplex- Terminals an. /NOFDX[=TTnn:] (Nur fuer TT-Driver) Sperren der Vollduplex-Option: der Terminaldriver verarbeitet nicht gleichzeitig Ein- und Ausgabe vom angegebenen Terminal. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, fuer die die Vollduplex-Option gesperrt ist, aber er kann nur fuer TI: die Option sperren. Ein privilegierter Nutzer kann die Vollduplex-Option fuer ein beliebiges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Vollduplex-Option gesperrt ist. /FORMFEED[=TTnn:] (Nur fuer TT-Driver) Zeigt an, dass das angegebene Geraet einen hardwaremaessigen Formularvorschub besitzt. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die einen hardwaremaessigen Formularvorschub haben, aber er kann ihn nur fuer TI: festlegen. Ein privilegierter Nutzer kann ihn fuer ein beliebiges Terminal festlegen. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die einen hardwaremaessigen Formularvorschub haben. 145 /NOFORMFEED[=TTnn:] (Nur fuer TT-Driver) Zeigt an, dass das angegebene Terminal keinen hardwaremaessigen Formularvorschub haben wird. Ein nichtprivilegierter Nutzer kann alle Termminals anzeigen, die keinen hardwaremaessigen Formularvorschub haben, aber er kann diese Option nur fuer TI: spezifizieren. Ein privilegierter Nutzer kann diese Option fuer ein beliebiges Terminal spezifizieren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die keinen hardwaremaessigen Formularvorschub haben. /HFILL=TTnn:[value] (Nur fuer TT-Driver) Spezifiziert die Zahl der Fuellzeichen (value), die der Terminaldriver bei Ausgabe auf ein Terminal nach einem Wagenruecklauf (carriage return) plaziert. Gueltige Werte fuer value liegen zwischen 0 und 7. Ein nichtprivilegierter Nutzer kann die Zahl der Fuellzeichen fuer ein beliebiges Terminal anzeigen, aber er kann die Zahl nur fuer TI: aendern. Ein privilegierter Nutzer kann die Zahl der Fuellzeichen fuer ein beliebiges Terminal bestimmen. Wenn man value weglaesst, zeigt das System die Zahl der Fuellzeichen fuer das angegebene Terminal an. /HHT[=TTnn:] (Nur fuer TT-Driver) Zeigt dem Terminaldriver an, dass das angegebene Terminal einen hardwaremaessigen Horizontaltabulator hat. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die einen hardwaremaessigen Horizontaltabulator haben, aber er kann ihn nur fuer TI: festlegen. Ein privilegierter Nutzer kann ihn fuer ein beliebiges Terminal festlegen. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die einen hardwaremaessigen Horizontaltabulator haben. /NOHHT[=TTnn:] (Nur fuer TT-Driver) Zeigt an, dass das angegebene Terminal keinen hardwaremaessigen Horizontaltabulator haben wird. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die keinen hardwaremaessigen Horizontaltabulator haben, aber er kann diese Option nur fuer TI: angeben. Ein privilegierter Nutzer kann diese Option fuer ein beliebiges Terminal festlegen. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die keinen hardwaremaessigen Horizontaltabulator haben. /LINES=TTnn:[value] (Nur fuer TT-Driver) Gibt die Anzahl der Zeilen pro Bildschirmseite (value) an. Value muss im Bereich von 1 bis 255(10) liegen. Bei dezimaler Angabe muss der Zahl ein Punkt (.) folgen. Ein nichtprivilegierter Nutzer kann fuer ein beliebiges Terminal die Zeilenanzahl pro Seite anzeigen, aber er kann nur fuer TI: die Zeilenanzahl festlegen. Ein privilegierter Nutzer kann fuer ein beliebiges Terminal die Zeilenanzahl pro Seite festlegen. 146 Wenn man value weglaesst, zeigt das System die Zeilenanzahl pro Seite fuer das angegebene Terminal an. /LOGON (Privilegiertes Schluesselwort) Erlaubt das Anmelden auf Terminals in einem Mehrnutzersystem. /NOLOGON (Privilegiertes Schluesselwort) Sperrt das Anmelden auf Terminals in einem Mehrnutzersystem. /LOGON und /NOLOGON setzen und loeschen ein Flag, das durch das HELLO-Kommando geprueft wird, wenn ein Nutzer versucht, sich auf einem Terminal anzumelden. Durch /NOLOGON wird verhindert, dass Nutzer waehrend solcher Aktivitaeten wie Systemwartung oder Wartung des Nutzerverzeichnisses auf das System zugreifen koennen. /LOWER[=ddnn:] Diese Option bewirkt, dass Kleinbuchstaben auf einem Terminal oder Zeilendrucker nicht in Grossbuchstaben umgewandelt werden, wenn sie vom Geraetedriver empfangen werden. Es ist zu beachten, dass dieses Schluesselwort nur die Eingabe von einem Terminal, nicht aber die Ausgabe auf ein Terminal beeinflusst. Ein nichtprivilegierter Nutzer kann alle Geraete anzeigen, die nicht Kleinbuchstaben in Grossbuchstaben umwandeln, aber er kann nur fuer TI: diese Option angeben. Ein privilegierter Nutzer kann diese Option fuer ein beliebiges Terminal oder einen Zeilendrucker angeben. Wenn man =ddnn: weglaesst, zeigt das System alle Geraete an, bei denen Kleinbuchstaben nicht in Grossbuchstaben umgewandelt werden. /NOLOWER[=ddnn:] Ruecksetzen der Kenndaten fuer das Terminal oder den Zeilendrucker. Bei Terminals werden die bei der Eingabe empfangenen Kleinbuchstaben automatisch in Grossbuchstaben umgewandelt und Grossbuchstaben als Echo gesendet. Das Schluesselwort hat keinen Einfluss auf Zeichen, die auf das Terminal ausgegeben werden. Bei Zeilendruckern werden die auf das Geraet ausgegebenen Kleinbuchstaben als Grossbuchstaben gedruckt. Ein nichtprivilegierter Nutzer kann alle Geraete anzeigen, die diese Umwandlung durchfuehren, aber er kann nur fuer TI: diese Option angeben. Ein privilegierter Nutzer kann diese Option fuer ein beliebiges Terminal oder einen Zeilendrucker angeben. Wenn man =ddnn: weglaesst, zeigt das System alle Geraete an, fuer die die Umwandlung in Grossbuchstaben spezifiziert wurde. /MAIN=pname[:base:size:type] Die angegebene Partition pname wird mit diesem Schluesselwort zur Main-Partition erklaert. Ein nichtprivilegierter Nutzer kann base, size und type der Main-Partition nur anzeigen. pname 1 bis 6 Zeichen langer Name der Partition 147 :base Physische Basisadresse der Partition, angegeben als Anzahl von 64-Byte-Bloecken :size Groesse der Partition, angegeben als Anzahl von 64-Byte- Bloecken :type Partitiontyp TASK nutzergesteuerte Partition SYS systemgesteuerte Partition COM gemeinsame Partition DEV gemeinsame Partition, in der die Geraeteregister abge- bildet sind Nutzergesteuerte und systemgesteuerte Task-Partitions enthalten Nutzertasks. Gemeinsame Partitions werden fuer residente Bibliotheken und gemeinsame Bloecke benutzt. Geraete-Partitions werden von nichtprivilegierten Tasks benutzt, um auf Geraeteregister der E/A-Seite zuzugreifen. Die Parameter base und size koennen in einem der folgenden Formate eingegeben werden (nnnn ist eine Zahl in Bytes, die das System mit einem Faktor multipliziert, um den benutzten Wert zu ermitteln): Format Errechneter Wert nnnn oktal (nnnn*100) nnnn. Dezimal (nnnn.*64.) nnnK oktal K (nnn*4000) nnn.K dezimal K (nnn.*2048.) Gueltige Bereiche fuer errechnete Werte (in Worten) sind: oktal 0 <= base < 7600 0 < size < 2000 dezimal 0. <= base < 3968. 0. < size < 1024. oktal K 0K <= base < 174K 0K < size < 40K dezimal K 0.K <= base < 124.K 0.K < size < 32.K Beispielsweise bewirkt jede der folgenden Eingaben fuer size die Zuteilung einer 2048(10)-Byte-Partition. 40 32. 1K 1.K Laesst man die Parameter base, size und type weg, zeigt das System die Werte dieser Parameter fuer die genannte Partition. Ist die angegebene Partition eine Task-Partition, zeigt das System auch die Parameter aller ihrer Sub-Partitions an. /NOMAIN=pname (Privilegiertes Schluesselwort) Beseitigt die angegebene Partition aus dem System. /MAXEXT[=size] (Privilegiertes Schluesselwort) Gibt die maximale Groesse an, auf die sich eine Task ueber ihren Abbildungsbereich selbst erweitern kann mit Hilfe der Anweisung EXTSK$ (siehe Anleitung fuer Programmierer, Teil 2). Es ist zu beachten, dass ein nichtprivilegierter Nutzer die 148 maximale Groesse, auf die sich eine Task erweitern kann, nur anzeigen kann (sie aber nicht aendern kann). Die maximale Groesse kann in vier Formaten ausgedrueckt werden: n nK n. n.K Gueltige Werte von size (in Worten) sind: n Oktal 0 < size < 2000 nK Oktal K 0K < size < 40K n. Dezimal 0. < size < 1024. n.K Dezimal K 0.K < size < 32.K Wenn man =size weglaesst, zeigt das System die augenblickliche maximale Groesse in dem Format MAXEXT=m an, wobei m eine Oktalzahl gleich der maximalen Groesse in 64- Byte-Bloecken ist, die fuer eine Task zugelassen ist (z.B. zeigt 1200 20K Worte an). /MAXPKT[=n] Gibt die maximale Anzahl von E/A-Paketen an, die zur Nutzung durch die QIO$-Anweisung in einer separaten Warteschlange ge- halten werden sollen. Die Anzahl an Paketen (n) wird benutzt, um die Bedienung der QIO-Anforderungen zu optimieren. n ist gueltig im Bereich von 0 bis 15(10). Ein nichtprivilegierter Nutzer kann nur die maximale Anzahl und die augenblickliche Anzahl der verfuegbaren E/A-Pakete anzei- gen. Wenn man =n weglaesst, zeigt das System die maximale und die augenblickliche Anzahl der verfuegbaren E/A-Pakete in dem For- mat MAXPKT=m.:c. an, wobei m. die maximale und c. die augenblickliche Anzahl der verfuegbaren E/A-Pakete ist. /MCR[=TTnn:] Freigabe der MCR-Kommandoerkennung an dem angegebenen Terminal. Kommandos, welche als Antwort auf die Standardaufforderung eingegeben werden, werden von MCR behandelt. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, die MCR-Kommandos erkennen, aber er kann nur fuer TI: diese Option angeben. Ein privilegierter Nutzer kann die MCR-Kommandoerkennung fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die MCR-Kommandos erkennen. /PF[n][=taskname]:TGnn: (Nur fuer TG-Driver) Mit diesem Schluesselwort kann eine Zuordnung der Tasten PF1 ... PF12 der BDE zu Tasks vorgenommen werden. Bei Betaetigung einer der Tasten PF1 ... PF12 kann die zugeordnete Task akti- viert werden, falls sich der Halbduplex-Driver (TG) im System befindet und mit dem MCR-Kommando ATG (vgl. Kap. 3.3.7.) akti- viert wurde. Voraussetzung fuer die Zuordnung einer Task zu den Tasten PF1 ... PF12 ist, dass die Task unter dem Tasknamen ...tsk installiert wurde und die entsprechende PF-Taste noch nicht belegt ist. 149 Sind diese Voraussetzungen nicht gegeben, wird die Zuordnung nicht vorgenommen und der Bediener durch eine Fehlerausschrift darauf hingewiesen. Im Kommando ist fuer den Parameter taskname nur der Taskname tsk anzugeben. Ist einer der Wahlparameter im Kommando nicht enthalten, so gibt das Kommandoprogramm die bestehende Zuord- nung in der Form PFn=tsk aus. /NOPFn:TGnn: (Nur fuer TG-Driver) Eine fuer das im Kommando angegebene Bediengeraet bestehende Zuordnung einer Task zu der BDE-Taste PFn wird mit diesem Schluesselwort aufgehoben. /PLCTL[=[high][:[low][:[frsiz][:basep]]]] (Privilegiertes Schluesselwort) Setzt die Pool-Grenzen, die von der Pool-Monitoring-Task (PMT) benutzt werden. Die Parameter bedeuten: high Obere Poolgrenze in Bytes low Untere Poolgrenze in Bytes frsiz Minimale Bytegroesse des groessten freien Pool- blocks, die die Pool-Monitoring-Task benoetigt, um einen kritischen Poolzustand zu beseitigen. basep Basistaskprioritaet, die die niedrigste Priori- taet ist, die eine nichtprivilegierte Task haben kann, um noch fuer eine Speicherplatzzuteilung ausgewaehlt zu werden, wenn ein kritischer Pool- zustand erreicht wird. Diese Prioritaet bleibt solange wirksam, bis sich die Poolbedingungen verbessern. Es ist zu beachten, dass nur die Tasks davon betroffen sind, die angefordert wer- den, wenn sich das System in einem kritischen Poolzustand befindet. (Naehere Erlaeuterungen zur Pool-Monitoring-Task in Anleitung fuer den Systemprogrammierer, Teil 4 "System Service-Programme".) Grenzwerte der Parameter: 84. <= low <= high <= maximale Groesse des System-Pools 84. <= frsiz <= high 0. <= basep <= 250. Standardwerte der Parameter: high 1600. Bytes low 600. Bytes frsiz 200. Bytes basep 51. Wenn man die Parameter weglaesst, zeigt das System die augenblicklichen Parameter fuer das System an. /POOL[=top] Vergroessert den dynamischen Speicherbereich (Pool). Der Parameter top gibt die erste Speicherposition an, die fuer Nutzerpartitions verwendet werden kann. Die Position wird in Einheiten von 64-Byte-Bloecken oktal oder dezimal angegeben. Ein nichtprivilegierter Nutzer kann nur die Groesse des 150 dynamischen Speicherbereiches anzeigen. Wenn man =top weglaesst, zeigt das System die Groesse des dynamischen Speicherbereiches in dem Format: POOL=top:max.:total. an, wobei top Die erste Speicherposition fuer Nutzerpartitions (in Bytes, wobei die zwei nachfolgenden Nullen unter- drueckt werden). max. Der laengste freie Poolblock (in Worten). total. Der gesamte Poolbereich (in Worten). /PRIV[=Txnn:] Richtet das angegebene Terminal als ein privilegiertes Terminal ein. Ein nichtprivilegierter Nutzer kann nur die Terminals anzeigen, die privilegiert sind. Ein privilegierter Nutzer kann ein beliebiges Terminal als privilegiertes Terminal einrichten. Wenn man =Txnn: weglaesst, zeigt das System alle privilegierten Terminals an. /NOPRIV[=Txnn:] Das angegebene Terminal wird nichtprivilegiert. Ein nichtprivilegierter Nutzer kann nur die Terminals anzeigen, die nichtprivilegiert sind. Ein privilegierter Nutzer kann ein beliebiges Terminal als nichtprivilegiertes einrichten. Wenn man =Txnn: weglaesst, zeigt das Sytem alle nichtprivile- gierten Bediengeraete an. /PUB[=ddnn:] Das angegebene Geraet wird ein oeffentliches Geraet. Ein oeffentliches Geraet ist ein Geraet, auf das alle Systemnutzer zugreifen koennen. Es ist zu beachten, dass ein zugeteiltes und schon eingegliedertes Geraet nicht oeffentlich gesetzt werden kann. (Geraete koennen nur oeffentlich gesetzt werden, bevor sie eingegliedert werden.) Ein nichtprivilegierter Nutzer kann alle oeffentlichen Geraete anzeigen, aber nur ein privilegierter Nutzer kann ein Geraet auf oeffentlich setzen. Wenn man =ddnn: weglaesst, zeigt das System alle oeffentlichen Geraete an. /NOPUB[=ddnn:] Das angegebene Geraet wird ein nichtoeffentliches Geraet. Ein nichtprivilegierter Nutzer kann die Geraete anzeigen, die nichtoeffentlich sind, aber nur ein privilegierter Nutzer kann ein oeffentliches Geraet nichtoeffentlich setzen. Es ist zu beachten, dass eingegliederte Geraete ihren Oeffentlich-Status nicht verlieren koennen. Wenn man =ddnn: weglaesst, zeigt das System alle nichtoeffent- lichen Geraete an, die zur Zeit existieren. /RNDC[=nn] Definiert die Laenge (in Takteinheiten) des Exekutive- Zeitscheibenintervalls. Der Parameter nn kann oktal oder dezi- mal, gefolgt von einem Punkt (.), angegeben werden. Der Mini- malwert fuer nn ist 0. (Weitere Informationen dazu in Anleitung fuer Systemprogrammierer, Teil 2). 151 Ein nichtprivilegierter Nutzer kann den Wert fuer das Intervall anzeigen, aber nur ein privilegierter Nutzer kann den Wert aendern. Wenn man =nn weglaesst, zeigt das System den augenblicklichen Wert fur das Intervall an. /RNDH[=nn] Definiert die hoechste Prioritaet (1 bis 250 dezimal), die fuer die Exekutive-Zeitscheibensteuerung beruecksichtigt wird. Die Klasse muss hoeher sein als die, die durch /RNDL spezifiziert wurde. Weitere Informationen dazu in Anleitung fuer Systemprogrammierer, Teil 2. Ein nichtprivilegierter Nutzer kann nur den Wert fuer die Prioritaet anzeigen, aber nur ein privilegierter Nutzer kann den Wert aendern. Wenn man =nn weglaesst, zeigt das System den augenblicklichen Wert fuer die Prioritaet an. /RNDL[=nn] Definiert die niedrigste Prioritaet (1 bis 250 dezimal), die fuer die Exekutive-Zeitscheibensteuerung beruecksichtigt wird. Die Klasse muss geringer sein als die, die durch /RNDH spezifiziert wurde. Weitere Informationen dazu in Anleitung fuer Systemprogrammierer, Teil 2. Ein nichtprivilegierter Nutzer kann den Wert fuer die Prioritaet anzeigen, aber nur ein privilegierter Nutzer kann den Wert aendern. Wenn man =nn weglaesst, zeigt das System den augenblicklichen Wert fuer die Prioritaet an. /RPA[=TTnn:] (Nur fuer TT-Driver) Gibt die Option "read-pass-all" des Terminaldrivers frei. Der Terminaldriver uebergibt alle Eingabezeichen (einschliesslich der Sonderfunktionszeichen, wie z.B. CTRL/C) an den Eingabepuf- fer des Drivers. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, fuer die diese Option freigegeben ist, aber er kann nur fuer TI: diese Option freigeben. Ein privilegierter Nutzer kann die Option "read-pass-all" fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Bediengeraete an, fuer die die Option "read-pass-all" freigegeben ist. /NORPA[=TTnn:] (Nur fuer TT-Driver) Sperrt die Option "read-pass-all". Der Terminaldriver uebergibt nicht die Sonderfunktions-Eingabezeichen (wie z.B. CTRL/C) vom Terminal zum Eingabepuffer des Drivers. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, fuer die diese Option gesperrt ist, aber er kann diese Option nur fuer TI: sperren. Ein privilegierter Nutzer kann die Option "read-pass-all" fuer ein beliebiges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, die nicht die Sonderfunktionszeichen an den Eingabepuffer des Terminaldrivers uebergeben. /SLAVE[=Txnn:] Das angegebene Terminal wird ein Terminal, auf dem Daten nur 152 dann eingegeben werden koennen, wenn man von einer Task durch eine QIO$-Anweisung fuer Lesen dazu aufgefordert wird. Somit weist das spezifizierte Terminal unaufgeforderte Eingaben (an- dere als CTRL/O, CTRL/S und CTRL/Q) ab. Ein nichtprivilegierter Nutzer kann alle Slave-Terminals anzei- gen, aber er kann nur TI: als ein Slave-Terminal einrichten. Privilegierte Nutzer koennen ein beliebiges Terminal als Slave- Terminal einrichten. Wenn man =Txnn: weglaesst, zeigt das System alle Terminals an, die augenblicklich als Slave-Terminals klassifiziert sind. /NOSLAVE[=Txnn:] Beseitigt den Slave-Status des spezifizierten Terminals. Ein nichtprivilegierter Nutzer kann die Nicht-Slave-Terminals nur anzeigen. Ein privilegierter Nutzer kann ein beliebiges Slave-Terminal wieder zu einem Nicht-Slave-Terminal erklaeren. Wenn man =Txnn: weglaesst, zeigt das System alle Nicht-Slave- Terminals an. /SUB=mname:sname[:base:size] Einrichten einer Sub-Partition. Sub-Partitions koennen nur in nutzergesteuerten Main-Partitions eingerichtet werden. mname 1- bis 6-Zeichen langer Name der Main-Partition. Die Sub-Partition, die definiert wird, wird eine Sub-Partition in dieser Partition. :sname 1- bis 6-Zeichen langer Name der Sub-Partition. Die Sub- Partition, die definiert wird, wird eine Sub-Partition der Main-Partition, spezifiziert unter mname. :base Physische Basisadresse der Sub-Partition, angegeben als Zahl von 64-Byte-Bloecken. :size Groesse der Sub-Partition, angegeben als Zahl von 64-Byte- Bloecken. base und size koennen in einem der folgenden Formate eingegeben werden (nnnn ist eine Zahl in Bytes, die das System mit einem Faktor multipliziert, um den benutzten Wert zu ermitteln): Format Errechneter Wert nnnn oktal (nnnn * 100) nnnn. dezimal (nnnn. * 64.) nnnK oktal K (nnn * 4000) nnn.K dezimal K (nnn. * 2048.) Gueltige Bereiche fuer errechnete Werte (in Worten) sind: Oktal 0 <= base < 17600 0 < size < 2000 Dezimal 0. <= base < 3968. 0. < size < 1024. Oktal K 0K <= base < 174K 0K < size < 40K Dezimal K 0.K <= base < 124.K 0.K < size < 32.K 153 Beispielsweise bewirkt jede der folgenden Eingaben fuer die Groesse, dass eine 2048(10)-Byte-Partition zugeteilt wird: 40 32. 1K 1.K Wenn man base und size weglaesst, zeigt das System die aktuellen Werte der Sub-Partition an. /NOSUB=mname:sname (Privilegiertes Schluesselwort) Beseitigt die benannte Sub-Partition (sname) in der spezifi- zierten Main-Partition (mname). /SWPC[=nn] Definiert die Anzahl Uhrtakteinheiten fuer ein einzelnes Exeku- tive-Umlagerungsintervall. Der Parameter nn kann zwischen 0 und 45.568(10) liegen, der Wert kann oktal sein oder dezimal, wenn ihm ein Punkt (.) folgt. Ein nichtprivilegierter Nutzer kann den Wert fuer das Intervall anzeigen, aber nur ein privilegierter Nutzer kann den Wert aendern. Wenn man =nn weglaesst, zeigt das System den augenblicklichen Wert fuer das Intervall an. /SWPR[=nn] Definiert einen Prioritaetsbereich fuer eine Exekutive-Ueberla- gerung. nn ist ein Wert zwischen 0 und 127(10), und kann oktal oder dezimal (gefolgt von einem Punkt) angegeben werden. Der Wert fuer /SWPR beeinflusst die installierte Prioritaet aller Tasks. Jede Task wird aktiviert mit der eigenen Priori- taet plus dem Wert fuer nn. Waehrend der Ausfuehrung der Task wird ihre Prioritaet erniedrigt, bis der Wert - installierte Task minus nn - erreicht ist. Ist dieser Wert erreicht, wird die Task ausgelagert, so dass eine andere Task mit hoeherer Prioritaet ausgefuehrt werden kann. Die Prioritaet fuer die neue Task wechselt in gleicher Weise. Ein nichtprivilegierter Nutzer kann den Wert fuer die Priori- taet nur anzeigen, nur ein privilegierter Nutzer kann den Wert aendern. Wenn man =nn weglaesst, wird der aktuelle Wert fuer den Prioritaetsbereich angezeigt. /SYSUIC[=[uic]] Einrichten des UIC fuer das System und fuer alle Systemtasks. Im OMOS 1630 hat der System-UIC den Wert [1,54]. Die eckigen Klammern bei Angabe des [uic] gehoeren zur Syntax. Ein nichtprivilegierter Nutzer kann den System-UIC anzeigen, aber nur ein privilegierter Nutzer kann ihn aendern. Wenn man =[uic] weglaesst, zeigt das System den augenblickli- chen System-UIC an. /TERM=TTnn:[value] (Nur fuer TT-Driver) Legt den Terminaltyp fuer das angegebene Terminal fest. Moegliche Angaben sind: LA36 - Geraetecharakteristika werden so gesetzt, dass ueber diese Terminalschnittstelle die Anschlussbedingungen fuer einen seriellen Drucker (IFSS oder V24) realisiert werden. 154 VT100 - Geraetecharakteristika werden so gesetzt, dass der Standardterminaltyp VT100 realisiert ist. Die Terminals K8911 und K8917 entsprechen weitestgehend diesem Stan- dard, und die Schnittstelle muss demzufolge diesen Sta- tus haben. Der Anschluss von Original-VT100 oder auf VT100 umgeruestete K8911/12 Terminals erfordern den gleichen Status, Ein nichtprivilegierter Nutzer kann den Terminaltyp fuer ein beliebiges Terminal anzeigen, aber er kann nur fuer TI: den Terminaltyp festlegen. Ein privilegierter Nutzer kann fuer ein beliebiges Terminal den Terminaltyp festlegen. Wenn man den Parameter value weglaesst, zeigt das System den Terminaltyp fuer das angegebene Terminal an. MCR nimmt auch eine alternative Form des Kommandos an. Man kann den Terminaltyp angeben und ihn dem gewuenschten Terminal gleichsetzen. Dies bewirkt, dass automatisch bestimmte Kenn- daten des speziellen Terminaltyps mit dem angegebenen Terminal verbunden werden. (In der Anleitung fuer Programmierer, Teil 3: "E/A-System" sind die impliziten Kenndaten fuer jeden Terminal- typ aufgelistet.) Das Kommando hat das Format: SET /term-type=TTnn: wobei term-type einem der Standard-Terminaltypen entspricht. Es ist zu beachten, dass sich die Terminaltypen gegenseitig ausschliessen. Man kann auch eine alternative Kommandoform benutzen, um alle die Terminals anzuzeigen, die keinen speziel- len Typ verkoerpern. Das Format ist SET /noterm-type Es ist zu beachten, dass man einen Terminaltyp fuer ein Termi- nal nicht negieren kann. Man kann nur alle Terminals anzeigen, die nicht einem speziellen Typ entsprechen. Das Negieren des Terminaltyps fuer ein spezielles Terminal bewirkt einen Syntax- fehler. /TOP=pname:value Weist MCR an, die Obergrenze der systemgesteuerten Partition um den durch den Parameter value festgelegten Betrag nach oben oder unten zu verschieben bzw. die Partition-Groesse auf diesen Betrag festzulegen. Das Schluesselwort modifiziert die Ober- grenze einer Partition, auch wenn in ihr Tasks installiert sind. Modifiziert man die Partition so, dass sie moeglicher- weise fuer die in ihr installierten Tasks zu klein wird, zeigt MCR eine Warnmeldung, modifiziert aber die Partition. pname 1 bis 6 Zeichen langer alphanumerischer Name fuer die system- gesteuerte Partition value Anzahl von 64-Byte Bloecken Der Parameter value kann in 5 Formaten bereitgestellt werden +value, -value, value, +* oder *, -* 155 +value Verschiebt die Obergrenze um den spezifizierten Betrag nach oben. Das Verschieben der Obergrenze nach oben vergroessert die Partition. Bemerkung: Man kann den Wert in den gleichen Einheiten bereitstellen, wie es zuvor bei den Schluesselwoertern /MAIN oder /PAR bei den Parametern base und size beschrieben wurde. -value Verschiebt die Obergrenze um den spezifizierten Betrag nach unten. Das Verschieben der Obergrenze nach unten verkleinert die Partition. value Legt die Partitiongroesse entsprechend dem spezifizierten Betrag von value fest. +* oder* Verschiebt die Obergrenze so weit wie moeglich nach oben. Dieses Format bewirkt, dass die Obergrenze bis zu der Unter- grenze der darueberliegenden Partition verschoben wird bzw. zur oberen Grenze des Speichers, wenn die Partition die oberste Partition im Speicher ist. -* Verschiebt die Obergrenze so weit wie moeglich nach unten. Dieses Format bewirkt, dass die Obergrenze auf das obere Ende der ersten fixierten Task, des ersten gemeinsamen Bereiches bzw. des ersten Drivers in der Partition zu dem Zeitpunkt verschoben wird, wenn das SET /TOP ausgefuehrt wird. Wird nichts in die Partition geladen, nimmt die Partition eine Groesse von einem 64-Byte-Block an. /TYPEAHEAD[=TTnn:] (Nur fuer TT-Driver) Weist den Terminaldriver an, Eingabezeichen in einen Puffer zu speichern, bevor die Zeichen an eine anfordernde Task ueberge- ben werden. Somit gehen Zeicheneingaben zwischen Anforderungen nicht verloren. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Typeahead-Option freigegeben ist, kann sie aber nur fuer TI: freigeben. Ein privilegierter Nutzer kann die Typeahead-Option fuer ein beliebiges Terminal freigeben. Diese Regeln gelten auch fuer die Groesse des Typeahead-Puffers. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Typeahead-Option freigegeben ist. /NOTYPEAHEAD[=TTnn:] (Nur fuer TT-Driver) Sperrt die Typeahaed-Option. Der Terminaldriver speichert nicht die Eingabezeichen in einen Puffer, um sie vor dem Verlust zu schuetzen. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Typeahead-Option gesperrt ist, aber er kann sie nur fuer TI: sperren. Ein privilegierter Nutzer kann die Typeahaed-Option fuer ein beliebiges Terminal sperren. 156 Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Typeahaed-Option gesperrt ist. /UIC[=[uic][:Txnn:]] Der angegebene UIC (die eckigen Klammern sind notwendige Syntax) wird der Standard-UIC fuer das Terminal. Wird Txnn: nicht angegeben (diese Angabe ist eine privilegierte Option), wird der Standard-UIC fuer TI: gesetzt. Ein nichtprivilegierter Nutzer kann nur fuer TI: den Standard- UIC anzeigen und aendern. Ein privilegierter Nutzer kann den Standard-UIC fuer ein belie- biges Terminal anzeigen und aendern. Wenn man =[uic] weglaesst, zeigt das System den augenblickli- chen Standard-UIC fuer TI: an. Laesst man =[uic] weg, gibt aber =Txnn: an, zeigt das System den augenblicklichen Standard-UIC fuer das Terminal Txnn: an. /VFILL[=TTnn:] (Nur fuer TT-Driver) Weist den Terminaldriver an, bei dem angegebenen Terminal im Anschluss an jeden Zeilenvorschub vier Fuellzeichen hinzuzufue- gen. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Vertikalfuellzeichen-Option freigegeben ist, aber er kann sie nur fuer TI: freigeben. Ein privilegierter Nutzer kann die Option fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Vertikalfuellzeichen-Option freigegeben ist. /NOVFILL[=TTnn:] (Nur fuer TT-Driver) Sperrt die Vertikalfuellzeichen-Option fuer das angegebene Terminal. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Vertikalfuellzeichen-Option gesperrt ist, aber er kann sie nur fuer TI: sperren. Ein privilegierter Nutzer kann die Vertikalfuellzeichen-Option fuer ein beliebiges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Vertikalfuellzeichen-Option gesperrt ist. /WCHK[=ddnn:] Gibt an, dass allen Schreiboperationen auf FM16-D-Geraeten (ausser Folienspeichereinheiten (DY-Driver)) eine Schreibprue- fung folgen soll. Die Pruefungen sichern die Zuverlaessigkeit der Datenuebertra- gung zu dem angegebenen FM16-D-Geraet. Das Schreiben wird da- durch jedoch verlangsamt, weil statt einer zwei E/A-Operationen stattfinden. Die Exekutive-Unterstuetzung fuer die Schreibpruefung ist eine Systemgenerierungs-Option, und muss fuer dieses Kommando ausge- waehlt worden sein. Ein nichtprivilegierter Nutzer kann die Geraete anzeigen, bei denen die Schreibpruefung freigegeben ist. Ein privilegierter Nutzer kann die Schreibpruefung fuer ein beliebiges Geraet, dass die Schreibpruefung unterstuetzt, frei- geben. Wenn man =ddnn: weglaesst, zeigt das System alle FM16-D-Geraete an, bei denen die Schreibpruefung freigegeben ist. 157 /NOWCHK[=ddnn:] Gibt an, dass die Schreibpruefung fuer das angegebene Geraet gesperrt werden soll. Ein nichtprivilegierter Nutzer kann die Geraete nur anzeigen, bei denen die Schreibpruefung gesperrt ist. Ein privilegierter Nutzer kann die Schreibpruefung fuer ein beliebiges Geraet sperren. Wenn man =ddnn: weglaesst, zeigt das System alle FM16-D-Geraete an, bei denen die Schreibpruefung gesperrt ist. /WRAP[=TTnn:] (Nur fuer TT-Driver) Erlaubt die Option Wrap-around. Diese Option weist den Terminaldriver an, eine Wagenruecklauf/Zeilenvorschub-Folge zu generieren, wenn die Zahl der Eingabezeichen die Puffergroesse des Terminals ueberschreitet. Die Wagenruecklauf/Zeilenvor- schub-Folge ist transparent und erscheint nicht im Eingabe- puffer. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Option Wrap-around freigegeben ist, aber er kann sie nur fuer TI: freigeben. Ein privilegierter Nutzer kann die Option Wrap-around fuer ein beliebiges Terminal freigeben. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Option Wrap-around freigegeben ist. /NOWRAP[=TTnn:] (Nur fuer TT-Driver) Sperrt die Option Wrap-around fuer das angegebene Terminal. Der Terminaldriver nimmt keine Eingabezeichen an, wenn die Puffer- groesse des Terminals ueberschritten wird. Ein nichtprivilegierter Nutzer kann alle Terminals anzeigen, bei denen die Option Wrap-around gesperrt ist, aber er kann sie nur fuer TI: sperren. Ein privilegierter Nutzer kann die Option Wrap-around fuer ein beliebiges Terminal sperren. Wenn man =TTnn: weglaesst, zeigt das System alle Terminals an, bei denen die Option Wrap-around gesperrt ist. Funktionsbeschreibung --------------------- Der Nutzer kann mit diesem Kommando eine Reihe von Kenndaten dynamisch aendern und/oder sich anzeigen lassen, die entweder das gesamte System umfassen oder nur lokale Bediengeraete betreffen. Es wurden alle verfuegbaren Options aufgefuehrt, die in privile- gierte und nichtprivilegierte Options eingeteilt werden. In Klam- mern sind die zugehoerigen Parameter angegeben. Ein nichtprivilegierter Nutzer kann die Kenndaten seines eigenen Terminals (Pseudo-Geraet TI:) und eines beliebigen privat zuge- teilten Geraetes aendern. Ein privilegierter Nutzer kann die Kenndaten eines beliebigen Geraetes, einer beliebigen Task und des Systems aendern. Alle Nutzer koennen sich Informationen ueber irgendein Geraet, Task oder ueber das System anzeigen lassen. 158 Nichtprivilegierte Options: - Festlegen bestimmter Kenndaten fuer das Terminal und fuer private Geraete (/BUF, /ESCSEQ, /LOWER, /SLAVE). - Setzen des Standard-UIC fuer das Terminal (/UIC). - Ausgabe des Status aller Terminals (bestimmt durch das angege- bene Schluesselwort). - Ausgabe von Statistiken ueber den dynamischen Speicherbereich (/POOL). Privilegierte Options: - Festlegen von Kenndaten fuer irgendein Geraet in dem System (/BUF, /ESCSEQ, /LOWER). - Festlegen des Standard-UIC fuer jedes Terminal in dem System (/UIC). - Festlegen des System-UIC, der fuer das Kommando LOAD und die Form des Kommandos RUN, bei der eine Task automatisch instal- liert wird, verwendet wird (/SYSUIC). - Setzen des privilegierten Status eines jeden Terminals in dem System (/PRIV). - Setzen des abhaengigen Status fuer Terminal (/SLAVE). - Setzen von Geraeten auf den oeffentlichen Status, so dass jeder Nutzer im System auf dieses Geraet zugreifen kann (/PUB). - Erzeugung von Partitions oder Sub-Partitions (/MAIN oder /SUB). - Vergroesserung des dynamischen Speicherbereiches (/POOL). - Verschieben der Obergrenze der Partition. - Veraendern der Poolbegrenzungsparameter, die von der Pool- Monitoring-Task benutzt werden. - Erlauben einer Schreibpruefung bei Geraeten, bei denen dies moeglich ist (/WCHK). - Angabe der maximalen Anzahl der E/A-Pakete, die in einer sepa- raten Warteschlange gefuehrt werden (/MAXPKT). - Angabe der maximalen Laenge, auf die eine Task mit Hilfe einer Systemanweisung erweitert werden kann (/MAXEXT). - Erlauben oder Verhindern des Anmeldens von Terminals in einem Mehrnutzersystem (/LOGON). Der falsche Gebrauch des SET-Kommandos von einem privilegierten Terminal kann zu einer Situation fuehren, bei der selbst privile- gierte Bedienereingaben nicht akzeptiert werden. Es sollten die folgenden zwei Situationen vermieden werden: - Alle privilegierten Terminals in dem System sind in dem ab- haengigen Zustand gesetzt. Ueber nichtprivilegierte Terminals koennen keine privilegierten Kommandos gegeben werden, so dass die privilegierten Terminals aus dem abhaengigen Zustand nicht zurueckgesetzt werden koennen (siehe Beschreibung des Schlues- selwortes /SLAVE). - Die Pufferlaenge aller privilegierten Bediengeraete ist kleiner als 14 Bytes. Der Puffer ist dann zu kurz, um wichtige Komman- dos zu uebernehmen, um die Systembedienung fortzusetzen oder den Status der anderen Bediengeraete zu aendern (siehe Be- schreibung des Schluesselwortes /BUF). Einige Options des SET-Kommandos sind bei der Systemgenerierung einzuschliessen (/ESCSEQ, /LOGON, /MAXEXT, /PFn, /MAXPKT, /PUB und /WCHK). Wird ein Kommando gegeben, dessen angegebene Option nicht generiert wurde, so hat dieses Kommando keine Wirkung. 159 Bemerkungen: - Wenn eine Partition eine installierte Task oder einen geladenen Driver enthaelt und ein Schluesselwort (z.B. /NOMAIN oder /NOSUB) versucht, die Partition zu beseitigen, weist das System das Kommando zurueck. - Wird mit einem Kommando eine Main-Partition eliminiert, so werden auch alle ihre Sub-Partitions mit diesem Kommando gleichzeitig eliminiert. Ein Kommando, mit dem eine Sub-Parti- tion eliminiert wird, bewirkt nur das Entfernen dieser Sub- Partition. - Wenn versucht wird, mit einem Kommando eine Main-Partition zu entfernen, die Sub-Partitions besitzt, in denen eine Task in- stalliert ist, weist das System dieses Kommando so lange ab, bis die Task von der Sub-Partition entfernt ist. - Wird eine Partition neu definiert, so darf der Name als Parti- tionname nicht schon vorhanden sein. Ausserdem darf eine Main-Partition keine andere Main-Partition ueberlappen und die Sub-Partition einer Main-Partition darf andere Sub-Partitions dieser Main-Partition nicht ueberlappen. Eine Ausnahme bilden die Dev-Partitions, sie koennen sich ueberlappen. Sub-Partitions koennen nicht auf der E/A-Seite eingerichtet werden. - In systemgesteuerten Partitions kann mit dem SET-Kommando keine Sub-Partition definiert werden. Ein Versuch, eine Sub-Partition in einer systemgesteuerten Partition zu definieren, wird abge- wiesen. Die Exekutive definiert dynamisch Sub-Partitions in einer systemgesteuerten Partition, wenn diese fuer Tasks benoe- tigt werden, die in systemgesteuerten Partitions installiert werden sollen. - Alle Partitions ausser der residenten Lader-Partition LDRPAR werden durch das Schluesselwort /POOL wie Nutzer-Partitions be- handelt. So wird z.B. auch SYSPAR als eine Nutzer-Partition betrachtet. - Wird der dynamischen Speicherregion (Pool) Speicherplatz zugewiesen, kann der Speicherplatz nicht mehr zur Nutzung in den Partitions genommen werden. - Wurde ein Geraet ueber das MCR-Kommando REDIRECT auf ein anderes umgewiesen, so wird die entsprechende Systemeigenschaft fuer das aktuelle Geraet festgelegt. In gleicher Weise wirkt der Anzeige-Modus bei fehlenden Parametern hinter dem Schlues- selwort. Zusaetzlich erfolgt hinter dem umgewiesenen Geraet die Mitteilung, auf welches Geraet umgewiesen wurde. - Txnn: in den Schluesselwoertern kennzeichnet TG- und TT- Terminals. Beispiele --------- >SET /BRO=TT3: ------------- Erlaubt die Broadcast-Option fuer TT3: >SET /BRO -------- BRO=CO0: BRO=TT2: Zeigt alle Terminals an, bei denen die Broadcast-Option frei- gegeben ist. 160 >SET /NOBRO=TT4: --------------- Sperrt die Broadcast-Option fuer TT4: >SET /NOBRO ---------- NOBRO=TT3: NOBRO=TT4: Zeigt alle Terminals an, bei denen die Broadcast-Option ge- sperrt ist. >SET /BUF=LP0: ------------- BUF=LP0:132. Zeigt die augenblickliche Puffergroesse des LP0: an. >SET /BUF=TT1:80. ---------------- Setzt die Puffergroesse von TT1: auf 80(10). >SET /CRT=TT3: ------------- Erlaubt die Rueckwaertstreichen-Option fuer das Terminal TT3: >SET /CRT -------- CRT=TT3: CRT=TT4: Zeigt alle Terminals an, bei denen die Rueckwaertstreichen- Option erlaubt ist. >SET /NOCRT=TT4: --------------- Sperrt die Rueckwaertstreichen-Option fuer TT4: >SET /NOCRT ---------- NOCRT=TT0: NOCRT=TT4: Zeigt alle Terminals an, bei denen die Rueckwaertstreichen- Option gesperrt ist. >SET /DCL=TT2: ------------- Erlaubt die DCL-Kommandoerkennung fuer TT2: >SET /DCL -------- DCL=TT2: DCL=TT4: Zeigt alle Terminals an, die DCL-Kommandos erkennen. >SET /EBC=TT3: ------------- Erlaubt die EBC-Option fuer Terminal TT3:. 161 >SET /EBC -------- EBC=TT3: EBC=TT4: Zeigt alle Terminals an, bei denen die EBC-Option erlaubt ist. >SET /NOEBC ---------- NOEBC=TT0: NOEBC=TT1: Zeigt alle Terminals an, bei denen die EBC-Option gesperrt ist. >SET /NOEBC=TT3: --------------- Sperrt die EBC-Option fuer das Terminal TT3: >SET /ECHO=TT3: -------------- Erlaubt die Echo-Option fuer Terminal TT3: >SET /ECHO --------- ECHO=TT1: ECHO=TT3: Zeigt alle Terminals an, bei denen die Echo-Option gilt >SET /NOECHO ----------- NOECHO=TT0: NOECHO=TT2: Zeigt alle Terminals an, die die eingetasteten Zeichen nicht als Echo senden. >SET /NOECHO=TT3: ---------------- Sperrt die Echo-Option fuer das Terminal TT3:. >SET /ESCSEQ=TT3: ---------------- Richtet das Terminal TT3: als ein Terminal ein, welches ESC- Folgen senden und empfangen kann. >SET /ESCSEQ ----------- ESCSEQ=TT3: ESCSEQ=TT5: Zeigt alle Terminals an, die ESC-Folgen senden und empfangen koennen. >SET /NOESCSEQ=TT3: ------------------ Sperrt die ESC-Folgeerkennung fuer TT3: 162 >SET /NOESCSEQ ------------- NOESCSEQ=TT0: NOESCSEQ=TT1: NOESCSEQ=TT3: Zeigt alle Terminals an, die keine ESC-Folgen senden und emp- fangen koennen. >SET /FDX=TT1: ------------- TT1 wird als Vollduplex-Terminal des TT-Drivers deklariert. >SET /FDX -------- FDX=TT1: FDX=TT2: Zeigt alle Vollduplex-Terminals des TT-Drivers an. >SET /NOFDX=TT3: --------------- Sperrt die Vollduplex-Option fuer das Terminal TT3:. >SET /NOFDX ---------- NOFDX=TT0: NOFDX=TT2: Zeigt alle Terminals an, die Eingabe und Ausgabe nicht gleichzeitig verarbeiten. >SET /FORMFEED=TT3: ------------------ TT3: wird als Terminal mit einem Hardware-Formularvorschub deklariert. >SET /FORMFEED ------------- FORMFEED=TT2: FORMFEED=TT3: Zeigt alle Terminals an, die einen Hardware-Formularvorschub besitzen. >SET /HFILL=TT3: --------------- HFILL=TT3:2 Zeigt an, dass beim Terminal TT3: 2 Fuellzeichen nach einem "Carriage return" bei Ausgabe auf das Terminal angefuegt wer- den. >SET /HFILL=TT3:3 ---------------- Legt fuer TT3: fest, dass 3 Fuellzeichen einem "Carriage return" folgen. >SET /HHT=TT3: ------------- Gibt an, dass das Terminal TT3: Hardware-Horizontaltabulatoren besitzt. 163 >SET /HHT -------- HHT=TT2: HHT=TT3: Zeigt alle Terminals an, die einen Hardware- Horizontaltabulator haben. >SET /LINES=TT3:20 ----------------- Legt die Anzahl der Bildschirmzeilen (20 Zeilen oktal) fuer das Terminal TT3: fest. >SET /LINES=TT3: --------------- LINES=TT3:24. Zeigt die Anzahl der Zeilen pro Seite (24 Zeilen dezimal) fuer TT3: an. >SET /LOWER=TT3: --------------- Die Kleinbuchstaben, die von TT3: empfangen werden, werden nicht in Grossbuchstaben umgewandelt. >SET /LOWER ---------- LOWER=LP0: LOWER=TT3: Zeigt alle Geraete an, bei denen Kleinbuchstaben nicht in Grossbuchstaben umgewandelt werden. >SET /NOLOWER ------------ NOLOWER=LP1: NOLOWER=TT1: NOLOWER=TT2: Zeigt alle Geraete an, bei denen automatisch Kleinbuchstaben in Grossbuchstaben umgewandelt werden. >SET /MAIN=SYSPAR:156:140:TASK ----------------------------- Definiert eine Main-Partition, genannt SYSPAR, als nutzer- gesteuerte Partition, deren Basisadresse 15600(8) betraegt und die 14000(8) Bytes lang ist. >SET /MAIN=SYSPAR ---------------- MAIN=SYSPAR:0156:0140:TASK Zeigt die Parameter der Main-Partition SYSPAR an, Es ist zu beachten, dass auch die Parameter der Sub-Partition angezeigt werden, wenn es sich bei der Main-Partition um eine Partition handelt, die Sub-Partitions enthaelt. >SET /NOMAIN=SYSPAR ------------------ Beseitigt die Main-Partition SYSPAR aus dem System. 164 >SET /MAXEXT=16.K ---------------- Legt fest, dass eine Task sich selbst auf die maximale Groesse von 16.K Worten erweitern kann. >SET /MAXEXT ----------- MAXEXT=1200 Zeigt die augenblickliche maximale Groesse an, auf die sich eine Task erweitern kann (1200 oktale 64-Byte-Bloecke entsprechen einer Groesse von 20.K Worten). >SET /MAXPKT=12. --------------- Legt die maximale Anzahl von E/A-Paketen zur Optimierung der E/A-Bedienung auf 12(10) fest. >SET /MAXPKT ----------- MAXPKT=12.:3. Zeigt die maximale (12.) und augenblickliche (3) Anzahl der E/A-Pakete an. >SET /MCR=TT4: ------------- Erlaubt die MCR-Kommandoerkennung fuer TT4: >SET /MCR -------- MCR=TT1: MCR=TT2: Zeigt alle Terminals an, die MCR-Kommandos erkennen. >SET /PF1=PIP:TG1: ----------------- Zuordnen von PIP zur PF-Taste 1 fuer TG1: >SET /PF1:TG1: ------------- PF1 = PIP Anzeige der Zuordnung der PF-Taste 1 fuer TG1: >SET /PF:TG1: ------------ PF1 = PIP PF2 = MAC PF3 = TKB PF5 = EDI Anzeige der Zuordnungen fuer TG1: >SET /PF=MAC:TG1: ---------------- PF2 = MAC Anzeige der der Task ...MAC zugeordneten PF-Taste fuer TG1: >SET /PLCTL ---------- PLCTL=1600.:600.:200.:51. 165 Zeigt die augenblicklichen Werte fuer die Poolgrenzen. >SET /POOL=1000 -------------- Die Speicherposition 100000(8) wird als Beginn der Nutzerpartition festgelegt. >SET /POOL --------- POOL=1000:03200.:06200. >SET /PRIV=TT1: -------------- TT1: wird ein privilegiertes Terminal. >SET /PRIV --------- PRIV=TT0: PRIV=TT1: Zeigt alle privilegierten Terminals an. >SET /NOPRIV=TT1: ---------------- TT1: wird ein nichtprivilegiertes Terminal. >SET /NOPRIV ----------- NOPRIV=TT1: NOPRIV=TT2: Zeigt alle nichtprivilegierten Terminals an. >SET /PUB=DK1: ------------- DK1: wird ein oeffentliches Geraet. >SET /PUB -------- PUB=DK1: PUB=LP0: Zeigt alle oeffentlichen Geraete an. >SET /NOPUB=DK2: --------------- DK2: wird ein nichtoeffentliches Geraet. >SET /NOPUB ---------- NOPUB=DK2: NOPUB=LP0: Zeigt alle privaten und nichtoeffentlichen (nicht zugeteilten) Geraete an. >SET /RNDC --------- RNDC=5. Zeigt die augenblickliche Laenge des Zeitscheibenintervalls an (5 Takte). >SET /RNDC=10. ------------- Legt die Laenge des Intervalls auf 10(10) Takte fest. 166 >SET /RNDH --------- RNDH=150. Zeigt die augenblickliche hoechste Prioritaetsklasse an, die fuer die Zeitscheibensteuerung beruecksichtigt wird. >SET /RNDH=120. -------------- Legt die hoechste Prioritaetsklasse auf 120(10) fest. >SET /RNDL --------- RNDL=1. Zeigt die augenblickliche niedrigste Prioritaetsklasse an, die fuer die Zeitscheibensteuerung beruecksichtigt wird. >SET /SLAVE ---------- SLAVE=TT1: SLAVE=TT2: Zeigt alle Terminals an, die den Slave-Status haben. >SET /SLAVE=TT3: --------------- Richtet TT3: als ein Terminal ein, dass nur Daten eingeben kann, die durch eine Task angefordert werden. >SET /NOSLAVE ------------ NOSLAVE=CO0: NOSLAVE=TT3: Zeigt alle Nicht-Slave-Terminals an. >SET /NOSLAVE=TT4: ----------------- Richtet TT4: als ein Nicht-Slave-Terminal ein. >SET /SUB=SYSPAR:MCRPAR:1520:22 ------------------------------ Es wird die Sub-Partition MCRPAR in der Main-Partition SYSPAR definiert. Die Basisadresse ist 152000(8) und ihre Laenge betraegt 2200(8) Bytes. >SET /NOSUB=SYSPAR:MCRPAR ------------------------ Die Sub-Partition MCRPAR wird aus der Main-Partition SYSPAR entfernt. >SET /SWPC --------- SWPC=30. Zeigt die augenblickliche Zahl der Uhrtakte fuer das Auslagerungsintervall an. >SET /SWPC=50. ------------- Legt das neue Auslagerungsintervall auf 50(10) fest. 167 >SET /SWPR --------- SWPR=5. Zeigt den augenblicklichen Wert fuer den Auslagerungs- prioritaetsbereich an. >SET /SYSUIC ----------- SYSUIC=[1,54] Zeigt den augenblicklichen System-UIC an. >SET /SYSUIC=[3,54] ------------------ Legt den System-UIC auf [3,54] fest. >SET /TERM=TT1: -------------- TERM=TT1:LA36 Legt TT1: als ein LA36-Terminal fest. >SET /LA36=TT1: -------------- Hat die gleiche Wirkung wie das vorige Beispiel. TT1: wird als ein LA36-Terminal eingerichtet. >SET /TOP=TSTPAR:+5 ------------------ Die Obergrenze von TSTPAR wird um fuenf 64-Bytes-Bloecke nach oben verschoben. >SET /TOP=TSTPAR:-* ------------------ Die Obergrenze von TSTPAR wird so weit wie moeglich nach unten verschoben. >SET /TYPEAHEAD -------------- TYPEAHEAD=CO0: TYPEAHEAD=TT0: TYPEAHEAD=TT1: TYPEAHEAD=TT3: Zeigt alle Terminals an, fuer die der TT-Driver die Eingabezeichen in einen Puffer speichert, bevor er sie an eine Task uebergibt. >SET /TYPEAHEAD=TT4: ------------------- Erlaubt die Typeahead-Option fuer TT4: >SET /UIC -------- UIC=[200,50] Zeigt den augenblicklichen Standard-UIC fuer das Terminal TI: an. >SET /UIC=[100,22] ----------------- Legt den Standard-UIC fuer das Terminal TI: auf [100,22] fest. 168 >SET /UIC=TT3: ------------- UIC=[100,12] Zeigt den augenblicklichen Standard-UIC fuer TT3: an. >SET /WCHK --------- WCHK=DK0: WCHK=DK5: Zeigt alle FM16-D-Plattengeraete an, bei denen die Schreib- pruefung erlaubt ist. >SET /WCHK=DK1: -------------- Erlaubt die Schreibpruefung fuer DK1: >SET /WRAP --------- WRAP=TT0: WRAP=TT3: Zeigt alle Terminals an, bei denen die Wrap-around-Option eingeschaltet ist. 169 ---------------------------------------------------------------- | System Service Message (P) | SSM | | - - | | ---------------------------------------------------------------- 3.3.40 Systemwartungsnachricht -------------------------------- Format des Kommandos -------------------- SSM message message eine beliebige Zeichenkette mit maximal 79 Zeichen Funktionsbeschreibung --------------------- Das SSM-Kommando fuegt Text in die Fehlerprotokolldatei ein. Dieser Text erscheint in Fehlerprotokollen, die durch die Programme der Fehlerprotokollierung erzeugt werden. Beispiel -------- >SSM Testing Volume Integrity on DK1:, Possible Format Errors. ------------------------------------------------------------- Fuegt die Nachricht in die Fehlerprotokolldatei ein. 170 ---------------------------------------------------------------- | TASKLIST - ATL FORMAT (NP) | TAL | | - - - | | ---------------------------------------------------------------- 3.3.41. Liste der Tasks -------------------------- Format des Kommandos --------------------- TAL [taskname] taskname Name der gewuenschten Task Funktionsbeschreibung --------------------- Mit Hilfe dieses Kommandos koennen auf dem Terminal Informati- onen ueber alle Tasks, die in dem System installiert sind, ausge- geben werden. Interessieren nur die Informationen ueber eine be- stimmte Task, ist der Name dieser Task im Kommando anzugeben. Das Ausgabeformat der Liste stimmt mit dem Format beim Kommando ATL ueberein. Die Beschreibung des Ausdrucks ist beim ATL-Kommando zu finden. Beispiele --------- >TAL --- LDR... 117620 LDRPAR 117734 00120000-00122600 PRI - 248. DPRI - 248. Status: -CHK FXD STP -PMD PRV NSD TI - C00: IOC - 0. BIO - 0. EFLG - 000001 000000 PS - 170000 PC - 120354 REGS 0-6 120212 004506 177777 111036 056010 111004 120166 TKTN 110670 SYSPAR 115570 00162600-00172700 PRI - 248. DPRI - 248. Status: -EXE OUT -PMD PRV NSD CAL TI - None IOC - 0. BIO - 0. EFLG - 000000 000000 ...RMD 113764 GEN 115414 00241100-00270300 PRI - 225. DPRI - 225. Status: -EXE OUT -CHK -PMD PRV TI - None IOC - 0. BIO - 0. EFLG - 000000 000000 F11MSG 113304 GEN 115414 00241100-00247000 PRI - 200. DPRI - 200. Status: -EXE OUT -PMD PRV TI - None IOC - 0. BIO - 0. EFLG - 000000 000000 MTAACP 113170 GEN 115414 00241100-00256000 PRI - 200. DPRI - 200. Status: -EXE OUT ACP PRV NSD TI - None IOC - 0. BIO - 0. EFLG - 000000 000000 ...DMO 113420 GEN 115414 00241100-00255700 PRI - 160. DPRI - 160. Status: -EXE OUT -PMD PRV TI - TT0: IOC - 0. BIO - 0. EFLG - 177776 000001 171 MCR... 112144 SYSPAR 115570 00162600-00172700 PRI - 160. DPRI - 160. Status: STP -PMD PRV CLI NSD CAL TI - TT0: IOC - 0. BIO - 0. EFLG - 000001 040000 PS - 170000 PC - 122536 REGS 0-6 000000 120476 122170 120432 007014 116030 120366 >TAL ...LBR ---------- ...LBR 061120 GEN 115414 00241100-00301100 PRI - 50. DPRI - 50. Status: -EXE OUT -PMD TI - None IOC - 0. BIO - 0. EFLG - 000000 000000 172 ---------------------------------------------------------------- | TASKLIST (NP) | TAS | | --- | | ---------------------------------------------------------------- 3.3.42. Liste der installierten Tasks --------------------------------------- Format des Kommandos -------------------- TAS[KLIST] TAS[KLIST][taskname][/DEV=ddnn:] taskname Name einer speziellen Task /DEV=ddnn: Bewirkt das Anzeigen der Namen und des Zustandes aller vom angegebenen Geraet aus installierten Task. Wird sowohl taskname als auch /DEV angegeben, dann zeigt das System Informationen ueber die von diesem Geraet installierte Task an. Funktionsbeschreibung --------------------- Das Kommando TAS erzeugt auf dem Terminal eine Ausgabek, der eine Beschreibung jeder installierten Task enthaelt. Die einzelnen Spalten des Liste haben folgende Bedeutung: 1. Name der Task 2. Versionsnummer der Task 3. Name der Partition 4. Prioritaet der Task 5. Laenge der Task in Bytes (oktal) 6. Geraet, von dem die Task geladen wird 7. Erste logische Blocknummer (oktal) der Task auf dem externen Speicher 8. Status der Task Die Laenge der Task wird als 6-stellige Zahl ausgegeben. Die Spalte fuer den Status der Task bleibt entweder frei oder sie enthaelt die Begriffe FIXED, was bedeutet, dass die Task fest im Speicher fixiert ist, oder CHECKPOINTED, womit angezeigt wird, dass die Task ausgelagert wurde, weil der Speicherplatz fuer eine Task hoeherer Prioritaet benoetigt wurde. Wenn die Version nicht angegeben oder unsinnig ist (Rest der Zeile wird nach links verschoben), dann wurde die Task von einer Platte installiert, die nicht mehr auf dem entsprechenenden Lauf- werk aufliegt. 173 Beispiele --------- >TAS --- LDR... 13.02 LDRPAR 248. 002600 LB0:-00004333 FIXED TKTN 05.00 SYSPAR 248. 010100 LB0:-00006306 ...RMD 2.00 GEN 225. 027200 LB0:-00006546 F11MSG 13.00 GEN 200. 005700 LB0:-00006040 MTAACP 14.00 GEN 200. 014700 LB0:-00007341 ...DM0 04.00 GEN 160. 014600 LB0:-00005101 MCR... 4.00 SYSPAR 160. 010100 LB0:-00005736 ...MOU 26.00 GEN 160. 037700 LB0:-00005762 ...MCR 2.01 GEN 160. 020000 LB0:-00003210 F11ACP 05.00 FCPPAR 149. 044200 LB0:-00005234 PMT... 2.00 GEN 148. 006300 LB0:-00005714 COT... 2.0 GEN 145. 017100 LB0:-00005120 SHF... 6.00 SYSPAR 105. 010100 LB0:-00006541 ...INS 8.00 GEN 100. 034500 LB0:-00005646 ...SAV 04.00 GEN 100. 033200 LB0:-00006446 ...UFD 05.00 GEN 100. 005700 LB0:-00006316 ...ACS 3.00 GEN 70. 013700 LB0:-00007323 PRT... 08.04 GEN 70. 010200 LB0:-00006674 ...BRU 1.04 GEN 70. 157400 LB0:-00006053 ...EDI M12.00 GEN 65. 040000 LB0:-00002346 ...AT. 6.0 GEN 64. 060000 LB0:-00005362 ...INI 23.00 GEN 60. 034700 LB0:-00005517 ...BOO 06.02 GEN 50. 021700 LB0:-00005040 ...MAG 02.00 GEN 50. 031500 LB0:-00007467 ...LOA 4.0 GEN 50. 032300 LB0:-00006326 ...HEL 2.00 GEN 50. 037700 LB0:-00007153 ...BYE 05.00 GEN 50. 012600 LB0:-00007076 ...BRO 05.00 GEN 50. 030300 LB0:-00007270 ...UNL 4.0 GEN 50. 024500 LB0:-00006363 ...PIP M1344 GEN 50. 060000 LB0:-00002213 ...VFY MO528 GEN 50. 040000 LB0:-00007613 ...MAC VO5.00 GEN 50. 070000 LB0:-00002621 ...TKB M40.10 GEN 50. 070000 LB0:-00003374 ...LBR 07.00 GEN 50. 040000 LB0:-00002511 >TAS MCR ------- ...MCR 2.01 GEN 160. 020000 LB0:-00003210 >TAS MCR/DEV=DK7: ---------------- ...MCR 2.01 GEN 160. 020000 LB0:-00003210 174 ---------------------------------------------------------------- | TIME (NP,P) | TIM | | --- | | ---------------------------------------------------------------- 3.3.43. Zeitkommando ---------------------- Format des Kommandos -------------------- TIM[E] [h:min[:sec]] [m1/day/year] oder TIM[E] [h:min[:sec]] [day-m2-year] Die Parameter haben folgende Bedeutung: h - Stunden (Bereich 0 - 23) min - Minuten (Bereich 0 - 59) sec - Sekunden (Bereich 0 - 59) (wahlfrei) m1 - Numerische Darstellung des Monats (Bereich 1 - 12) m2 - 3 Zeichen umfassende Abkuerzung des Monats (in engl. Sprache: JAN, FEB, MAR, APR, MAY, JUN, JUL, AUG, SEP, OCT, NOV, DEC) day - Tag (Bereich 1 - 31) year - Jahr (Bereich 0 - 99). Es werden die letzten beiden Zif- fern der Jahreszahl (bezogen auf 1900) eingegeben. Funktionsbeschreibung --------------------- Das Zeitkommando realisiert folgende Funktionen: - Eingabe der Uhrzeit (privilegiert) - Eingabe des Datums (privilegiert) - Ausgabe von Datum und Uhrzeit Wenn in dem Kommando weder die Zeit noch das Datum angegeben sind, werden die augenblickliche Zeit und das Datum auf dem Bediengeraet ausgegeben. Die zur Angabe des Datums verwendete Form beeinflusst das Anzeigeformat nicht. Das Datum wird stets als Tag-Monat-Jahr angezeigt. Ist in dem Kommando nur die Zeit angegeben, wird nur die Zeit neu gesetzt, waehrend das Datum unveraendert bleibt. Ist in dem Kom- mando nur das Datum angegeben, so wird nur dieses veraendert und die Zeit bleibt unveraendert. Die Reihenfolge der Eingabe von Zeit und Datum in dem Kommando ist beliebig. Alle numerischen Werte sind dezimal einzugeben. Es ist kein abschliessender Punkt erforderlich bzw. zugelassen. Beispiele --------- >TIM --- 11:03:41 07-MAY-87 Die augenblickliche Zeit und das Datum werden ausgegeben. 175 >TIM 8:15 5/9/87 --------------- Die Uhrzeit wird auf 8:15:00 Uhr gesetzt und das Datum auf den 9.MAI 1987. >TIM 1-JUN-87 ------------ Das Datum wird auf den 1. Juni 87 gesetzt. Die Zeit bleibt un- veraendert. 176 ---------------------------------------------------------------- | USER FILE DIRECTORY (NP,P) | UFD | | - - - | | ---------------------------------------------------------------- 3.3.44. Erstellen eines Nutzerdateiverzeichnisses --------------------------------------------------- Format des Kommands ------------------- UFD ddnn:[datentraegername][g,m][/schluesselwort(er)] Die Parameter haben folgende Bedeutung: ddnn: - Datentraeger, auf dem der UFD erstellt werden soll. Standard: keiner, muss immer angegeben werden datentraegername - Wenn er angegeben wird, erfolgt ein Vergleich mit dem VOL1-Kennsatz des Datentraegers. Wenn die Namen uebereinstimmen, kann ein UFD er- stellt werden, im anderen Fall wird das Kom- mando zurueckgewiesen. Standard: Es erfolgt keine Pruefung. [g,m] - Der UIC fuer das UFD. Der UIC legt den Eigen- tuemer fuer das UFD fest. Die Variablen g und m stellen die Gruppen- und Mitgliedsnummern dar und koennen sich im Bereich von 1 bis 377(8) bewegen. Die eckigen Klammern sind not- wendige Syntax. Standard: keiner, muss immer angegeben werden. schluesselwoerter: /ALLOC=anzahl - Anzahl der Eintrittspunkte in der Verzeichnis- datei. Die angegebene Anzahl wird auf das naechste Vielfache von 32 aufgerundet. Ein Eintrittspunkt belegt 8 Worte. Standard: /ALLOC=32. /PRO=[system,owner,group,world] - Legt die Zugriffsrechte fuer die Verzeichnis- datei fest. Die Schutzmaske besteht aus 4-Codegruppen in dem Schutzwort (vgl. 1.4.). Standard: /PRO=[RWED,RWED,RWED,R] Funktionsbeschreibung --------------------- Mit diesem Kommando wird ein Nutzerdateiverzeichnis (UFD) auf einem Datentraeger mit dem Dateiformat FM16-D erstellt. Der Name dieses Verzeichnisses wird in das Hauptdateiverzeichnis (MFD) eingetragen. Der Datentraeger muss, bevor das UFD-Kommando gege- ben werden kann, bereits mit den Kommandos INI und MOU vorberei- tet sein. 177 Beispiel -------- >UFD DK3:[200,27] ---------------- Es wird ein Nutzerdateiverzeichnis (UFD) fuer den UIC [200,27] auf der Platte DK3: erstellt. Der Name (200027.DIR;1) des UFD wird in das Hauptdateiverzeichnis eingetragen. Das Loeschen eines UFD wird wie folgt durchgefuehrt: PIP>[0,0]gruppennummermitgliedsnummer.DIR;*/DE Das Loeschen der darin enthaltenen Dateien muss vorher geschehen, da sonst der Platz, den diese Dateien belegen, fuer die weitere Benutzung verlorengeht. 178 ---------------------------------------------------------------- | UNBLOCK (NP,P) | UNB | | --- | | ---------------------------------------------------------------- 3.3.45. Aufheben des Blockierens --------------------------------- Format des Kommandos -------------------- UNB[LOCK] [taskname] taskname Name der Task, deren Blockierung aufgehoben werden soll. Wenn man taskname weglaesst, dann hebt das Kommando die Blockierung der Task TTnn auf. Funktionsbeschreibung --------------------- Das Kommando UNBLOCK bewirkt die Fortsetzung einer vorher blockierten aktiven Task, oder es ermoeglicht, dass eine vorher blockierte ruhende Task aktiv werden kann, wenn dies gefordert wird. (Siehe Beschreibung des Kommandos BLOCK.) Ein nichtprivilegierter Nutzer kann die Blockierung der aktiven Task aufheben, die von seinem Terminal aus blockiert wurde. Ein privilegierter Nutzer kann die Blockierung bei einer belie- bigen Task aufheben. Das System hebt automatisch die Blockierung bei einer Task auf, wenn sie abgebrochen wird. Beispiel -------- >UNB TST ------- Die Blockierung der Task TST wird aufgehoben und damit die Fort- setzung der Ausfuehrung gestattet. 179 ---------------------------------------------------------------- | UNFIX (P) | UNF | | --- | | ---------------------------------------------------------------- 3.3.46. Aufheben des Fixierens -------------------------------- Format des Kommandos -------------------- UNF[IX] taskname taskname Name der Task, fuer die die Fixierung auf- gehoben wird Funktionsbeschreibung --------------------- Mit diesem Kommando kann der Bediener eine im Hauptspeicher fixierte Task wieder freigeben. Es wird die Wirkung des Kommandos FIX aufgehoben. Die Partition wird fuer die Abarbeitung anderer Tasks freigegeben. Beispiel -------- >UNF XYZ -------- Die Fixierung der Task XYZ im Hauptspeicher wird aufgehoben. Ihre Partition steht anderen Tasks zur Verfuegung. 180 ---------------------------------------------------------------- | UNLOAD (P) | UNL | | --- | | ---------------------------------------------------------------- 3.3.47. Ausladen eines Drivers ------------------------------- Format des Kommandos -------------------- UNL[OAD] dd: dd: 2 KOI-7-Zeichen umfassende Geraetebezeichnung Funktionsbeschreibung --------------------- Mit dem Kommando UNL wird ein ladbarer Driver fuer das Geraet dd: aus dem Hauptspeicher entfernt. Ist ein Geraet eingegliedert und an eine Task angeschlossen oder wartet es auf die Beendigung einer E/A-Anforderung, kann das Kommando nicht ausgefuehrt werden. Fuer die Ausfuehrung des Kommandos UNL ist es erforderlich, dass sich die Symboltabellendatei des Drivers im System-UFD auf der Systemplatte befindet. Der System-UIC wird mit dem Kommando SET /SYSUIC festgelegt. Im BS OMOS 1630 ist der System-UIC [1,54]. Die Datenbasis des Drivers wird mit UNL nicht entladen, auch wenn sie bei LOA ebenfalls geladen wurde. Beispiel -------- >UNL LP: ------- Ausladen des Drivers fuer einen Paralleldrucker. 181 --------------------------------------------------------------- | UNSTOP (NP,P) | UNS | | --- | | --------------------------------------------------------------- 3.3.48. Fortsetzen einer intern gestoppten Task ------------------------------------------------ Format des Kommandos -------------------- UNS[TOP] [taskname] taskname Name der Task, deren Stop-Zustand aufgeho- ben wird. Laesst man taskname weg, wird der Stop- Zustand der Task TTnn aufgehoben. Funktionsbeschreibung --------------------- Das Kommando UNSTOP bewirkt die Fortsetzung einer Task, die intern durch die Exekutive gestoppt wurden. Beispiele fuer gestoppte Tasks sind solche, die eine STOP$- bzw. RCST$-Anweisung gegeben haben. Ein nichtprivilegierter Nutzer kann den Stop-Zustand nur bei Tasks aufheben, die von seinem Terminal aus abgearbeitet werden. Ein nichtprivilegierter Nutzer kann den Stop-Zustand einer belie- bigen Task aufheben. Beispiel -------- >UNS TST ------- Das Stop-Bit fuer die Task TST wird geloescht und die Fortsetzung der Task gestattet. 182 ---------------------------------------------------------------- | UPDATE (P) | UPD | | --- | | ---------------------------------------------------------------- 3.3.49. Sicherungssystem fuer Festplattenspeicher -------------------------------------------------- Formate des Kommandos --------------------- UPD devx:=devy: UPD =devn: UPD devn: UPD devy:/OFF dev Geraeteeinheit x Nr. der Sicherungsplatte y Nr. der Arbeitsplatte n Nr. der Sicherungs- oder Arbeitsplatte Funktionsbeschreibung --------------------- Das Sicherungssystem fuer Festplattenspeicher gibt dem Anwender die Moeglichkeit, Dateien eines Festplattenspeichers ohne zu- saetzlichen anwendungstechnischen Aufwand auch auf einer Sicherungsplatte zu fuehren. Das Sicherungssystem ist eine gene- rierbare Komponente im System OMOS 1630 und verwaltet nur ein Plattenpaar (vgl. Anleitung fuer Programmierer, Teil 3). Es sind zwei Festplattenspeicher gleichen Typs und gleicher Kapa- zitaet notwendig. Das Sicherungssystem unterscheidet zwei Typen von Platten entsprechend ihrer Nutzung, die Arbeitsplatte (work device) und die Sicherungsplatte (safety device). Mittels Komman- do wird einer Arbeitsplatte jeweils eine Sicherungsplatte zuge- ordnet. Jede Schreiboperation auf der Arbeitsplatte wird parallel auf der Sicherungsplatte durchgefuehrt. Das Lesen der Daten er- folgt dagegen nur von der Arbeitsplatte. Die Sicherungsplatte ist durch den Anwender nicht ansprechbar. Bei Ausfall der Arbeits- platte wird diese aus dem Sicherungssystem ausgegliedert und die Sicherungsplatte als Arbeitsplatte benutzt, d.h. Datenuebertra- gungen erfolgen nur noch mit der Sicherungsplatte. Nach dem Wiedereingliedern der Platte mittels Kommando UPD devy: dient sie wieder als Arbeitsplatte und die Sicherungsplatte uebernimmt wieder die Funktion der Datensicherung. Das Kommando zur Wieder- eingliederung einer Platte in das Sicherungssystem fuehrt automa- tisch die Ak-tualisierung der eingegliederten Platte aus, d.h. es werden alle Dateien von der Arbeitsplatte mit ihrem aktuellen Zustand auf die eingegliederte Platte uebertragen. Die Aktuali- sierung der Platten nach dem Wiedereingliedern laeuft parallel zur normalen Arbeit des Sicherungssystems. 183 Beschreibung der Kommandos: Folgende Kommandoformen sind moeglich: 1. UPD devx:=devy: Die beiden spezifizierten Platten werden in das Sicherungssystem eingegliedert, d.h., der aktuellen Arbeitsplatte devy: wird die Sicherungsplatte devx: zugeordnet. Folgende Voraussetzungen muessen erfuellt sein: - beide Datentraeger muessen mit dem Kommando MOUNT eingegliedert sein - beide Geraete sind noch nicht im Sicherungssystem eingegliedert bzw., wenn sie schon einmal eingegliedert waren, muss devy: eine aktuelle Arbeitsplatte und devx: eine ausgegliederte Si- cherungsplatte sein. Das Kommando wird mit der Ausschrift UPD -- UPDATING devx: quittiert. Nach erfolgter Aktualisierung der in das Sicherungssystem einzugliedernden Platte DMnn: erscheint die Ausschrift UPD -- devy: WORK DEVICE AND devx: SAFETY DEVICE 2. UPD =devx: UPD =devy: Das spezifizierte Geraet wird aus dem Sicherungssystem ausgegliedert. War das Geraet nicht in das Sicherungssystem eingegliedert, bleibt das Kommando ohne Wirkung. War das eingegebene Geraet in das Sicherungssystem eingegliedert, wird die Ausfuehrung des Kommandos mit einer Mitteilung auf dem Bildschirm quittiert. Wurde als Parameter die Sicherungsplatte angegeben, erfolgt als Quittung die Ausschrift UPD -- SAFETY DEVICE NOT READY und das System arbeitet ohne Datensicherung weiter. Ist das angegebene Geraet die Arbeitsplatte, wird sie aus dem Sicherungssystem ausgegliedert und auf die Sicherungsplatte umgeschaltet, falls eine aktuelle Sicherungsplatte vorhanden ist. Das erfolgreiche Umschalten wird dem Bediener durch die Aus- schrift UPD -- devy: WORK DEVICE NOT READY AND REDIRECTED TO devx: mitgeteilt. Ist keine aktuelle Sicherungsplatte vorhanden, ist das Ausgliedern der Arbeitsplatte nicht moeglich und das Kommando wird mit einer Fehlerausschrift zurueckgewiesen. 3. UPD devx: UPD devy: Das spezifizierte Geraet wird wieder in das Sicherungssystem an alter Stelle eingegliedert, d.h., es wird wieder Arbeitsplatte, wenn es Arbeitsplatte war, sonst Sicherungsplatte. 184 Das Kommando wird mit UPD -- UPDATING devx: bzw. UPDATING devy: quittiert. Nach erfolgreicher Aktualisierung der wiedereinzugliedernden Platte erfolgt die Ausschrift UPD -- devy: WORK DEVICE AND devx: SAFETY DEVICE 4. UPD devx:/OFF Die Datensicherung fuer das Plattenpaar devy:/devx: wird ausge- schaltet. Dieses Kommando ist Voraussetzung, wenn der Arbeitsplatte devy: eine neue Sicherungsplatte zugeordnet werden soll. Vorbereitung der Plattenspeicher: Durch das Betriebssystem wird zu den systemeigenen Dateien phy- sisch ueber die logische Blocknummer zugegriffen. Damit die Dateien der zum Sicherungssystem gehoerenden Arbeits- und Siche- rungsplatte nicht nur inhaltlich, sondern auch physisch vollstaendig identisch sind, muessen zunaechst die Platten mit dem Dienstprogramm BAD behandelt werden. Beispiel -------- DM0: kein fehlerhafter Block in der Fehlerblockdatei DM1: Block 100 und 2000 sind in der Fehlerblockdatei eingetragen. INI>DM:TESTA/BAD=[AUTO,MAN] --------------------------- Initialisieren der Platte DM0: mit Eingabe der Fehlerbloecke ueber Terminal, damit sie identisch zu DM1: wird. INI>LBN(S)=100,2000 CTRL/Z --------------- INI>DM1:TESTS/BAD=[AUTO] ------------------------ Initialisieren der Platte DM1: mit automatischer Fehlerblockein- tragung. >MOU DM:TESTA ------------- Eingliedern der Platte DM0: >MOU DM1:TESTS -------------- Eingliedern der Platte DM1: 185 >UPD DM:=DM1: ------------ Festlegung DM0: als Sicherungsplatte, DM1: als Arbeitsplatte und Eingliedern in das Sicherungssystem. >UPD =DM: -------- Ausgliedern von DM0: aus dem Sicherungssystem, das System arbei- tet ohne Sicherungsplatte weiter. >UPD DM: ------- Wiedereingliedern von DM0: in das Sicherungssystem und Aktualisierung der Sicherungsplatte. >UPD DM1:/OFF ------------ Datensicherung fuer das Plattenpaar DM0:/DM1: wird ausgeschaltet. 186 3.4. Fehlermitteilungen ----------------------- 3.4.1. Fehlermitteilungen von MCR bzw. von MCR-Tasks ---------------------------------------------------- Werden von dem Kommandoprogramm bei der Uebernahme bzw. bei der Verarbeitung des Kommandos Fehler erkannt, erfolgt auf dem Terminal, ueber das das Kommando eingegeben wurde, eine Fehler- mitteilung. Diese Fehlermitteilung wird in englischer Sprache ausgegeben. Sie wird angefuehrt von der 3 Buchstaben umfassenden Kurzform des Kommandos. In der nachfolgenden alphabetischen Auf- stellung aller Fehlermitteilungen steht an Stelle dieser Komman- dokurzform der Ausdruck XXX. Einige Fehlermitteilungen schliessen Korrekturmassnahmen ein, die vom Nutzer zu realisieren sind. Das trifft nicht zu fuer Fehlermitteilungen, fuer welche die erforderlichen Korrekturen ersichtlich bzw. in der Beschreibung der Fehlermitteilung enthalten sind. XXX -- Account file open failure Fehler beim Eroeffnen der Nutzerverzeichnisdatei Die Nutzerverzeichnisdatei ist fuer einen anderen Nutzer geoeffnet; oder die Platte, die die Nutzerverzeichnis- datei enthaelt, ist nicht eingegliedert. XXX -- ACP not in system ACP nicht im System Die angegebene Zusatzsteuerroutine ist nicht in dem System installiert. XXX -- Addressing extensions not supported Adresserweiterung wird nicht unterstuetzt Das Kommando versucht, eine Task mit einer virtuellen Sektion (VSECT) in einem System zu installieren, das diese Option nicht unterstuetzt. XXX -- Alignment error Ausrichtungsfehler Es wird versucht, eine Partition zu erzeugen, aber die Basisadresse oder Laenge stimmen nicht mit existierenden Partitions oder der physischen Speichergroesse ueberein. XXX -- Allocation for SYS file exceeds volume limit Zuteilung fuer eine SYS-Datei ueberschreitet die Daten- traegergrenzen Das System kann eine Systemdatei fuer den angegebenen Block nicht zuweisen, weil Fehlerbloecke dazwischenliegen oder das Ende des Datentraegers ueberschritten wird. XXX -- Already marked for dismount Zum Ausgliedern schon vorgemerkt Die Geraeteeinheit ist schon fuer die Ausgliederung vor- gesehen, und die zugehoerige Zusatzsteuerroutine wartet auf Zugriff zu den Datentraegern, um die Ausgliederung vorzunehmen. 187 XXX -- Ambiguous help qualifier Nicht eindeutiger Help-Ausdruck Die Angabe der Ausdruecke im Kommando HELP stimmt nicht mit dem Aufbau der Help-Datei ueberein. Die Kommandozeile ist erneut mit einem vollstaendigen Ausdruck aus der Help-Datei einzugeben. XXX -- Ambiguous help synonym Help-Synonym nicht eindeutig Der Ausdruck, welcher als Synonym verwendet wurde, war nicht eindeutig. XXX -- Ambiguous keyword Schluesselwort nicht eindeutig (command-line) Die Abkuerzung, welche fuer ein Schluesselwort in der Kommandozeile verwendet wurde, war zu kurz, um dieses Schluesselwort von einem anderen unterscheiden zu koennen. Es ist die erneute Eingabe der Kommandozeile mit einer laengeren Form des Schluesselwortes erforderlich. XXX -- Assign failure Zuweisungsfehler Das HELLO-Kommando konnte die logischen Zuweisungen der Anmeldung nicht abschliessen. XXX -- Bad block file corrupt - data ignored Fehlerblockdatei fehlerhaft - Daten werden ignoriert Die Fehlerblockdatei enthaelt fehlerhafte Daten. XXX -- Bad block file full Fehlerblockdatei ist voll Die Platte hat mehr als 102(10) fehlerhafte Bloecke. XXX -- Bad block header I/O error E/A Fehler beim Fehlerblockkopf Ein Schreibfehler beim Schreiben des Kopfes der Fehler- blockdatei wird festgestellt. XXX -- Bad command or syntax Falsches Kommando oder Syntaxfehler Das Kommando ist nicht bekannt, oder es enthaelt syn- taktische Fehler. XXX -- Bad task file VBN, task removed - (taskname) Fehlerhafte VBN der Taskdatei, Task wird entfernt - (taskname) Das System streicht die angegebene Task, weil sie eine fehlerhafte virtuelle Blocknummer (VBN) in ihrem Datei- kopf enthaelt. Die Taskabbilddatei ist wahrscheinlich fehlerhaft. XXX -- Base address must be on 4K boundary Basisadresse muss an einer 4K-Grenze liegen 188 Die Basisadresse der Task liegt nicht an einer 4K-Grenze. XXX -- Base mismatch common block Basisadresse stimmt nicht mit der Adresse des Common- Blockes ueberein . Die Basisadresse der Partition, wie sie in dem Taskabbild aufgezeichnet ist, stimmt nicht ueberein mit der Basis- adresse des Common-Blockes. XXX -- Block(s) exceed volume limit Block (oder Bloecke) ueberschreiten Datentraegergrenze Der angegebene Block (oder Bloecke) uebersteigt die physische Groesse des Datentraegers. XXX -- Boot block write error Boot-Block Schreibfehler Beim Schreiben des Systemladeblockes wird ein Fehler festgestellt. XXX -- Booted device's driver not loaded Driver fuer Systemladegeraet nicht geladen VMR wurde zum Entladen des Drivers fuer die Systemplatte verwendet. Deshalb kann dieses System nicht geladen werden. Um den Fehler zu beheben, muss von einem anderen System aus mit VMR der Driver der Systemplatte wieder geladen werden. XXX -- Booted device not in system -
Ladegeraet nicht im Sytem Beim Systemladen konnte das SAVE-Kommando das Ladegeraet des Systems (Geraetename dd, physische Einheitennummer nnn, CSR mmmmmm) nicht in den Systemdatenstrukturen finden. Z. B. wurde das System von DM3: geladen, aber die Systemdatenstrukturen enthalten nur DM0: und DM1:. XXX -- Byte address Byte-Adresse Die als Argument bei dem Kommando OPENREGISTER angegebene Adresse ist ungerade. Z. B. ist die Angabe der Adresse 1000 gueltig, waehrend die Adresse 1001 zu einer Fehlermitteilung fuehrt. XXX -- Cannot find home block Home-Block nicht vorhanden Das SAVE-Kommando konnte den Home-Block des Datentraegers nicht finden. XXX -- Cannot initialize file storage region correctly Dateispeicherregion kann nicht eindeutig initialisiert werden Der Help-Text konnte nicht angemessen gepuffert werden. Erneute Eingabe der Kommandozeile ist erforderlich. XXX -- Cannot install privileged task from non-privileged terminal Die privilegierte Task kann nicht von einem nichtprivile- gierten Terminal installiert werden Ein nichtprivilegierter Nutzer versuchte, eine privile- gierte Task zu installieren. Nur ein privilegierter Nut- zer kann eine privilegierte Task installieren. 189 XXX -- Can't install directive common Common-Bereich fuer Direktivebearbeitung kann nicht installiert werden Es wurde versucht, eine Task in einer Common-Partition fuer Direktive-Anweisungen zu installieren, was von diesem System nicht unterstuetzt wird. XXX -- Can't install executive common Exekutive-Common-Partition kann nicht installiert werden Die Common-Partitions fuer die Exekutive (bei Systemen, die solche Partitions unterstuetzen) koennen nicht waehrend der Laufzeit installiert werden. Die Common- Partitions muessen mit dem VMR-Kommando INS installiert werden. XXX -- Cannot LOAD/UNLOAD a pseudo device Ein Pseudogeraet kann nicht ge-/entladen werden Es wurde versucht, einen Driver fuer ein Pseudogeraet zu laden. Der Name des physischen Geraetes ist anzugeben. XXX -- Can't read MCR command buffer MCR-Kommando-Puffer wird nicht gelesen Die Kommandotask UFD wird durch das Kommando RUN gestartet und nicht durch die Kommandoeingabe UFD. Dadurch kann die Kommandozeile nicht uebernommen werden. XXX -- Cannot open output file Die Ausgabedatei kann nicht eroeffnet werden Die mit dem Schluesselwort OUT:filespec spezifizierte Ausgabedatei kann nicht erzeugt werden. Diese Mitteilung kann aus mehreren Gruenden auftreten. Z. B. kann das Geraet schreibgeschuetzt sein, bzw. man hat nicht die notwendigen Zugriffsprivilegien fuer das angegebene UFD. XXX -- Cannot remove executive common Die Exekutive-Common-Partition kann nicht entfernt werden Die Common-Partitions der Exekutive (bei Systemen, welche Systempartitions unterstuetzen) koennen nicht aus dem laufenden System entfernt werden. Sie muessen mit VMR installiert und entfernt werden (siehe Anlage 1: VMR). XXX -- Checking ddnn: Pruefen des Geraetes ddnn: Information darueber, dass die automatische Fehlerblockpruefung, die durch das Kommando angewiesen wurde, begonnen wurde. XXX -- Checkpoint area too small Auslagerungsbereich ist zu klein Der zugewiesene Bereich fuer die Auslagerung der Task ist kleiner als der Bereich, in dem die Task installiert ist. Das System unterstuetzt keine dynamische Zuweisung von Auslagerungsbereich. 190 XXX -- Checkpoint file already in use on device Das Geraet enthaelt schon eine Auslagerungsdatei Ein Datentraeger kann nur eine Auslagerungsdatei enthal- ten. Auf dem angegebenen Datentraeger existiert bereits eine Auslagerungsdatei. XXX -- Checkpoint file header I/O error E/A Fehler beim Dateikopf der Auslagerungsdatei Beim Schreiben des Kopfes der Auslagerungsdatei wird ein Fehler festgestellt. XXX -- Checkpoint file now inactive Auslagerungsdatei nun inaktiv Diese Mitteilung erscheint, nachdem ein ACS-Kommando zum Abschliessen der Auslagerungsdatei gegeben wurde und die Datei keine ausgelagerten Tasks mehr enthaelt. Die Mit- teilung zeigt an, dass der Gebrauch der Auslagerungsdatei abgeschlossen wird. XXX -- Checkpoint file still active Auslagerungsdatei noch aktiv Es wird versucht, einen Datentraeger auszugliedern, der eine aktive Auslagerungsdatei enthaelt. Ein Datentraeger kann nicht ausgegliedert werden, solange die Auslage- rungsdatei nicht abgeschlossen ist. Wenn ein ACS-Kommando gegeben wird, das die Auslagerungsdatei abschliesst und vom System eine Mitteilung erfolgt, dass die Auslage- rungsdatei nicht mehr aktiv ist, kann das DMO-Kommando wiederholt werden. XXX -- Checkpoint file still in use on Auslagerungsdatei noch nicht abgeschlossen auf Das System kann nicht gerettet werden, da eine Auslage- rungsdatei auf dem angegebenen Geraet noch aktiv ist. Das Kommando SAV kann gegeben werden, nachdem die Auslage- rungsdatei mit dem Kommando ACS abgeschlossen wurde. XXX -- Checkpoint space too small, using checkpoint file Auslagerungsbereich zu klein, deshalb wird die Auslagerungsdatei benutzt Diese Mitteilung ist ein Hinweis. Der zugeteilte Ausla- gerungsbereich in der Taskabbild-Datei, gewoehnlich mit dem Schluesselwort /INC, ist zu klein fuer die Laenge der Task. Das System unterstuetzt die dynamische Zuteilung von Auslagerungsbereich, und deshalb soll eine Ausla- gerungsdatei benutzt werden, die die auszulagernde Task aufnimmt. XXX -- Circular redirect error Fehler durch Umschalten eines Geraetes auf sich selbst Durch mehrfaches Umschalten eines Geraetes wird wieder auf das Ursprungsgeraet umgeschaltet. XXX -- CLI already exists CLI existiert bereits Es wurde versucht, ein CLI zu initialisieren, welches bereits im System vorhanden ist. 191 XXX -- CLI does not accept messages CLI nimmt keine Mitteilungen an Das CLI wurde nicht mit Schluesselwort /MESSAGE initialisiert, so dass das Mitteilungsattribut nicht gesetzt worden ist. Das CLI ist nicht in der Lage, irgendwelche Mitteilungen zu empfangen. XXX -- CLI in use CLI in Arbeit Es wurde versucht, ein CLI zu beseitigen, fuer das noch Terminals aktiv sind. XXX -- CLI is restricted CLI ist eingeschraenkt Es wurde versucht, ein Terminal auf ein CLI einzustellen. Das CLI wurde jedoch mit dem Unterschluesselwort /RESTRICT initialisiert. D. h., dass nur das CLI selbst ein Terminal auf das CLI einstellen kann. XXX -- CLI requires the terminal to be logged in CLI erfordert, dass das Terminal angemeldet ist Es wurde der Versuch unternommen, ein Terminal auf ein CLI einzustellen. Das Terminal ist aber nicht angemeldet. Das CLI nimmt Kommandos nur von angemeldeten Terminals an. XXX -- CO: redirected to CO: CO: ist auf CO: umgeschaltet Der Driver fuer das Konsolausgabegeraet ist schon aktiv. Falls das nicht der Fall ist, kann das System fehlerhaft arbeiten. Um CO: dem Terminal zuzuweisen, von dem aus SAVE gestartet wird, muss das Kommando OPENREGISTER verwendet werden. XXX -- Command input error Kommando-Eingabefehler Die Kommandotask BROADCAST wird gehindert, eine Kommando- zeile zu empfangen (gewoehnlich konnte eine Indirektkom- mando-Datei nicht gefunden werden); oder die Kommandotask HELLO ist nicht durch eine Kommandoeingabe, sondern durch eine Systemanweisung oder das Kommando RUN aktiviert worden; oder es trat ein Fehler auf, als das MOUNT- Kommando versuchte, die Kommandozeile zu lesen. Das Kommando soll wiederholt werden. XXX -- Command I/O error Kommando - E/A-Fehler Waehrend des Lesens einer Kommandozeile trat ein E/A- Fehler auf. XXX -- Command syntax error Kommando - Syntaxfehler Die Kommandozeile hat ein falsches Format 192 XXX -- Command too long Kommando zu lang Bei den Kommandos INI oder MOU wird einschliesslich der Fortsetzungszeilen die maximale Laenge von 512 Zeichen (10) ueberschritten. XXX -- Common block is task partition Common-Block ist Task-Partition Die Anforderung einer Task fuer den Zugriff auf einen Common-Block wird zurueckgewiesen, weil die angeforderte Partition eine Taskpartition ist. XXX -- Common block not loaded Common-Block ist nicht geladen Der angegebene Common-Block wird mit einer Task verbunden, aber er wurde nicht in dem System installiert. Der angegebene Common-Block und die Task sind zu instal- lieren. XXX -- Common block occupied Common-Block ist belegt Es wird versucht, eine Task in einen Common-Block zu laden, der schon belegt ist. XXX -- Common block parameter mismatch Common-Block-Parameter stimmen nicht ueberein Die Parameter des Common-Blocks stimmen nicht mit denen in der Task angegebenen ueberein. XXX -- Common block segment count error Segmentanzahlfehler im Common-Block Das Kommando installiert eine residente Bibliothek mit Ueberlagerungen, aber die Zahl der Ueberlagerungssegmen- te, die in dem Taskkopf angegeben ist, weicht von der Zahl in der Segmentbeschreibung ab. XXX -- Common, driver or task above system image file limit Common-Partition, Driver oder Task sind oberhalb der Grenzen der Systemabbilddatei Ein System kann nicht sichergestellt werden, wenn Adressen fuer eine speicherresidente Struktur hoeher sind als die hoechste Adresse, welche zur Systemabbilddatei gehoert. Das Kommando PARTITION ist zur Ermittlung der Ursache fuer das Problem zu nutzen. XXX -- Data error Datenfehler Die angegebene Zahl der Fehlerbloecke oder die angegebene zusammenhaengende Laenge der Region ist zu gross. Es sind die zutreffenden Groessen einzugeben. 193 XXX -- ddnn: is attached by task name ddnn: ist angeschlossen durch Task taskname Das Kommando DMO versuchte, ein angeschlossenes Geraet auszugliedern. Da das DMO-Kommando die Eingliederungsli- ste vor dem Verlassen mehrere Male verarbeitet, kann das Geraet nur dann ausgegliedert werden, wenn die Task, zu welcher das Geraet gehoerte, dieses vor dem Verlassen von DMO freigab. Wenn das Geraet von der Task getrennt ist, dann erfolgt spaeter eine normale Ausgliederungsmittei- lung. XXX -- Device allocated to other user Geraet ist einem anderen Nutzer zugeteilt (Information) Das spezifizierte Geraet wurde bereit einem anderen Nutzer zugeteilt. XXX -- Device attached [ddnn:] Geraet ist gebunden Das angegebene Geraet ist augenblicklich an eine Task gebunden und kann fuer das CLI-Kommando keine /SHOW- Anzeige realisieren, oder das angegebene Geraet kann nicht zugeteilt werden, da es an eine laufende Task gebunden ist. Ist das Geraet ein Magnetbandgeraet, ist in der Mitteilung die Geraeteeinheit enthalten. XXX -- Device busy Geraet belegt Es wurde versucht, eine Terminalkenngroesse fuer ein Terminal zu setzen, welches angeschlossen ist. XXX -- Device ddnn: has units attached, busy and/or mounted Geraet ddnn: hat gebundene Einheiten, ist belegt und/oder eingegliedert Das Geraet ddnn: ist die erste oder einzige Einheit, die angeschlossen ist, eingegliedert ist und/oder ausstehende E/A hat. Folglich kann der Driver nicht entladen werden. XXX -- Device driver not loaded Geraetedriver ist nicht geladen Der Geraetedriver fuer das angegebene Geraet ist nicht geladen. Der Geraetedriver ist mit dem LOAD-Kommando zu laden und die Kommandozeile erneut einzugeben. XXX -- Device not allocated to this terminal Geraet ist diesem Terminal nicht zugeteilt Die Kommandozeile spezifizierte ein privates Geraet, das einem Terminal zugewiesen wurde, welches nicht mit dem Terminal uebereinstimmt, von dem das Kommando gegeben wurde. XXX -- Device not in system [-ddnn:] Geraet ist nicht im System enthalten Das im Kommando angegebene Geraet ist nicht im System generiert. Ist im Kommando ein Magnetbandgeraet angegeben, ist in der Mitteilung die Geraeteeinheit enthalten. 194 XXX -- Device not in system Geraet nicht im System enthalten Die Datenbasis fuer den Driver ist weder in dem System noch in dem Taskabbild des Drivers enthalten. Der angege- bene Driver existiert nicht in dem System. XXX -- Device not mounted Geraet nicht eingegliedert Das in der Dateispezifikation angegebene Geraet ist nicht eingegliedert. Bei Eingabe des Kommandos LOA oder UNL wird festgestellt, dass das Systemgeraet des Nutzers (LB:) nicht eingegliedert ist. XXX -- Device not mountable Geraet ist nicht eingliederbar Das angegebene Geraet kann nicht eingegliedert werden. Einige Geraete erfordern kein Eingliedern, obwohl die Datentraeger auswechselbar sind. Es ist zu pruefen, ob man das richtige Geraet benutzt, und die erneute Eingabe der Kommandozeile ist durchzufuehren, falls das erforderlich ist. XXX -- Device not mounted foreign Geraet ist nicht mit dem Schalter /FOREIGN eingegliedert Ein Datentraeger wurde nicht eingegliedert bzw. nicht als "fremd" eingegliedert. XXX -- Device not ready Geraet ist nicht bereit Die Kommandozeile gab einen Datentraeger an, der nicht bereit war. XXX -- Device not redirectable Geraet nicht umschaltbar Das angegebene Geraet kann nicht umgeschaltet werden. XXX -- Device not terminal Geraet ist kein Terminal Es wird versucht, die Eigenschaften eines Terminals fuer ein Geraet festzulegen, das kein Terminal ist bzw. das Schluesselwort /TERM wurde fuer ein Geraet spezifiziert, welches kein Terminal ist. XXX -- Device offline [-ddnn:] Geraet ist off-line [-ddnn:] Das in dem Kommando angegebene Geraet ist in der vorlie- genden Konfiguration nicht vorhanden, obwohl es im System generiert wurde. Ist das Off-line-Geraet ein Magnetband, ist in der Mitteilung die Geraeteeinheit enthalten. XXX -- Device specified twice -- ddnn: Geraet ist zweimal angegeben In dem Kommando MOUNT ist die gleiche MB-Einheit doppelt angegeben. 195 XXX -- Device status changed during MOUNT Aenderung des Geraetestatus waehrend des MOUNT-Kommandos Der Geraetestatus fuer das angegebene Geraet aenderte sich zwischen der anfaenglichen Geraeteklassifikation und dem Endaufbau der Datenstrukturen. Dies ist gewoehnlich das Ergebnis davon, dass ein weiterer Nutzer den Daten- traeger gleichzeitig mit einem fehlerhaften Kommando ein- bzw. ausgliedert. Es sind der Geraetezustand zu pruefen und die Kommandozeile neu einzugeben. XXX -- Device write locked - Geraet hat Schreibsperre - Die Kommandozeile spezifiziert einen Datentraeger, welcher der Schreibsperre unterlag. XXX -- dev: not available Geraet nicht verfuegbar Die angewiesene Funktion kann fuer das angegebene Geraet nicht ausgefuehrt werden. XXX -- devy: Work device and devx: Safety device devy: Arbeitsplatte und devx: Sicherheitsplatte Das Aktualisieren der Sicherheitsplatte ist abgeschlos- sen, d.h. beide Platten sind identisch. XXX -- Directory already exists Verzeichnis schon vorhanden Die angegebene UFD-Datei existiert schon auf dem Daten- traeger. XXX -- Disk is alignment cartrigde Platte ist eine Justierplatte Die letzte Spur einer Platte identifiziert den Datentrae- ger als eine Justier-Kassette, die nicht im Dateiformat FM16-D initialisiert werden kann. XXX -- Dismount is not necessary for cassettes DISMOUNT ist fuer Kassetten nicht erforderlich Hierbei handelt es sich um eine selbsterklaerende infor- mative Meldung. XXX -- Dismounting system disk Ausgliedern der Systemplatte Diese Meldung tritt nur waehrend einer Systemgenerierung bzw. waehrend der Systemabschaltung auf. Da die System- platte ein oeffentliches Geraet ist, kann sie nur durch einen privilegierten Nutzer ausgegliedert werden. XXX -- DPB error DPB-Fehler Ein fehlerhafter DPB wird durch MCR erzeugt. Dieser Feh- ler zeigt an, dass das System selbst fehlerhaft ist. XXX -- Driver already resident Driver ist schon resident Der angegebene Driver ist schon geladen. 196 XXX -- Driver being loaded or unloaded Driver wird ge- oder entladen Die Exekutive wird schon von einer anderen Anforderung veranlasst, den Driver zu laden oder zu entladen. XXX -- Driver built with wrong executive STB file Driver wurde mit einer falschen Exekutive-STB-Datei gebildet Die STB-Datei fuer den Driver stimmt nicht mit der aktu- ellen Exekutive ueberein. Der Driver muss neu gebildet werden. XXX -- Driver cannot be unloaded Driver kann nicht entladen werden Mit dem Kommando UNL wird versucht, einen residenten Driver zu entfernen (Driver ist Bestandteil der Exeku- tive). XXX -- Driver load/unload calls not supported Driver Lade/Entlade-Rufe werden nicht unterstuetzt Der angeforderte Driver enthaelt die Symbole $ddLOA oder $ddUNL in seiner Quelle. Diese Symbole sind fuer die MCR-Kommandos LOA und UNL reserviert. XXX -- Driver not loaded Driver nicht geladen Der Driver, der im Kommando UNL angegeben ist, ist nicht im Speicher resident. Das Kommando MOU oder INI gibt ein Geraet an, fuer das der Driver nicht geladen ist. XXX -- Driver not resident Driver nicht resident Der angegebene Driver ist im Speicher nicht resident. XXX -- Duplicate block(s) found Fehlerhafter Block wird zweimal definiert Ein Block, der als fehlerhaft angegeben wurde, wird zum zweiten Mal als fehlerhaft definiert. XXX -- Dynamic allocation of checkpoint space not supported Dynamische Zuteilung von Auslagerungsbereich wird nicht unterstuetzt Das Kommando ACS wird in einem System gegeben, das die dynamische Zuweisung von Auslagerungsbereich nicht unter- stuetzt. XXX -- Error attempting to dismount ddnn: Fehler beim Ausgliedern ddnn: Wenn das Ladegeraet beim Initialisieren von SAVE einge- gliedert ist, dann gibt SAVE ein DISMOUNT-Kommando zu MCR, wenn die Sicherstellungsoperation abgeschlossen ist. Diese Mitteilung zeigt an, dass die Ausgliederungsopera- tion nicht erfolgreich war. Das System kann zwar nutzbar sein, es empfiehlt sich aber, dass man ein erneutes Laden durchfuehrt und ein DISMOUNT-Kommando gibt. 197 XXX -- Error logging still active Fehlerprotokollierung ist noch aktiv Das System kann nicht gerettet werden, da das Programm zur Fehleraufzeichnung noch aktiv ist. Die Error-Logging- Task ist zu beenden und das SAVE-Kommando erneut einzuge- ben. XXX -- Excessevely nested or recursive synonyms Uebermaessig geschachtelte bzw. rekursive Synonyme Ein in der Help-Datei verwendetes Kettensynonym ist wahr- scheinlich rekursiv verwendet worden. XXX -- Failed to allocate sufficient dynamic storage Es kann nicht genuegend dynamischer Speicherplatz zugeteilt werden Das Eingliedern eines Datentraegers macht moeglicherweise einen erheblichen Umfang an Primaer- bzw. Sekundaerpool- kapazitaet fuer die Datenstrukturen und fuer den ACP erforderlich. Entweder MOUNT oder der ACP war nicht in der Lage, genuegend Platz im Pool zuzuweisen. Es ist zu warten, bis sich die Aktivitaet beim System verringert hat, und dann ist erneut die Kommandozeile einzugeben. XXX -- Failed to attach device - Fehler beim Binden des Geraetes - Das zu initialisierende Geraet konnte nicht angeschlossen werden. XXX -- Failed to create directory Fehler beim Erzeugen eines Verzeichnisses Auf dem Datentraeger ist kein Platz mehr vorhanden. Ein E/A-Fehler ist aufgetreten. XXX -- Failed to enter in MFD Fehler beim Eintragen in das MFD Im Hauptdateiverzeichnis (MFD) oder auf dem Datentraeger ist kein Platz mehr vorhanden. Ein E/A-Fehler ist auf dem Datentraeger aufgetreten. XXX -- Failed to find home block Auffinden des Home-Blockes war nicht erfolgreich Das HOME-Kommando konnte den Home-Block des Datentraegers nicht finden. XXX -- Failed to place alternate home block Plazieren des alternativen Home-Blockes war nicht erfolg- reich Wenn das HOME-Kommando nicht absichern kann, dass ein einwandfreier Home-Block auf den Datentraeger zurueckge- schrieben werden kann, dann versucht es, einen alternati- ven Home-Block auf den ersten freien Block des Home- Block-Suchpfades zu plazieren. Diese Mitteilung zeigt an, dass der Versuch ohne Erfolg war. Es ist zu beachten, dass die Struktur des Datentraegers zerstoert sein kann und dieser deshalb evtl. nicht mehr eingliederbar ist. 198 XXX -- Failed to read bad block file Fehler beim Lesen der Fehlerblockdatei Das Kommando INI ist nicht in der Lage, die Information der Fehlerblockdatei von der letzten Spur der Platte zu lesen. XXX -- Failed to start ancillary control processor Fehler beim Starten des ACP Das System war nicht in der Lage, die ACP-Task zu starten. Die Task wird entweder gerade beendet, oder es sind nicht genuegend Ressourcen vorhanden. Erneute Ein- gabe der Kommandozeile zu einem spaeteren Zeitpunkt ist erforderlich. XXX -- Fatal I/O error Grober E/A-Fehler Eine E/A-Operation kann nicht beendet werden, da ein Ge- raet oder der dynamische Speicher nicht verfuegbar oder ein Geraetefehler aufgetreten ist. XXX -- Feature not supported Funktion nicht unterstuetzt Durch das Schluesselwort eines Kommandos wird eine Funktion angefordert, die in das System bei der Systemge- nerierung nicht mit eingeschlossen wurde, bzw. das Kommando selbst kann nicht verwendet werden. XXX -- File name contains invalid driver data base Datei enthaelt ungueltige Driver-Datenbasis Der Driver hat eine ungueltige Datenbasis. XXX -- File has illegal STB format Datei hat ein nichterlaubtes STB-Format Die STB-Datei eines Drivers enthaelt verbotenen Objekt- code oder Daten. XXX -- filename File header I/O error E/A-Fehler beim Dateikopf der Datei filename Beim Schreiben des Dateikopfes fuer eine angegebene Systemdatei tritt ein Fehler auf. XXX -- File header read error Lesefehler beim Dateikopf Das Kommando MOUNT kann weder die Indexdatei noch die Speicherbelegungsdatei lesen. XXX -- File I/O error nnn. Datei-E/A-Fehler nnn. Das Kommando ACS stellt einen Fehler fest, wenn es ver- sucht, eine Auslagerungsdatei zuzuteilen oder zu oeffnen. Die Ursache des Fehlers wird durch den FCS-Fehlercode nnn angegeben. (siehe Anleitung fuer Programmierer, Teil 3: "E/A-System" und Teil 5: "Dateizugriffssystem FCS 1630"). Wenn der Code -24 lautet, dann zeigt die Meldung moeglicherweise an, dass die Platte, gewoehnlich eine Festkopfplatte, nicht genuegend zusammenhaengenden Spei- cherplatz fuer die Zuweisung der Datei zur Verfuegung hat. Der Code -24 bedeutet normalerweise "Geraet voll beschrieben". 199 XXX -- File not a valid driver task image Datei ist kein gueltiges Driver-Taskabbild Das Taskabbild des Drivers ist entweder ueberlagert oder hat einen Taskkopf. XXX -- File not contiguous Datei ist nicht zusammenhaengend Es wird versucht, ein System oder eine Task von einer nicht zusammenhaengenden Datei zu laden bzw. zu instal- lieren. Die Abbilder von Systemen und Tasks muessen zu- sammenhaengend sein. XXX -- File not contiguous Datei ist nicht zusammenhaengend Die angegebene Datei ist nicht zusammenhaengend. XXX -- File not found Datei nicht vorhanden Die angeforderte Datei befindet sich nicht in dem Ver- zeichnis auf dem angegebenen Datentraeger. XXX -- File not in use Datei ist nicht in Gebrauch Eine Auslagerungsdatei wird auf dem im Kommando ACS ange- gebenen Geraet nicht benutzt. XXX -- File not properly closed Datei nicht korrekt abgeschlossen Es wurde versucht, eine Datei zu eroeffnen, die nicht korrekt abgeschlossen (d.h. gesperrt) wurde. Da die Datei gesperrt ist, ist zu pruefen, ob die Datei nach dem Kommando "PIP>dateispezifikation/UNL" noch verwendbar ist. Gegebenenfalls ist eine neue Kopie der Datei herzu- stellen. XXX -- File not task image Datei ist kein Taskabbild Die Daten in dem Markenblock sind nicht korrekt und zei- gen an, dass die Datei kein gueltiges Taskabbild ist. XXX -- File protection violation Dateischutzverletzung Es wurde ein Versuch unternommen, eine Task zu installie- ren, zu deren Abbilddatei man keinen einwandfreien Zu- griff hat. Man muss zum Installieren einer Abbilddatei den Lesezugriff haben. XXX -- F11MSG not installed F11MSG nicht installiert Die Task F11MSG ist nicht installiert. Die Task F11MSG muss durch den Systemverwalter installiert werden. XXX -- Help file error nnn Help-Dateifehler nnn Die Help-Datei konnte nicht eroeffnet werden. Der FCS- Fehlercode nnn zeigt die Fehlerursache an. Ist der Fehlercode -26, existiert die Help-Datei nicht. Die Definition des Fehlercodes ist in der Anleitung fuer den Programmierer, Teil 5: "Dateizugriffssystem FCS 1630", zu finden. 200 XXX -- Help synonym not found Help-Synonym nicht vorhanden Die Help-Datei verwies auf ein Synonym, welches nicht in der Help-Datei enthalten ist. XXX -- Home block allocate write error Home-Block-Schreibfehler Ein Schreibfehler tritt auf beim Ueberschreiben eines fehlerhaften Home-Block-Bereiches. XXX -- Home block checksum error Home-Block-Pruefsummenfehler Die Pruefsumme in dem Home-Block des Datentraegers und die berechnete Pruefsumme stimmen nicht ueberein. Diese Bedingung wird durch einen E/A-Fehler verursacht. XXX -- Home block I/O error Home-Block-E/A-Fehler Ein Fehler wird festgestellt beim Lesen oder Schreiben eines Datentraeger-Home-Blockes. XXX -- Home block read error Home-Block Lesefehler Ein Fehler wird festgestellt beim Lesen eines Datentrae- ger-Home-Blockes. Es ist mit einem anderen Laufwerk ein Versuch zu unternehmen. Ist der Versuch nicht erfolgreich, dann wurde die Platte zerstoert oder der Home-Block-Bereich ist fehlerhaft. Aufgrund dieses Fehlers stoppt das System. XXX -- Home block write error Home-Block-Schreibfehler Beim Schreiben des Datentraeger-Home-Blockes auf dem geladenen Datentraeger tritt ein Schreibfehler auf. XXX -- Illegal argument value Ungueltiger Wert des Arguments Diese Mitteilung kann aus einem oder mehreren der folgenden Gruende auftreten: Der mit /EXT angegebene Wert war groesser als 200(10). Der mit /INF angegebene Wert war kleiner als 16(10). Der mit /INF or /MXF angegebene Wert war fuer den Gerae- tetyp zu gross. Der mit /LRU angegebene Wert war groesser als 127(10). Der mit /WIN angegebene Wert war groesser als 127(10). XXX -- Illegal device Ungueltiges Geraet Das bei der Bildung der Task durch die Zuweisungsoption (ASG) angegebene Geraet existiert in dem System nicht. Dies ist eine Warnung. XXX -- Illegal device specified Ungueltiges Geraet angegeben Das angegebene Geraet ist kein Terminal. 201 XXX -- Illegal device/volume Ungueltiges Geraet/Datentraeger Das angegebene Geraet ist kein gueltiges Taskresidenz- Geraet. XXX -- Illegal driver task APR usage Nichterlaubte APR-Benutzung durch die Driver-Task Ein Driver muss fuer APR5 erzeugt werden und muss kleiner als 8K sein (z.B. PAR=DRVPAR:120000:40000). XXX -- Illegal first APR Erstes APR ungueltig Eine privilegierte Task, die APR4 oder APR5 benutzt, ist zu gross. Bei Verwendung von APR4 ist die Task groesser als 12K; bei Verwendung von APR5 ist die Task groesser als 8K. Wenn die Exekutive 20K des Adressbereichs unter- stuetzt, ist APR5 das einzig gueltige Basis-APR fuer Tasks, die der Exekutive zugewiesen werden. Eine privile- gierte Task, die nicht der Exekutive zugewiesen wird, muss APR0 als ihre Basisadresse verwenden. (Eine Beschreibung des Schluesselwortes /PR ist im Kapitel 9 (Taskbilder) der Anleitung fuer den Bediener, Teil 4: "Dienstprogramme" zu finden.") XXX -- Illegal function Ungueltige Funktion Das eingegebene Kommando ist kein gueltiges MCR-Kommando, bzw. ein ungeeignetes Schluesselwort ist angegeben worden. XXX -- Illegal keyword combination Falsche Kombination von Schluesselwoertern In dem Kommando MOUNT sind sich widersprechende Schlues- selwoerter angegeben. XXX -- Illegal keyword value Ungueltiger Schluesselwortwert Der eingegebene Wert fuer ein Schluesselwort ueberschrei- tet seine Grenzen. Es ist ein gueltiger Wert einzugeben. XXX -- Illegal priority Ungueltige Prioritaet Der Wert der Prioritaet in dem Kommando liegt ausserhalb des gueltigen Bereiches von 1 bis 250. XXX -- Illegal UIC Ungueltiger UIC In dem Kommando wird eine ungueltige Gruppen- oder Mit- glieds-Nr. angegeben. XXX -- Illegal use of restrict switch /RESTRICT-Schalter nicht erlaubt Ein CLI kann nicht mit /RESTRICT initialisiert werden, wenn der Name der CLI-Task in der Form ...xxx vorliegt. 202 XXX -- Illegal switch - not logged in Ungueltiger Schalter - nicht angemeldet Es wurde der Versuch durchgefuehrt, mit einer lokalen, einer Gruppen-Help-Datei oder einer Ausgabe-Help-Datei von einer anderen Datei aus in Verbindung zu treten, ohne angemeldet zu sein. Es ist die Anmeldung zum System durchzufuehren und danach die HELP-Kommando-Zeile einzugeben. XXX -- Illegal value for symbol in file filename Ungueltiger Wert fuer Symbol in der Datei dateiname Das Symbol symname hat einen ungueltigen Wert in der Datei der Symboldefinitionen ddDRV.STB fuer einen lad- baren Driver. Ursache kann u.a. sein, dass ein Symbol einen ungeraden Wert hat oder den Wert 0, den die mei- sten Symbole nicht besitzen duerfen; $SSTBL muss vorhanden sein und einen Wert kleiner als $ddEND haben, und abgebildete ladbare Driver duerfen nicht auf $INTSV Bezug nehmen. Da ddDVR.STB einer vorherigen Ueberpruefung durch das LOA-Kommando unterzogen werden musste, ist wahrscheinlich ein prozedurmaessiger Fehler aufgetreten, oder ddDVR.STB ist verfaelscht worden. XXX -- Improper help file format Unzutreffendes Help-Datei-Format Die Help-Datei hat kein gueltiges Format und kann nicht verwendet werden. Die Datei ist entweder zu korri- gieren oder in dem gueltigen Format einzugeben. XXX -- Incompatible devices for multivolume set Fuer Mehrfach-Datentraeger-Sets sind die Geraete nicht vertraeglich Die angegebenen Geraete sind in einer oder mehreren der folgenden Moeglichkeiten inkompatibel: 1. Alle Geraete muessen entweder Platten- oder Magnet- bandgeraete sein. 2. Alle Geraete muessen entweder oeffentlich, zugewie- sen oder nichtzugewiesen sein. 3. Im Falle von Magnetbaendern muessen alle Geraete die gleiche Geraetespezifikation unterstuetzen. Die Parameter sind zu ueberpruefen und die Kommandozeile neu einzugeben. XXX -- Incorrect file set identifier Datei-Set-ID ist falsch Der in der Kommandozeile angegebene Datei-Set-ID stimmt nicht mit dem Datei-Set-ID des HDR1-Kennsatzes ueberein. Es sind der richtige Datei-Set-ID zu ermitteln und die Kommandozeile bzw. die Kommandozeile, welche das Schluesselwort /OVRFSID spezifiziert, erneut einzugeben. XXX -- Incorrect volume label Datentraegername ist falsch Der in der Kommandozeile angegebene Datentraegername stimmt nicht mit dem Datentraegernamen im Home-Block ueberein. Es sind der richtige Datentraegername zu ermitteln und die Kommandozeilen erneut einzugeben bzw. der Datentraeger mit dem /OVR-Schluesselwort einzuglie- dern (gilt nur fuer privilegierte Nutzer). 203 XXX -- Index file BITMAP I/O error E/A-Fehler bei der BITMAP der Indexdatei Beim Schreiben der BITMAP.SYS der Indexdatei wird ein Fehler festgestellt. XXX -- Index file header checksum error Indexdatei-Pruefsummenfehler Waehrend des Wiederladens eines geretteten Systems er- kennt das System einen Pruefsummenfehler im Dateikopf der Index-Datei. Der Fehler bewirkt, dass das System stoppt. Wahrscheinlich ist die Platte fehlerhaft. XXX -- Index file header read error Indexdateikopf-Lesefehler Waehrend des Wiederladens eines geretteten Systems er- kennt das System einen Fehler im Dateikopf der Index- Datei. Der Fehler bewirkt, dass das System stoppt. XXX -- Index file I/O error Indexdatei-E/A-Fehler Beim Schreiben des Dateikopfes der Indexdatei wird ein Fehler festgestellt. XXX -- Indirect help file open error Eroeffnungsfehler der Indirekt-Help-Datei Das HELP-Kommando versucht, aus der Help-Datei heraus auf eine andere Datei zuzugreifen, konnte aber die Indirekt- Kommandodatei nicht eroeffnen. XXX -- Indirect help file syntax error Syntaxfehler der Indirekt-Help-Datei Das HELP-Kommando stiess entweder bei einer Bezugnahme auf eine andere Datei oder in der Indirekt-Kommandodatei selbst auf einen Syntaxfehler. XXX -- Input I/O error Eingabe-E/A-Fehler Beim Versuch, das naechste Kommando zu lesen, stellt das Kommando OPEN einen Fehler fest. XXX -- Installing privileged task from non-privileged terminal Installieren einer privilegierten Task von einem nicht- privilegierten Terminal Diese Mitteilung erscheint nur in Mehrnutzersystemen. Ein nichtprivilegierter Nutzer versucht, eine privilegierte Task zu installieren. Dies kann nur durch einen privile- gierten Nutzer erfolgen. XXX -- Insufficient privilege for attempted operation Fuer diese Operation nicht ausreichend privilegiert Eine in der Kommandozeile angegebene Option erfordert, dass der Nutzer privilegiert ist. XXX -- Insufficient pool space Unzureichender Pool-Speicherplatz Im dynamischen Speicherbereich sind nicht mehr genuegend freie Bloecke vorhanden. 204 XXX -- Interrupt vector already in use Interrupt-Vektor wird schon benutzt Der Interruptvektor eines Drivers zeigt auf bereits ver- wendete Interrupteingaenge. Diese Mitteilung kann er- scheinen, wenn der Bediener das Kommando LOA eingibt. XXX -- Internal logic error Interner logischer Fehler Der Systemdienst ist zu informieren, wenn diese Mittei- lung erscheint. XXX -- Invalid account Ungueltige Anmeldung Der Name oder der im Kommando angegebene UIC ist nicht in der Nutzerverzeichnisdatei gespeichert. Das angegebene Kennwort passt nicht zum Namen oder dem gegebenen UIC. XXX -- Invalid address Ungueltige Adresse Die angegebene Adresse als Argument in dem Kommando OPENREGISTER bezieht sich auf einen nichtexistierenden Speicherplatz, auf eine Adresse ausserhalb der angegebenen Partition bzw. auf eine Adresse ausserhalb des virtuellen Adressraumes der Task. XXX -- Invalid device Ungueltiges Geraet Das angegebene Geraet ist nicht fuer die Plattensicherung vorgesehen. XXX -- Invalid driver data base at offset in file Ungueltige Driver-Datenbasis beim Offset in der Datei Der Driver hat einen ungueltigen Datenbasiswert bei dem Offset xxxx relativ zu dem Symbol $ddDAT. XXX -- Invalid interrupt vector Ungueltiger Interrupt-Vektor Die angegebene Adresse des Interruptvektors in der Daten- basis des Drivers liegt ausserhalb des gueltigen Bereiches. XXX -- Invalid keyword Ungueltiges Schluesselwort Es wird ein Schluesselwort gefunden, das dem speziellen Verarbeitungsprogramm des Kommandos nicht bekannt ist. XXX -- Invalid load device Ungueltiges Ladegeraet Das Kommando BOOT oder INSTALL enthaelt ein Geraet, das als Systemgeraet oder Ladegeraet ungueltig ist. XXX -- Invalid time parameter Ungueltiger Zeit-Parameter Die Zeitangaben sind unkorrekt. 205 XXX -- Invalid UIC Ungueltiger UIC Fuer eine Nutzergruppen-Nr. oder fuer eine Mitglieds-Nr. ist der Wert 0 angegeben. XXX -- I/O error E/A-Fehler Beim Aktualisieren der Sicherungsplatte trat ein E/A- Fehler auf. XXX -- I/O error on device ddnn: Ein-/Ausgabefehler beim Geraet ddnn: Beim angegebenen Geraet trat ein schwerer Hardwarefehler auf. XXX -- I/O error sizing device - E/A-Fehler bei Groessenbestimmung Das System stellt einen E/A-Fehler waehrend der Plattendimensionierung fest. XXX -- I/O outstanding Ausstehende E/A Tasks, die auf die Beendigung von E/A-Anforderungen war- ten, verbleiben in dem System. Ein System kann mit aus- stehenden E/A-Anforderungen nicht gerettet werden. Es ist auf die Beendigung der E/A-Anforderungen zu warten und das Kommando zu wiederholen. XXX -- Label block I/O error Kennsatzblock - E/A-Fehler Beim Retten des Systemabbildes schreibt das Kommando SAVE die Uebertragungsadresse in den Kennsatzblock der System- abbild-Datei. Waehrend dieses Schreibversuches wird ein Fehler festgestellt. XXX -- Label block read error Kennsatzblock - Lesefehler Das Kommando BOOT kann den Kennsatzblock des Systemabbil- des nicht lesen. XXX -- Length mismatch common block Laengendiskrepanz im Common-Block Der Laengenparameter fuer den Common-Block, wie er in dem Markenblock fuer das Taskabbild beschrieben wurde, stimmt nicht mit dem entsprechenden Laengenparameter, der im System definiert ist, ueberein. Die Daten des Marken- blockes der Task muessen mit den Systemdaten fuer diese Task uebereinstimmen, bevor sie installiert werden kann. XXX -- Listing device not available Listengeraet nicht verfuegbar Die Geraeteeinheit, auf der das Kommandoprogramm ver- sucht, eine Information auszugeben, ist durch einen ande- ren Nutzer gebunden und fuer den Gebrauch durch MCR nicht verfuegbar. 206 XXX -- Load device not LB:, task removed - Ladegeraet nicht LB:, Task wird entfernt Das System hat die angegebene Task gestrichen, waehrend ein System gerettet wurde, weil die Task nicht von dem Pseudogeraet LB: installiert wurde. XXX -- Loadable driver support not in system Unterstuetzung ladbarer Driver nicht im System Die Systemgenerierungsoption, das Laden von Drivern zu unterstuetzen, ist nicht ausgewaehlt worden bzw. notwendige Routinen befinden sich nicht im System. XXX -- Logical device not in system Logisches Geraet nicht im System Das angegebene logische Geraet ist in den logischen Geraetetabellen nicht definiert. XXX -- Logins are disable Anmelden im System nicht erlaubt Systemarbeit wird beendet, oder das Kommando SET /NOLOGON ist gegeben worden. Ein Nutzer kann sich zu dieser Zeit an keinem Terminal mehr anmelden. XXX -- LUN out of range LUN ausserhalb des Gueltigkeitsbereiches Es wird versucht, eine LUN zuzuordnen, die einen groesseren Wert hat als die maximale Zahl der LUNs, die der Task bei der Taskerzeugung zugeteilt wurden. XXX -- Low pool, try later Kritischer Pool-Zustand, spaeter nochmal versuchen (Nur bei Systemen mit Poolueberwachungs-Unterstuetzung). Waehrend der Bedingungen fuer den Kritischen Pool-Zustand sperrt die Poolueberwachungstask (PMT...) zeitweilig Anforderungen fuer INSTALL-RUN-REMOVE und /CMD fuer nichtprivilegierte Nutzer. XXX -- Magtape device error MB-Geraetefehler Waehrend der Positionierung eines Magnetbandes vor seiner Initialisierung stellt das System einen E/A-Fehler fest. XXX -- Magtape is not shareable, device in use Magnetbaender lassen keinen geteilten Zugriff zu, das Geraet ist bereits belegt Das angegebene Geraet ist bereits eingegliedert, oder die Kommandozeile enthaelt explizit oder implizit eine Angabe ueber geteilten Zugriff zum Geraet. Zu einem bestimmten Zeitpunkt kann immer nur ein Nutzer auf ein Magnetband- geraet zugreifen. Die Kommandozeile ist mit dem Schlues- selwort /NOSHARE neu einzugeben. XXX -- Magtape label must be specified MB-Datentraegername muss angegeben werden Mit dem Kommando INI wird versucht, ein Magnetband zu initialisieren, ohne den verlangten Datentraegernamen an- zugeben. 207 XXX -- Magtape write error - MB-Schreibfehler Das System stellt einen E/A-Fehler beim Schreiben auf das Magnetband waehrend der Initialisierung fest. XXX -- Manufacturers bad sector file corrupt Die vom Hersteller aufgezeichnete Fehlerblockdatei ist zerstoert Die vom Hersteller aufgezeichnete Fehlerblockdatei auf einem Geraet ist in einem unvertraeglichen Format. Es ist die Kommandozeile einschliesslich der Option /BAD=[OVR] erneut einzugeben. XXX -- Max number of CLIs already present Maximale Anzahl an CLIs liegt bereits vor Es wurde versucht, ein weiteres CLI zu initialisieren, aber die maximale Anzahl der im System zulaessigen CLIs ist bereits erreicht worden. XXX -- MCR is not installed MCR ist nicht installiert Beim Laden des Systems verwendet SAVE MCR zum Eingliedern der Systemplatte. Deshalb ist die Task MCR... im System- abbild mit VMR zu installieren. XXX -- Message file error nnn. Nachrichtendatei - Fehler nnn. Das System kann die Datei LOGIN.TXT nicht eroeffnen. Die Ursache ist aus dem FCS-Code nnn ersichtlich. Eine Defi- nition der FCS-Codes ist in der Anleitung fuer den Pro- grammierer, Teil 5: "Dateizugriffssystem FCS 1630" ent- halten. XXX -- MFD file header I/O error MFD-Dateikopf-E/A-Fehler Beim Schreiben des Dateikopfes des Hauptdateiverzeichnis- ses wird ein Fehler festgestellt. XXX -- MFD write error MFD-Schreibfehler Beim Schreiben des Hauptdateiverzeichnisses wird ein Fehler festgestellt. XXX -- Mount error from ACP - xxx. Eingliederungs-Fehler vom ACP-xxx Die Zusatzsteuerroutine stellt waehrend des Versuchs, den Datentraeger einzugliedern, einen Fehler fest. XXX -- Multi-unit device not tape Mehrfacheinheiten-Geraet ist kein Magnetband Die im Kommando angegebenen Datentraeger sind keine Band- geraete. XXX -- Mount is not necessary for cassettes Fuer Kassetten ist ein Eingliedern nicht notwendig Hierbei handelt es sich um eine selbsterklaerende und lediglich nur informative Meldung. 208 XXX -- Mount is not supported for device class Fuer diese Geraeteklasse wird das Eingliedern nicht unterstuetzt Obwohl das angegebene Geraet eingliederbar ist, ist das MOUNT-Kommando nicht in der Lage, die Kommandozeile fuer diese Geraeteklasse zu verarbeiten. Das MOUNT-Kommando unterstuetzt nur FM16-D-Geraete mit wahlfreiem Zugriff sowie Magnetbaender mit Kennsaetzen (FM16-M bzw. ANSI) als auch ohne Kennsaetze. XXX -- Multi-volume disk not supported Mehrfachdatentraeger-Platte wird nicht unterstuetzt Das MOUNT-Kommando unterstuetzt Mehrfach-Datentraeger nur bei Magnetbaendern im Format FM16-M (ANSI). XXX -- Must be run from terminal CO: Start muss vom Terminal CO: erfolgen Das Kommando SAVE wurde nicht von dem Terminal gestartet, das dem Pseudogeraet CO: zugewiesen ist. XXX -- Mutually exclusive switches specified Angabe von sich gegenseitig ausschliessenden Schaltern Die Schluesselwoerter /ACCESS, /OWNER und /UIC koennen nicht in der gleichen Kommandozeile angegeben werden. XXX -- MXF less than or equal to the existing value MXF ist kleiner oder gleich dem vorhandenen Wert Der mit /MXF angegebene Wert war kleiner oder gleich der maximalen Anzahl der fuer den Datentraeger bereits spezi- fizierte Dateien. Dieser Wert muss groesser sein als die aktuelle Anzahl der zulaessigen Dateien. XXX -- New device not known to system Dem System ist das neue Geraet nicht bekannt Das neue Geraet, das in dem Kommando RED angegeben wurde, ist dem System nicht bekannt (existiert nicht in der Geraetetabelle). XXX -- No bad block data found Keine Fehlerblockdatei gefunden Obwohl eine automatische Fehlerblockangabe ausgewaehlt wurde, kann auf dem Datentraeger keine Fehlerblockdatei gefunden werden. Dies ist eine Warnmitteilung. XXX -- No checkpoint space, assuming not checkpointable Kein Auslagerungsbereich zugeteilt, deshalb wird nicht auslagerbar angenommen Dies ist eine Warnmitteilung. Das Kommando versucht, eine Task zu installieren. Die Task wurde nicht als auslagerbar aufgebaut und enthaelt deshalb keinen Auslagerungsbereich in ihrer Taskabbilddatei. Da das System die dynamische Zuteilung von Auslagerungsbereich nicht unterstuetzt, betrachtet es die Task als nicht auslagerbar. 209 XXX -- No checkpoint space or dynamic checkpoint file Auslagerungsbereich oder dynamische Auslagerungsdatei nicht vorhanden Es wurde der Versuch durchgefuehrt, eine auslagerbare Task (/CKP=YES) zu installieren. Es war aber fuer diese kein Auslagerungsbereich bzw. keine dynamische Auslage- rungsdatei vorhanden. XXX -- No first volume of tape set Nicht der erste Datentraeger des Magnetband-Sets Bei Dateien, die mehrere Magnetbaender umfassen, muss die Dateikennzeichnung vom ersten Datentraeger gelesen wer- den. Der erste Datentraeger der Magnetbaender wurde nicht auf dem ersten Laufwerk geladen, welches in der Kommando- zeile angegeben wurde. XXX -- No home block found or structure not supported Kein Home-Block vorhanden bzw. die vorhandene Struktur wird nicht unterstuetzt F11ACP war nicht in der Lage, einen gueltigen Home-Block auf dem Datentraeger zu finden. Der Datentraeger ist entweder nicht initialisiert, fehlerhaft oder liegt in einem nicht unterstuetzten Format vor. (Bestimmte Dienst- programme, wie z. B. FLX, unterstuetzen andere Formate. Diese Datentraeger koennen mit dem Schluesselwort /FOR eingegliedert werden.) XXX -- No LUNs Keine LUNs Das Kommando LUN gibt eine Task an, die keine aktuelle LUN-Zuordnung hat. XXX -- No pool space Kein Pool-Speicherplatz Die Exekutive kann eine augenblickliche Anforderung des Kommandoprogramms nach dynamischen Speicherbereich nicht sichern bzw. im Pool ist nicht genuegend Platz zur Aufnahme der Auslagerungsinformation vorhanden, wenn das SAVE-Kommando versucht, residente gemeinsame Lese- /Schreibbereiche entsprechend ihren Dateiabbildern zu uebertragen. XXX -- No room available in STD for new task Kein Platz mehr in der STD fuer eine neue Task Die angegebene Task kann nicht installiert werden, da kein dynamischer Speicherbereich fuer die Eintragung in das Systemtaskverzeichnis (STD) vorhanden ist. XXX -- No such device available Angegebenes Geraet nicht verfuegbar Der angegebene Geraetename und die Geraeteeinheit wurden in den logischen und physischen Geraetetabellen nicht gefunden. Es sind der richtige Geraetename und die richtige Einheitennummer zu bestimmen und die Kommandozeile erneut einzugeben. XXX -- No task specified Keine Task angegeben Es besteht keine Zuordnung einer Task zu der im Kommando angegebenen Taste PFn des Bediengeraetes. 210 XXX -- No transfer address Keine Transfer-Adresse Das BOOT-Kommando betrachtet die Datei nicht als Systemabbilddatei, da die angegebene Uebertragungsadresse im Kennsatzblock des Dateikopfes fehlerhaft zu sein scheint. XXX -- No volume list Keine Datentraegerliste Das Kommando gibt ein Magnetbandgeraet an, fuer das eine eingegliederte Datentraegerliste nicht existiert. XXX -- Non existent memory Kein vorhandener Speicherplatz Es wird versucht, eine Partition in einem nichtexistie- renden Speicherbereich zu definieren. XXX -- Not enough APRs for task image Nicht genuegend APRs fuer Taskabbild Der Taskbilder erlaubt dem Nutzer, die virtuelle Basis- adresse des Taskabbildes als ein Vielfaches von 4K anzu- geben. Privilegierte Tasks beginnen bei der virtuellen Adresse 100000(8), um auf die ersten 16K der Exekutive zugreifen zu koennen, oder bei der virtuellen Adresse 120000(8), um auf die ersten 20K der Exekutive zugreifen zu koennen. Wenn die virtuelle Basisadresse zu hoch ge- setzt wird, stehen fuer die Adresszuweisung des Taskab- bildes nicht mehr genuegend APRs zur Verfuegung. XXX -- Not FM16-D device Kein FM16-D-Datentraeger Im Kommando ist ein Geraet angegeben, das kein datei- strukturiertes Geraet mit dem Dateiformat FM16-D (Platte) bzw. FM16-M (Magnetband) ist. XXX -- Not mountable device Kein eingliederbares Geraet Das angegebene Geraet wird nicht unterstuetzt wie ein Geraet mit dem Dateiformat FM16-D bzw. FM16-M. XXX -- Not mounted Nicht eingegliedert Das angegebene Geraet ist nicht eingegliedert. XXX -- Not a system image Kein Systemabbild Das Kommando BOOT hat festgestellt, dass die Datei kein Systemabbild ist. XXX -- Not file structured device Kein dateistrukturiertes Geraet Das System unterstuetzt nicht FM16-D-Dateien auf dem angegebenen Geraet. 211 XXX -- Not valid save device Kein gueltiges SAVE-Geraet Es wurde der Versuch unternommen, ein System auf einem Geraet zu retten, welches nicht Teil der System-E/A- Datenstrukturen ist (das beinhaltet im allgemeinen, dass auch $SYSIZ+2 und $SYSIZ+6 fehlerhaft sind), oder das SAVE-Kommando unterstuetzt nicht dieses Geraet. XXX -- Null file header I/O error E/A-Fehler bei einem Null-Dateikopf Beim Einrichten des Datentraegers werden Null-Dateikoepfe geschrieben. Dabei trat ein E/A-Fehler auf. XXX -- Old device attached Altes Geraet gebunden Es wird versucht, eine angeschlossene Geraeteeinheit um- zuschalten. XXX -- Old device mounted Altes Geraet eingegliedert Es wird versucht, eine eingegliederte Geraeteeinheit um- zuschalten. XXX -- Old device not known to system Altes Geraet dem System nicht bekannt Es wird versucht, eine unbekannte Geraeteeinheit umzu- schalten (das Geraet existiert nicht in den Geraetetabel- len). XXX -- Open failure on file filename Datei dateiname laesst sich nicht eroeffnen Das LOAD-Kommando stellt beim Eroeffnen der angegebenen Datei einen Fehler fest. XXX -- Open file(s) on ddnn: Geoeffnete Datei(en) auf ddnn: Es gibt auf dem Geraet ddnn: geoeffnete Dateien. XXX -- Other user logged on Ein anderer Nutzer ist angemeldet Auf dem Terminal, ueber das das Kommando HEL eingegeben wird, ist bereits ein anderer Nutzer angemeldet. Es koennen nicht gleichzeitig mehrere Nutzer an einem Terminal angemeldet sein. XXX -- Other volume mounted [-ddnn:] Ein anderer Datentraeger ist auf [-ddnn:] eingegliedert Es wird versucht, einen Datentraeger einzugliedern, der schon eingegliedert ist. Bei Magnetbandgeraeten enthaelt diese Mitteilung die Geraeteeinheit. XXX -- Output error Ausgabefehler Bei einer Schreiboperation des Terminals tritt ein Fehler auf. 212 XXX -- Parameter conflict with already mounted volume Unvertraeglicher Parameter fuer den schon eingegliederten Datentraeger Der Datentraeger war bereits mit Schalter /FOR eingeglie- dert, und FM16-D-Zugriff wurde angefordert, bzw. der Datentraeger war fuer FM16-D-Format eingegliedert und Zugriff wie auf einen fremden Datentraeger wurde angefor- dert. XXX -- Partition already exists Partition bereits vorhanden Es wird versucht, eine Partition zu definieren, deren Name schon verwendet wird. XXX -- Partition busy Partition ist belegt Die Partition, in der eine Task fixiert werden soll, ist belegt durch eine laufende Task, so dass die angeforderte Task nicht in dieser Partition fixiert werden kann. XXX -- Partition busy Partition ist belegt Eine nutzergesteuerte Partition oder Subpartition, in die ein Driver geladen werden soll, ist schon belegt, oder es ist nicht genug Platz in einer systemgesteuerten Par- tition. (Das Kommando LOA initiiert nicht die Aus- lagerung.) XXX -- Partition is a common Partition ist eine Common-Partition Es wird versucht, einen Driver in eine Common-Partition zu laden, was nicht moeglich ist. XXX -- Partition not common Partition ist keine Common-Partition Die angegebene Partition fuer eine Common-Partition oder residente Bibliothek ist nicht als eine Common-Partition definiert. XXX -- Partition not in system Partition nicht im System vorhanden Der angegebene Partitionname als ein Argument in einem Kommando oder waehrend der Erzeugung der Task kann in dem System nicht gefunden werden. XXX -- Partition not system-controlled Partition ist nicht systemgesteuert Es wurde ein Versuch durchgefuehrt, die obere Grenze einer Partition mit dem Schluesselwort /TOP zu verschieben. Das kann nur bei Partitions erfolgen, die vom System gesteuert werden. XXX -- Partition not in system Partition nicht im System vorhanden Die entweder in dem Kommando LOAD oder bei der Bildung der Task angegebene Partition ist nicht in dem System. 213 XXX -- Partition not in system, defaulting to GEN Partition nicht im System vorhanden, standard- maessig wird GEN zugewiesen Dies ist eine Warnmitteilung. Die angegebene Partition existiert nicht. Das System versucht daher, die Task in der Partition mit dem Namen GEN zu installieren. XXX -- Partition not in system, task removed - Partition nicht im System vorhanden, Task wurde entfernt Wenn eine Task in mehr als einem System benutzt wird, kann der Taskkopf auf der Platte gerade die Adresse des Partition-Steuerblocks (PCB) aus dem anderen System enthalten. Dann gibt der Kennsatzblock im Taskkopf den Namen der Partition pname an, die im System, in dem die Task laeuft, nicht enthalten ist. Der Kennsatzblock kann aber auch verfaelscht sein. XXX -- Partition parname too small Partition parname zu klein Die Partition, in die ein Driver geladen wird, ist nicht gross genug fuer diesen Driver. XXX -- Partition too small for buffer information Partition fuer die Pufferinformationen zu klein Der Ausgabepuffer fuer ein Kommando zur Ausgabe einer Liste wird ueberschritten. Die Informationen ausserhalb der Pufferlaenge werden nicht ausgegeben. XXX -- Preallocate too many headers for single header index files Beim Initialisieren werden mehr Dateikoepfe als zulaessig in den Indexdateien zugeteilt Die mit dem Schluesselwort /INF angegebene Anzahl von moeglichen Dateikoepfen auf der Platte war groeser als 25598(10). Um diese Moeglichkeit zuzulassen, muesste die Indexdatei auf dem Datentraeger ein anderes Format haben (aus mehreren Bereichen bestehen). XXX -- Privileged command Privilegiertes Kommando Ein Kommando, das einen privilegierten Nutzer voraus- setzt, wird von einem nichtprivilegierten Nutzer gegeben. XXX -- Privilege violation Zugriffsrechtsverletzung Diese Mitteilung kann aus folgendem Grund auftreten: - Nur privilegierte Nutzer koennen das Schluesselwort /OVR nutzen (hierbei handelt es sich um eine Fehlermitteilung fuer das HOME-Kommando). XXX -- Privileged task not mapped to I/O page Privilegierte Task nicht der E/A-Seite zugewiesen und ueberschreibt sie Eine privilegierte Task war groesser als 8K und ueber- schrieb die E/A-Seite. Diese Nachricht tritt auf, wenn die Task mit der Option /IOP=YES installiert ist. 214 XXX -- Processor does not support EIS Prozessor unterstuetzt nicht EIS Die Unterstuetzung fuer den erweiterten Befehlssatz (EIS) - Extended Instruction Set - ist ausgewaehlt worden. Der aktuelle Prozessor kann diese jedoch nicht unterstuetzen. XXX -- Pseudo device assignment error Pseudogeraet-Zuweisungsfehler Es wird versucht, einen logischen Geraetenamen einem Pseudogeraet zuzuordnen. XXX -- Pseudo device error Pseudogeraet-Fehler Das angegebene Geraet ist ein Pseudogeraet. Pseudogeraete koennen nicht zugeteilt werden. XXX -- Pseudo device redirect error Pseudogeraet-Umschaltfehler Die Umschaltung von einem Pseudogeraet auf ein anderes Pseudogeraet ist nicht erlaubt. XXX -- Public device [- ddnn:] Oeffentliches Geraet [-ddnn:] Das Kommando versucht, ein oeffentliches Geraet zuzu- teilen bzw. zu aktivieren, was nicht moeglich ist. XXX -- Region/partition name is a common Region bzw. Partition name ist eine Common-Partition Es wurde versucht, einen Geraetedriver in eine Common- Partition zu laden, was nicht moeglich ist. XXX -- Requested density not available Angeforderte Dichte ist nicht verfuegbar Die in der Kommandozeile angegebene Dichte wird von den angegebenen Geraeten nicht unterstuetzt. Es ist entweder die korrekte Dichte anzugeben oder ein Geraet auszuwaehlen, das die gewuenschte Dichte unterstuetzt. XXX -- Retrieval pointers wrong format Fehlerhaftes Format der Blockadresszeiger Die Blockadresszeiger haben nicht das korrekte Format. XXX -- Running above system image file limit Ausserhalb der Grenzen der Systemabbilddatei Die Systemabbild-Datei, die erzeugt wird, um das geret- tete System aufzunehmen, ist OMEX.SYS. Diese Fehlermit- teilung erscheint, wenn OMEX.SYS nicht gross genug ist, um sowohl das System als auch die Task des Kommandos SAVE aufzunehmen. Die Task des Kommandos SAVE muss in dem ge- retteten System eingeschlossen sein, weil diese Task beim Wiederladen des Systems benoetigt wird. Entweder laeuft die Task in einer Partition in einem niederen Speicher- bereich, oder das System ist mit einer groesseren System- abbild-Datei zu erzeugen. XXX -- Space used Benutzter Bereich Es wird versucht, eine Partition oder Subpartition in einem Speicherbereich zu erzeugen, der schon belegt ist. 215 XXX -- Specified partition for common block Angegebene Partition fuer den Common-Block Es wird versucht, eine Task in einer Common-Partition zu installieren. XXX -- Specified partition too small Angegebene Partition zu klein Die zu installierende Task ist groesser als die Partition, in der sie installiert werden soll. XXX -- Storage BITMAP file header I/O error E/A-Fehler beim Dateikopf der Datentraegerbelegungsliste Es wird ein Fehler beim Schreiben des Kopfes der Daten- traegerbelegungsliste festgestellt. XXX -- Storage BITMAP file read error Lesefehler bei der Datentraegerbelegungsliste Es wird ein Fehler festgestellt, waehrend versucht wird, die Datentraegerbelegungsliste zu lesen. XXX -- Switch is not legal for this device type Fuer den Geraetetyp ist der Schalter nicht erlaubt Das angegebene Schluesselwort kann nicht vom spezifizier- ten Geraetedriver verwendet werden. Beschreibung der Schluesselwoerter fuer das Geraet ueberpruefen! XXX -- Switch is not legal in this mode In diesem Modus ist der Schalter nicht erlaubt Es wurde der Versuch durchgefuehrt, die Schluesselwoerter des HOME-Kommandos und/oder deren Options beim Kommando INI zu benutzen. XXX -- Switch syntax error Schaltersyntaxfehler Das angegebene Schluesselwort ist fehlerhaft. Erneute Eingabe der Kommandozeile ist erforderlich. XXX -- Symbol is doubly defined by Symbol ist durch doppelt definiert Das Symbol symname ist in der angegebenen Datei doppelt definiert. XXX -- Symbol is undefined by Symbol ist durch nicht definiert Das Symbol symname wurde in der angegebenen Datei gefunden, aber das Symbol war nicht definiert. XXX -- Symbol error Syntaxfehler Diese Mitteilung zeigt allgemein an, dass die verlangte Information unkorrekt eingegeben wurde. Das Kommando ist ordnungsgemaess einzugeben. 216 XXX -- System may not boot correctly System kann nicht korrekt geladen werden Die Datei [system-uic] SAV.TSK wird auf dem Ladegeraet LB: nicht gefunden. Wenn SAVE ausgelagert werden muss, um das geladene Geraet ordnungsgemaess umzuschalten und ein- zugliedern, wird die Systemplatte ueberschrieben, was zu unberechenbaren Ergebnissen fuehrt. XXX -- $SYSIZ does not point at system image file $SYSIZ weist nicht auf die Systemabbilddatei Das SAVE-Kommando ermittelt den Speicherplatz fuer die Systemabbilddatei auf der Platte, indem die Speicherplaetze in der Naehe der Systemmarke $SYSIZ ueberprueft werden. Das SAVE-Kommando fuehrt dann verschiedene Gueltigkeitspruefungen bei dieser Datei durch. Sind diese Pruefungen negativ, dann schreibt das SAVE-Kommando nicht auf die Platte, um die Platte nicht zu verfaelschen. XXX -- Tape not ANSI or incorrect tape format Magnetband hat kein ANSI-Format bzw. das Format ist nicht richtig Die Bandkennsaetze entsprechen nicht dem ANSI-Standard (FM16-M) bzw. das Band ist kein ANSI-Band mit Kennsaet- zen. Andere Bandformate sind mit den Schluesselwoer- tern /NOLABEL bzw. /FOR zu spezifizieren. XXX -- Task active Task ist aktiv Die Task, die als Argument des Kommandos verwendet wird, ist aktiv. XXX -- Task already assigned Task ist schon zugewiesen Der im Kommando angegebenen Taste PFn des Bediengeraetes ist bereits eine Task zugeordnet. XXX -- Task active in another system, task removed - Task ist in einem anderen System installiert, Task entfernt - Die Task ist sowohl in einem anderen als auch in dem geladenen System installiert. Da die Task aktiv und der dynamischen Region des anderen Systems zugewiesen ist, kann diese im geladenen System nicht gestartet werden. XXX -- Task already fixed Task ist schon fixiert Die als Argument in dem Kommando FIX angegebene Task ist schon im Hauptspeicher fixiert. XXX -- Task being aborted Task wird gerade abgebrochen Eine Anforderung fuer die Ausfuehrung einer Task wird gemacht, aber die Task ist entweder durch einen Fehler oder durch das Kommando ABORT bzw. eine Direktive abge- brochen worden. 217 XXX -- Task being fixed Task wird gerade fixiert Es wird versucht, eine Task, die gerade im Hauptspeicher fixiert wird, entweder zu fixieren oder ihre Prioritaet zu aendern. XXX -- Task checkpointable Task auslagerbar Es wird versucht, eine auslagerbare Task im Haupt- speicher zu fixieren, was nicht moeglich ist. XXX -- Task file deleted, task removed - Taskdatei geloescht, Task entfernt - Waehrend des Wiederladens eines geretteten Systems kann die Identifikation einer Datei, die in dem Tasksteuer- block erscheint, nicht in der Index-Datei auf dem Ladegeraet gefunden werden. Die Datei ist folglich ge- loescht. XXX -- Task file header error, task removed - Task-Dateikopf-Fehler, Task entfernt Als das SAVE-Kommando beim Umspeichern der LBN der Taskdatei den Taskkopf las, war die Pruefsumme fehlerhaft bzw. es lag eine Nichtuebereinstimmung der Dateinummern vor. Die Task wurde deshalb entfernt. XXX -- Task file header read error, task removed - Task-Dateikopf-Lesefehler, Task entfernt Das System streicht die angegebene Task, weil es einen Fehler waehrend des Lesens des Dateikopfes der Task fest- stellt. XXX -- Task header read error Taskkopf-Lesefehler Das System ermittelt einen E/A-Fehler waehrend des Lesens eines Taskkopfes, um die Identifikation der Datei in den Tasksteuerblock (TCB) zu speichern. Der Fehler stoppt das System. XXX -- Task image already installed Taskabbild schon installiert Das angeforderte Taskabbild, das auslagerbar ist, ist schon installiert. In Systemen, die keine dynamische Zu- teilung von Auslagerungsbereich besitzen, koenen ausla- gerbare Tasks, denen kein Auslagerungsbereich zugeteilt ist, nur einmal installiert werden. Andere Tasks koennen mehr als einmal installiert werden (mit verschiedenen Namen). XXX -- Task image I/O error Taskabbild-E/A-Fehler Das Kommando INSTALL kann die Taskabbildatei nicht lesen, oder es kann den Kopf des Taskabbildes nicht wieder schreiben. (Das Geraet ist schreibgeschuetzt.) XXX -- Task image I/O error in file Taskabbild-E/A-Fehler in Datei Das Geraet ist vermutlich schreibgeschuetzt. MCR konnte die Taskabbilddatei nicht lesen bzw. nicht den Dateikopf zurueckschreiben. 218 XXX -- Task image currently installed Taskabbild gerade installiert Das angeforderte Taskabbild ist schon installiert. Diese Mitteilung erscheint nur bei auslagerbaren Tasks. XXX -- Task image virtual address overlaps common block Virtuelle Addresse des Taskabbildes ueberlappt den Common-Block Die virtuelle Adresse, die fuer das Taskabbild reserviert ist, ueberlappt diejenige, die fuer den Common-Block re- serviert ist, der in der Mitteilung angegeben wurde. Eine Verfaelschung der Taskabbilddatei verursacht die Ueber- lappung. XXX -- Task installed in partition Installierte Tasks in der Partition Es wird versucht, eine Partition zu eliminieren, die installierte Tasks enthaelt. XXX -- Task label block read error, task removed - taskname Task-Kennsatzblock-Lesefehler, Task wird entfernt - taskname Beim Versuch des SAVE-Kommandos, die LUNs der Task im aktuellen System neu zuzuordnen, konnte der Kennsatzblock der Task nicht gelesen werden. (Der Kennsatzblock enthaelt die statischen LUN-Zuordnungen). Die Task wurde deshalb entfernt. XXX -- Task marked for abort Task fuer Abbruch vorgemerkt Durch eine vorhergehende Anforderung ist die angegebene Task schon fuer einen Abbruch vorgesehen, aber der Ab- bruch konnte noch nicht ausgefuehrt werden, da die Task wahrscheinlich nicht staendig im Speicher resident ist. XXX -- Task may not be run Task kann nicht gestartet werden Es wurde der Versuch durchgefuehrt, eine CLI-Task abzuar- beiten. Die CLI-Tasks werden durch das System aktiviert, aber sie koennen mit der Option INSTALL-RUN-REMOVE des RUN-Kommandos nicht aktiviert werden. XXX -- Task name already in use Taskname schon vorhanden Es wird versucht, eine Task zu installieren, die den gleichen Namen hat wie eine schon im System befindliche Task. XXX -- Task not ACP Task ist kein ACP Die als eine Zusatzsteuerroutine angegebene Task hat nicht die Merkmale einer Zusatzsteuerroutine. XXX -- Task not active Task nicht aktiv Die angegebene Task ist augenblicklich nicht aktiv. 219 XXX -- Task not a CLI Task ist kein CLI Es wurde versucht, eine CLI-Task zu aktivieren, die nicht mit dem Schluesselwort /CLI=YES installiert wurde. XXX -- Task not fixed Task nicht fixiert Es wird versucht, das Fixieren einer Task aufzuheben, obwohl sie nicht fixiert ist. Es soll auf einen Speicher- platz einer Task mit dem Kommando OPENREGISTER zugegrif- fen werden, aber die Task ist nicht fixiert. XXX -- Task not in system Task nicht im System Die angegebene Task wurde nicht installiert, oder die Task wurde mit der INSTALL-RUN-REMOVE-Option des RUN- Kommandos aktiviert. XXX -- Task not suspended Task nicht suspendiert Die Task, die als Argument des Kommandos RESUME angegeben ist, wurde nicht in der Ausfuehrung unterbrochen. XXX -- Task has outstanding I/O Task hat ausstehende E/A Ein System kann nicht gerettet werden, wenn eine Task auf den Abschluss der E/A wartet. XXX -- Task is active and checkpointed Task ist aktiv und ausgelagert Ein System kann nicht gerettet werden, wenn es eine aktive und ausgelagerte Task enthaelt. Diese Einschraen- kung verhindert einen moeglichen Systemzusammenbruch, denn, wenn die Task in einem anderen Systemabbild instal- liert wurde, koennte das Taskabbild zerstoert werden, wenn diese Task in dem neuen System gestartet wuerde. XXX -- Task is connected to an interrupt vector Task ist mit einem Interrupt-Vektor verbunden Die Task ist vom Unterbrechungsvektor zu trennen oder abzubrechen, und die SAVE-Kommandozeile ist erneut einzugeben. XXX -- Task not installed from an LB: Task nicht vom Systemgeraet LB: installiert Alle Tasks muessen vom Systemgeraet (LB:) installiert werden. Das Kommando TAS ist zu verwenden, um eine Information ueber die nicht installierten Tasks zu erhalten. Die SAVE-Kommandozeile ist erneut einzugeben, nachdem die Tasks aus dem STD gestrichen bzw. vom LB: installiert worden sind. 220 XXX -- Task too big for partition, task removed - taskname Task ist fuer die Partition zu gross, Task wurde entfernt - taskname Die aktuelle ZVE besitzt weniger Speicherkapazitaet, als das bei der Systemabbilddatei der Fall ist. Diese Mitteilung zeigt an, dass die letzte Partition derart verkleinert ist, dass fuer die angezeigte Task kein Platz darin vorhanden ist, selbst dann nicht, wenn etwas anderes aus dieser Partition entfernt wird. XXX -- Terminal allocated to other user Terminal ist einem anderen Nutzer zugeteilt Das eingebende Terminal ist einem anderen Nutzer zuge- teilt. Ein Nutzer kann sich nicht an einem Terminal an- melden, das irgendeinem anderen Nutzer zugeteilt ist. XXX -- Terminal is busy -- TTn: Terminal belegt -- TTn: Eine Mitteilung des Kommandos BRO kann nicht innerhalb von 10 sec. auf dem durch TTn: angegebenen Terminal ausgegeben werden. XXX -- This program must be invoked as a MCR function Dieses Programm muss als MCR-Funktion aufgerufen werden Die Task muss mit dem Tasknamen ...HOM oder ...INI installiert werden. XXX -- TI: redirect error TI:-Umschaltfehler Es wird versucht, das Pseudogeraet TI: umzuschalten, was nicht erlaubt ist. XXX -- Timestamp xxx Task "taskname" does not contain a debugging aid Zeitmarkierung xxx Task "taskname" enthaelt keine Test- hilfe Es wurde versucht, eine Task mit der Testhilfe DEP/ODT zu bearbeiten, welche nicht mit dem /DA-Schalter des Taskbilders aufgebaut wurde. Solche Tasks koennen die Testhilfe zum Fehlersuchen nicht benutzen. XXX -- Too many common block requests Zu viele Common-Block-Anforderungen Eine Task kann nur auf maximal sieben Common-Bloecke Bezug nehmen. XXX -- Too many devices attached, no further attach messages Zu viele Geraete sind angeschlossen, keine weiteren Anschlussmeldungen Das DMO-Kommando gibt diese Mitteilung, wenn waehrend einer DMO-Nutzeroperation acht (oder mehr) Geraete angeschlossen sind. Eine Mitteilung wird fuer das achte Geraet ausgegeben, aber nicht fuer weitere Geraete darue- ber hinaus. XXX -- Too many LUNs Zu viele LUNs Der angeforderten Task sind mehr als 255 LUNs zugewiesen. 221 XXX -- Too many subpartitions Zu viele Subpartitions Es wird versucht, mehr als sieben Subpartitions zuzuwei- sen. Eine Partition kann in maximal sieben Subpartitions unterteilt werden. XXX -- TT: redirect error TT: Umschaltfehler Es wurde versucht, ein Terminal auf das Nullgeraet umzuschalten. Diese Kombination ist nicht zulaessig. XXX -- Undefinded common block Undefinierter Common-Block Eine Task nimmt auf einen Common-Block Bezug, der in dem System nicht definiert ist. Gewoehnlich zeigt diese Mit- teilung an, dass die Task erzeugt wurde, um in einem anderen System zu laufen. XXX -- Unit allocated to or in use by another user Geraeteeinheit zugeteilt oder von einem anderen Nutzer belegt Das Geraet ist einem anderen Nutzer zugewiesen bzw. eine andere Task ist an diese Einheit angeschlossen. Es ist zu ueberpruefen, ob der Datentraeger auf dem richtigen Ge- raet aufgelegt ist, ob die richtige Einheit im Kommando angegeben ist und dass kein anderer Nutzer zugewiesen ist. XXX -- Undefined density selection Auswahl der Dichte nicht definiert Die Kommandozeile spezifizierte eine nicht erlaubte Dichte. XXX -- Units attached, busy, and/or mounted Geraeteeinheiten sind gebunden, belegt und/oder einge- gliedert Ein oder mehrere Geraeteeinheiten, die von einem Driver bedient werden, sind angeschlossen, eingegliedert oder haben ausstehende E/A-Anforderungen, so dass der Driver nicht entladen werden kann. XXX -- Unit does not support density switch Geraeteeinheit unterstuetzt nicht den Schalter /DENSITY Die Kommandozeile spezifizierte eine Mehrfach-Dichte fuer ein Geraet, das keine Faehigkeit fuer Mehrfach-Dichte hat. XXX -- Unit offline Geraeteeinheit off-line Die angegebene Geraeteeinheit war nicht im On-line- Zustand, als das System geladen wurde. XXX -- Unit specified more than once in multi-volume Geraeteeinheit mehr als einmal im Mehrfach-Datentraeger angegeben Ein Geraet kann fuer Mehrfachdatentraeger-Band-Sets nur einmal angegeben werden. 222 XXX -- Unknown main partition Unbekannte Mainpartition Es wird versucht, eine Subpartition in einer nichtexistie- renden Mainpartition zu definieren. XXX -- Unknown help qualifier Unbekannter Help-Ausdruck Die Help-Datei enthaelt nicht den letzten Ausdruck, der in der Kommandozeile, die nach der Fehlermitteilung ausgegeben wird, angegeben ist. XXX -- Unrecovered device error Geraetefehler trotz wiederholter Versuche Nach der Standardanzahl an Wiederholungen konnte die E/A- Operation immer noch nicht erfolgreich abgeschlossen werden. Diese Fehlermitteilung zeigt gewoehnlich einen Fehler auf dem Datentraeger an. Es ist das Problem zu korrigieren und die Kommandozeile erneut einzugeben. XXX -- User logged on terminal Auf dem Terminal ist ein Nutzer angemeldet Das Kommando versucht, ein Terminal zuzuteilen, an dem ein anderer Nutzer angemeldet ist. Angemeldete Terminals koennen nicht zugeteilt werden. XXX -- User partition > than 32K not permitted Nutzer-Partition > 32K ist nicht zugelassen Das Kommando versucht, eine Partition zu erzeugen, die groesser als 32K ist. Vom Nutzer gesteuerte Partitions, die groesser als 32K sind, koennen in einem System, das keinen erweiterten logischen Adressraum besitzt (eine Option der Systemgenerierung), nicht erzeugt werden. XXX -- Value of (/INF + 5) exceeds /MXF Wert von (/INF + 5) ueberschreitet den Wert von /MXF Der mit dem Schluesselwort /INF + 5 angegebene Wert (fuer die 5 Systemdateien) ist groesser als die maximale Anzahl der mit /MXF spezifizierten Dateien. XXX -- Volume already mounted Datentraeger schon eingegliedert Der Datentraeger ist bereits als nicht gemeinsam nutzba- rer bzw. als oeffentlicher Datentraeger eingegliedert und kann nicht ein zweites Mal eingegliedert werden. XXX -- Volume mounted FM16-D Datentraeger mit Dateiformat FM16-D eingegliedert Es wird versucht, einen eingegliederten Datentraeger zu initialisieren. Eingegliederte FM16-D-Datentraeger koen- nen nicht initialisiert werden. XXX -- Volume name too long - Datentraegername zu lang - Die Kommandozeile spezifizierte eine Datentraeger- kennzeichnung, die laenger ist als fuer den angegebenen Geraetetyp zulaessig. 223 XXX -- Volume not mounted Datentraeger nicht eingegliedert Es wird versucht, einen Datentraeger auszugliedern bzw. ein UFD auf einem Datentraeger zu erzeugen, der nicht eingegliedert ist. Ein Datentraeger, auf dem ein UFD erzeugt werden soll, muss eingegliedert sein. XXX -- Volume not mounted by TI: Datentraeger nicht von TI: eingegliedert Die Kommandozeile spezifizierte eine Ausgliederungs- operation fuer einen Datentraeger, der nicht vom gegebe- nen Terminal eingegliedert wurde, oder die Kommandozeile spezifiziert einen falschen Geraetenamen fuer ein Magnet- band-Set. XXX -- Volume not ready Datentraeger nicht bereit Das Kommando gibt einen Datentraeger an, der nicht bereit ist. XXX -- Volume(s) still mounted on Datentraeger noch auf (Warnung) Nichtvorhandene LUN-Zuweisung fuer Task Das physische Geraet, zu welchem das SAVE-Kommando eine LUN neu zuweisen wollte, war im geretteten System nicht vorhanden. Diese Fehlerbedingung wird festgestellt, wenn die Task eine Laufzeit-Zuweisung zur LUN durchfuehrt. Anderenfalls stoesst die Task auf eine Fehlerbedingung, wenn sie versucht, die LUN zu nutzen. XXX -- Warning -- privileged task overmaps the I/O page Warnung -- Privilegierte Task ueberlagert die E/A-Seite Eine privilegierte Task, die dem Adressbereich der Exeku- tive zugewiesen ist, ist gewoehnlich auch der E/A-Seite zugewiesen, um auf die Register der Speichervermittlungs- einheit und anderer Geraete zugreifen zu koennen. Viele Tasks verlangen diesen Zugriff nicht und koennen die hin- zugefuegten 4K Worte des virtuellen Adressbereichs fuer das Taskabbild verwenden. Diese Mitteilung warnt, dass eine Task, die zu der E/A-Seite Zugriff verlangt, zu gross werden kann. XXX -- Warning -- Tasks installed from ddnn: Warnung -- Tasks sind von ddnn: installiert Von der Platte, die ausgegliedert werden soll, sind noch Tasks installiert. Das DMO-Kommando gliedert die Platte aus, die Tasks koennen aber noch abgearbeitet werden, bis die Platte angehalten wird. Das Kommando TAS zeigt auf dem Terminal die installierten Tasks an. XXX -- Work device not redirectable Umweisen der Arbeitsplatte nicht moeglich Das Ausgliedern der Platte wurde bei bereits ausgeglie- derter Sicherungsplatte angefordert. XXX -- Write attributes failure Fehler beim Schreiben der Attribute Beim Schreiben der Attribute des Hauptdateiverzeich- nisses (MFD) oder eines neu geschaffenen UFD wird ein Fehler festgestellt. XXX -- Write check not supported Schreibpruefung wird nicht unterstuetzt Es wird versucht, eine Schreibpruefung fuer eine Platte in einem System anzugeben, das diese Option nicht unter- stuetzt (siehe dazu die Beschreibung des Schluesselwortes /WCHK zu den gueltigen Geraeten). XXX -- Wrong volume Falscher Datentraeger Die Datentraegerkennzeichnung und der in der Kommando- zeile angegebene Datentraegername stimmen nicht ueberein. XXX -- Wrong volume label Falscher Datentraegerkennsatz Der Name des Datentraegers und der im Kommando angegebene Datentraegername stimmen nicht ueberein. 225 3.4.2. Mitteilungen des Zusatzsteuerprozessors (ACP) ---------------------------------------------------- Mitteilungen, welche mit xxxxxx beginnen, stammen vom Zusatz- steuerprozessor (ACP), der die betreffenden FM16-Magnetbandge- raete bedient. Die Mitteilungen werden bei Umschaltoperationen bei Mehrfachdatentraegerverarbeitung generiert. Eine Mitteilung erscheint zuerst auf der Systemkonsole. Wenn bis zum Ablauf des Time-out-Intervalls keine Massnahme ergriffen wurde, dann erscheint die Mitteilung erneut auf der Systemkonsole und auf dem Terminal, von welchem die Kommandozeile eingegeben wurde. Diese Mitteilungen treten nicht waehrend der Ausfuehrung des MOUNT-Kommandos auf, sondern als Ergebnis von Operationen, welche durch ein Dienstprogramm oder durch ein Nutzerprogramm ausgefuehrt werden. xxxxxx Expiration date not reached on volume volume-id on ddnn: mount another volume on drive ddnn: or place on-line to use Verfallsdatum von Band volume-id auf ddnn: nicht erreicht. Anderen Datentraeger auf ddnn: auflegen oder on-line setzen Das naechste Ausgabeband soll eroeffnet werden, aber das Verfallsdatum des Datentraegers ist noch nicht erreicht. Es kann ein anderer Datentraeger aufgelegt werden, wobei das Verfallsdatum ebenfalls geprueft wird, oder es kann das Magnetband bzw. ein anderes mit demselben Datentrae- gerkennsatz "on-line" gesetzt werden, wobei der alte In- halt ueberschrieben wird (unabhaengig vom Verfallsdatum). Diese Mitteilung erscheint nur bei Datentraegerwechsel. Wenn ein Programm eine Datei erstellt und dabei die Position einer Datei angibt, deren Verfallsdatum noch nicht erreicht wurde, wird die Operation mit dem Rueck- kehrcode IE.EXP abgebrochen. xxxxxx Mount next volume on drive ddnn: Naechstes Band auf ddnn: auflegen Das naechste Magnetband soll auf das angegebene Geraet gelegt werden. Der Datentraegerkennsatz ist ACP nicht bekannt. Wenn diese Mitteilung erscheint, sind folgende Aktionen in Abhaengigkeit von der laufenden Bearbeitungs- operation erforderlich. 1. Lesen: Das naechste Band des Mehrfachdatentraegersatzes soll aufgelegt werden. Der Kennsatz wird nicht geprueft, andere Vertraeglichkeitspruefungen finden jedoch statt, abhaengig von der speziellen Leseoperation. 2. Schreiben: In diesem Falle nimmt ACP jedes ordentlich initialisierte Magnetband an. Das Verfallsdatum der ersten Datei wird geprueft, um ein versehentliches Ueberschreiben zu verhindern. Wenn der Schreibring fehlt, wenn das Geraet "on- line" gesetzt wird, erhaelt das Programm, das auf das Band schreiben will, eine Fehlermit- teilung. 226 xxxxxx Mount volume-id on drive ddnn: Band mit der Datentraegerkennzeichnung "volume-id" auf ddnn: auflegen Das angegebene Band ist auf dem angegebenen Laufwerk auf- zulegen. Der Datentraegerkennsatz ist ACP bekannt, da entweder in der Kommandozeile die Kennsaetze des Mehrfach- datentraegersatzes angegeben wurden oder ACP die Kenn- saetze schon beim Eingliedern des Mehrfachdatentraeger- satzes gelesen hat. xxxxxx Place drive ddnn: on-line Laufwerk ddnn: on-line setzen Das naechste anzusprechende Magnetbandgeraet ist off-line. xxxxxx Requested action for drive ddnn: not completed Angeforderte Aktion fuer Laufwerk ddnn: unvollstaendig Das ist eine Mahnung. Eine Bedingung, die in einer vorigen Nachricht erwaehnt wurde, ist noch nicht bearbeitet. xxxxxx Requested action for task taskname on drive ddnn: not completed/please complete or abort task Angeforderte Aktion fuer Task taskname auf Geraet ddnn: unvollstaendig / Bitte vervollstaendigen oder Task ab- brechen. Das ist eine Mahnung nach laengerer Wartezeit. xxxxxx Wrong volume mounted on drive ddnn: Falscher Datentraeger auf ddnn: Ein Folgeband eines Mehrfachdatentraeger-Sets wurde on- line gesetzt, aber ACP erkennt ihn nicht an. Ursachen koennen sein: 1. Im MOUNT-Kommando wurden explizit Datentraegernamen angegeben. Das auf dem Laufwerk befindliche Band hat nicht den angegebenen Kennsatz. 2. Der ACP hat waehrend des Eingliederns die Kennsaetze schon einmal gelesen, aber das aufgelegte Band ist nicht mehr dasjenige, welches eingegliedert wurde. 3. Das Magnetband hat nicht das Format FM16-M. 4. Wegen eines Geraetefehlers konnte keiner der Kenn- saetze am Bandanfang gelesen werden. 5. Andere Unvertraeglichkeiten innerhalb der Datentrae- gerkennsaetze sind aufgetreten. 227 4. Verarbeitungsprogramm fuer Indirekt-Kommandodateien (AT.-Prozessor) ------------------------------------------------------------- 4.1. Uebersicht ueber die Funktionen des Verarbeitungsprogramms --------------------------------------------- 4.1.1. Allgemeine Erlaeuterung --------------------------------- Eine Indirekt-Kommandodatei ist eine Textdatei, die eine Reihe von Kommandos enthaelt. Die Tasks, die diese Kommandos interpre- tieren, sind meist systemabhaengige Bestandteile des OMOS 1630, wie z.B. das Verarbeitungsprogramm selbst, der Editor, der Assembler oder der Taskbilder. Indirekt-Kommandodateien haben den Dateityp .CMD. Sollen die in der Datei enthaltenen Kommandos abgearbeitet werden, ist die Eingabeanforderung des entsprechen- den Programms auf dem Bediengeraet mit Sonderzeichen @ und der Dateispezifikation zu beantworten. Die Angabe des Dateityps .CMD kann hierbei entfallen. Beispiel -------- Die Indirekt-Kommandodatei IND.CMD, die Kommandos fuer den Assembler enthaelt, kann wie folgt abgearbeitet werden: MAC>@IND.CMD oder MAC>@IND Indirekt-Kommandodateien, die zur Verarbeitung durch das Komman- doprogramm CLI bestimmt sind, koennen ausser CLI-Kommandos auch Anweisungen, Kommentare und Aufrufe weiterer Indirekt-Kommando- dateien enthalten. Das zum Kommandoprogramm gehoerende Verarbei- tungsprogramm fuer Indirekt-Kommandodateien (AT.) interpretiert diese Dateien. Eine Indirekt-Kommandodatei wird unter Angabe des Zeichens @ und Dateispezifikation zur Abarbeitung gebracht. >@ABC.CMD oder >@ABC Wenn das Ende der Indirekt-Kommandodatei (bei Schachtelung das Ende der Datei der hoechsten Ebene) erreicht ist, oder wenn eine Eingabeanforderung des Verarbeitungsprogramms mit CTRL/Z beant- wortet wurde, wird die Mitteilung >@ ausgegeben, worauf eine neue Kommandoanforderung des CLI folgt. Im vorliegenden Abschnitt werden die Indirekt-Kommandodateien be- schrieben, die an das Kommandoprogramm CLI gerichtet sind. Das Verarbeitungsprogramm liest die Indirekt-Kommandodatei und interpretiert sie Zeile fuer Zeile. Folgende Zeilen werden dabei vom Verarbeitungsprogramm selbst be- arbeitet: - Anweisungen; ihnen ist ein Punkt vorangestellt (siehe 4.3.). Alle Anweisungen werden von ihren Argumenten mindestens durch ein Leerzeichen getrennt. - Kommentare; ihnen ist ein Semikolon vorangestellt - Aufruf einer weiteren Indirekt-Kommandodatei - Logisches Ende einer Indirekt-Kommandodatei 228 Das Verarbeitungsprogramm uebergibt folgende Zeilen an das Kom- mandoprogramm und wartet auf die vollstaendige Beendigung des Kommandos: - CLI-Kommandos - Start eines installierten Systemprogramms mit Namen und Angabe einer Ausfuehrungsanweisung an dieses Programm - Start einer installierten nutzergeschriebenen Task mit Namen Das Kommandoprogramm schreibt auf der Bedieneinheit die ausge- fuehrte Zeile aus. Falls das Verarbeitungsprogramm mit Angabe des Schalters /NOMC oder /-MC aktiviert wurde, werden CLI-Kommandos nicht verarbeitet, sondern in Kommentar mit vorangestellten Aus- rufezeichen umgewandelt (siehe 4.1.6.). Eine Zeile einer Indirekt-Kommandodatei darf 132 Zeichen nicht ueberschreiten. Von einer Indirekt-Kommandodatei kann der Nutzer eine weitere per Kommando @dateiname aufrufen. Nach deren Beendigung (Kein Ende- kennzeichen [/] anbringen!) wird in die rufende zurueckgekehrt und fortgefahren. Die Schachtelungstiefe fuer Indirekt-Kommando- dateien betraegt 4. Die Anweisung .ENABLE GLOBAL erlaubt die Definition von Symbolen als global fuer alle Dateiebenen (siehe 4.3.11.). Andernfalls gelten bei der Arbeit in einer tieferen Ebene nur die Symbole, die in der laufenden Ebene definiert sind, waehrend auf Symbole der uebergeordneten Ebene nicht zugegriffen werden kann. Die Symbole sind lokal in der Datei, in der sie definiert wurden. Wird die Steuerung der uebergeordneten Ebene zurueckgegeben, werden die Symbole, die in dieser Ebene definiert wurden, wieder gueltig und die der niedrigeren Ebene gehen verloren. 4.1.2. Verarbeitung von Kommandos und Anweisungen ----------------------------------------------------- Das Verarbeitungsprogramm fuer Indirekt-Kommandodateien uebergibt ein CLI-Kommando an das Kommandoprogramm. Das Verarbeitungspro- gramm wartet grundsaetzlich, bis das Kommandoprogramm die Zeile bearbeitet hat, bevor es die naechste Kommandozeile zur Verfue- gung stellt. Es wird darauf hingewiesen, dass es mittels der An- weisung .XQT doch moeglich ist, Zeilen zur Verarbeitung an das Kommandoprogramm zu uebergeben und nicht auf seine Beendigung zu warten (siehe dazu 4.3.38.). Das Verarbeitungsprogramm fuer Indirekt-Kommandodateien prueft zunaechst das erste Zeichen der Zeile. Dabei bearbeitet es Zei- len, die mit Punkt (.), Semikolon (;), kommerziellem A (@) oder Schraegstrich (/) beginnen, selbst. Testanweisungen stehen mit einem CLI-Kommando oder einer Anweisung gemeinsam auf einer Zei- le. Ist das Ergebnis des Testes positiv, so wird der Rest der Zeile abgearbeitet; ist der Test negativ, so wird der Rest der Zeile ignoriert (siehe 4.3.17.). Beispiel -------- .IFNINS PIP INS [1,54]PIP Falls die Task PIP nicht installiert ist, uebergibt das Verarbei- tungsprogramm das Kommando INS [1,54]PIP zum Kommandoprogramm zur Ausfuehrung. Falls PIP bereits installiert ist, wird das Kommando nicht uebergeben. 229 4.1.3. Zusammenstellung der Anweisungen ------------------------------------------ Nachfolgend werden die Anweisungen nach Kategorien geordnet zu- sammengestellt. Eine ausfuehrliche Beschreibung in alphabetischer Folge erfolgt in Punkt 4.3. Anweisung Funktion ========= ======== Markendefinition ---------------- .label Definieren einer Marke, auf die Bezug genommen werden kann. Symboldefinition ---------------- .ASK Anforderung an den Bediener, eine Frage mit Y (ja) oder N (nein) zu beantworten. .ASKN Anforderung an den Bediener, einen Zahlenwert einzugeben. .ASKS Anforderung an den Bediener, eine Zeichenkette einzugeben. .ERASE Bewirkt das Streichen aller lokalen oder aller globalen oder eines ein- zelnen globalen Symbols. .SETD/.SETO Definieren der Zahlenbasis eines numerischen Symbols. .SETN Bewirkt das Zuordnen des numerischen Wertes zu einem Symbol. .SETT/.SETF/.SETL Bewirkt das Definieren oder Wechseln des Wertes eines logischen Symbols. .SETS Bewirkt das Zuordnen des Wertes einer Zeichenkette zum Symbol. Dateizugriff ------------ .CHAIN Schliessen der laufenden Indirekt- Kommandodatei, Eroeffnen und Fort- setzen der Bearbeitung durch Abar- beitung der Kommandos einer neuen Datei. .CLOSE Schliessen einer sekundaeren Aus- gabedatei (Gegenteil: .OPEN). .DATA Ausgabe von Daten an eine sekun- daere Ausgabedatei. 230 .OPEN Eroeffnen einer sekundaeren Aus- gabedatei (Gegenteil: .CLOSE). .OPENA Eroeffnen einer vorhandenen sekun- daeren Ausgabedatei und Anhaengen von Daten. .OPENR Eroeffnen einer sekundaeren Datei zum Lesen mittels Anweisung .READ. .PARSE Bewirkt das Zerlegen von Ketten in Unterketten. .READ Bewirkt das Lesen eines Satzes von einer sekundaeren Datei in eine angegebene Kettenvariable. Logische Steuerung ------------------ .BEGIN Bewirkt das Markieren des Anfangs eines BEGIN-END-Blockes. .END Bewirkt das Markieren des Endes eines BEGIN-END-Blockes. .EXIT Bewirkt das Beenden des Verarbei- tungsprogramms bzw. der aktuellen Kommandodatei und Rueckgabe der Steuerung. .GOSUB Verzweigen zu einer Subroutine (Gegenteil: .RETURN). .GOTO Verzweigen zu einer Marke. .ONERR Verzweigen zu einer Marke bei Erkennen eines Fehlers. .RETURN Rueckkehr von einer Subroutine (Gegenteil: .GOSUB). .STOP Bewirkt das Beenden der Indirekt- Kommandodateiverarbeitung und wahlweise das Setzen des Austritts- status. Diese Anweisung ist aequiva- lent zur Anweisung / (logisches Dateiende). / Definiert das logische Dateiende der Indirekt-Kommandodatei. Es bewirkt das Beenden der Dateiverarbeitung und Verlassen der Indirekt-Kommando- datei. Diese Anweisung ist aequiva- lent zur Anweisung .STOP. 231 Logische Tests -------------- .IF Test, ob ein Symbol eine spezielle Bedingung erfuellt. .IFACT/.IFNACT Test, ob eine Task im System aktiv ist oder nicht. .IFDF/.IFNDF Test, ob ein Symbol definiert ist oder nicht. .IFENABLED/ Test, ob die betreffende Betriebsart .IFDISABLED ein- oder ausgeschaltet ist. .IFINS/.IFNINS Test, ob eine Task im System in- stalliert ist oder nicht. .IFLOA/.IFNLOA Test, ob ein ladbarer Driver geladen ist oder nicht. .IFT/.IFF Test, ob ein Symbol wahr oder falsch ist. .TEST Test der Laenge eines Kettensymbols bzw. Auffinden einer Unterkette. .TESTDEVICE Anforderung von Informationen ueber ein physisches Geraet. .TESTFILE Ermittelt, ob eine angegebene Datei vorhanden ist bzw. ordnet einem lo- gischen Geraetenamen das entsprechen- de physische Geraet zu. .TESTPARTITION Informationen ueber eine Partition des Systems werden der Kommandodatei zur Verfuegung gestellt. Freigabe bzw. Sperren einer Betriebsart --------------------------------------- .ENABLE/.DISABLE Es werden folgende Betriebsarten er- laubt bzw. gesperrt - Anschlussmodus - CONTROL-Z-Modus - Datenmodus - Dezimalmodus - Streichungsmodus - Trennmodus - Anzeigemodus - ESCAPE-Erkennung - Globaler Symbolmodus - Kleinbuchstabenmodus - MCR-Modus - Ueberlaufmodus - Kommandoquittung - Substitutionsmodus - Zeitsperrenmodus - Verfolgungsmodus - Verkuerzungsmodus 232 Erhoehen bzw. Reduzieren numerischer Symbole -------------------------------------------- .DEC Wert des numerischen Symbols wird um 1 verringert. .INC Wert des numerischen Symbols wird um 1 erhoeht. Ausfuehrungssteuerung --------------------- .DELAY Verzoegern der Ausfuehrung einer Indirekt-Kommandodatei um eine angegebene Zeit. .PAUSE Unterbrechen der Abarbeitung der Indirekt-Kommandodatei fuer eine unbestimmte Zeit und Moeglichkeit fuer Bedienermassnahmen. .WAIT Warten auf das Abarbeitungsende einer Task. .XQT Aktivieren einer parallelen Task- verarbeitung mit Moeglichkeit der Uebergabe einer Kommandozeile. 4.1.4. Beschreibung der Symbole, Ketten, Ausdruecke ------------------------------------------------------ 4.1.4.1. Symbole allgemein --------------------------- Das Verarbeitungsprogramm fuer Indirekt-Kommandodateien ermoeg- licht es dem Nutzer, Symbole zu definieren. Diese Symbole koennen getestet oder verglichen werden, um die Abarbeitung zu steuern. Symbole koennen auch in CLI-Kommandos enthalten sein, als Daten- saetze in Dateien oder als Kommentare verwendet werden, wobei diesen Symbolen durch Substitution ein aktueller Wert zugeordnet wird. Symbole sind ASCII-Zeichenketten, bestehend aus 1 - 6 Zei- chen. Sie muessen mit einem Buchstaben oder dem Waehrungssymbol beginnen. Die folgenden Zeichen muessen alphanumerisch oder das Waehrungssymbol sein. Es gibt Kettensymbole, numerische Symbole und logische Symbole. Der Symboltyp wird bei der ersten Anweisung definiert. Nachfolgende Anweisungen koennen den Typ des Symbols nicht aendern, sondern nur dem Symbol einen neuen Wert zuordnen. Ausser diesen vom Nutzer zu definierenden Symbolen werden vom Verarbeitungsprogramm noch Sondersymbole (siehe 4.1.5. und 4.4.) und reservierte lokale Symbole (siehe 4.1.4.5.) definiert. Anweisungen koennen zuordnen: - Eine Zeichenkette, um ein Kettensymbol zu definieren (z.B.: .ASKS, .SETS, .READ) - Eine Oktal- oder Dezimalzahl, um ein numerisches Symbol zu definieren (z.B.: .ASKN, .SETN, .SETO, .SETD) - Einen wahren oder falschen Wert, um ein logisches Symbol zu definieren (z.B.: .ASK, .SETT, .SETF, .SETL) 233 4.1.4.2. Kettensymbole, Unterketten und Ausdruecke --------------------------------------------------- Eine Zeichenkette ist eine Reihe von druckbaren Zeichen, einge- schlossen in Anfuehrungszeichen ("). Leere Zeichenketten sind ebenfalls erlaubt. Die Zeichenzahl darf 132 ASCII-Zeichen nicht ueberschreiten. Beispiele --------- "A B C D E F" "UVWXYZ" "" "MT1:" "UIC [200,200]" Kettensymbole koennen als Wert eine beliebige Zeichenkette haben. Der Wert wird durch die Anweisung .SETS oder .ASKS zugeordnet. Zum Beispiel ordnen die Zeilen .SETS TA "UVWXYZ" .SETS TB TA dem Symbol TB den Wert des Symbols TA (d.h. UVWXYZ) zu. Eine Unterkette erleichtert das Verarbeiten eines Teiles des Ket- tensymbols. Unterketten koennen als zweite Operanden in den An- weisungen .IF und .SETS benutzt werden. Zum Beispiel ordnen die Zeilen .SETS TA "UVWXYZ" .SETS TB TA[1:3] dem Symbol TB den Wert des Symbols TA zu, der beim ersten Zeichen beginnt und der beim dritten Zeichen endet (TB erhaelt den Wert: UVW). Eine Zeichenkette, ein Symbol oder eine Unterkette koennen mit anderen Zeichenketten, Symbolen oder Unterketten mittels des Operators (+) zu Kettenausdruecken zusammengestellt werden. Kettenausdruecke sind als zweite Operanden in den Anweisungen .IF und .SETS erlaubt, wobei der erste Operand ein Kettensymbol ist. Zum Beispiel ordnen die Zeilen .SETS TA "U" .SETS TB "WXYZ" .SETS TC TA+"V"+TB[1:3] dem Symbol TC den zusammengesetzten Wert aus TA, "V" und aus den ersten drei Zeichen von TB zu (TC erhaelt den Wert UVWXY). 4.1.4.3. Numerische Symbole und Ausdruecke ------------------------------------------- Ein numerisches Symbol ist eine Zeichenkette, der ein oktaler Wert im Bereich von 0 - 177777 oder ein dezimaler Wert im Bereich von 0 - 65535 zugeordnet wird. Der dezimale Wert wird durch einen nachfolgenden Punkt gekennzeichnet, der oktale Wert durch ein vorangestelltes Doppelkreuz (#). Falls eine arithmetische Opera- tion ein Ergebnis ausserhalb dieses Bereiches liefert, tritt ein Fehler auf und die Mitteilung AT. -- NUMERIC UNDER- OR OVERFLOW wird ausgegeben (siehe auch 4.6.2.). Wenn ein numerisches Symbol in einer Zeichenkette enthalten ist, haengt der Typ (oktal oder dezimal) von dem Wert ab, der mittels der Anweisungen .ASKN, .SETN, .SETD oder .SETO zugeordnet wurde. Numerische Symbole oder Konstanten koennen mit anderen numeri- schen Symbolen oder Konstanten mittels logischer und/oder arith- 234 metischer Operatoren zu numerischen Ausdruecken kombiniert wer- den. Dabei duerfen keine Leerzeichen oder Tabulatoren verwendet werden. Arithmetische Operatoren Logische Operatoren ------------------------ ------------------- Addition + Inclusives ODER ! Subtraktion - Logisches UND & Multiplikation * NICHT # Division / (Ausnahme: # in Leerzeichen einschliessen) Numerische Ausdruecke werden von links nach rechts ausgewertet, falls nicht mittels Klammern Unterausdruecke gebildet wurden, die zuerst ausgewertet werden. Der Typ eines numerischen Ausdrucks ist oktal, falls alle Operanden oktal sind; er ist dezimal, falls mindestens ein Operand dezimal ist. Numerische Ausdruecke sind als zweite Operanden in den numeri- schen Anweisungen .IF und .SETN erlaubt. Sie sind ebenfalls als Bereichs- und Standardargumente in den Anweisungen .ASKN und .ASKS erlaubt. 4.1.4.4. Logische Symbole -------------------------- Einem logischen Symbol ist entweder ein wahrer oder falscher Wert zuzuordnen. 4.1.4.5. Reservierte Symbole ----------------------------- In folgenden reservierten Symbolen koennen dem Verarbeitungspro- gramm Informationen uebergeben werden: P0, P1, P2, P3, P4, P5, P6, P7, P8, P9, COMMAN Dabei enthaelt das Symbol COMMAN die gesamte Kommandozeile des aktuellen Kommandodateiaufrufs einschliesslich der Spezifikation fuer die Kommandodatei. Die Symbole P0 bis P9 enthalten die je- weiligen Einzelelemente der Kommandozeile, begrenzt durch Zwischenraum. Bei einer Anweisung .GOSUB werden alle rechts von der Marke und links vom Kommentar stehenden Parameter ebenfalls in das Symbol COMMAN uebertragen. Der Wert von COMMAN kann dann bei Bedarf zerlegt werden, um formelle Aufrufparameter zu erhal- ten (siehe auch 4.3.24.). 4.1.4.6. Symbolwertsubstitution -------------------------------- In Anweisungen und Kommandos einer Indirekt-Kommandodatei koennen Parameter durch Ketten-, numerische oder logische Symbole ersetzt werden, wobei der Symbolname in Apostrophe einzuschliessen ist (z.B.: 'GER'). Falls eine vorherige Anweisung .ENABLE SUBSTITUTION (siehe 4.3.11.) den Substitutionsmodus erlaubt, ersetzt das Verarbei- tungsprogramm fuer Indirekt-Kommandodateien den Symbolnamen 235 - eingeschlossen in Apostrophe - durch den numerischen, logischen oder Kettenwert, der dem Symbol zugeordnet war. Bei der Substitu- tion eines numerischen Symbols geht das Kennzeichen fuer Dezimal- zahlen (nachgestellter Punkt) verloren. Der Punkt muss dem sub- stituierten Symbol erneut angefuegt werden. Das Verarbeitungspro- gramm durchsucht die Symboltabelle nach dem entsprechenden Symbol und setzt den Symbolwert anstelle des Symbolnamens und der Apo- strophe. Die ersten 3 Zeilen des folgenden Beispiels sollen in einer Indirekt-Kommandodatei stehen. Wenn das Verarbeitungsprogramm diese Zeilen ausfuehrt, werden die letzten beiden Zeilen auf dem Bediengeraet ausgeschrieben. .ASKS GER Welches Geraet ist einzugliedern? .ENABLE SUBSTITUTION MOUNT 'GER' >* Welches Geraet ist einzugliedern? [S] : DK1: ------------------------------------------ >MOUNT DK1: ----------- (unterstrichener Text erscheint auf dem Bediengeraet) Als Antwort auf die ausgegebene Frage gibt der Bediener DK1: ein. Diese Eingabe ordnet dem Symbol GER den Wert DK1: zu. Wenn dann das Verarbeitungsprogramm MOUNT 'GER' liest, wird 'GER' durch den Wert DK1: ersetzt. Falls der Substitutionsmodus nicht erlaubt ist, uebergibt das Verarbeitungsprogramm die Zeile MOUNT 'GER' an das Kommandoprogramm. Falls der Substitutionsmodus er- laubt ist, signalisiert der Apostroph den Anfang eines zu erset- zenden Symbols. Deshalb muss der Nutzer, um einen Apostroph als Text in der Zeile einzuschliessen, zwei Apostrophe hintereinander eingeben. Folgende Kommandozeile ! DON''T SHOOT wird als ! DON'T SHOOT ausgegeben. Mit einer Formatsteuerungskette kann die Umwandlung von numeri- schen Werten in Zeichenketten und die Positionierung von Ketten- werten und logischen Werten innerhalb einer Substitutionsopera- tion gesteuert werden. Die Steuerungskette beginnt mit dem Pro- zentzeichen (%) und endet mit dem zweiten der beiden Apostrophe, welche die Substitutionsoperation bezeichnen, in folgender Form: ... 'symbol%formatsteuerungskette' ... Die Formatsteuerungskette besteht aus einem oder mehreren der folgenden Zeichen: C Verdichten von vorangestellten, eingeschlossenen und nachgestellten Leerzeichen D Erzwingen der Umwandlung eines numerischen Symbols auf dezimal O Erzwingen der Umwandlung eines numerischen Symbols auf oktal S Durchfuehren der vorzeichenbehafteten Umwandlung fuer 236 ein numerisches Symbol (Ausgabekonvertierung bei nega- tiven Werten) M Durchfuehren der Groessenordnungsumwandlung fuer ein numerisches Symbol Z Auffuellen von fuehrenden Nullen fuer einen positiven numerischen Wert auf 6 Stellen Rn Rechtsausrichtung der entstehenden Kette, Verkuerzen auf 'n' Dezimalzeichen (falls erforderlich) Ln Linksausrichtung der entstehenden Kette, Verkuerzen auf 'n' Dezimalzeichen (falls erforderlich) X Umwandeln der Variablen in Radix-50-Zeichen V Bei der Substitution eines numerischen Symbols erfolgt die Umwandlung des niederen Bytes in das aequivalente ASCII-Zeichen und dessen Substitution. Bei der Substitution eines Kettensymbols erfolgt das Umwandeln des ersten Zeichens in seine Oktaldarstel- lung und dessen Substitution. Das Verarbeitungsprogramm fuehrt fuer die Steuerkette keine Ver- traeglichkeitspruefung fuer die einzelnen Formatsteuerzeichen durch. Bei unvertraeglichen Formatsteuerzeichen verwendet das Verarbeitungsprogramm das zuletzt angegebene. 237 4.1.5. Zusammenstellung der Symbole -------------------------------------- Logische Sondersymbole ---------------------- , , , , , , , , , , , , Numerische Sondersymbole ------------------------ , , , , , , , , , , , , Ketten - Sondersymbole ---------------------- , , , , , , , , , ,