next up previous contents index
Next: Was sind L3 Protokolle? Up: L3 Referenzhandbuch Previous: Fehlerbehandlung

L3DOS

Einführung

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.

Der virtuelle DOS Rechner

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.

DOS Standarddateien

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.

Inhalt der AUTOEXEC.BAT

@ECHO OFF 
SET PROMPT=L3DOS [$P] 
SET PATH=C:\; 
SET COMSPEC=C:\COMMAND.COM 
SET NOSNOWCONTROL=TRUE 
SET DOS=L3DOS 
DEL AUTOEXEC.BAT

Inhalt der CONFIG.SYS

     FILES=100 
     BUFFERS=20

Zulässige Einträge für CONFIG.SYS

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

Prozeduren

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).

tabular10569

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.

L3DOS Kommandos

tabular10681

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 up previous contents index
Next: Was sind L3 Protokolle? Up: L3 Referenzhandbuch Previous: Fehlerbehandlung

Michael Hohmuth
Sun Mar 31 04:49:53 MET DST 1996