CAOS-Software im ROM macht unabhängig aber dass man mit zwei kleinen ROM-Programmen einmal per TFTP-Protokoll und TCPIP über Ethernet seine KC-Programme laden und starten kann, hätte ich vor zwei Jahren auch noch als Spinnerei abgetan.
Nachdem die ersten Netzwerk-Programme für CP/M soweit fertiggestellt waren, musste für die CAOS-Betriebsart des KC85 auch noch etwas getan werden. Ziel war dort natürlich auch erst einmal die Nutzung des Netzwerkes als Daten und Programmquelle. Der M052-Prototyp war inzwischen auch eingetroffen, so dass alles in der engültigen Form ausprobiert und getestet werden konnte.
Mit endgültiger Form ist vor allem gemeint, dass die Programme alle im ROM (EEPROM des M052) laufen müssen. Das war für mich nach 20 Jahren KC-Programmierung Neuland - unglaublich aber wirklich wahr! Eigentlich kann das ja auch nicht viel anders sein als im RAM, hatte ich anfangs noch gedacht aber es lauern einige Tücken und Fallstricke, da sich nun mal ROM nicht beschreiben lässt, auch wenn man das in seinem Programm der CPU befiehlt ...
Da in den bisherigen Artikeln zum Netzwerk und seiner Software bereits sehr viel zu den Protokollen und der Technik dahinter steht, werde ich hier nur ein paar Kommentare schreiben und ein paar Screenshots zeigen, damit man sehen kann, was mit dem M052 im Moment schon möglich ist.
Im Downloadbereich gibt es dazu eine relativ ausführliche Beschreibung im Dokumentenbereich. Da steht auch drin, wie man die *.KCC Dateien mit einem KC85 in den EEPROM des Modules bekommt.
Mario war so freundlich und hat mir "vorerst" 75% des EEPROM-Speicherplatzes überlassen, so dass ich ziemlich verschwenderisch damit umgehen konnte. Der wurde natürlich auch gleich "verbraten", die 3 Programme belegen immer ein 8 kB-Segment, welches vor der Nutzung entsprechend aktiviert werden muss.
Damit man das TCPIP-Netzwerk benutzen kann, muss man es konfigurieren, für die Diagnose benötigt man das PING-Programm und da der TFTP-Code für CP/M schon zur Verfügung steht, wurden Teile davon für CAOS gleich weiterverwendet. Die ersten beiden Programme entsprechen in allen Merkmalen den CP/M-Varianten.
Mit TFTP-Protokoll kann der CAOS-KC nur als Client im Netzwerk auftreten. Die Server-Funktionalität wurde entfernt, so dass man nur vom KC aus im Netzwerk schreiben und lesen kann. Aus diesem Grund wird immer ein Kommunikationspartner benötigt, wo das TFTP-Serverprogramm ausgeführt wird.
NCFG.KCC
Das ist die CAOS-Konfigurationszentrale für die Netzwerk-Schnittstelle. Wenn man den Befehl %NCFG im CAOS-Menü aufruft, wird der Bildschirm gelöscht und das folgende Menü ausgegeben:
Ganz oben nach NETZ: wird die lokale IP-Adresse mit Subnetzmaske für das KCNET-Interface im M052 angezeigt und ob eingehende PING Echo-Anforderungen beantwortet werden sollen oder nicht (PING-Block Mode).
Mit %AUTO kann man die automatische Netzwerk-Konfiguration per DHCP-Dienst des lokalen Netzwerkes starten. Nach dem Aufruf der Funktion muss man für den KC einen Computer-Namen für den DNS-Dienst im Netzwerk eingeben. Wenn man nichts eingibt, wird die Funktion abgebrochen. Wenn die Kommunikation zwischen KC85 und DHCP-Server erfolgreich war, wird eine komplette Liste mit allen erhaltenen Parametern auf dem Bildschirm ausgegeben und gleichzeitig das KCNET-Interface damit konfiguriert:
Wenn man in seinem Netzwerk einen DHCP-Server zur Verfügung hat. sollte man die Konfiguration der Netzwerkparameter dem DHCP-Client des KC85 überlassen. Wenn keine Antwort vom DHCP-Server eintrifft, konfiguriert sich das Netzwerk auch automatisch nach APIPA im Netz 169.254.0.0/255.255.0.0.
Mit Hilfe der Befehle %NETZ, %GATEWAY und %DNS kann man seine Parameter manuell konfigurieren. Um dann das Netzwerk überhaupt benutzen zu können, muss mindestens der erste Befehl erfolgreich ausgeführt werden. Anschliessend sollte der KC im Netzwerk auf PING-Kommandos antworten, siehe auch Artikel zur Netzwerk-Konfiguration im Projektbereich-KCNET.
Die Funktion %ECHO schaltet den PING-Block Mode ein bzw. aus, was oben im Menükopf entsprechend angezeigt wird.
Die Funktion %INFO gibt die aktuelle TCPIP-Konfiguration der Netzwerk-Einstellungen in Form einer kompletten Übersicht aus. Dieses Kommando ist deshalb immer die Anlaufstelle Nummer 1, wenn man die aktuellen Parameter wissen bzw. überprüfen will. Auch bei Fehlfunktionen oder merkwürdigem Verhalten von Netzwerkprogrammen sollte man zuerst diese Funktion aufrufen und die Einstellungen kontrollieren:
Eine weitere wichtige Information über die aktuelle Nutzung der TCPIP-Sockets des W5100 liefert das Kommando %SOCKETS. Wenn keine Netzwerkprogramme im Hintergrund laufen, muss dort hinter jedem Socket FREE zu sehen sein. Ansonsten gibt es noch fälschlicherweise reservierte Sockets, welche durch fehlerhaft programmierte oder "gewaltsam" abgebrochene Netzwerk-Anwendungen (nach RESET-Taste!) nicht ordnungsgemäss freigegeben wurden.
Mit %RESET kann schliesslich der komplette TCPIP-Stack per Befehl zurückgesetzt werden, wobei man eine bestehende Netzwerkkonfiguration erhalten oder löschen lassen kann. Das ist die letzte Massnahme bei Unklarheiten oder Störungen, anschliessend muss alles wieder normal funktionieren.
Die D004-Benutzer werden wahrscheinlich das M052 mit Hilfe von NCFG.COM beim Start von CP/M konfigurieren. Damit ist auch alles erledigt, bis der KC wieder ausgeschaltet wird. Man muss dann NCFG.KCC nicht mehr aufrufen, da alle Einstellungen auch beim Wechsel der Betriebsart in beide Richtungen erhalten bleiben.
PING.KCC
Auch in der CAOS-Betriebsart benötigt man den ICMP-Client für die Diagnose der Netzwerkfunktionalität. Man muss beim Gebrauch keine Abstriche gegenüber der CP/M-Version machen. Im Gegenteil, nach dem Start der Funktion werden alle veränderbaren Parameter übersichtlich und bequem in einem Menü präsentiert:
Jetzt kann man sich mit Hilfe der Cursortasten über den ganzen Bildschirm bewegen und alle Voreinstellungen mit anderen Werten überschreiben. Nach IP/Name: muss obligatorisch immer das Ziel für die PING-Pakete angegeben werden.
Wenn man damit fertig ist, bestätigt man alle Eingaben per >ENTER<-Taste - die Cursorposition ist dabei vollkommen beliebig. Das Programm prüft dann die vorgegebenen Grenzwerte und bleibt bei Eingabefehlern in diesem Menü stehen.
Wenn alles Parameter richtig waren, beginnt die PING-Sequenz:
Die ausgegebenen PING-Zeiten sind unter CAOS relativ genau, ca. +/- 1 ms, da es beim Transport der Netzwerkdaten nicht so viele systembedingte Verzögerungen wie unter CP/M gibt.
TFTP.KCC
Nun kommt noch der interessante Teil - mit TFTP.KCC kann man in der CAOS-Betriebsart Daten oder Programme über das Netzwerk schicken bzw. von anderen Teilnehmern laden.
Dafür benötigt man einen TFTP-Server im Netzwerk. Genau wie unter CP/M lässt sich an dieser Stelle der Windows-PC mit dem Programm PumpKIN.exe verwenden (siehe Arikel zu TFTP.COM).
Richtig lustig wird es aber erst mit dem Ersatz-KC, welchen viele KC85 Anwender in Reserve haben. Ich habe das vor dem KC-Clubtreffen 2009 schon mal ausprobiert. Auf dem Haupt-KC wurde unter CP/M TFTP.COM als Server gestartet, dieser KC war mit Hilfe der KCNET-Platine am Netzwerk per Kabel angeschlossen.
Das andere KC85/4 Grundgerät war mit M052 bestückt und über einen entsprechend konfigurierten Access-Point per WLAN mit dem Heimnetz verbunden und mit einem Scartkabel am RGB-Eingang des Fernsehgerätes angeschlossen:
Nach dem Einschalten des Grundgerätes muss nun NCFG im M052 aufgerufen werden, um die Netzwerk-Einstellungen zu konfigurieren. Anschliessend muss man nur noch das M052 Segment mit TFTP.KCC aktivieren und kann direkt vom anderen KC aus dem eingestellten TFTP-Server-Verzeichnis CAOS-Programme laden ...
... starten und beispielsweise spielen. Einen grossen KC-Turm möchte ich auch nicht im Wohnzimmer stehen haben aber das kleine schicke Grundgerät des KC85/4 fällt kaum auf.
Damit eröffnet das M052 also auch ganz neue Möglichkeiten. Der gleiche Vorgang wie per Netzwerk ist natürlich auch mit einem USB-Stick möglich, welcher allerdings vorher mit der gewünschten Software bestückt werden muss. Bis zur "Spielkonsole" gilt es zwar noch einige Hürden zu nehmen, da vor allem der gewohnte Bedienkomfort "vier Tasten und Start" fehlt aber man kann eben auch nicht alles auf einmal haben.
Damit wäre auch schon der Befehl %TNLOAD erklärt. Ein Start funktioniert nur für Programme, welche aus einer Datei bestehen, da die vorhandene KC-Software das Netzwerk oder USB nicht kennt und von dort automatisch weitere Programmteile nachlädt.
Das Gegenstück %TNSAVE gibt es natürlich auch, damit speichert man ein Programm oder Daten direkt aus dem RAM des KC85 auf dem TFTP-Server als Datei ab. Beide Funktionen arbeiten analog den beiden CAOS-Befehlen für Kassette %LOAD bzw. %SAVE, haben die gleichen Parameter und werden auch identisch bedient. Neu ist netzwerkbedingt, dass man beim Laden oder Speichern jedesmal den Host mit dem TFTP-Server eingeben muss, das ist anfangs etwas gewöhnungsbedürftig.
Neben den beiden Kommandos für die Arbeit mit dem RAM gibt es zusätzlich 2 Kopierfunktionen, welche traditionsgemäss zu den xTOOLS mit %TNGET bzw. %TNPUT bezeichnet werden. Damit werden Dateien zwischen einem KC-Datenträger und TFTP-Server-Verzeichnis kopiert, auf der KC-Seite lassen sich zur Zeit die Kassette und Laufwerke am D004 nutzen:
Problematisch können Kassettenkopien sein, wenn sich der Dateiaufbau einer Kopie auf Kassette von dem auf Diskette unterscheidet, wie das beispielsweise bei WordPro der Fall ist. Es ist nicht möglich, einen WordPro-Text aus dem Netzwerk auf Kassette zu kopieren und dann mit dem KC einzulesen, da das Format der Kassettenaufzeichnung nicht so ist, wie das WordPro erwartet.
Aber zumindest bei einer Kopie Kassette -> Netzwerk kann man diese anschliessend bequem mit entsprechenden Werkzeugen nachbearbeiten.
Programmdateien bzw. andere CAOS-Dateien mit einem CAOS-Vorblock, wo die Start- und Endadresse richtig eingetragen sind, können in beide Richtungen auch auf Kassette problemlos kopiert werden. Das Gleiche trifft auf BASIC-Dateien im SSS- und TTT-Format zu. Dort kümmert sich der Programmkode automatisch um die notwendigen Anpassungen, wenn der entsprechende Dateityp erkannt wurde.
Wenn mit D004-Laufwerken gearbeitet wird, sollten keine Probleme entstehen, da der Inhalt von Dateien immer binär sektorweise 1:1 bis zum Dateiende kopiert wird. Bei Texten kann man die typischen CP/M-Reste des letzten Sektors nach dem Endekennzeichen auch per Hand entfernen, wenn man sie auf dem PC mit einem Editor weiterverarbeiten will, was so prinzipiell auch auf andere Datendateien zutrifft.
Das Programmarchiv mit Beschreibung und EEPROM-Schreibprogramm befindet sich im Downloadbereich bei den EPROM-Inhalten. Die Beschreibung gibt es auch noch einmal einzeln bei den Softwareunterlagen.