Drei neue Treiber für das Modul M052 und Erweiterung des Hilfsprogramms DRIVER.COM in Version 1.4.
Das Modul M052 enthält zwei separat nutzbare Komponenten:
- Die Netzwerkschnittstelle mit dem WIZnet-Chip und
- die USB-Schnittstelle mit dem Vinculum-Chip auf dem VDIP2.
Für jede dieser beiden Komponenten gab es bisher einen Treiber für CP/M. Dieser Treiber sorgt unter anderem dafür, dass das Modul M052 mit Aktivierung des Treibers eingeschaltet wird. Bei der Deaktivierung des Treibers (z.B. um den Speicher für andere Anwendungen frei zu geben) sollte alles wieder in den Zustand vor dessen Aktivierung versetzt werden.
Doch mit zwei Treibern für das M052 gelingt das nicht vernünftig. Wenn nur einer der beiden Treiber deaktiviert wird, dann sollte das Modul schließlich eingeschaltet bleiben. Wenn beide Treiber deaktiviert sind, dann kann auch das Modul ausgeschaltet werden. Es reicht auch nicht aus, wenn sich jeder Treiber den Schaltzustand vor seiner Aktivierung merkt - denn wenn die Treiber in der umgekehrten Reihenfolge ihrer Aktivierung deaktiviert werden, dann würde nach der Deaktivierung des ersten Treibers das M052 ebenfalls ausgeschaltet werden. Klingt kompliziert? Ist es aber gar nicht!
Die beiden Treiber müssen sich nur verständigen. Dies übernimmt ein dritter Treiber, auf den der USB- und der KCNET-Treiber zugreifen kann. Es gibt also jetzt drei DRV-Treiber für das M052:
- M052.DRV zur Modulsteuerung
- USB.DRV für den Zugriff auf den USB-Teil
- NET.DRV für den Zugriff auf den Netzwerkteil
Wir haben vereinbart, die Treiber für das M052 als Paket weiterzuentwickeln und künftig nur in diesem Paket zusammen weiterzugeben. Deshalb enthalten die Archive der UTools und der KCNET-Software ab sofort keine Treiber mehr. Die M052-Treiber findet Ihr als gesonderten Download.
In der aktuellen Version lassen sich die Treiber nur aktivieren wenn ein M052 im KC-System gesteckt ist. Für die Nutzung der USB-Programme muss M052.DRV und USB.DRV geladen werden. Für die Nutzung der Netzwerk-Programme muss M052.DRV und NET.DRV geladen werden. Und wenn beides benötigt wird, dann sind alle drei Treiber zu laden.
* * * *
Zum Laden der Treiber habe ich bereits 1997 DRIVER.COM geschrieben. Außer ZAS, Koppel- und Druckertreiber können seit der ZAS-Version 1.3 auch verschiebliche Treiber *.DRV geladen werden. Bisher konnte DRIVER.COM die Treiber nur laden. Dazu gab es noch das Hilfsprogramm ZASTEST.COM, mit dem man die geladenen Treiber auch auflisten und löschen konnte. Diese beiden Funktionen wurden nun in die Version 1.4 von DRIVER.COM integriert. Damit ergeben sich folgende Aufrufmöglichkeiten, die man nach Eingabe von DRIVER // wie gewohnt als Hilfe angezeigt bekommt:
Das Laden von Treibern erfolgt wie bisher aus einer einzelnen Datei oder einer Bibliothek. Nach dem Laden überprüft DRIVER.COM V1.4 jetzt noch, ob die Aktivierung erfolgreich war und zeigt dies durch die Anzeige "geladen" oder "nicht geladen" an:
Die Ursache warum ein Treiber nicht geladen (also nicht aktiviert) werden kann, ist abhängig vom Treiber und kann verschiedene Gründe haben. Der Treiber M052.DRV lässt sich beispielsweise nicht aktivieren, wenn kein M052 steckt. Und deswegen können auch die USB- und Netzwerk-Treiber nicht aktiv werden und es sieht so wie im obigen Bild aus.
Zur Kontrolle, welche Treiber geladen sind, kann man jetzt einfach DRIVER /L aufrufen und bekommt eine Anzeige wie hier:
Das Treibersystem von ZAS ermöglicht Treibern die Funktionen von anderen Treibern mit zu nutzen. So verwenden USB.DRV und NET.DRV die Funktionen von M052.DRV. Oder wie im Bild zu sehen, nutzen die Treiber HPKC und DRUCK den Treiber IRMBUF. Diese Nutzung ist an der Anzeige USE=.. erkennbar. USE sagt aus, wie viele Nutzer der Treiber hat. Nur Treiber mit USE=1 werden nicht anderweitig benutzt und lassen sich löschen. Das Löschen einzelner Treiber ist jetzt mit DRIVER.COM V1.4 direkt möglich. Um z.B. den ersten Treiber der obigen Liste "FADEN'97" zu deaktivieren, ruft man
DRIVER /D=3
auf. Da es keinen Treiber mit der ID=0 gibt, habe ich
DRIVER /D=0
verwendet, um alle Treiber auf einmal zu deaktivieren. Falls hierbei ein Fehler angezeigt wird, muss ZAS neu geladen werden. Ursache ist meist ein nicht fehlerfrei programmierter Treiber selbst.
Wichtiger Hinweis:
Jeder DRV-Treiber hat einen eindeutigen Identifizierungscode (ID), diese ID's liegen im Bereich von 1 bis 255. Damit wird sicher gestellt keinen Treiber doppelt zu laden und Treiberfunktionen nutzen zu können. In der Hilfe von ZAS ist das ausführlich beschrieben. Hier die Liste der bisher registrierten Treiber (Stand: 24.10.2009):
1 und 2 | temporäre Bereiche ohne Treiberfunktion | allgemein verwendbar |
3 | FADEN97.DRV Bildschirmschoner | M. Leubner |
4 | universeller V.24-Koppeltreiber für COM1-COM4 | M. Leubner |
16 | IRMBUF.DRV Puffer für Bildschirminhalt | F. Dachselt |
17 | WINCPM.DRV Programmbibliothek WINCPM | F. Dachselt |
20 | HPKC.DRV Hauptprogramm HPKC (Taschenrechner) | F. Dachselt |
21 | DRUCK.DRV Hauptprogramm DRUCK (Druckereinstellung) | F. Dachselt |
24 | RAM-Floppy-Treiber für 2MB internen RAM8 | F. Dachselt |
25 | DUDEL.DRV interruptgesteuertes Soundmodul | M. Leubner |
26 | USB.DRV Zugriff auf USB-Schnittstelle des M052 | M. Leubner |
27 | NET.DRV Zugriff auf Netzwerkschnittstelle des M052 | R. Kästner |
28 | M052.DRV Modulsteuerung des M052 (für USB & Netzwerk) | Leubner/Kästner |
Die ID's von 240 bis 255 sind zum Testen und Erstellen von Treibern freigegeben. Wer gern einen solchen Treiber veröffentlichen möchte, erhält von mir eine ID aus dem offiziellen Bereich zugeteilt.