Next: Was sind L3 Protokolle?
Up: L3 Referenzhandbuch
Previous: Fehlerbehandlung
L3 bietet die Möglichkeit, eine Ablaufumgebung für Programme, die für die
Betriebssysteme MS-DOS/PC-DOS geschrieben sind, bereitzustellen. Diese Umgebung
heißt L3DOS. L3DOS ist nicht an spezielle Tasks gebunden, sondern kann in jeder
Task benutzt werden.
L3DOS basiert auf der Möglichkeit des 80386 Prozessors, daß jede Task, unabhängig
von allen anderen Tasks, zwischen virtuellem 8086 (V86) Modus und originärem
(Protected) Modus hin- und herschalten kann. Im V86 Modus verhält sich der 80386
wie ein schneller 8086. Um eine geeignete Ablaufumgebung für DOS Programme zu
schaffen, wird in einer Task, die in den V86 Modus wechselt, ein Kontrollprogramm
aktiviert, das alle Leistungen, die durch ein DOS Programm angefordert werden, im
Sinne von L3 umsetzt. Dieses Kontrollprogramm heißt L3DOS.
Die Abbildung von L3DOS auf des Tasksystem eines L3 Systems folgt dem Vorbild
eines lokalen Netzwerks. Eine Task entspricht einer Station in einem Netzwerk.
Folglich ist Kommunikation zwischen DOS Programmen in Tasks, die sich im V86
Modus befinden, dann möglich, wenn sich diese Programme der unter DOS üblichen
Mittel zur Kommunikation bedienen. In den einzelnen Task steht nicht nur eine
Emulation von DOS Version 3.3 zur Verfügung, sondern auch die Grundfunktionen
des Netzwerkprogramms PC-LAN Version 1.3.
In der einzelnen Task wird ein virtueller DOS Rechner angelegt.
Das erste Megabyte des Adreßraums der Task bildet den DOS üblichen Arbeitsspeicher des virtuellen Rechners. Dieser Bereich wird grundsätzlich vom Standarddatenraum der Task eingenommen (siehe auch Kap. 1 und 2). Schon diese
»örtliche« Anordnung zeigt, daß L3DOS grundsätzlich als normales Benutzerprogramm , wie z.B. der Editor aufzufassen ist.
Standarddatenraum
0x00000 0x003ff Interruptvektoren
0x00400 0x004ff
0x00500 0x005ff DOS/Basic Datenbereich gefüllt mit '0'
0x00600 Anfang des DOS Arbeitsspeichers
0x9ffff Ende Arbeitsspeicher
0xa0000 Anfang Bildschirmspeicher
0xb0000 dos high memory
0xb8000 0xb8fff Bildschirmspeicher CGA Textmodus
0xc0000 0xcffff dos high memory
0xd0000 0xdffff dos high memory, falls EMS
nicht aktiviert
0xe0000 0xe1a00 dos high memory
0xf6000 0xf9fff virtuelles BIOS : Tabellen
0xfa000 0xfffff virtuelles BIOS : Code
0x0010ffff
Das (ELAN) Dateisystem der Task wird als Laufwerk C: betrachtet. Alle Dateien, deren
Dateinamen den DOS Konventionen gehorchen, sind für L3DOS sichtbar. Dateien,
deren Name kein zulässiger DOS Dateiname ist, sind »unsichtbar«. Die Ablage der
Dateien ist nicht kompatibel zu DOS. Unter »echtem« DOS werden Dateien
typischerweise auf einer Festplatte gespeichert, deren Aufteilung kürzest als Bootbereich, File Allocation Table(s), Wurzelverzeichnis und weitere Verzeichnisse mit
den Dateien beschrieben werden kann. Diese Struktur ist unter L3DOS nicht nachgebildet. Programme, die Wissen um diese Strukturen nutzen und unter Umgehung
der DOS Funktionsaufrufe z.B. direkt auch die FAT zugreifen möchten, laufen
mangels FAT nicht unter L3DOS.
Das Diskettenlaufwerk wird als Station im Netz angesprochen.
Bei jedem Neustart von L3DOS werden die Dateien CONFIG.SYS und
AUTOEXEC.BAT aus der Task SYSIO geholt. Das unterbleibt, falls es in der Task
bereits Dateien dieses Namens gibt.
@ECHO OFF
SET PROMPT=L3DOS [$P]
SET PATH=C:\;
SET COMSPEC=C:\COMMAND.COM
SET NOSNOWCONTROL=TRUE
SET DOS=L3DOS
DEL AUTOEXEC.BAT
FILES=100
BUFFERS=20
- BREAK = {ON/OFF}
-
BREAK=ON bewirkt, daß der Control-C Check in der Task eingeschaltet wird. Das bedeutet, daß bei jedem L3DOS Funktionsaufruf geprüft wird, ob diese Tastenkombination gedrückt ist.
Falls ja, wird das Programm unterbrochen.
BREAK=OFF bewirkt, daß nur DOS Standardein/-ausgabefunktionen auf die Tastenkombination CONTROL-C
reagieren.
- BUFFERS = {n}
-
n = (1..99). Anzahl der durch L3DOS emulierten Plattenpuffer.
Der eingestellte Wert von 20 ist als Information für den Benutzer
zu betrachten. Eine Änderung des Wertes wird ignoriert.
- COUNTRY = {001/049}
-
Umschaltung landesspezifischer DOS Eigenschaften. Der Eintrag
001 bewirkt eine »amerikanische« Ausgabe des Datums. Die
Voreinstellung von L3DOS entspricht der deutschen Einstellung
049.
- DEVICE = filename
-
Derzeit darf nur ANSI.SYS eingestellt werden. Die Wirkung dieser
Einstellung entspricht set ansi (TRUE). Die Einstellung anderer
Gerätetreiber hat keine Wirkung und wird mit der Meldung:
'load driver xxx *** not yet implemented'
quittiert.
- FCBS = {m,n}
-
Keine Wirkung.
- FILES = {n}
-
Keine Wirkung.
- LASTDRIVE = char
-
Letzter zulässiger Buchstabe für Laufwerksbezeichner.
- SHELL = filename
-
Die Datei 'filename' wird als Kommandoprozessor geladen und
gestartet.
- STACKS = {n,m}
-
Keine Wirkung.
Alle andere Einträge werden mit der Fehlermeldung quittiert:
Unknown command in CONFIG.SYS : xxx
Die hier zusammengefaßten Prozeduren verändern vor allem Einstellungen von
L3DOS und dergleichen. Die eigentlichen L3DOS Kommandos liegen naturgemäß in
Form ausführbarer Dateien vor (siehe 12.5).
l3dos
PROC l3dos
- Wirkung: L3DOS wird »gebootet«. Die DOS Emulation wird neu initialisiert.
Die Datei AUTOEXEC.BAT wird, falls nicht in der Task vorhanden,
von SYSIO geholt und ausgeführt. Anschließend wird die Datei
CONFIG.SYS, falls nicht in der Task vorhanden von SYSIO geholt
und ausgewertet. Desweiteren werden die Dateien
L3.COM
NET.BAT
COMMAND.COM
aus der Task SYSIO geholt. Anschließend wird der Kommandoprozessor gestartet.
dos
PROC dos
- Wirkung: Moduswechsel von ELAN Modus zu V86 Modus und L3DOS. Falls
L3DOS in der Task noch nicht initialisiert ist, hat das Kommando
keine Wirkung.
assign l3dos printer
PROC assign l3dos printer (TEXT CONST device, TASK CONST printer)
- Wirkung: Der DOS Druckerkanal 'device' wird der L3 (Spool)Task 'printer'
zugeordnet. DOS kennt als Druckerschnittstelle die Geräte "PRN",
"LPT1", "LPT2", "LPT3" und "LPT4". Diese Geräte können
verschiedenen Druckertasks (falls vorhanden) zugeornet werden.
- Beispiel: assign l3dos printer ("LPT1", /"PRINTER");
assign l3dos printer ("LPT2", /"LASER")
l3dos printer
TASK PROC l3dos printer (TEXT CONST device)
- Wirkung: Liefert die Task, der das Gerät 'device' zugeordnet ist.
- Beispiel: put (name (l3dos printer ("LPT2")))
- Bemerkung: Als Voreinstellung sind alle Geräte der Task "PRINTER"
zugeordnet.
set ansi
PROC set ansi (BOOL CONST mode)
- Wirkung: Ansi Escape Sequenzen zur Bildschirmausgabe werden
ausgewertet. Falls Programme benutzt werden, die die ANSI
Sequenzen verwenden, muß set ansi(TRUE) eingestellt sein.
Diese Einstellung kann auch erreicht werden, wenn in der Datei
CONFIG.SYS DEVICE=ANSI.SYS eingestellt ist.
set ems
PROC set ems (BOOL CONST mode)
- Wirkung: EMS Treiber wird ein/ ausgeschaltet. Bei eingeschaltetem EMS
werden im Segment 0xe000 vier EMS Seiten zu je 16KB
eingeblendet. Damit ist geeigneten DOS Programmen die
Benutzung von maximal 16 MB Expanded Memory nach
Spezifikation EMS 3.2 möglich.
set extended dos memory
PROC set extended dos memory (BOOL CONST mode)
- Wirkung: Extended Memory wird ein/ ausgeschaltet. Extended DOS Memory
bezeichnet den Speicher zwischen 640Kb und 1 MB. Die durch
extended dos memory zusätzlich allokierten Bereiche sind in
12.2 angezeigt.
load vbios
PROC load vbios (TEXT CONST vb)
- Wirkung: In der Task wird der Datenraum 'vb' als neues virtuelles Bios für
L3DOS geladen. Auf diese Weise ist es möglich, verbesserte
Versionen oder Testversionen dieser Komponente zu installieren.
l3
l3 L3.COM
- Wirkung: Moduswechsel vom V86 Modus in den ELAN Modus. Die Datei
wird bei Initialisierung von L3DOS aus SYSIO geholt.
Falls die Eingabezeile weiteren Text enthält, der durch ein Leerzeichen von l3 getrennt ist, so wird dieser Text dem ELAN
Compiler zur Analyse und Ausführung übergeben. Auf diese Weise
ist es möglich, beliebige (ELAN) Programme von der L3DOS
Kommandozeile aus zu geben und Leistungen von L3 aus
Batchdateien heraus zu benutzen.
- Beispiel:
cls
CALL net use a:
l3 reserve (/"DOSA")
A:
- Bemerkung: Wenn in einer Batchdatei eine andere Batchdatei aufgerufen wird,
so muß dieser Aufruf mit CALL erfolgen, da sonst der gesamte
Batchablauf nach Abarbeitung der aufgerufenen Datei endet.
Batchdateien müssen abschließend eine Leerzeile haben.
NET
NET SHARE
- Wirkung: Für andere Tasks wird ein Pfad, der ausgewählte Verzeichnisse
oder auch das ganze Dateisystem der Task umfaßt, zur Verfügung
gestellt. Um die Benutzung unter L3DOS zu vereinfachen, ist eine
passende Batchdatei vorbereitet, die Kommandos folgender Syntax
zuläßt:
NET SHARE [identifier] [path]
[identifier] Name unter dem der Pfad zur Verfügung
gestellt werden soll.
[path] Pfad der zur Verfügung gestellt werden soll.
- Beispiel: NET SHARE disk c:\
In der Task "FILES" wird das gesamte Dateiverzeichnis als
»Serverplatte« zur Verfügung gestellt.
- Achtung: Will eine Task einen Pfad zur Verfügung stellen, so darf der Name
der Task nur aus Großbuchstaben bestehen.
Nachdem ein Pfad zur Verfügung gestellt wurde, muß die Task
mit dem Befehl
NET SRV
vom Terminal abgekoppelt werden.
NET SRV
- Wirkung: Die Task, in der zuvor ein Pfad für das virtuelle Netzwerk zur
Verfügung gestellt wurde, wird vom Terminal abgekoppelt und
wirkt fortan als free manager.
Der Name dieser Task muß ausschließlich aus
GROSSBUCHSTABEN bestehen!
- Bemerkung: Im Netzwerkerslang heißt ein solches Konstrukt »dedizierter
Server«.
NET USE
- Wirkung: Ein Verzeichnis, das von einem Server zur Verfügung gestellt ist,
wird als zusätzliches Laufwerk benutzt. Um die Benutzung unter
L3DOS zu vereinfachen, ist eine passende Batchdatei vorbereitet,
die Kommandos folgender Syntax zuläßt:
NET USE [drive] [netpath]
[drive] Laufwerk unter dem der Pfad einer anderen
Task angesprochen werden soll.
[netpath] Pfad der benutzt werden soll. Er muß die
folgende Syntax haben:
\\taskname\identifier
- Beispiel: Mit NET USE D: \\files\disk
kann das gesamte Dateiverzeichnis der Task "FILES" unter dem
Laufwerk D: angesprochen werden.
- Bemerkung: Mit NET USE A: bzw. NET USE B:
werden den Laufwerken A: bzw B: die Tasks "DOSA" bzw. "DOSB"
zugewiesen. Diese Task stellen das gesammte Dateiverzeichnis der
Tasks "ARCHIVE A" bzw. "ARCHIVE B" zur Verfügung. Bevor
Disketten gelesen oder beschrieben werden können müssen die
Tasks mit reserve (/"DOSA") bzw. reserve (/"DOSB") reserviert
werden.
Next: Was sind L3 Protokolle?
Up: L3 Referenzhandbuch
Previous: Fehlerbehandlung
Michael Hohmuth
Sun Mar 31 04:49:53 MET DST 1996