From 724cc003460ec67eda269911da85c9f9e40aa6cf Mon Sep 17 00:00:00 2001 From: Lars-Dominik Braun Date: Fri, 30 Sep 2016 16:57:23 +0200 Subject: Add extracted sources from floppy disk images Some files have no textual representation (yet) and were added as raw dataspaces. --- doc/user/benutzerhandbuch.3 | 2019 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 2019 insertions(+) create mode 100644 doc/user/benutzerhandbuch.3 (limited to 'doc/user/benutzerhandbuch.3') diff --git a/doc/user/benutzerhandbuch.3 b/doc/user/benutzerhandbuch.3 new file mode 100644 index 0000000..eb1c762 --- /dev/null +++ b/doc/user/benutzerhandbuch.3 @@ -0,0 +1,2019 @@ +#start(5.0,1.5)##pagenr("%",1)##setcount(1)##block##pageblock##count per page# +#headeven# +#lpos(0.0)##cpos(5.5)##rpos(11.0)# +#table# + EUMEL-Benutzerhandbuch +#fillchar(" ")# +#on("u")# #off("u")# +#table end##clear pos# + +#end# +#headodd# +#lpos(0.0)##cpos(5.5)##rpos(11.0)##fillchar(" ")# +#table# + Teil 3: Der Monitor +#fillchar(" ")# +#on("u")# #off("u")# +#table end##clear pos# + +#end# +#bottomeven# + +#lpos(0.0)##cpos(5.5)##rpos(11.0)# +#table# +#fillchar(" ")# +#on("u")# #off("u")# +#fillchar(" ")# +3 - % GMD +#tableend##clearpos# +#end# +#bottomodd# + +#lpos(0.0)##cpos(5.5)##rpos(11.0)# +#table# +#fillchar(" ")# +#on("u")# #off("u")# +#fillchar(" ")# +GMD 3 - % +#tableend##clearpos# +#end# + +TEIL 3: Der Monitor +#free(1.0)# +#ib(9)#3.1. Der Monitor#ie(9)# +#free(1.0)# + + + Der Monitor nimmt die Kommandos des Benutzers entgegen, die dieser innerhalb + seiner Task gibt. In diesem Kapitel sind die gebräuchlichen Kommandos zur Text­ + verarbeitung beschrieben. + + +#free(1.0)# + +Der #ib#Monitor#ie# ist der Empfänger der Kommandos in einer EUMEL-Task. Jede Task +und somit jeder aktive Benutzer eines EUMEL-Systems verfügt über einen eigenen +Monitor. Halten Sie sich an dieser Stelle vor Augen: +#on("i")##on("b")# + + +Der SUPERVISOR ist die Task, die die Aufsicht über +alle weiteren Tasks des EUMEL-Systems hat. + +Der Monitor ist der Befehlsempfänger in Ihrer Task. +Jede Task hat einen Monitor. + +#goalpage("Mon-kdo")# +Der Monitor in Ihrer Task macht sich direkt bemerkbar durch die Zeile: + +____________________________________________________________________________ + +#ib#gib kommando#ie# : +____________________________________________________________________________ + + +Die Kommandos der Monitor-Ebene, die Sie an dieser Stelle eingeben können, +lassen sich in Gruppen ordnen: +#on("b")# + + +Informationskommandos #off("b")# + + #ib#storage info#ie# Belegten Speicherplatz anzeigen. + #ib#task info#ie# Im System befindliche Tasks anzeigen. + #ib#task status#ie# Zustand der Task anzeigen. + + +#on("b")# +Kommandos zur Tasksteuerung #off("b")# + + #ib#break#ie# Task abkoppeln. + #ib#end#ie# Task löschen. + #ib#global manager#ie# Task zum Manager machen, d.h. + Sohn-Tasks können eingerichtet + werden. + + +#on("b")# +Kommandos zur Dateibearbeitung #off("b")# + + #ib#copy#ie# ("dateiname","kopie") Datei kopieren. + #ib#edit#ie# ("dateiname") Editor aufrufen. + #ib#forget#ie# ("dateiname") Datei löschen. + #ib#list#ie# Dateien auflisten. + #ib#rename#ie# ("dateiname","neu") Datei umbenennen. + +#on("b")# +Transport von Dateien#off("b")# + + #ib#fetch#ie# ("dateiname") Datei von Vater-Task holen. + #ib#erase#ie# ("dateiname") Datei in Vater-Task löschen. + #ib#save#ie# ("dateiname") Datei zu Vater-Task senden. + + +#on("b")# +Archiv-Kommandos#off("b")# + + #ib#archive#ie# ("name") Archivlaufwerk reservieren. + #ib#fetch#ie# ("dateiname",archive) Datei von Archiv holen. + #ib#save#ie# ("dateiname",archive) Datei auf Archiv schreiben. + #ib#list (archive)#ie# Inhalt des Archivs listen. + #ib#check#ie# ("dateiname",archive) Datei auf Lesbarkeit prüfen. + #ib#clear#ie# (archive) Archiv löschen/umbenennen. + #ib#format (archive)#ie# Archivdiskette für Benutzung + vorbereiten. + +#on("b")# +Textverarbeitung #off("b")# + + #ib#list fonts#ie# Nennt die eingestellten + Schrifttypen. + #ib#fonttable#ie# Stellt die gewünschte Fonttabelle ein. + #ib#lineform#ie# ("dateiname") Zeilenweise formatieren. + #ib#autoform#ie# ("dateiname") Automatische Zeilenformatierung. + #ib#pageform#ie# ("dateiname") Seitenweise formatieren. + #ib#autopageform#ie# ("dateiname") Automatische Seitenformatierung. + #ib#index#ie# ("dateiname.p") Stichwortverzeichnis erzeugen. + #ib#outline#ie# ("dateiname") Übersicht bzw. Kurzfassung eines + Textes erstellen. + #ib#print#ie# ("dateiname") Datei drucken. + + + +#on("b")# +Passwortschutz #off("b")# + + #ib#task password#ie# ("geheim") Passwort für existierende Task festlegen. + #ib#begin password#ie# ("geheim") Passwort für neue Task festlegen. + #ib#family password#ie# ("geheim") Passwort für mehrere Tasks + festlegen. + #ib#enter password#ie# ("geheim") Passwort für Datei festlegen. + +#page# +3.1.1. Informationskommandos +#free(1.0)# + + + Mit den Informationskommandos können Informationen zur eigenen Task bzw. zum + gesamten System abgerufen werden. + +#free(0.5)# + +Bereits von Teil 2 bekannt sind die Informationskommandos 'ESC s' und 'ESC t'. Auf +der Monitor-Ebene ist die abkürzende Schreibweise nicht voreingestellt. + +____________________________________________________________________________ + +gib kommando : +storage info + +____________________________________________________________________________ + + +gibt Auskunft über den belegten Speicherplatz auf dem EUMEL-Hintergrundspeicher. + +____________________________________________________________________________ + +gib kommando : +task info + +____________________________________________________________________________ + + +gibt Auskunft über die Namen der im EUMEL-System befindlichen Tasks und die +Struktur des Taskbaums. +#page# +Auf Monitor-Ebene kann durch zusätzliche Angabe einer Zahl zwischen 1 und 3 +Zusatzinformation angefordert werden. + +____________________________________________________________________________ + +gib kommando : +task info (2) + +____________________________________________________________________________ + +liefert: + +____________________________________________________________________________ +26.11.86 10:10 CPU PRIO CHAN STATUS +SUPERVISOR........................... 0001:08:50 0 - wait + -................................ 0000:00:08 0 2 i/o + -................................ 0000:01:45 0 - wait + SYSUR............................ 0000:01:48 0 - wait + configurator................. 0000:00:43 0 - wait + OPERATOR..................... 0000:00:03 0 - i/o + shutup dialog............ 0000:03:08 0 - i/o + ARCHIVE...................... 0000:03:03 0 31 wait +UR................................... 0000:00:43 0 - wait + PUBLIC........................... 0000:01:26 0 - i/o + agfa......................... 0000:00:11 0 - i/o + werner....................... 0000:06:00 0 - -busy- + + +____________________________________________________________________________ + + + + +'task info (1)' entspricht dabei dem Kommando ohne Parameterangabe, '(2)' liefert +zusätzlich die verbrauchte CPU-Zeit (=reine Rechenzeit), die Priorität, den Kanal +(siehe S.#topage("Kanal")#) und den Taskstatus für jede Task des Systems. '(3)' liefert neben diesen +Angaben auch noch den belegten Speicherplatz jeder Task. Die Ausführung von task +info (3) ist sehr zeitaufwendig! + +Um insbesondere den belegten Speicherplatz der eigenen Task anzusehen, aber auch +die übrigen der oben erwähnten Angaben, benutzt man das Kommando: + +____________________________________________________________________________ + + gib kommando : + task status + +24.12.86 18:30 TASK: wenni + +Speicher: 1000K +CPU-Zeit: 0000.01:11 +Zustand : -busy-, (Prio 1), Kanal 1 + + gib kommando : + +____________________________________________________________________________ +#page# +3.2. Tasksteuerung +#free(1.0)# +Task abkoppeln +#free(1.0)# + + + Mit dem Kommando 'break' wird eine Task vom Terminal abgekoppelt. + + +#free(1.0)# + +Durch die Eingabe des Kommandos 'break' auf Monitor-Ebene wird die Task vom +Terminal abgekoppelt. Dieses Kommando bewirkt ansonsten keine Veränderungen. + +____________________________________________________________________________ + +gib kommando : +break + +____________________________________________________________________________ + + + +Statt 'break' einzutippen, können Sie auch die Tastenkombination + +#center# + +benutzen. + +#page# + +Eine Manager-Task erzeugen +#free(1.0)# + + + Eine Task kann zum #ib#Manager#ie#, d.h. zum Kommunikationspartner anderer Tasks, + erklärt werden. Insbesondere zwischen Manager-Tasks und anderen, die + zueinander in Vater-Sohn-Beziehung stehen, ist ein einfacher Dateitransfer + möglich (siehe S.#topage("Dateitrans")#). + +#free(1.0)# + +Normalerweise werden Benutzertasks als Sohn der Task PUBLIC eingerichtet. Es +kann jedoch wünschenswert sein, selbst eine Task-Hierarchie aufzubauen und eine +vorhandene Task zum Vater einer oder mehrerer in Zukunft einzurichtender Tasks zu +machen, um somit auch eine Dateihierarchie mit den benötigten Operationen zu +erhalten. Dazu wird diese Task zum 'Manager' erklärt:#goalpage("globalmanager")# + +____________________________________________________________________________ + +gib kommando: +global manager + +____________________________________________________________________________ + + +Durch das '#ib#global manager#ie#'-Kommando wird implizit ein 'break'-Kommando gege­ +ben, so daß Sie nach Eingabe dieses Kommandos wieder ein Supervisor-Kommando +geben können. Wenn Sie nun zu irgendeinem Zeitpunkt diese (zunächst potentielle) +Vater-Task wieder ankoppeln ('continue'-Kommando), meldet sich die Task nicht +wie gewohnt mit 'gib kommando :', sondern mit: + +____________________________________________________________________________ + +maintenance : + +____________________________________________________________________________ + + +um anzudeuten, daß es sich um eine Manager-Task handelt. + +Um eine Sohn-Task unterhalb einer Manager-Task einzurichten, wird zur Erzeu­ +gung dieser neuen Task nicht nur der gewünschte Name, sondern auch der Name der +Vater-Task angegeben.#u#1)#e# +#foot# +#u#1)#e# Falls keine Vater-Task angegeben wird, so ist die neue Task Sohn der +Manager-Task 'PUBLIC'. +#end# + +____________________________________________________________________________ + + Terminal 2 + + + EUMEL Version 1.8/M + + + gib supervisor kommando: + begin("sohntask","vatertask") + + + + ESC ? --> help + ESC b --> begin("") ESC h --> halt + ESC c --> continue("") ESC s --> storage info + ESC q --> break ESC t --> task info + + +____________________________________________________________________________ + + + + +In dieser Sohn-Task können dann mit einfachen Kommandos Dateien von der +Vater-Task geholt und zur Vater-Task geschickt werden. + +Soll eine Task für alle anderen Tasks, nicht nur für Sohn-Tasks, des Gesamtsystems +als Kommunikationspartner erreichbar sein, so muß diese Task als freier Manager +deklariert werden: + +____________________________________________________________________________ + +gib kommando: +#ib#free global manager#ie# + +____________________________________________________________________________ + + +Auf eine solche Task kann von #on("u")#jeder#off("u")# anderen Task aus zugegriffen werden, ansonsten +gilt das für gewöhnliche Manager-Tasks gesagte. +#page# +Task löschen +#free(1.0)# + + + Eine Task kann mit dem '#ib#end#ie#' Kommando gelöscht werden (und mit ihr alle Daten). + + #free(0.5)# +Normale Benutzertasks werden meistens zweck- oder themengebunden eingerichtet. +Sind die Aufgaben im Zusammenhang mit einer solchen Task erledigt, so sollte die +Task gelöscht werden, nachdem alle Daten von Bedeutung auf Diskette gesichert +wurden. + +____________________________________________________________________________ + +gib kommando : +end + +____________________________________________________________________________ + +Wie bei allen Löschungen im EUMEL-System folgt eine Kontrollfrage durch den +Monitor: + +____________________________________________________________________________ + +gib kommando : +end +task "taskname" löschen (j/n) ? + + +____________________________________________________________________________ + + +Nur bei der positiven Antwort wird gelöscht, alle Dateien sind unwiderruflich verlo­ +ren. Als positive Antwort auf derartige Abfragen wirken: + +#center# + + bzw. unterdrücken die angebotene Aktion, andere Eingaben werden abgewie­ +sen. + +#on("b")# +ACHTUNG: Wird eine Manager-Task gelöscht, so werden alle Sohn- Enkel- etc. + Tasks ohne zusätzliche Nachfrage gelöscht, falls die Sicherheitsabfrage + mit 'j' beantwortet wurde. #off("b")# +#page# +3.3. Dateibearbeitung +#free(1.0)# +Datei einrichten +#free(1.0)# + + + Mit dem Editoraufruf 'edit' wird eine neue Datei eingerichtet, bzw. eine existierende + Datei zur Bearbeitung am Bildschirm gezeigt. + + + +#free(0.5)# + +Eine Datei enthält Texte, die logisch zusammengehören und sie wird über ihren +Namen eindeutig gekennzeichnet. + +Das EUMEL-System speichert einmal geschriebene Texte, bis sie vom Benutzer +gelöscht werden. In der Regel wird nicht nur ein (langer) Text oder ein Programm­ +text geschrieben, sondern mehrere und unterschiedliche. Um diese auseinanderhalten +zu können, versehen wir sie jeweils mit einem Namen, der frei gewählt werden kann. +Beispiele für Namen: + + + "Brief vom 1.12.86" + "1. Kapitel meines Buches" + + +Eine Sammlung von Zeichen (also im Normalfall unsere geschriebenen Texte), die mit +einem Namen versehen worden ist, nennt man eine #ib##on("b")#Datei#ie##off("b")#. Der Editor erstellt also eine +Datei, wenn wir einen Text schreiben. Eine Datei kann bis zu 4 000 Zeilen fassen, +wobei jede bis zu 32 000 Zeichen lang sein darf. + + +Einrichten der ersten #ib#Datei#ie# in Ihrer Task: + +Der erste Schritt sollte darin bestehen, daß Sie sich einen vernünftigen Dateinamen +ausdenken. Das EUMEL-System legt Ihnen praktisch keine Beschränkungen über +Länge oder Form des Dateinamens auf, deshalb sollten Sie sich angewöhnen, Ihre +Dateien so zu benennen, daß Sie anhand des Namens auch nach einer Woche oder +länger noch erahnen können, was diese Datei enthält. + +Ein guter Name für die erste Datei wäre zum Beispiel: "meine erste Datei" oder +"werners test vom 1.12.86". Im weiteren Text steht nur "dateiname" o. ä.. Setzen Sie +dafür den von Ihnen gewählten Namen ein. + +____________________________________________________________________________ + +gib kommando: +edit ("dateiname") + +____________________________________________________________________________ + +____________________________________________________________________________ + +gib kommando: +edit ("dateiname") + +"dateiname" neu einrichten (j/n)? + +____________________________________________________________________________ + +Drücken Sie 'j', so wird eine neue Datei unter dem von Ihnen eingegebenen Namen +eingerichtet. Die Datei ist zunächst leer: + +____________________________________________________________________________ + ................... dateiname .................... Zeile 1 + +____________________________________________________________________________ + + + +Welche Möglichkeiten Sie bei der Bedienung des Editors haben, können Sie in Teil 4 +nachschlagen. Schreiben Sie an dieser Stelle nur einige Worte in die Datei, anhand +derer der Dateiinhalt wiederzuerkennen ist. Sie können die Tastatur genauso benutzen +wie die einer Schreibmaschine. + +____________________________________________________________________________ + ................... dateiname .................... Zeile 1 +Inhalt der ersten Datei. 1234567890 + +____________________________________________________________________________ + + +Die Datei sollte an dieser Stelle wieder geschlossen werden. + +Drücken Sie dazu . + +Dabei ist gleichgültig, wo der Cursor steht. + +Wiederholen Sie das Neuanlegen einer Datei mit einer zweiten Datei "anderer datein­ +ame". Bitte schreiben Sie wiederum einige Zeichen in die Datei. + +____________________________________________________________________________ + +gib kommando : +edit ("anderer dateiname") + +____________________________________________________________________________ + + +Vorschlag zur Eingabe: + +____________________________________________________________________________ + + .............. anderer dateiname ................. Zeile 1 +Halten Sie irgendeine Taste gedrücktttttttttttttttt + +____________________________________________________________________________ + + +Beenden Sie die Arbeit ebenfalls mit . + + +#page# +Dateinamen auflisten +#free(1.0)# + + + Mit dem Kommando 'list' werden die Dateinamen der Dateien in der Task aus­ + gegeben. + + +#free(1.0)# + +Vor jedem Dateinamen wird das Datum der letzten Bearbeitung der Datei angezeigt. + +____________________________________________________________________________ + +gib kommando: +list + +____________________________________________________________________________ + +bewirkt: +____________________________________________________________________________ + + ..................... list ....................... Zeile 1 + +01.08.86 "dateiname" +01.08.86 "anderer dateiname" + +____________________________________________________________________________ + + + +Auch bei dieser Auflistung der Dateinamen handelt es sich um eine EUMEL-Datei + (allerdings um eine schreibgeschützte), die Ausgabe wird also wie gewohnt durch + das Kommando beendet. +#page# +Datei duplizieren +#free(1.0)# + + + Mit dem Kommando 'copy' wird eine existierende Datei dupliziert. + + +#free(1.0)# + +Eine existierende Datei kann dupliziert werden durch das Kommando : + +____________________________________________________________________________ + +gib kommando: +copy ("dateiname","kopiename") + +____________________________________________________________________________ + + +Durch dieses Kommando wird eine Kopie der Datei "dateiname" unter dem Namen +"kopiename" angelegt, der Inhalt der beiden Dateien ist zunächst identisch. Kontrol­ +lieren Sie die Richtigkeit dieser Behauptung, indem Sie nachsehen, ob der Inhalt der +kopierten Datei gleich dem Inhalt der Ursprungsdateiname ist: + +____________________________________________________________________________ + +gib kommando: +edit ("kopiename") + +____________________________________________________________________________ +#page# +Dateinamen ändern +#free(1.0)# + + + Mit dem Kommando 'rename' wird der Name einer Datei geändert. + + +#free(1.0)# + +Sollte Ihnen der Name einer Datei nicht gefallen, so besteht die Möglichkeit, den +Namen zu ändern: + +____________________________________________________________________________ + +gib kommando: +rename ("dateiname","neuer dateiname") + +____________________________________________________________________________ + + +#page# +Datei löschen +#free(1.0)# + + + Mit dem Kommando 'forget' wird eine Datei gelöscht. + + +#free(1.0)# + +Das Löschen einer Datei wird durch das Kommando: + +____________________________________________________________________________ + +gib kommando: +forget ("neuer dateiname") + +____________________________________________________________________________ + +eingeleitet. Aus Gründen der Sicherheit erfolgt vor der Ausführung des Kommandos +jedoch die Abfrage: + +____________________________________________________________________________ + +gib kommando: +forget ("neuer dateiname") + +"dateiname" löschen ? (j/n) + +____________________________________________________________________________ + +Als positive Antwort auf derartige Abfragen wirken: + + bzw. unterdrücken die angebotene Aktion, andere Eingaben werden abgewie­ +sen. + +#page# +Dateien verschicken +#free(1.0)# +#goalpage("Dateitrans")# + + + Dateien können zur Vater-Task geschickt und von der Vater-Task geholt werden. + +#free(1.0)# + +Die Vereinbarung, daß Dateien in einer Task lokal sind, d.h. daß nur in dieser Task +Zugriff auf die Daten möglich ist, ist häufig zu einschränkend. So kann es zweck­ +mäßig sein, von mehreren Arbeitsplätzen (= Tasks) aus die wesentlichen Ergebnisse +an einer zentralen Stelle zu sammeln oder Ergebnisse aus Tasks, die nur kurzzeitig +für eine spezielle Aufgabe eingerichtet wurden, länger aufzubewahren. + +Zu diesem Zweck wird eine Benutzertask zum Manager erklärt (siehe S.#topage("globalmanager")#) und es +werden Söhne dieser Task eingerichtet. +#page# +Datei zur Vater-Task schicken +#free(1.0)# + + + Mit dem Kommando 'save' wird die Kopie einer Datei zur Vater-Task geschickt. + + +#free(1.0)# + +____________________________________________________________________________ + +gib kommando: +save ("dateiname") + +____________________________________________________________________________ + +Wird eine Datei an die Vater-Task gesendet, wird eine Kopie der Ursprungsdateina­ +me unter dem Namen 'dateiname' in der Vater-Task eingerichtet. Danach sind diese +beiden, zunächst gleichen Dateien unabhängig voneinander. Änderungen, welcher Art +auch immer, haben keinen Einfluß auf die namensgleiche Kopie in der anderen Task. + +Falls in der Vater-Task bereits eine Datei mit dem Namen 'dateiname' existiert, sei +es durch Zufall oder weil bereits einmal eine 'save'-Operation durchgeführt worden +ist, erfolgt eine Abfrage: + +____________________________________________________________________________ + +gib kommando: +save ("dateiname") + +"dateiname" überschreiben ? (j/n) + +____________________________________________________________________________ + +Nur wenn die positive Eingabe 'j' erfolgt, wird die Datei in der Vater-Task durch die +eigene Datei überschrieben. +#page# +Datei von der Vater-Task holen +#free(1.0)# + + + Mit dem Kommando 'fetch' wird die Kopie einer Datei von der Vater-Task geholt. + + +#free(1.0)# + +Entsprechend dem Versenden einer Dateikopie können Sie eine Kopie von der Vater­ +Task holen und ggf., natürlich nach Abfrage, Ihre Datei dieses Namens überschrei­ +ben. + +____________________________________________________________________________ + +gib kommando: +fetch ("dateiname") + +____________________________________________________________________________ + +#page# +Datei in der Vater-Task löschen +#free(1.0)# + + + Mit dem Kommando 'erase' wird eine Datei in der Vater-Task gelöscht. + + +#free(1.0)# + +Soll eine Datei in der Vater-Task gelöscht werden, so kann dieses, dem 'forget'- +Kommando analoge Kommando, in der Sohn-Task gegeben werden: + +____________________________________________________________________________ + +gib kommando: +erase ("dateiname") + +____________________________________________________________________________ + +Falls die Datei in der Vater-Task existiert, wird sie nach Kontrollfrage gelöscht. + +____________________________________________________________________________ + +gib kommando: +erase ("dateiname") +"dateiname" loeschen (j/n) j + +gib kommando : + + +____________________________________________________________________________ + + + Anm: Die Task 'PUBLIC' ist grundsätzlich eine Manager-Task. Da Benut­ + zer-Tasks als Sohn von '#ib#PUBLIC#ie#' eingerichtet werden, falls Sie nicht als + Sohn einer besonderen Manager-Task eingerichtet wurden, beziehen sich + 'fetch'-, 'save'- und 'erase'-Kommandos auf 'PUBLIC'. +#page# +3.4. Das Archiv +#free(1.0)# + + + Das Archiv dient der Speicherung von Dateien auf Disketten (Sicherung). + +#free(1.0)# + +Das #ib#Archiv#ie# übernimmt im EUMEL-System die Verwaltung der langfristigen Daten­ +haltung. Das Archiv sollen Sie benutzen, um: + +- Sicherungskopien wichtiger Dateien außerhalb des Rechners zu besitzen; + +- nicht benötigte Dateien außerhalb einer Task zu halten (Speicherplatzersparnis!); + +- Dateien auf andere Rechner zu übertragen. + +Das Archiv wird im EUMEL-System durch die Task 'ARCHIVE', die das Disketten­ +laufwerk des Rechners verwaltet, realisiert. Die Steuerung durch eine Task hat für Sie +die erfreuliche Folge, daß die Handhabung des Archivs sich kaum von den schon +bekannten Dateioperationen unterscheidet. In den Kommandos wird zusätzlich ange­ +geben, daß das Archiv angesprochen werden soll. + +#page# +Archiv-Kommandos +#free(1.0)# + + + Der Arbeitsablauf bei Benutzung des Archivs besteht immer aus der Reservierung, + dem Lese- oder Schreibzugriff und der Freigabe des Archivs nach Ende der + Arbeit. Jede Arbeit mit dem Archiv beginnt mit dem Reservierungskommando. + + +#free(1.0)# + +Als ersten Schritt der Archivbenutzung müssen Sie das Archiv reservieren, das heißt +der Verwaltung Ihres EUMEL-Systems mitteilen, daß Sie die Task 'ARCHIVE', die +der Steuerung des Diskettenlaufwerks dient, für Ihre Task arbeiten lassen. Solange für +Ihre Task das Archiv reserviert ist, kann keine andere Task das Archivlaufwerk benut­ +zen. + +Für die Reservierung müssen Sie bei Benutzung einer schon vorbereiteten oder sogar +beschriebenen Diskette den Namen dieser Archivdiskette kennen (er sollte auf dem +Diskettenaufkleber stehen) oder vor Benutzung einer neuen Diskette einen Namen +festlegen (und auf dem Aufkleber vermerken). Wie gewohnt gibt es keine Vorschrif­ +ten für die Namensgebung. + +Erst nachdem Sie das Reservierungskommando gegeben haben: + +____________________________________________________________________________ + +gib kommando: +archive ("diskettenname") + +____________________________________________________________________________ + + +sollten Sie die Diskette in das Laufwerk einschieben, um zu verhindern, daß ein +anderer Benutzer, der das Archiv bereits für sich reserviert hat, auf Ihrer zufällig +gleichnamigen Datei arbeitet. + + +Eine Datei wird mit dem Kommando: + +____________________________________________________________________________ + +save ("dateiname",archive) + + +____________________________________________________________________________ + + +auf eine Diskette geschrieben und mit dem Kommando: + +____________________________________________________________________________ + +fetch ("dateiname",archive) + +____________________________________________________________________________ + + +von einer Diskette geholt. + +Das Inhaltsverzeichnis einer Diskette erhalten Sie durch: + +____________________________________________________________________________ + +list (archive) + +____________________________________________________________________________ + +#page# +Benutzung einer neuen Archivdiskette +#free(1.0)# + + + Eine neue Diskette muß für die Benutzung vorbereitet (formatiert) werden. + + + +#free(1.0)# +Vor der erstmaligen Benutzung einer Archivdiskette muß diese formatiert, d.h. in +Spuren und Sektoren für die Positionierung des Schreib-/Lesekopfes des Disketten­ +laufwerks eingeteilt werden, um überhaupt ein Beschreiben der Diskette zu ermög­ +lichen. Die Einteilung ist geräteabhängig, häufige Formate sind: + + 40 Spuren zu je 9 Sektoren (360 K) + 80 Spuren zu je 9 Sektoren (720 K). + +Die #on("b")#Erst#off("b")#benutzung einer #ib#Archivdiskette#ie# erfordert nach der Reservierung des Archivs +das Kommando: + +____________________________________________________________________________ + +gib kommando: +format (archive) + +____________________________________________________________________________ + + +Erst nach einer Kontrollabfrage: + +____________________________________________________________________________ + +gib kommando: +format (archive) + +Archiv "diskettenname" formatieren ? (j/n) + +____________________________________________________________________________ + +wird tatsächlich formatiert und die Diskette steht mit dem Namen "diskettenname" für +Archivoperationen zur Verfügung. + +#on("b")# +ACHTUNG: Wird eine bereits beschriebene Diskette noch einmal formatiert, so sind + alle Daten, die auf der Diskette waren, verloren.#off("b")# + + +Bei einigen Rechnern ist es möglich, die Formatierung zu variieren. Falls beim Forma­ +tieren auf einem solchen Rechner ein anderes als das Standardformat erzeugt werden +soll, so ist die Codierung des gewünschten Formats mitanzugeben. + + +Beispiel: Für ein Gerät mit 5μ Zoll Disketten wäre z.B. einstellbar: + code 0 : Standardformat + code 1 : 40 Spuren + code 2 : 80 Spuren + code 3 : High Density + + 'format (archive)' erzeugt ebenso wie 'format (0,archive)' eine standard­ + formatierte Diskette, 'format (3,archive)' erzeugt eine High Density + Formatierung. +#page# +Diskette löschen / umbenennen +#free(1.0)# + + + Bereits benutzte Disketten können wieder gelöscht und auch umbenannt werden. + + +#free(1.0)# + +Falls Sie den Inhalt einer beschriebenen Archivdiskette löschen oder den Namen einer +Diskette ändern wollen, müssen Sie das Archiv unter dem gewünschten Namen reser­ +vieren: Falls Sie den Inhalt löschen möchten, tun Sie das unter dem bisherigen und +bestehenden Namen. Falls Sie die Diskette umbenennen wollen, reservieren Sie das +Archiv unter dem neuen gewünschten Namen. Beachten Sie, daß durch das Umbe­ +nennen eines Archivs alle darauf befindlichen Dateien gelöscht werden. Anschließend +geben Sie das Kommando: + +____________________________________________________________________________ + +gib kommando: +#ib#clear#ie# (archive) + +____________________________________________________________________________ + +Durch die Ausführung des Kommandos erhält die eingelegte Diskette den in der +Reservierung angegebenen Namen. Das Inhaltsverzeichnis, das sich auf der Diskette +befindet, wird gelöscht. Damit sind die Daten, die sich eventuell auf dieser Diskette +befanden, nicht mehr auffindbar. Die Diskette entspricht einer neu formatierten Disket­ +te#u#1)#e#. #foot# +#u#1)#e# Das Kommando 'format' enthält implizit 'clear'. +#end# +Eine Neuformatierung ist demnach bei Wiederverwendung der Diskette nicht notwen­ +dig. + +#page# +Inhaltsverzeichnis der Diskette +#free(1.0)# + + + Mit 'list (archive)' werden die Dateien auf der Diskette angezeigt. + + +#free(1.0)# + +Eine formatierte Diskette kann nach der Archivanmeldung gelesen oder beschrieben +werden. Um zu sehen, welche Dateien auf der Diskette zu holen (= lesen) sind bzw. +wieviel Platz zum Beschreiben vorhanden ist, ist es zweckmäßig, zunächst das In­ +haltsverzeichnis der Diskette zu betrachten. + +____________________________________________________________________________ + +gib kommando: +list (archive) + +____________________________________________________________________________ + +Beispiel: + +____________________________________________________________________________ + + ............diskettenname (100 K belegt von 720 K).............. + +01.05.86 25 K "rechnungen april" +01.06.86 23 K "rechnungen mai" +01.07.86 20 K "rechnungen juni" +01.08.86 32 K "rechnungen juli" + +____________________________________________________________________________ +#page# +Lesen und Schreiben auf Diskette +#free(1.0)# + + + Lesen und Schreiben auf der Diskette entspricht den bekannten Operationen zum + Senden und Holen von Dateien. + + + +#free(1.0)# +Das Schreiben einer Datei auf Diskette entspricht dem Übersenden einer Datei an die +Vater-Task. Einziger Unterschied ist, daß Sie das Ziel explizit angeben müssen: + +____________________________________________________________________________ + +gib kommando: +#ib#save#ie# ("dateiname",archive) + +____________________________________________________________________________ + +Entsprechend funktioniert auch das Lesen einer Datei von der Diskette: + +____________________________________________________________________________ + +gib kommando: +fetch ("dateiname",archive) + +____________________________________________________________________________ + +Wie auch bei der Kommunikation zwischen Sohn- und Vater-Task werden nur +Kopien der Dateien geholt bzw. geschrieben. +#page# +Wechsel der Archivdiskette +#free(1.0)# +Bei Einlegen einer anderen Archivdiskette müssen Sie erneut das Kommando + +____________________________________________________________________________ + +gib kommando: +archive ("diskettenname") + +____________________________________________________________________________ + +geben, da mit der Archivreservierung zugleich die Prüfung von Diskettenname und +-Inhaltsverzeichnis vorbereitet wird. +#page# +Beenden der Archivreservierung +#free(1.0)# + + + Nach Benutzung Archiv freigeben! + + +#free(1.0)# + +Wenn Sie alle gewünschten Arbeiten mit dem Archiv fertiggestellt haben, geben Sie +das Archiv wieder frei. + +____________________________________________________________________________ + +gib kommando: +#ib#release#ie# (archive) + +____________________________________________________________________________ + +Durch dieses Kommando kann die Task 'ARCHIVE' mit ihren Leistungen von einer +anderen Task in Anspruch genommen werden. Falls Sie dieses Kommando nicht +gegeben haben aber seit 5 Minuten keine Archivoperation ausgelöst haben, kann eine +andere Task durch die Anforderung 'archive("diskettenname")' das Archiv reservieren. +Durch diese Maßnahme wird verhindert, daß ein vergeßlicher Benutzer bei einem +System mit mehreren Benutzern das Archiv blockiert. +#page# +Fehlermeldungen des Archivs +#free(1.0)# + + + Bei Archiv-Operationen kann es zu Fehlersituationen kommen. + +#free(1.0)# + +Versucht man, eine Datei vom Archiv zu holen, kann es vorkommen, daß das Ar­ +chiv-System + +____________________________________________________________________________ + +#ib#Lese-Fehler (Archiv)#ie# + +____________________________________________________________________________ + +meldet und den Lese-Vorgang abbricht. Dies kann auftreten, wenn die Floppy +beschädigt oder aus anderen Gründen nicht lesbar ist (z.B. nicht justierte Disket­ +ten-Geräte). In einem solchen Fall vermerkt das Archiv-System intern, daß die Datei +nicht korrekt gelesen werden kann. Das sieht man z.B. bei 'list (archive)'. Dort ist der +betreffende Datei-Name mit dem Zusatz 'mit Lese-Fehler' gekennzeichnet. Um +diese Datei trotzdem zu lesen, muß man sie unter ihrem Dateinamen mit dem Zusatz +'mit Lese-Fehler' lesen. + +____________________________________________________________________________ + +gib kommando: +fetch ("dateiname mit Lese-Fehler") + +____________________________________________________________________________ + +Die Datei wird in diesem Fall trotz Lese-Fehler (Informationsverlust!) vom Archiv +gelesen. + +Um solche Fälle möglichst zu vermeiden, sieht das EUMEL-System die Möglichkeit +vor, Archive bzw. Archiv-Dateien nach Beschreiben zu prüfen. Das erfolgt mit dem +Kommando + +____________________________________________________________________________ + +gib kommando : +#ib#check#ie# ("dateiname", archive) + +____________________________________________________________________________ + + +Durch dieses Kommando werden eventuelle Lese-Fehler gemeldet. + +Weitere Fehlermeldungen des Archivs: + +* Lesen unmöglich (Archiv) + Die Archiv-Diskette ist nicht eingelegt oder die Tür des Laufwerks ist nicht ge­ + schlossen. +=> Diskette einlegen bzw. Tür schließen. + +* Schreiben unmöglich (Archiv) + Die Diskette ist schreibgeschützt. +=> falls wirklich gewünscht, Schreibschutz entfernen. + +* Archiv nicht angemeldet + Das Archiv wurde nicht angemeldet +=> 'archive ("name")' geben. + +* Lese-Fehler (Archiv) + Siehe Lesen unmöglich + +* Schreibfehler (Archiv) + Die Diskette kann nicht (mehr) beschrieben werden. +=> Andere Diskette verwenden. + +* Speicherengpass + Im System ist nicht mehr genügend Platz, um eine Datei vom Archiv zu laden, ggf. +=> ggf. Dateien löschen. + +* RERUN bei Archiv-Zugriff Das System wurde bei einer Archiv-Operation durch + Ausschalten bzw. Reset unterbrochen. + +* "dateiname" gibt es nicht + Die Datei "dateiname" gibt es nicht auf dem Archiv. +=> mit 'list(archive)' Archiv prüfen. + +* Archiv heißt ... + Die eingelegte Diskette hat einen anderen als den eingegebenen Archivnamen. +=> Kommando 'archive' mit korrektem Namen geben. + +* Archiv wird von Task ... benutzt + Das Archiv wurde von einem anderen Benutzer reserviert. +=> Abwarten. + +* "dateiname" kann nicht geschrieben werden (Archiv voll) + Die Datei ist zu groß für die eingelegte Diskette. +=> Andere Diskette für diese Datei nehmen. + +* Archiv inkonsistent + Die eingelegte Diskette hat nicht die Struktur einer Archiv-Diskette. +=> 'format (archive)' vergessen. + +* save/erase wegen Lese-Fehler verboten + Bei Archiven mit Lese-Fehler sind Schreiboperationen verboten, weil ein Erfolg + nicht garantiert werden kann. + + + +3.5. Kommandos für mehrere Dateien +#free(1.0)# + + + Durch Anwendung der besonderen Operatoren 'ALL' und 'SOME' können Sie + mehrere Dateien mit einem Kommando behandeln. + + +#free(1.0)# +Oft ist es sehr zweckmäßig und erleichternd, einen Befehl für eine ganze Reihe von +Dateien wirken zu lassen, wie z.B. beim Archivieren, wenn Sie etwa alle während des +Tages veränderten Dateien mit deren neuen Stand auf Diskette schreiben möchten. + +Da Tasks einen Namen haben und jede Task ein Inhaltsverzeichnis ihrer Dateien +führt, ist es möglich, Listen von Dateien zu benennen. +#page# +Interne Tasknamen +#free(1.0)# +Wenn Sie eine andere als die eigene oder die Vater-Task ansprechen wollen, ist es +notwendig, den 'internen Tasknamen' anzugeben. Diese auf den ersten Blick etwas +undurchsichtige Forderung hat folgenden Hintergrund: + +Durch die in der Einleitung vorgestellte Baumstruktur des EUMEL-Systems ist es +ohne besondere Angaben nur möglich, Kommandos zu geben, die die eigene Task +('edit'..) oder die Vater-Task ('save'..) betreffen. Beim Archivieren zum Beispiel wäre +es demzufolge erforderlich, eine Datei über den Vater vom Vater vom Vater... an den +Sohn des Sohnes... zu schicken, damit die Datei endlich in der Task 'ARCHIVE' +landet. Statt dessen verwenden Sie eine Prozedur 'archive', die den internen Task­ +bezeichner liefert. Damit wird die gewünschte Task intern identifiziert, ohne daß Sie +sich darum kümmern müssen. + +Wichtige Prozeduren, die interne Taskbezeichner liefern, sind: + + myself Bezeichner der eigenen Task + public Bezeichner von PUBLIC + father Bezeichner der Vater-Task#u##count##e# + archive Bezeichner von ARCHIVE + printer Bezeichner von PRINTER #foot# +#u##value##e# Falls kein besonderer Manager eingerichtet wurde, liefern 'father' und 'public' + natürlich dieselbe Task: PUBLIC. #end# +#page# +Dateiverzeichnisse +#free(1.0)# +Jede Task verfügt über ein Verzeichnis der in ihr befindlichen Dateien. Das Verzeich­ +nis Ihrer eigenen Task können Sie mit dem 'list'-Kommando betrachten. Das Ver­ +zeichnis einer anderen Task sehen Sie beispielsweise durch das Kommando 'list +(archive)'. In diesem Fall müssen Sie dem eigentlichen Kommando den internen +Taskbezeichner der gewünschten Task hinzugeben, um das Verzeichnis zu sehen. + +Um ein Verzeichnis in Verbindung mit anderen Kommandos benutzen zu können, gibt +es besondere Operatoren: + + #ib#ALL#ie# liefert das gesamte Verzeichnis + #ib#SOME#ie# bietet das Verzeichnis zur Auswahl von Einträgen an. + + +In Verbindung mit einem internen Taskbezeichner wird einer der beiden Operatoren +einem Monitor-Kommando als Parameter nachgestellt. Das Kommando wirkt dann +nacheinander auf alle im Verzeichnis enthaltenen Dateien. + + +____________________________________________________________________________ + +gib kommando: +fetch (ALL father) + +____________________________________________________________________________ + +Alle Dateien der Vater-Task werden nacheinander geholt, bei Namensgleichheit +erfolgt die bekannte Kontrollfrage, ob die gleichnamige Datei in der eigenen Task +überschrieben werden soll. + +Falls nur einige Dateien des Verzeichnisses bearbeitet werden sollen, wird der Opera­ +tor 'SOME' dem Taskbezeichner vorangestellt: + +____________________________________________________________________________ + +gib kommando: +fetch (SOME father) + +____________________________________________________________________________ + + +Hier wird zunächst das Dateiverzeichnis der Task angeboten. Streichen Sie alle +Dateien, die auf der Diskette sind, aber nicht in Ihre Task geholt werden sollen, aus +dem Verzeichnis, indem Sie + +- den Dateinamen mit Blanks überschreiben + + oder: + +- die Zeile mit löschen + + oder: + +- mehrere Zeilen markieren, indem Sie zu Beginn des zu markierenden Bereichs + 'mark' betätigen und mit Hilfe der Cursor-Tasten den Beereich so weit wie benö­ + tigt ausdehnen. Im Anschluß daran können Sie diese Zeilen durch + + oder + +

+ + löschen. + + +____________________________________________________________________________ + + .............................. .......................... #markoff# +rechnungen april +rechnungen mai +rechnungen juni +rechnungen juli + + + +____________________________________________________________________________ + + + +In obigem Beispiel werden nach dem Kommando 'ESC RUBOUT' (=Löschen der +markierten Zeilen) und dem Kommando 'ESC q' (=editieren beenden) die Dateien +'rechnungen juni' und 'rechnungen juli' vom Archiv geholt. + +Als weitere Vereinfachung gibt es die Prozedur 'all' als Abkürzung für 'ALL myself'. + +Beispiel: alle Dateien auf Archivdiskette schreiben. + +____________________________________________________________________________ + +gib kommando: +save (all,archive) + +____________________________________________________________________________ + + +Für Fortgeschrittene: + +Sie können auch aus den Verzeichnissen mehrerer Tasks ein neues Verzeichnis +bilden. Zu diesem Zweck sind folgende Mengenoperationen auf Verzeichnisse mög­ +lich: + + #ib#-#ie# Differenzmenge + #ib#+#ie# Vereinigungsmenge + #ib#/#ie# Schnittmenge + +Beispiel: + + fetch (ALL father - ALL myself) + +Alle Dateien der Vater-Task, die noch nicht in der eigenen Task sind, werden geholt. + +3.7. Passwortschutz +#free(1.0)# + + + Das EUMEL- System ermöglicht Passwortschutz für Dateien, einzelne Tasks und + ganze Zweige des Taskbaumes. + +#free(1.0)# + +Falls Sie sicherstellen wollen (oder müssen), daß Teile Ihres EUMEL-Systems vor +unberechtigter Benutzung geschützt sind, können Sie den Zugriff mit einem Passwort +regeln. + +Als Passwort können Sie jeden beliebigen Text nehmen. Bedenken Sie jedoch, daß +ein wirklich wirksamer Schutz nur dann gewährleistet ist, wenn Sie weder ein triviales +Passwort (etwa den eigenen Vornamen) auswählen, noch eines, das Sie selbst nicht +behalten. #u##count("1")#)#e# #foot# +#u##value("1")#)#e# Man darf Passwörter nicht vergessen! Durch Passwörter geschützte Tasks kann +niemand - außer durch die Angabe des korrekten Passworts - wieder ankoppeln. +Hat man das Passwort vergessen, kann man nur noch die Task löschen. +#end# + +ACHTUNG: Es gibt ein besonderes Passwort im EUMEL-System: "-". Dieses + Passwort verhindert, daß die Task in der es gegeben wurde (z.B. UR), an + ein Terminal geholt wird, es darf folglich nicht für normale + Manager-Tasks gegeben werden. +#page# +Eine Task mit Passwort schützen +#free(1.0)# +Das Monitor-Kommando '#ib#task password#ie#' sorgt dafür, daß eine Task fortan nur wieder +mit einem 'continue'-Kommando 'betreten' werden kann, wenn man vorher das +richtige Passwort angibt. + +____________________________________________________________________________ + +gib kommando: +task password ("rosebud") + +____________________________________________________________________________ + +Versucht nun ein Benutzer, die mit dem Passwort geschützte Task mit dem 'conti­ +nue'-Kommando an sein Terminal anzukoppeln, wird er zunächst nach dem #ib#Pass­ +wort#ie# gefragt. Nur unter Angabe des Passworts wird die Task angekoppelt. + +Bei der Beantwortung des Passworts werden statt der eingegebenen Zeichen Punkte +auf den Bildschirm geschrieben. Durch Betätigen von ESC können die getippten +Zeichen lesbar gemacht werden. + +____________________________________________________________________________ + + gib supervisor kommando: + continue("taskname") + Passwort: ....... + + +____________________________________________________________________________ + + +Der Passwortschutz gewährleistet, daß kein unberechtigter Benutzer direkt an die +Dateien und Programme der Task gelangen kann. Es gibt jedoch noch zwei Situatio­ +nen, die einen unberechtigten Zugang zu Dateien erlauben: + +a) Dateien in die Vater-Task schicken: + Transportiert man Dateien in die Vater-Task ('save'-Kommando) können Benut­ + zer auf diese Dateien zugreifen (sofern sie Zugang zu dieser Task haben). Dies + kann man verhindern, indem man ein Datei-Passwort angibt. Man beachte, daß + das Passwort für Dateien und das oben beschriebene Passwort für Tasks nichts + miteinander zu tun haben. + +b) Dateien werden in eine Sohn-Task geholt: + Ist die Task als Vater-Task eingerichtet ('global manager'-Kommando), dann ist + es möglich, von der Sohn-Task Dateien ('fetch'-Kommando) aus der Vater- + Task zu holen, die mit einem Passwort geschützt ist. Darum muß man verhindern, + daß unberechtigte Benutzer Söhne einer mit Passwort geschützten Task einrich­ + ten können. Das kann man mit dem Kommando + +____________________________________________________________________________ + +maintenance : +#ib#begin password#ie# ("geheim") + +____________________________________________________________________________ + + + Wird dieses Kommando gegeben, wird man bei dem Versuch, eine Sohn-Task + einzurichten, nach einem Passwort gefragt. Beachten Sie, daß das 'begin pass­ + word' nichts mit dem Task-Passwort und Datei-Passwort zu tun hat. + + +Man kann einen ganzen Zweig eines EUMEL-Systems durch das Kommando 'family +password' vor unberechtigtem Zugriff schützen. Das Kommando: + +____________________________________________________________________________ + +maintenance: +family password ("geheim") + +____________________________________________________________________________ + +wird dazu (wie gewohnt als Monitor-Kommando) in der Vater-Task des zu schüt­ +zenden Zweigs des Taskbaumes gegeben. Damit ist das Passwort aller Söhne, Enkel +usw. dieser Task auf 'geheim' gesetzt, falls sie vorher kein Passwort oder das gleiche +Passwort wie die aufrufende Task haben. Eine Task in diesem Zweig, die bereits ein +eigenes, vom 'family password' verschiedenes Passwort besitzt, behält dieses eigene +Passwort. + +Bsp: Für 'PUBLIC' wird das Kommando '#ib#family password#ie# ("geheim")' gege­ + ben. Dann ist das Passwort von 'PUBLIC' und aller Tasks des Benutzerzweiges + auf 'geheim' gesetzt. + + +Es ist zu beachten, daß bei der Vergabe des 'family password' nur die aktuellen +Söhne der Task berücksichtigt werden. Söhne, die nach der Vergabe des 'family +password' eingerichtet werden, sind nicht durch dieses Passwort geschützt. + +Passwort löschen + + +Um ein Passwort zu löschen, geben Sie das Passwort-Kommando mit "" als Para­ +meter: + +____________________________________________________________________________ + +maintenance: +begin password("") + +____________________________________________________________________________ + + +Durch diese Angabe haben Sie den Passwort einen leeren Text als Parameter gege­ +ben, der das bisherige Passwort 'überschreibt'. + +#page# +Dateipasswort + + +Etwas komplizierter gestaltet sich der Passwortschutz für einzelne Dateien einer +Manager-Task, da in dieser Anwendung eine Unterscheidung nach Schreib- und +Leseschutz vorgenommen wird. + +Da in dieser Anwendung nur einige Dateien der Vater-Task vor Lesen ('fetch'), +Schreiben ('save','erase') oder beidem geschützt werden sollen, benötigt diese Proze­ +dur Angaben über Dateinamen, Schreibpasswort und Lesepasswort. + +____________________________________________________________________________ + +maintenance : +enter password ("dateiname","schreibschutz","leseschutz") + +____________________________________________________________________________ + +Falls die Datei nicht gegen Lesen geschützt werden soll, wird (wie beim Löschen +eines Passworts) '""' als Lesepasswort angegeben. + +Falls Schreiben und/oder Lesen für eine Datei gänzlich verboten#u#1)#e# sein soll, so ist +"-" als entsprechendes Passwort anzugeben. +#foot# +1) Natürlich kann die Datei in der Manager-Task, der sie gehört, normal editiert + werden. +#end# + +Um von einer Sohn-Task eine Datei mit Passwortschutz in der Vater-Task zu lesen +oder zu schreiben muß vor dem 'fetch', 'save' oder 'erase' Kommando das 'enter +password' Kommando eineggeben werden: + +____________________________________________________________________________ + +gib kommando: +enter password ("schreibpasswort/lesepasswort") + +____________________________________________________________________________ + +In der Sohn-Task wird also nur ein Passwort eingegeben. Falls wie oben ein '/' in +diesem Passwort enthalten ist, wird der erste Teil vor dem '/' als Schreibpasswort und +der zweite Teil als Lesepasswort geprüft. Falls kein '/' in dem Passwort enthalten ist, +wird das Wort sowohl als Schreib- als auch als Lesepasswort interpretiert. + +Beispiel: +In einer Manager-Task wird eine Datei "texte" eingerichtet, die Textvorlagen enthält. +In einigen Sohn-Tasks soll diese Datei geholt (= gelesen) werden können. Die +bearbeitete, somit veränderte Datei darf aber nicht zurück in die Vater-Task ge­ +schrieben werden. + +In der Vater-Task: enter password ("texte","-","psw") + + +In der Sohn-Task : enter password ("psw") + + +Falls das Passwort in einer Sohn-Task fehlerhaft oder gar nicht eingegeben wurde, +erscheint die Meldung : + +____________________________________________________________________________ + + gib kommando : + fetch ("geschützte datei") +FEHLER : Passwort falsch + +____________________________________________________________________________ + + +Somit kann diese Datei nur von Benutzern, die das Lesepasswort kennen, geholt +werden. Ein Überschreiben der Datei ist nicht möglich, da das Schreibpasswort nicht +gegeben werden kann ("-" !). +#page# +3.8. Monitor-Kommandos +#free(1.0)# +ALL + THESAURUS OP ALL (TASK CONST task) + Liefert einen Thesaurus#u#1)#e#, der alle Dateinamen der angegebenen Task enthält + (auch der Benutzer-Task 'myself'). +#foot# +1) Ein Thesaurus ist eine Liste, in diesem Zusammenhang eine Liste von Dateien. + (Siehe auch 2.4. Die ELAN-Notation +#end# + fetch (ALL father) + + THESAURUS OP ALL (TEXT CONST datei) + Liefert einen Thesaurus, der die in 'datei' vorhandenen Dateinamen (jede Zeile ein + Name) enthält. + + fetch (ALL "dateiliste") + +archive + PROC archive (TEXT CONST archivname) + Anmeldung von Archiv-Operationen. 'archivname' wird zur Überprüfung für alle + folgenden Archiv-Operationen verwandt, um die unberechtigte Benutzung eines + Archivs zu verhindern. Die Anmeldung wird abgelehnt, wenn ein anderer Nutzer + das Archiv belegt hat. + + + archive ("textdiskette") + + + TASK PROC archive + Liefert den internen Task-Bezeichner für die Verwendung in Dateikommandos. + + + save ("dateiname", archive) + + + +begin password + PROC begin password (TEXT CONST geheim) + Verhindert das unberechtigte Einrichten einer Sohn-Task. + + + begin password("gmd") + + +break + PROC break + Die zum Terminal aktuell zugeordnete Task wird abgekoppelt. Sie wird damit zu + einer Hintergrund-Task. + + +brother + TASK PROC brother (TASK CONST task) + Liefert den internen Task-Bezeichner der angegebenen "Bruder"-Task. + + + list(brother) + + +check + PROC check (TEXT CONST dateiname, TASK CONST task) + Überprüft, ob die Datei 'dateiname' auf dem Archiv lesbar ist. + + + check ("meine datei", archive) + + + PROC check (THESAURUS CONST t, TASK CONST task) + Überprüft, ob die in dem Thesaurus 't' enthaltenen Dateien auf dem Archiv lesbar + sind. + + + check (ALL archive, archive) + + + +clear + PROC clear (TASK CONST task) + Löscht alle Dateien der Task 'ARCHIVE'und benennt die Diskette um, falls ein + anderer als der bisherige Diskettenname bei der Reservierung angegeben wurde. + + + archive("disk1"); clear(archive) + + +copy + PROC copy (TEXT CONST quelle, ziel) + Kopiert die Datei 'quelle' in eine neue Datei mit dem Namen 'ziel' in der + Benutzer-Task. + + + copy("datei","neue datei") + + Fehlerfälle: "ziel" existiert bereits + "quelle" gibt es nicht + zu viele Dateien + + +edit + PROC edit + a) Im Monitor: + Ruft den Editor mit den zuletzt verwandten Dateinamen auf. + b) Im Editor: + Der Dateiname wird erfragt. + Für jedes 'edit' gilt: + Wurde 'edit' zum ersten Mal aufgerufen, nimmt das Fenster den gesamten + Bildschirm ein. Bei erneutem 'edit'-Aufruf wird ein Fenster nach rechts unten ab + der aktuellen Cursor-Position eröffnet. + + PROC edit (TEXT CONST dateiname) + Ruft den Editor mit 'dateiname' auf. + + + edit("handbuch teil3") + + + + PROC edit (TEXT CONST dateiname, x, y, xbreite, yhöhe) + Wie obiger 'edit'-Aufruf, jedoch kann das Fenster, in dem 'dateiname' editierbar + ist, gesetzt werden. Die Parameter definieren ein Editor-Fenster mit der linken + oberen Ecke auf den Bildschirmkoordinaten 'x' und 'y' und einer Zeilenbreite + 'xbreite' und 'yhöhe' Zeilen. Wird der Editor mit 'edit ("dateiname")' aufgerufen, + wird implizit 'edit ("dateiname", 1, 1, 79, 24)' aufgerufen. + + + edit("notiz",5,5,44,12) + + + PROC edit (THESAURUS CONST t) + Editieren aller in dem Thesaurus 't' enthaltenen Dateien nacheinander. + + + edit (ALL father) + + + +end + PROC end + Die zum Terminal aktuell gehörende Task wird abgebrochen und gelöscht. + +enter password + PROC enter password (TEXT CONST datei, schreibpass, lesepass) + Die angegebene Datei wird mit Schreib- und Lesepassword versehen. Die + Passwörter werden in der eigenen Task nicht berücksichtigt. + Falls der Schutz total sein soll, so ist für die verbotene Operation "-" als + Passwort anzugeben. + + + enter password ("daten","sicher","heit") + + + PROC enter password (TEXT CONST password) + Gibt Schreib- und Lesepasswort für den Austausch mit Manager-Task an. Falls + zwei verschiedene Passwörter für Lesen und Schreiben vereinbart sind, so sind + sie als ein Text durch "/" getrennt einzugeben. + + + enter password ("lese/schreibpasswort") + + +erase + PROC erase (TEXT CONST datei) + Löscht eine Datei mit dem Namen 'name' in der unmittelbaren Vater-Task. + + + erase("alte datei") + + + Fehlerfälle: + "datei" gibt es nicht + Passwort falsch + + PROC erase (TEXT CONST name, TASK CONST manager) + Löscht eine Datei mit dem Namen 'name' in der Task 'manager'. + + + erase ("dateiname", father) + + + PROC erase (THESAURUS CONST thesaurus) + Löscht die im 'thesaurus' angegebenen Dateien in der Vater-Task. + + + erase (ALL myself) + (* löscht alle Dateien in der Vater-Task, die in der + Benutzer-Task vorhanden sind *) + + + PROC erase (THESAURUS CONST thesaurus, TASK CONST manager) + + + erase (all,father) + (* löscht alle Dateien in der Vater-Task, die in der + Benutzer-Task vorhanden sind *) + + + +father + TASK PROC father + Liefert den internen Task-Bezeichner der Vater-Task der Benutzer-Task. + + + list(father) + + + TASK PROC father (TASK CONST task) + Liefert den internen Task-Bezeichner von 'task'. + + + save ("dateiname", father (father)) + (* Kopiert 'dateiname' zum "Großvater" *) + + + +fetch + PROC fetch (TEXT CONST name) + Kopieren einer Datei von der Vater-Task in die Benutzer-Task + + + fetch("sicherungskopie") + + Fehlerfälle: + "datei" gibt es nicht + Passwort falsch + zu viele Dateien + + + PROC fetch (TEXT CONST name, TASK CONST manager) + Kopieren einer Datei in die Benutzer-Task von 'manager'. + + + fetch ("dateiname", /"global") + + + PROC fetch (THESAURUS CONST thesaurus) + Holt alle im 'thesaurus' enthaltenen Dateien von der Vater-Task. + + + fetch (ALL) + + + PROC fetch (THESAURUS CONST thesaurus, TASK CONST manager) + Zweck: Holt alle im 'thesaurus' enthaltenen Dateien von der 'manager'-Task. + + + fetch (ALL /"global", /"global") + + +forget + PROC forget (TEXT CONST datei) + Löschen einer Datei mit dem Namen 'name' in der Benutzer-Task. + + + forget ("alte datei") + + Fehlerfälle: + "datei" gibt es nicht + + PROC forget (THESAURUS CONST thesaurus) + Löscht die im 'thesaurus' enthaltenen Dateien in der Benutzer-Task. + + + forget (SOME myself) + + +format + PROC format (THESAURUS CONST thes) + Formatieren von Disketten und Einstellen des Namens. + + + format(archive) + + + PROC format (INT CONST art, THESAURUS CONST thes) + Formatieren von Disketten im Nichtstandardformat des benutzten Geräts + + + format(2,archive) + + +global manager + PROC global manager + Durch den Aufruf der Prozedur wird die Benutzer-Task zu einem Datei- + Manager. Danach können Söhne dieser Task eingerichtet werden. + + +list + PROC list + Listet alle Dateien der Benutzer-Task mit Namen und Datum des letzten Zugriffs + auf dem Terminal auf. + + PROC list (TASK CONST task) + Listet alle Dateien der angegebenen 'task' mit Namen und Datum der letzten + Änderung auf dem Terminal auf. + + + list (father) + + + +myself + TASK PROC myself + Liefert den internen Task-Bezeichner der Benutzer-Task. + + + save (ALL myself, father) + + + +public + TASK PROC public + Liefert den internen Task-Bezeichner von "PUBLIC". + + + fetch ("dateiname", public) + + + +rename + PROC rename (TEXT CONST altername,neuername) + Umbenennen einer Datei von 'altername' in 'neuername'. + + + rename("altes handbuch","neues handbuch") + + +save + PROC save (TEXT CONST dateiname) + Datei 'dateiname' wird an die unmittelbare Vater-Task übertragen. + + + save("neues handbuch") + + + Fehlerfälle: + "neues handbuch" gibt es nicht + zu viele Dateien + Passwort falsch + + PROC save (TEXT CONST name, TASK CONST task) + Datei mit dem Namen 'name' in Task 'task' kopieren + + + save ("dateiname", /"global") + + + Fehlerfälle: + "dateiname" gibt es nicht + zu viele Dateien + Passwort falsch + + PROC save (THESAURUS CONST thesaurus) + Kopiert die Dateien, die in 'thesaurus' enthalten sind, in die Vater-Task. + + + save (SOME myself) + + + PROC save (THESAURUS CONST thesaurus, TASK CONST manager) + Kopiert die Dateien, die in 'thesaurus' enthalten sind, in Task 'manager'. + + + save(SOME myself, /"global") + + +SOME + THESAURUS OP SOME (THESAURUS CONST thesaurus) + Bietet den angegebenen 'thesaurus' zum Editieren an. Dabei können nicht + erwünschte Namen gestrichen werden. + + THESAURUS OP SOME (TASK CONST task) + Bietet einen THESAURUS von 'task' zum Editieren an. + + THESAURUS OP SOME (TEXT CONST dateiname) + Bietet einen 'thesaurus', der aus 'dateiname' gebildet wird, zum Editieren an. + + +task + TASK PROC task (TEXT CONST task name) + Liefert den internen Task-Bezeichner von 'task name'. + + + save ("dateiname", task ("PUBLIC")) + = save ("dateiname", public) + + + +storage info + PROC storage info + Informationsprozedur über den belegten Hintergrund-Speicher. + + +task info + PROC task info + Informiert über alle Tasknamen im System unter gleichzeitiger Angabe der + Vater/Sohn-Beziehungen (Angabe durch Einrückungen). + + PROC task info (INT CONST art) + Informiert über alle Tasks im System. Mit 'art' kann man die Art der Zusatz- + Information auswählen. Für 'art' sind zur Zeit folgende Werte zugelassen: + + art=1: entspricht 'task info' ohne Parameter, d.h. es gibt nur die Tasknamen + unter Angabe der Vater/Sohn-Beziehungen aus. + + art=2: gibt die Tasknamen aus. Zusätzlich erhalten Sie Informationen über die + verbrauchte CPU-Zeit der Task, die Priorität, den Kanal, an dem die + Task angekoppelt ist, und den eigentlichen Taskstatus. Hierbei bedeuten: + + 0 -busy- Task ist aktiv. + 1 i/o Task wartet auf Beendigung des Outputs oder auf + Eingabe. + 2 wait Task wartet auf Sendung von einer anderen Task. + 4 busy-blocked Task ist rechenwillig, aber blockiert. + 5 i/o -blocked Task wartet auf I/O, ist aber blockiert. + 6 wait-blocked Task wartet auf Sendung, ist aber blockiert. + Achtung: Die Task wird beim Eintreffen einer + Sendung automatisch entblockiert. + + art=3: wie 2, aber zusätzlich wird der belegte Speicher angezeigt. (Achtung: + Prozedur ist zeitaufwendig!). + + + task info(2) + + +task status + PROC task status + Informationsprozedur über den Zustand der eigenen Task. Informiert u.a. über + - Name der Task, Datum und Uhrzeit; + - verbrauchte CPU-Zeit; + - belegten Speicherplatz; + - Kanal, an den die Task angekoppelt ist; + - Zustand der Task (rechnend u.a.m.); + - Priorität. + + PROC task status (TASK CONST t) + Wie obige Prozedur, aber über die Task mit dem internen Tasknamen 't'. + + + task status (father) + + + +task password + PROC task password (TEXT CONST geheim) + Einstellen eines Passworts für Benutzertask. Das Kommando 'task password' ist + ein Monitor-Kommando. Ist eine Task mit einem Paßwort geschützt, so wird + durch den Supervisor nach dem 'continue'-Kommando das Passwort angefragt. + Nur nach Eingabe des richtigen Passworts gelangt man in die gewünschte Task. + Das Passwort kann durch nochmaligen Aufruf von 'task password' geändert + werden, z.B. wenn es in regelmäßigen Abständen geändert werden muß, um + personenbezogene Daten zu schützen. + + Es gibt keine Möglichkeit, ein einmal eingestelltes Passwort in Erfahrung zu + bringen. Sollte das Passwort vergessen werden, kann somit die Task nur noch + gelöscht werden. + + Wird als Passwort ein '-'-Zeichen eingegeben, so wird verhindert, daß die + betreffende Task jemals wieder mit dem 'continue'-Kommando angekoppelt + werden kann. Dies ist z.B. für Manager-Tasks sinnvoll. + + + task password("mein geheimnis") + + ++ + THESAURUS OP + (THESAURUS CONST links, rechts) + Vereinigungsmenge von 'links' und 'rechts'. + + THESAURUS OP + (THESAURUS VAR thes, TEXT CONST name) + Nimmt den TEXT 'name' in den Thesaurus 'thes' auf. + + + save (SOME father + "rechnung", archive) + + + +- + THESAURUS OP - (THESAURUS CONST links, rechts) + Differenzmenge von 'links' und 'rechts'. + + THESAURUS OP - (THESAURUS VAR thes, TEXT CONST name) + Liefert einen Thesaurus aus 'thes', aber ohne den Eintrag 'name'. + + + save (ALL myself - "rechnung", archive) + + + +/ + THESAURUS OP / (THESAURUS CONST links, rechts) + Zweck: Schnittmenge von 'links' und 'rechts'. + + + save(ALL myself / ALL father, archive) + + + TASK OP / (TEXT CONST task name) + Liefert aus einem Tasknamen den internen Tasknamen. '/' kann überall dort + eingesetzt werden, wo ein interner Taskname verlangt wird. + + + fetch ("dateiname", /"global") + -- cgit v1.2.3