MTOOLS - Version 1.2
von Frank Dachselt
Es ist an der Zeit, eine neue Version der MTOOLS in Umlauf zu bringen. Immerhin ist das neue Modul M051 jetzt fertig und wird bald bei denen, die es bestellt haben, eintreffen. Und wer auch die serielle Schnittstelle mitbestellt hat, der wird die heute vorgestellten - und auch die in Aussicht gestellten - Veränderungen bestimmt gut gebrauchen können. Passende Koppeltreiber, die die serielle Schnittstelle des neuen Moduls benutzen und damit deutlich höhere Übertragungsgeschwindigkeiten erlauben, gibt es spätestens in der nächsten News-Ausgabe. Sobald ich mein eigenes Modul aufgebaut und getestet habe, schicke ich ganz Ungeduldigen die neuen Treiber auf Anfrage auch gern zu. Vielleicht gibt es auch eine Download-Möglichkeit auf unserer WWW-Homepage.
Außerdem haben inzwischen einige KC-User die MTOOLS ausprobiert und dabei einige Schwierigkeiten bei der Installation und der fehlerfreien Inbetriebnahme gehabt. Auch das soll mit diesem Beitrag beseitigt werden.
Die Sache mit dem FIFO-Speicher...
Bei meinen ersten Versuchen mit der Kopplung von KC und PC habe ich auch selbst ziemlich lange herumexperimentieren müssen, bis alles schließlich wunschgemäß und vor allem fehlerfrei funktionierte. Dabei habe ich offenbar nicht alle Versuche ausreichend dokumentiert, so daß schließlich bei den vorangegangenen Installationsbeschreibungen einige wichtige Punkte fehlten.
Die Probleme haben ihre Ursache alle im hardwareseitigen FIFO-Speicher, der auf der PC-Seite in allen modernen SIO-Schaltkreisen jeweils einmal für das Senden und das Empfangen zu finden ist. Bei Senden vom PC in Richtung KC passiert nun in Verbindung mit den Handshake-Signalen folgendes: Die zu sendenden Bytes werden in den Sende-FIFO-Speicher der SIO geschrieben und gleichzeitig wird mit dem Senden begonnen. Während des Sendens wird der FIFO-Speicher der SIO stets in möglichst gefülltem Zustand gehalten. Damit soll ein schnelles und weitgehend unterbrechungsfreies Senden garantiert werden, auch wenn der PC mal kurzzeitig anderweitig beschäftigt ist (Stichwort Multitasking) und keine Daten an die SIO liefern kann. Wenn nun der Empfänger auf der Gegenseite - in unserem Fall also der KC - eine Übertragungspause anfordert, weil er noch mit der Verarbeitung der empfangenen Daten beschäftigt ist, und dies dem sendenden PC mittels des Handshake-Signals mitteilt, dann wird das Senden nicht wie erwartet mit Beginn des nächsten Bytes unterbrochen, sondern es werden zunächst noch alle in der Sende-FIFO stehenden Bytes gesendet. Erst danach macht der PC eine Sendepause. Für dieses Übertragungsregime müssen also die Größen der FIFO-Puffer im Sender und Empfänger sowie die zugehörigen Handshake-Signale aufeinander abgestimmt sein, d.h. der Empfänger muß nach der Anforderung einer Übertragungspause noch mindestens die Bytes aus dem FIFO-Puffer des Senders aufnehmen können. Anderenfalls kommt es zwangsläufig zu einem Datenverlust während der Übertragung.
Da die Z80-SIO im V.24-Modul des KC keinen nennenswerten Empfangspuffer (nur 3 Byte) besitzt, muß der FIFO-Puffer auf der PC-Seite vollständig abgeschaltet werden. Nur so ist eine fehlerfreie Übertragung garantiert. Nun hat zwar der verwendete ADF-Treiber eine Kommandozeilenoption, die das Konfigurieren des FIFO-Puffers im Sender erlaubt, jedoch ist die Wirkung dieser Funktion abhängig vom tatsächlich verwendeten SIO-Schaltkreis. Sicher funktioniert das Abschalten des FIFO-Puffers nur, wenn man es unabhängig vom ADF-Treiber vornimmt. Unter Windows 95/98 geht das in der Systemsteuerung:
SystemsteuerungSystem
Gerätemanager
COM1
Eigenschaften
Anschlußeinstellungen
Erweitert
Hier kann man die Einstellungen für die FIFO-Puffer der seriellen Schnittstelle vornehmen. Es reicht hier offenbar nicht aus, die ,,Schieberegler`` auf 1 zu setzen. Man muß wirklich die FIFO-Benutzung auf der ersten Schaltfläche deaktivieren. Eine weitere Änderung ist in der Datei WINDOWS\
SYSTEM.INI notwendig, die auch in der ADF-Beschreibung beschrieben ist. Unter dem Punkt [386Enh] muß die mit ,,<<<`` gekennzeichnete Zeile ergänzt werden. Das ist die Einstellung für den Software-Puffer. Der Wert stimmt zwar nicht mit der ADF-Kommandozeile in der Datei START.BAT überein, aber so funktioniert es:
[386Enh] ... COM1Buffer=4096 <<< ... COM1Fifo=0
Der Eintrag COM1Fifo=0 ist zuvor schon automatisch durch die Einstellung in der Systemsteuerung erzeugt worden. Diese Einstellungen sind hier für den Fall gezeigt, daß die Schnittstelle COM1 verwendet wird. Bei Verwendung einer anderen Schnittstelle sind die entsprechenden Stellen natürlich entsprechend anzupassen.
Mit diesen Einstellungen sollten nun die MTOOLS im DOS-Fenster unter WINDOWS funktionieren. Sollen sie dagegen im reinen DOS-Mode verwendet werden, dann haben die WINDOWS-Einstellungen natürlich keine Wirkung. In diesem Fall hilft das Programm 16550A.EXE, das mit der folgenden Kommandozeile aufgerufen wird:
C:\>16550a 1 off
Mit diesem Aufruf wird der FIFO-Puffer der Schnittstelle COM1 abgeschaltet. Der erste Parameter gibt Nummer der Schnittstelle an und ist bei Bedarf wieder entsprechend anzupassen. Dieser Aufruf ist sogar verträglich mit WINDOWS, d.h. man kann ihn fest in die Datei START.BAT einfügen und diese Batchdatei auch im DOS-Fenster unter WINDOWS aufrufen. Allerdings ersetzt sie nicht die vorher beschriebenen WINDOWS-Einstellungen; diese sind nach wie vor notwendig.
In der beiliegenden Version 1.2 der MTOOLS ist diese neue Kommandozeile in die Datei START.BAT bereits aufgenommen. Ebenso liegt dem Paket das Programm 16550A.EXE bei, das wiederum - wie bereits die anderen benötigten Hilfsprogramme - in ein Verzeichnis kopiert werden muß, das Bestandteil des DOS-Suchpfades ist.
Damit haben wir es zunächst einmal geschafft, die bisherige Version der MTOOLS sicher zum Laufen zu bringen. Doch kommen wir nun zu den wirklichen Neuerungen der Version 1.2. Wie so oft sind es mitunter Kleinigkeiten, die das Leben angenehmer machen.
Neue Zeichen und neue Pfade
Wie es sich für die Arbeit mi einem PC gehört, wird jetzt bei Anzeigen auf dem KC, die vom PC stammen, der IBM-Zeichensatz verwendet; natürlich vorausgesetzt, es wird mit ZAS ab Version 1.3 gearbeitet. Das ist insbesondere bei der Verwendung von Umlauten interessant und betrifft vorzugsweise die Funktion MTYPE zur Anzeige eines Textfiles vom PC auf dem KC. Aber auch alle anderen Programme, die Filenamen auf dem KC zur Anzeige bringen, wechseln jetzt stets zum IBM-Zeichensatz. Dabei muß beachtet werden, daß jetzt zwar Filenamen und Directories mit Umlauten auf dem KC angezeigt, solche Sonderzeichen aber (noch) nicht am KC eingegeben werden können und schon gar nicht innerhalb von Dateinamen am KC verwendet werden dürfen. Man kann sich in solchen Fällen nur so behelfen, daß man in die betreffenden Verzeichnisse auf dem PC wechselt, bevor die MTOOLS-Steuerschleife gestartet wird, bzw. bei problematischen Dateinamen geschickt die Jokerzeichen einsetzt (z.B. bei MGET). MGET ersetzt in solchen Fällen die Sonderzeichen in den lokalen Dateinamen durch Buchstaben aus dem Bereich A...P. Grundsätzlich sollte man aber aus Kompatibilitätsgründen auf die Verwendung von Sonderzeichen in Dateinamen möglichst verzichten.
Die zweite Veränderung betrifft die Übertragung von Binärdateien mit MGET bzw. MPUT. Da bei MGET in diesen Fällen zunächst die UUE-kodierte Datei im aktuellen Verzeichnis auf den PC erzeugt werden mußte, war es bislang nicht möglich, Binärdateien aus Read-only-Verzeichnissen (z.B. von CD-ROMs) zu übertragen. In ähnlicher Weise konnte auch das Lesen oder Schreiben von Binärdateien von bzw. auf Disketten scheitern, da auch hier jeweils die UUE-kodierte Datei ins aktuelle Verzeichnis passen mußte, was in Abhängigkeit vom Füllgrad der Diskette und der Größe der zu übertragenden Datei nicht immer garantiert werden konnte. In all diesen Fällen wird das Problem jetzt dadurch gelöst, daß die MTOOLS die UUE-kodierten Dateien in ein frei konfigurierbares temporäres Verzeichnis schreiben, das sich an geeigneter Stelle auf der Festplatte befinden kann. Die Konfiguration erfolgt - wie von einigen anderen Parametern bekannt - in der Datei START.BAT, z.B. wie folgt:
set kctemp=c:\kcnet\temp\
Zu beachten ist, daß das angegebene Verzeichnis auch existieren muß. Es ist also vor der ersten Benutzung der neuen MTOOLS-Version anzulegen.
Ausblick: CRC - sicher ist sicher!
Eigentlich sollte in diesem Abschnitt über eine bereits realisierte Erweiterung berichtet werden. Leider sind die Arbeiten noch nicht abgeschlossen (die Gründe können in den einleitenden Worten diese Ausgabe nachgelesen werden...), so daß es an dieser Stelle nur einen Ausblick auf die Version 1.3 gibt, die in den nächsten KC-News veröffentlicht werden wird.
Die sich in Arbeit befindliche Erweiterung ist die Einführung der CRC-Prüfung beim Übertragen von Dateien. Diese Funktion ist besonders für die zukünftigen hohen Übertragungsgeschwindigkeiten des M051 wichtig, da die Fehlerwahrscheinlichkeit mit der Baud-Rate ansteigt. Bei den bis jetzt verwendeten 2400 Baud habe ich bei mir mit Kabellängen bis zu 15 m noch keinen Fehler bemerkt, so daß man zur Zeit noch von einer ziemlich sicheren Übertragung ausgehen kann.
Das verwendete Batchdatei-Protokoll läßt noch keine komfortable und schnelle blockweise Prüfung zu. Vielmehr werden die übertragenen Daten dateiweise verifiziert. Das kann im Fehlerfall zwar zu erheblich längeren Übertragungszeiten führen, da jeweils die gesamte Datei nochmals übertragen werden muß, bietet aber letztlich die gleiche Sicherheit wie das blockweise Verfahren. KC-seitig wird die Bestimmung des CRC-Wertes in die Programme MGET und MPUT integriert, auf dem PC wird sie in ein externes Programm verlagert, das in das Batchdatei-Protokoll eingebunden wird.
Dateien
Zum aktuellen MTOOLS-Paket gehören die folgenden Dateien auf der Beilagendiskette:
- MTOOLS12.PMA
- Dieses Archiv enthält die KC-seitigen Programme des MTOOLS-Pakets.
- MTOOLS12.ZIP
- Dieses Archiv enthält die PC-seitigen Programme des MTOOLS-Pakets. Dazu gehören die Dateien der Batch-Steuerschleife sowie alle benötigten externen Programme. In der Datei README.TXT stehen einige Installationshinweise.
- ADF144.ZIP
- In diesem Archiv befindet sich der ADF-Treiber zusammen mit dessen Beschreibung und einer Reihe von Zusatzprogrammen. Es werden nur die Programme ADF.EXE und REGISTER.EXE benötigt.
-
Zum Schluß noch der Hinweis, daß ich natürlich wieder sehr an Erfahrungsberichten über die Verwendung der MTOOLS interessiert bin.