###   Projekte und Informationen rund um den KC85   ### 

ZAS 1.7

ZAS ist der Terminaltreiber, welcher im Grundgerät des KC85-Systems läuft, während im D004/D008 das CP/M läuft. ZAS steuert also die Bildschirmausgabe, Tastatureingabe, Zugriff auf das RAM-Floppy, Drucker usw.
Es gibt aber auch noch die sogenannte "Zusatzeingabe" und "Zusatzausgabe", welche im CP/M zum Beispiel für Lochstreifenleser und -stanzer benutzt wurden.
Im KC-System können diese beiden Ein/Ausgaben mit einem Koppeltreiber auch für eine Rechnerkopplung genutzt werden.

Für jeden der Ein- und Ausgabekanäle existiert zum Datenaustausch im Koppel-RAM ein 32-Byte-Puffer. Darüber tauschen die beiden CPUs im Grundgerät und der D004/D008 ihre Daten aus. Die sendende CPU muss dabei nicht warten bis die empfangende CPU ein Datenbyte abgeholt hat, sondern erst wenn der 32-Byte-Puffer gefüllt ist. Das passiert praktisch fast nie, sodass die CPU nach dem eintragen der Sendedaten bereits mit der nächsten Aufgabe weiter machen kann.

Leider war bisher beim Senden der Daten von der Zusatzeingabe der 32-Byte-Puffer nicht aktiv. Die CPU im D004/D008 musste ein Byte anfordern. Die CPU im Grundgerät das Byte bereitstellen und immer einer auf den anderen warten.

Wozu diese ganze Vorrede?

Die Zusatzein- und -ausgabe nutze ich auch für Übertragung vom und zum USB-Stick. Und das bremste das Lesen von USB stark ein! Mit UGET.COM oder USB.COM war das noch erträglich. Beim neuen URESTORE.COM wurde es jedoch unerträglich. Deshalb habe ich in ZAS 1.7 eine Möglichkeit geschaffen, dass der USB-Treiber per Interrupt seine Daten direkt in den Puffer schreiben kann. Wenn die CPU im D004/D008 dann die Daten abholen will, sind diese nur noch aus dem Puffer zu entnehmen. Das brachte fast eine Verdopplung der Lesegeschwindigkeit!

ZAS 1.7 fragt nun beim Koppeltreiber das CY-Flag ab. Ist dieses CY=1, dann werden von ZAS keine Daten in den Koppel-Puffer geschrieben. Bei CY=0 übernimmt ZAS das Eintragen in den Koppel-Puffer. Alle mir bekannten Koppeltreiber kommen mit CY=0 zurück, sodass diese Treiber weiterhin unverändert lauffähig sind. Der neue USB-Treiber 1.8 blockiert den Aufruf von ZAS durch CY=1 und schreibt dafür seine Daten selbst in den Koppel-Puffer.

WICHTIG: Der USB-Treiber 1.8 benötigt ZAS 1.7, ansonsten lässt er sich nicht aktivieren. Und wenn ihr ZAS 1.7 geladen habt, funktionieren die USB-Tools bis Version 1.7 sowie der NC bis Version 2.0 nicht mehr!

Also falls ihr auf die höhere USB-Geschwindigkeit umsteigen wollt, müsst ihr ZAS 1.7 installieren und den USB-Treiber 1.8. Die USB-Tools 1.8 und NC 2.1 unterstützen sowohl die alte als auch die neue Treiber-Version.