Ausgehend von der Version 1.2 des Terminalprogramms vom 15.06.2008 habe ich die CAOS-Software jetzt weiterentwickelt und möchte hier die neuen Funktionen der Version 2.0 vorstellen. Der direkte Zugriff auf den USB-Stick kann damit nun auch unter BASIC und EDAS genutzt werden.

Das Programm läuft im Adressbereich ab C000h und ist für den Einsatz im EPROM vorgesehen. Es kann allerdings auch in einen RAM-Bereich auf diese Adresse geladen werden (z.B. in ein Modul M011).  Es gibt zwei Programmvarianten: eine für CAOS bis Version 4.2 (die auch unter CAOS 4.3 und 4.4 funktioniert), die andere für CAOS ab Version 4.3 – Unterschiede gibt es nur in der Bedienung, die Funktionalität ist identisch.

Es gilt nach wie vor der Schaltplan Version 1.1 zum Anschluss des VDIP1 am KC-Modul M001.
Getestet wurde die Software mit der Vinculum-Firmware 3.64 und 3.66.


CAOS-Menü:

CAOS-Menü

Das CAOS-Menü wird durch Programmversion 2.0 mit folgenden sieben Menüworten 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

ULOAD und USAVE sind analog den CAOS-Kommandos LOAD und SAVE für Kassette bzw. FLOAD und FSAVE für Diskette zu benutzen.  Die Wirkung ist identisch mit dem LOAD und SAVE im Terminal-Modus, weitere Hinweise siehe dort.

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.  Neu ist die Unterstützung des Systemdatums, welches automatisch vom GIDE-Interface des D004 übernommen wird 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 ja bereits aus Version 1.2 bekannt ist - allerdings mit ein paar Änderungen. Das Menüwort TEST gibt es nicht mehr, dafür ein DIR.

Terminal Version 2.0

Zu erkennen ist in der unteren Bildschirmzeile links der Steckplatz des verwendeten Moduls 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
Mit diesem Kommando werden Befehle direkt zum Vinculum ausgeben.
Bei der Programmvariante für CAOS 4.4 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] ]
Dient dazu ein CAOS-Programm vom aktuellen Verzeichnis des angeschlossenen USB-Sticks zu laden. Das Kommando arbeitet dabei genau wie das CAOS-Kommando LOAD zum Laden von Magnetband bzw. FLOAD zum Laden von Diskette.  Durch Angabe des eines Parameters [oooo] kann ein Ladeoffset angegeben werden, ein weiterer Parameter [s] mit beliebigem Wert unterdrückt den Autostart von selbststartenden Programmen.
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.
SAVE aaaa eeee [ssss]
CAOS-Programm abspeichern. Anzugeben sind wie von CAOS gewohnt die Anfangsadresse, Endadresse+1 und eventuell eine Startadresse.  Der Dateiname wird wie bei LOAD abgefragt.  Falls unter dem Namen bereits eine Datei existiert, kann nach der Frage 'Datei ueberschreiben (j/n)? ' entschieden werden, ob die vorhandene Datei gelöscht werden soll. Die Antwort mit 'N' bricht den Vorgang ab.
Der Name des zu speichernden Programms wird angefordert, auch hier wird .KCC benutzt falls dabei kein Dateityp angegeben wird.

Terminal mit DIR-Kommando

DIR
Anzeigen des sortierten Verzeichnisses.  Das Verzeichnis kann man sich zwar auch anzeigen lassen durch das Direktkommando 'USB DIR', dann erhält man eine fortlaufende unsortierte Ausgabe mit jeweils einem Dateinamen pro Zeile.  Bei großen Verzeichnissen wird das sehr schnell unübersichtlich.
Deshalb habe ich diese komfortable Variante der Verzeichnisanzeige eingebaut.
Es kann eine Dateimaske angegeben werden (bei CAOS 4.4 direkt hinter DIR, ansonsten nach der Eingabeaufforderung).  Nach 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 *.*
Nun werden zunächst alle Dateinamen vom DIR-Kommando eingelesen, entsprechend der Maske ausgefiltert und im RAM ab 200h abgelegt.  Sind alle Dateinamen im Speicher, werden diese noch alphabetisch sortiert und erst dann im Terminalfenster in 3 Spalten angezeigt.  Dabei pausiert die Anzeige nach 16 Zeilen, um die Anzeige in Ruhe lesen zu können.
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.
ACHTUNG! Wenn Dateien mit LOAD und SAVE kopiert werden sollen, dann darf zwischendurch DIR nicht aufgerufen werden. Anderenfalls könnte das DIR-Kommando das geladene Programm überschreiben, da der RAM ab 200h zur Ablage der Dateinamen benutzt wird!
QUIT
Terminalprogramm beenden und zu CAOS zurückkehren. Der Interrupt, der während des Terminal-Modus aktiv ist, wird abgeschaltet.


EDAS:
EDAS mit USB-Stick

Da sowohl EDAS als auch die Vinculum-Programme im Speicher C000h-E000h liegen, muss bei Ausführung der Vinculum-Programmteile EDAS abgeschaltet werden und umgekehrt.  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.  Es soll jedoch auch EDAS 1.4 (Modul M027 – Development) unterstützt werden oder ein EDAS welches in ein RAM-Modul geladen wurde. Deshalb muss bekannt gegeben 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 das Zusatzprogramm für EDAS 1.4-1.6 mit Umlenkung der Kassettenroutinen zum USB-Stick.  Beim Aufruf von DEVEX wird ein Hilfsprogramm zum Ein/Ausschalten der USB-Umleitung in den IRM-Bereich ab BA00h kopiert.  Dann wird noch eine neue Unterprogrammtabelle SUTAB im IRM vorbereitet und mit den USB-Routinen modifiziert. Zur Kontrolle erfolgt die Ausschrift USB=aus, das heißt zu diesem Zeitpunkt ist noch die Original-SUTAB aktiv.

Bei Aufruf von DEVEX können noch bis zu 4 Parameter angegeben werden, damit EDAS korrekt geschaltet wird. Ohne Angabe wird die Vorbelegung benutzt, diese ist  DEVEX 2 E1 2 0 und ist gültig für den KC85/5 mit EDAS im USER-ROM.  Die ersten beiden Argumente dienen dem Zuschalten von EDAS (SWITCH 2 E1), die letzten beiden zum Abschalten (also SWITCH 2 0).  Der Speicherbereich des Vinculum muss bei abgeschaltetem EDAS sichtbar sein, das heißt bei Verwendung von zwei Modulen für EDAS und das Vinculum-Programm, muss EDAS auf dem Steckplatz mit der kleineren Nummer gesteckt werden.

Jetzt kann EDAS wie gewohnt aufgerufen werden. Im Menü von EDAS gibt es nun das neue Menüwort USB. Es dient dazu, die Umleitung zum USB-Stick ein- bzw. auszuschalten. 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. Angezeigt wird dabei entweder USB=ein oder USB=aus.
Ein Wechseln des Verzeichnisses bzw. die Anzeige des aktuellen Verzeichnisinhalts vom EDAS-Menü ist nicht vorgesehen. Dies bitte vorher im Terminal-Modus tun!

ACHTUNG! Wenn EDAS beendet wird, wird dabei nicht automatisch die modifizierte SUTAB zurückgestellt.  Dies sollte man vorher durch nochmaliges Aufrufen von USB im EDAS-Menü tun bis USB=aus angezeigt wird.


BASIC:

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. Es wird davon ausgegangen, dass der BASIC-ROM mit SWITCH 2,0 aus und mit SWITCH 2,C1 eingeschaltet wird.  Dies ist beim KC85/3-5 der Fall.  Beim KC85/2 mit BASIC-Modul funktioniert das allerdings nicht, da BASIC dort nicht unabhängig vom CAOS ausgeblendet werden kann.
BASIC mit USB-Stick

BASIC und REBASIC
Aufruf von BASIC mit einem Zusatzprogramm zur Umlenkung der Kassettenroutinen zum USB-Stick.  Die Funktionalität ist wie bei BASEX (Diskettenumleitung vom D004).  Aus BASIC heraus lässt sich mittels CALL*150 zwischen Kassette und USB-Stick hin- und her schalten.

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.
Ein Wechseln des Verzeichnisses bzw. die Anzeige des aktuellen Verzeichnisinhalts von BASIC aus ist nicht vorgesehen. Dies bitte vorher im Terminal-Modus tun!
BSAVE
Im CAOS-Menü gibt es schließlich noch ein weiteres Menüwort BSAVE. Dieses dient dazu, BASIC-Programme als selbst startende Maschinencode-Programme abzuspeichern.  Dazu ist zunächst das BASIC-Programm unter BASIC in den Speicher zu bringen.  Dann wird BASIC verlassen und BSAVE aufzurufen (beim KC85/3 vorher noch SWITCH 2 0).
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.


Im Downloadbereich findet Ihr das aktuelle Terminalprogramm, den Quelltext dazu und eine Beschreibung im PDF-Format.