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:

DRIVER 1.4 Hilfeseite

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:

DRIVER 1.4 - Treiber laden

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:

DRIVER 1.4 - Liste geladener Treiber

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.