DOS


Programmieren unter DOS

Das Programmiersystem C16 ist übersichtlich und einfach, es hat rund zwanzig Befehle, mit denen man schon Einiges machen kann. Aber es ist nicht besonders komfortabel. Der Editor ist sehr umständlich und wenn man einmal ein, zwei Jahre programmiert, hat man ein Wirrwarr von Hunderten von Programmdateien und -versionen unsortiert auf Diskette. Ausserdem ist es langsam und hat keine Ahnung von all den Dingen, die ein PC heute kann.

Gehen wir also einen Schritt weiter, in dem Vorhaben, einen heutigen PC zu programmieren. Dazu werden uns als erstes ein bisschen mit DOS beschäftigen. DOS ist ein sehr einfaches Betriebssystem. Was das ist, werden wir später einmal genauer klären. Zunächst einmal reicht uns, darunter ein spezielles Executable zu verstehen, das uns hilft

  1. Programme von einem Datenträger (Diskette, Festplatte) zu starten
  2. Dateien auf der Festplatte zu verwalten.

In diesem und dem nächsten Kapitel werden wir uns also anhand DOS mit ganz einfachen Begriffen der Dateiverwaltung beschäftigen, denn die Arbeit mit Dateien ist unverzichtbar für das Programmieren.

Was Sie im folgenden lernen, ist allerdings nicht nur das veraltete Betriebssystem DOS. Sie lernen gleichzeitig die Grundzüge der Kommandozeilensteuerung der modernen Windows-Betriebssysteme wie WindowsXP, da diese mit der alten DOS- Kommandosprache identisch sind.

Öffnen eines DOS-Fensters

Machen Sie einmal folgendes auf Ihrem (gestarten) PC:

Nun sollte ein schwarzes Fenster mit weisser Schrift erscheinen.

Die ersten beiden Zeilen brauchen uns nicht zu interessieren. Gehen wir gleich in die Zeile, in der "C:\>" steht. Das ist ein s.g. Prompt, der anzeigt, wo getippt wird. Was wir vor uns haben, ist eine Eingabeaufforderung, wie beim C16. Wir können ja versuchweise mal "?1+1" eingeben und ENTER drücken. Daraufhin kommt eine lange Erklärung "Der Befehl ist entweder falsch geschrieben oder konnte nicht gefunden werden." Beim C16 hiess das noch "Syntax Error" und bedeutete: "Ich verstehe nicht, was du meinst". BASIC versteht dieses Programm offenbar nicht.

Schliessen eines DOS-Fensters

Geben Sie einmal EXIT ein. Siehe da - das Fenster verschwindet!

EXIT ist aber kein BASIC-Befehl.

DOS-Kommandos

Legen Sie einmal eine Diskette, vielleicht Ihre Diskette mit den BASIC-Programmen ein. Dann öffnen Sie ein DOS-Fenster und geben ein: dir A:. (Wenn Sie kein Diskettenlaufwerk besitzen, können Sie das gleiche mit C: machen: dir C:).

Was Sie nun sehen, ist eine Liste von Dateien, die Sie direkt auf Ihrer Diskette gespeichert haben. Links das Datum, dann die Uhrzeit der letzten Änderung. Falls ein DIR auftaucht, ist dies keine Datei. Ansonsten kommt die Grösse der Datei in Bytes und schliesslich der Name.

Wir sehen also: In dem schwarzen Fenster können wir Kommandos eingeben wie im C16-Fenster. Nur versteht das DOS keine BASIC-Kommandos, sondern hat seine eigenen. Wir haben es also mit einem Befehlsinterpreter zu tun (Sie erinnern sich? Bits, Bytes und Basic, Abschnitt "Interpreter und Compiler"), einem DOS-Befehlsinterpreter.

Im Gegensatz zum BASIC-Interpreter C16 hat der DOS-Interpreter allerdings nur wenige eingebauten Befehle. Das sind hauptsächlich die Befehle

dir Zeige Inhalt des Verzeichnisses (directories)
mkdir Erstelle neues Verzeichnis
rmdir Lösche Verzeichnis
del Lösche Datei
copy Kopiere Datei
type Zeige Datei
ren Benenne Datei um
path Setze oder zeige den aktuellen Pfad

(Wir gehen im nächsten Kapitel noch auf die einzelnen Befehle ein.

Programme starten unter DOS

Trotz diesen wenigen eingebauten Befehlen ist der DOS-Befehlsvorrat fast unerschöpflich. Geben Sie einmal in einem DOS-Fenster den Befehl mspaint ein (+ ENTER!). Es öffnet sich ein Windows-Malprogramm! Der Befehl write öffnet das Windows-Textprogramm. Wenn Sie ver eingeben, erhalten Sie die genaue Version Ihres Betriebssystems.

Woher kennt DOS all diese Befehle? Es sind Executables, die DOS startet, sobald Sie den Namen+ENTER eingeben. Diese Executables sind auf Ihrer Festplatte gespeichert. Und wo auf der Festplatte sind die Executables (exe- oder com-Dateien) gespeichert? Und wie findet DOS sie? Wichtige Fragen, die wir nicht alle auf einmal beantworten können. Also immer der Reihe nach...

Geben Sie einmal im DOS-Fenster folgendes ein, falls Sie ein Diskettenlaufwerk haben. (Sie sollten vorher eine Diskette einschieben, am Besten die mit Ihren C16-Programmen.)

path A:\
A:

Diese nicht gerade intuitive Sequenz, die wir aber gleich verstehen werden, sorgt dafür, dass DOS die Festplatte sozusagen "vergisst" und nur noch die Diskette kennt.


Falls Sie kein Diskettenlaufwerk haben:

Falls Sie einen neueren PC ohne Diskettenlaufwerk besitzen, dann können Sie ein Diskettenlaufwerk simulieren. Geben Sie dazu folgende Befehlssequenz ein:

mkdir C:\dosworld
subst A: C:\dosworld

Dann haben Sie auch ein Laufwerk A:, das Sie nach Herzenslust beschreiben und "belöschen" können. Geben SIe nun die oben angegebene Befehlssequenz path... ein.


Wir haben nun dafür gesorgt, dass DOS die mysteriösen Befehle mspaint, write usw. auf der Festplatte nicht mehr findet. Wenn Sie jetzt "write" abschicken, bekommen Sie eine Meldung der Sorte "Unbekannter Befehl oder unbekannter Dateiname". Sie sehen schon: Nach diesen zwei Dingen sucht der Interpreter, entweder nach einem internen Befehl (siehe obige Tabelle) oder nach einer ausführbaren Datei. Und er sucht, falls nichts anderes vorgegeben wurde, nach ausführbaren Dateien im aktuellen Verzeichnis auf dem aktuellen Laufwerk. Vermutlich befinden sich auf Ihrer Diskette keine ausführbaren Dateien. Das können Sie kontrollieren. Geben Sie einmal den Befehl dir ein. dir kennt DOS, da es ein in command.com eingebauter Befehl ist.

Dann sehen Sie die Dateiliste. Befindet sich unter ihnen eine Datei mit der Endung .exe oder .com, dann können Sie sie ausführen. (Von "regedit", "format" oder "fdisk" sollten Sie allerdings Abstand nehmen!) Einfach den Dateinamen + ENTER eingeben.

Wahrscheinlich befindet sich allerdings kein Executable auf Ihrer Diskette. Dann kopieren wir einfach eins drauf! Das geht mit dem Befehl copy. Es hängt allerdings nun stark davon ab, welche Windowsversion Sie haben. Sie erinnern sich an den ver- Befehl? Hier haben Sie festgestellt, welche Windows-Version Sie haben. Jetzt funktioniert er natürlich nicht mehr, da wir ja DOS alles ausser unserem Diskettenlaufwerk "vergessen" haben lassen. Aber kein Problem: Gehen Sie einfach nach START->Ausführen und öffnen Sie eine zweite command.com! Dann haben Sie ein zweites DOS-Fenster. Dieses weiss noch alles und ver funktioniert noch. Schliessen Sie allerdings danach dieses zweite Fenster gleich wieder, sonst gibt'S ein Wirrwarr...

Also, wir wollen ein Executable kopieren. Dazu brauchen wir Ihre Festplatte. Und zwar den Ort, wo die Datei gespeichert ist. Wir wollen die Datei "edlin.exe" kopieren. Ihr Ort ist

Betriebssystem DOS:
C:\DOS
Betriebssystem Windows 3.x:
C:\DOS
Betriebssystem Windows 95/98/ME:
C:\Windows\command
Betriebssystem Windows NT/2000/XP:
C:\winnt\system32

Der Platzhalter für den String in dieser Tabelle (z.B. "C:\DOS") soll ORT heissen. Dann geben Sie folgenden DOS-Befehl ein:

A:\copy ORT\edlin.exe A:

Also z.B. "copy C:\DOS\edlin.exe A:".

Wenn Sie jetzt

A:\edlin.exe test.txt

aufrufen, erhalten, kommt

Neue Datei
*

edlin.exe ist hier mehr ein Gag. Es ist einer der allerersten Editoren. Und er funktioniert ganz ähnlich wie der C16-BASIC-Editor. Hier nebenbei ein paar Hinweise dazu, wen's aus historischen Gründen interessieren sollte.

Wichtig ist hier nur: DOS kennt also jetzt den Befehl "EDLIN", da er das Executable im aktuellen Verzeichnis findet.

Wenn Sie "q+ENTER" eingeben und dann ein "j", sind Sie wieder draussen.

Wir können das gleiche mit edit.exe wiederholen.

A:\copy ORT\edit.exe A:

edit.exe ist der Nachfolger von edlin.exe und schon deutlich komfortabler. Mit ihm können Sie sich schon mal vertraut machen. Gleich nach dem Start wird Ihnen ja sogar eine kurze Einführung geboten. In einem der nächsten Kapitel werden wir hier kurz auf ihn eingehen.

Damit dürfte das Prinzip klar geworden sein: DOS kennt seine eingebauten Kommandos und diejenigen, die als Excutable im aktuellen Verzeichnis zu finden sind.