Das lange versprochene Update der USB-Software für das M052 unter CAOS will ich Euch heute vorstellen und zum Download anbieten. Es gibt nur noch eine Programmversion für CAOS 3.1 bis CAOS 4.4, so dass das Modul M052 ohne Softwareänderung für die KC85/3-5 einsetzbar ist. Außerdem wurden die Treiber für BASIC und EDAS überarbeitet.
Das Programm läuft im Adressbereich ab C000h und ist für den Einsatz im EEPROM des Moduls M052 vorgesehen. Es kann auch in einen RAM-Bereich auf diese Adresse geladen werden (z.B. in ein Modul M011).
Das Programm wurde unter CAOS 3.1, CAOS 4.2 und CAOS 4.4 getestet, es gibt nur noch eine Programmvariante: die CAOS-Version wird automatisch erkannt und das Programmverhalten entsprechend angepasst – Unterschiede gibt es nur in der Bedienung, die Funktionalität ist identisch. Der Betrieb am KC85/2 wird nur teilweise unterstützt.
Der USB-Teil des Moduls M052 ist nach dem Prinzipschaltplan Version 1.2 zum Anschluss des VDIP1/2 an einem PIO Port A+B ausgeführt. Die Entwickler-Variante mit KC-Modul M001 wird von der Software nicht mehr unterstützt, da es keine Erkennungsmöglichkeit für angeschlossene Hardware an das M001 gibt.
Getestet wurde die CAOS-Software mit der Vinculum-Firmware 3.64, 3.66 und 3.68.
CAOS-Menü:
Das CAOS-Menü wird wie bereits in Programmversion 2.0 um sieben Menüworte erweitert:
%VINCULUM Aufruf des Terminalprogramms
%ULOAD Laden eines CAOS-Programms
%USAVE Abspeichern eines CAOS-Programms
%BASIC Aufruf BASIC mit USB-Treiber
%REBASIC Aufruf REBASIC mit USB-Treiber
%BSAVE Abspeichern eines BASIC-Programms im Format *KCB
%DEVEX Aktivierung der USB-Routinen für EDAS
Ein Wechseln des Verzeichnisses bzw. die Anzeige des aktuellen Verzeichnisinhalts vom CAOS-Menü ist nicht vorgesehen. Dazu bitte in den Terminal-Modus wechseln!
Terminal-Modus:
Der wichtigste Programmteil dürfte nach wie vor das Terminal sein, welches durch %VINCULUM aus dem CAOS-Menü gestartet wird. Das Systemdatum wird automatisch vom GIDE-Interface des D004/D008 übernommen wenn DEP 3.0 läuft. In allen anderen Fällen wird zur Eingabe des aktuellen Datums aufgefordert. Danach erhält man diesen Bildschirm, der sich seit Version 1.2 nicht wesentlich geändert hat.
Wichtig! Der USB-Stick ist am rechten USB-Port des M052 anzuschließen, das ist der Port P2.
In der unteren Bildschirmzeile steht links der Steckplatz des verwendeten M052, in der Mitte die erkannte CAOS-Version und rechts das aktuelle Datum. Das obere grüne Fenster ist das Terminalfenster, hier werden alle Anzeigen dargestellt, die vom Vinculum kommen und nicht direkt von den Kommandos entgegen genommen werden. Das untere schwarze Fenster ist das Kommandofenster. Die Bedienung ist wie im CAOS-Menü. Die einzelnen Kommandos bewirken hier:
MENU
Löschen des Kommandofensters und das Auflisten aller Menüworte.
CLS
Löschen aller Anzeigen im Terminalfenster.
USB
Ab CAOS 4.3 werden die Befehle unmittelbar hinter das Menüwort USB geschrieben, sonst wird dazu gesondert aufgefordert. Die möglichen Befehle können dem Vinculum-Handbuch entnommen werden.
LOAD [oooo [s] ]
Vor Ausführung des Autostarts wird zunächst das Terminalprogramm beendet.
Der Name des zu ladenden Programms wird angefordert, falls dabei kein Dateityp angegeben wird, wird .KCC benutzt.
Der Name des zu speichernden Programms wird angefordert, auch hier wird .KCC benutzt falls dabei kein Dateityp angegeben wird.
DIR
Es kann eine Dateimaske angegeben werden (ab CAOS 4.3 direkt hinter DIR, ansonsten nach der Eingabeaufforderung). Entsprechend dieser Maske werden die Dateinamen ausgefiltert. Die Maske kann die Jokerzeichen '?' für ein beliebiges Zeichen und '*' für einen beliebigen Rest von Dateiname oder Typ enthalten, keine Eingabe heißt dabei alle Dateien, ist also gleichbedeutend mit *.*
Die Anzahl der Dateien und Verzeichnisse wird im Kommandofenster angezeigt und ist somit auch bei langen Listen immer sichtbar.
Zur Fortsetzung entweder die Leertaste (1 Zeile) oder Enter (1 Seite) drücken, BRK bricht die Anzeige auch vorzeitig ab.
reset
Dieses Menüwort ist nicht sichtbar, da es in Kleinbuchstaben vorliegt. Es kann aber dennoch eingegeben werden und löst einen RESET-Impuls für den Vinculum-Chip aus. Das ist gleichbedeutend mit dem Einschalten der Betriebsspannung. Man kann dadurch definierte Verhältnisse schaffen, falls sich mal etwas aufgehangen hat und befindet sich anschließend im Hauptverzeichnis eines angesteckten Sticks.
EDAS:
Hier gab es größere Änderungen in der Verwendung der Menüworte, deshalb aufmerksam lesen!
Da sowohl EDAS als auch die Vinculum-Programme im Speicher C000h-E000h liegen, muss bei Ausführung der Vinculum-Programmteile zwischen EDAS und Vinculum umgeschaltet werden. Unter CAOS 4.3 bzw. 4.4 kann davon ausgegangen werden, dass EDAS mit SWITCH 2,0 aus und mit SWITCH 2,E1 eingeschaltet wird. Die Vinculum-Programmebene bleibt ständig ein und wird von dem höher priorisierten EDAS überdeckt. Es soll auch EDAS 1.4 (im Modul M027) unterstützt werden oder ein EDAS welches in ein RAM-Modul geladen wurde. Deshalb muss in diesem Fall angegeben werden, mit welchen SWITCH-Befehlen EDAS ein- bzw. ausgeschaltet wird. Dies kann bei Aufruf des Menüworts DEVEX angegeben werden.
DEVEX [..]
Das CAOS-Kommando DEVEX aktiviert den USB-Treiber für EDAS 1.4-1.6 mit Umlenkung der Kassettenroutinen zum USB-Stick. Beim Aufruf von DEVEX wird ein Programmteil in den IRM-Bereich ab BA00h kopiert und von EDAS dort verwendet. Danach wird die Unterprogrammtabelle SUTAB in den IRM kopiert und mit den USB-Routinen modifiziert. Jetzt wird das EDAS-Modul eingeblendet und das Menüwort %EDAS zur Eingabe vorgeschlagen. So kann man durch Betätigen der Enter-Taste sofort EDAS starten.
Beim Aufruf von DEVEX können noch bis zu 4 Parameter angegeben werden, bis CAOS 4.2 müssen diese angegeben werden! Ohne Angabe dieser Parameter wird die Vorbelegung benutzt, welche für den KC85/5 mit EDAS im USER-ROM gilt und dem Aufruf DEVEX 2 E1 2 0 entspricht. Die ersten beiden Argumente dienen dem Zuschalten von EDAS (also SWITCH 2 E1), die letzten beiden zum Abschalten (also SWITCH 2 0). Der Speicherbereich des M052 muss bei abgeschaltetem EDAS sichtbar sein, das heißt bei Verwendung von zwei Modulen für EDAS (M027) und USB (M052), muss EDAS auf dem Steckplatz mit der kleineren Nummer gesteckt werden.
Beispiel: KC85/3 mit M027 auf Steckplatz 8, M052 auf Steckplatz C. Um EDAS mit USB-Treiber zu nutzen, sind folgende Kommandos nötig:
%SWITCH 2 0 BASIC ausschalten
%SWITCH C C1 Vinculum-Ebene des M052 einschalten
%DEVEX 8 C1 8 0 DEVEX mitteilen wie das M027 zu schalten ist
%EDAS EDAS starten.
EDAS wird wie gewohnt aufgerufen. Im Menü von EDAS gibt es nun das neue Menüwort USB. Damit werden alle USB-Zugriffe gesteuert. Nach dem Menüwort USB wird durch Angabe eines Parameters eine von 4 Funktionen ausgewählt werden, ohne Parameter wird der aktuelle Status und eine kleine Hilfe angezeigt was die Parameter bewirken – siehe Bild oben.
Folgende Funktionen gibt es jetzt:
USB Anzeige ob USB-Umleitung aktiv ist und Liste der Kommandos
USB 0 USB-Umleitung ausschalten
USB 1 USB-Umleitung einschalten
USB 2 Anzeige des aktuellen Verzeichnisses des USB-Sticks
USB 3 Wechsel des USB-Verzeichnisses, Eingabe nach dem angezeigten CD
Die Variante mit dem Parameter erschien mir als vorteilhaft, da hierfür nur ein zusätzliches Menüwort in EDAS erscheint. Wer sich die Funktion der Parameter nicht merken kann, ruft einfach USB ohne Parameter auf und bekommt die möglichen Kommandoformen angezeigt.
Mit USB 0 bzw. USB 1 wird die Umleitung zum USB-Stick ein- bzw. ausgeschaltet. Die USB-Routinen ersetzen dabei die Kassettenroutinen von CAOS. Bei EDAS 1.6 wird deswegen automatisch der Tape-Modus angewählt. Die Anzeige in der Statuszeile bleibt „Tape“, da EDAS selbst die Umleitung gar nicht bemerkt. Ob der USB-Stick angewählt ist oder nicht, sieht man nur nach dem Aufruf des Kommandos USB. Wird bei EDAS 1.6 auf DISK umgeschaltet, dann erfolgt der Zugriff auf das D004, auch wenn USB=ein ist. Um danach wieder mit USB weiter zu arbeiten, ist USB 1 erneut aufzurufen. Soll auf Kassette zugegriffen werden, dann ist USB 0 zu wählen und falls nötig, TAPE aufzurufen. Mit EDAS 1.6 kann man also während der Arbeit zwischen allen drei Medien wechseln.
USB 2 zeigt den Inhalt des aktuellen USB-Verzeichnisses an, allerdings nicht so komfortabel wie im Terminalmodus. Für eine alphabetische Sortierung der Dateinamen steht leider kein RAM zur Verfügung. Nach 20 Bildschirmzeilen pausiert die Anzeige, zum Fortsetzen entweder die Leertaste drücken um eine einzelne Zeile zu sehen oder Enter um 20 weitere Zeilen anzuzeigen. Abbrechen mit BRK ist nicht möglich.
USB 3 gestattet das Verzeichnis zu wechseln. Dazu wird CD angezeigt, welches mit dem Verzeichnis zu ergänzen ist. Durch Eingabe von zwei Punkten gelangt man eine Verzeichnisebene höher, ein Schrägstrich führt ins Hauptverzeichnis.
Tipp: Wenn man das vorgegebene CD löscht und an diese Stelle ein anderes Vinculum-Kommando schreibt, dann lassen sich auch weitere Operationen ausführen, z.B. Datei löschen oder umbenennen.
ACHTUNG! Wenn EDAS mit QUIT bzw. EXIT beendet wird, wird dabei nicht automatisch die modifizierte SUTAB zurückgestellt. Dies sollte man vorher durch Aufrufen von USB 0 im EDAS-Menü tun.
BASIC:
Auch hier gab Änderungen, so lässt sich jetzt auch aus BASIC heraus das Verzeichnis wechseln und der Verzeichnisinhalt anzeigen.
Im CAOS-Menü befinden sich zwei neue Menüworte BASIC und REBASIC. Diese stehen im Adressbereich ab C000h des Vinculum-Programms wenn dieses im KC-Speicher eingeblendet ist. Die Menüworte kommen vor den gleichnamigen Menüworten des CAOS beim KC85/4 und werden deshalb an deren Stelle benutzt. Beim KC85/3 ist ohnehin mit SWITCH 2 0 der BASIC-ROM abgeschaltet werden, um Menüworte aus anderen Speicherebenen zu sehen.
Da sowohl BASIC als auch die Vinculum-Programme im Speicher C000h-E000h liegen, muss bei Ausführung der Vinculum-Programmteile BASIC abgeschaltet werden. Dies wird durch direkte Programmierung des PIO-Port 88H vorgenommen. Dies funktioniert beim KC85/3-5, beim KC85/2 mit BASIC-Modul allerdings nicht, da BASIC dort nicht unabhängig vom CAOS ausgeblendet werden kann.
BASIC und REBASIC
CALL*DE Anzeige des aktuellen Verzeichnisses (Hinweise siehe bei EDAS)
CALL*F0 Wechsel des Verzeichnisses (Hinweise siehe EDAS)
CALL*150 Umschaltung zwischen USB und Kassette
Alle anderen Treiberaufrufe, die durch BASEX und SERVICE vom D004 bzw. CAOS4.4 bekannt sind, werden ebenfalls abgefangen und zeigen als Hinweis die belegten Funktionen an. So z.B. bei CALL*E1 im Bild oben.
Ist der USB-Treiber aktiv, greifen die BASIC-Befehle wie CLOAD, CSAVE aber auch LIST#1 statt auf Kassette auf den angeschlossenen USB-Stick zu.
BSAVE
BSAVE zeigt die Adressen an, die verwendet werden, dann wird noch der Dateiname angefordert. Wird kein Dateityp angegeben, dann wird *.KCB benutzt.
ACHTUNG! Wenn BASIC mit BYE beendet wird, wird dabei nicht automatisch die modifizierte SUTAB zurückgestellt. Dies sollte man bei Bedarf vorher durch Aufrufen von CALL*150 aus BASIC heraus tun.
Betrieb des M052 am KC85/2
Das CAOS2.2 oder HC900-CAOS des KC85/2 ist nicht ausreichend für die USB-Software des M052. Um dennoch die USB-Software nutzen zu können muss CAOS 3.1 in Form eines Moduls M006 oder M025 gesteckt werden. Das Modul M006 muss dabei auf einem höheren Modulsteckplatz (z.B. C) als das M052 (z.B. 8) gesteckt werden, damit der Speicherbereich C000-E000 vom M052 überdeckt werden kann. Der Betrieb von BASIC mit USB-Erweiterung ist in dieser Konfiguration nicht möglich! Ein M006 mit HC901-CAOS ist nicht verwendbar, da im HC901-CAOS einige benutzte Funktionen fehlen.
Zunächst ist mit JUMP C in CAOS 3.1 zu wechseln, dann kann mit SWITCH 8 C1 die USB-Ebene des M052 eingeblendet werden.
Für die Nutzung von EDAS ist als erstes das M027, als zweites das M052 und als drittes das M006 zu stecken.
Diese Nutzungsvarianten wurden noch nicht ausreichend getestet, es kann also durchaus zu unvorhergesehenen Programmverhalten kommen.
Im Downloadbereich findet Ihr das aktuelle Terminalprogramm, den Quelltext dazu und eine Beschreibung im PDF-Format zum Ausdrucken.