 Damit darf ich alle Anwesenden hier begrüßen. Mein Name ist Jörg Carnot. Ich habe meinen diesjährigen Vortrag mal übertitelt mit ein KC85 III mit Floppy-Disk, ein alter Hut oder auch nicht. Hintergrund des Ganzen ist der, dass diese KC-Rechner, diese KC-Systeme, ist ja vom Werk aus auch mit Floppy gab, es gab Floppy-Erweiterungen, was ja eigentlich in der KC-Gemeinde ein alter Hut ist, aber diese Floppy ist eben was Spezielles. Ein klein wenig zur Vorgeschichte. Die beginnt damit, dass auf dem KC-Treffen des Jahres 2007 ein ähnliches System wie dieses auf einem der Stände herum stand, zusammen mit einem Zettel, wo eben dann drauf stand, kennt jemand dieses Gerät, wir wissen nicht, was es ist, keine Ahnung und ja, und niemand wusste was über das Gerät. Irgendwann im Jahre 2014 habe ich dann mal beim Durchsuchen meiner Diskettenbestände eine Diskette gefunden, die eigentlich zum PC-17-15 gehört, also sprich ein völlig anderes Robotronengerät und da waren zwei sehr interessante Dateien drauf. Die eine nannte sich Text.txt oder disk.txt, dessen Inhalt ich hier habe und die andere nannte sich cpm.com, dessen Inhalt modifiziert letztendlich hier drauf gelandet ist. Im Herbst und Winter 2014 wurde viel gebastelt, viel analysiert, viele Räte gezogen, Schaltpläne aufgenommen, Platinen geprüft. Wobei ich meinem Hobby-Kollegen Enrico sehr viel zu verdanken habe, ohne dessen Arbeit das Ganze gar nicht möglich gewesen wäre. Und nach viel mühevoller Kleinarbeit und etlichen Rätseln, die uns da noch aufgegeben wurden, erschienen dann irgendwann mal ein Art Doppelpunkt auf einen Bildschirm. Und das ist dann immer so der Punkt, wo man sagt, ja, das ist jetzt der Durchbruch. Im April 2015 war mal wieder ein KC-Treffen und da stand mal wieder so ein KC-Spezialrechner herum. Und die Frage ist, weiß jetzt jemand etwas darüber? Der selbe Rechner stand dann auch auf dem VCFE 2015 herum. Und wenn ich es noch geschafft hätte, dann hätte ich auch noch eine Folie gemacht zum VCFP 2015, aber dazu kam es nicht mehr. Soweit zu Vorgeschichte zur Gliederung des Vortrags, der erste Punkt ist Motivation. Warum mache ich das hier alles? Der zweite ist, ich möchte so ein bisschen den Überblick über das System geben, was ich hier aufgebaut habe. Dann, was mein spezieller Part ist, ist die Software mal so ein bisschen zu erklären, was ich da mache, was ich versuche zu tun, wie weit ich da bin. Dann, wie ich das Ganze überhaupt in Betrieb nehme, weil das nämlich nicht so einfach ist, wie einschalten und geht. Und dann gibt es natürlich, weil es ein unfertiges Projekt ist, noch viele offene Punkte, die zu tun sind. Was ist die Motivation des Ganzen? Ich habe hier vorne ein recht kompaktes System stehen, welches mir in der Größe, sprich KC plus Aufsatz, Möglichkeiten eröffnet, die ich normalerweise nur mit sehr viel mehr Aufwand hätte. Es ist dahingehend interessant, weil es ein anderer Ansatz ist, als die sogenannte D004. Bei der D004 handelt es sich um das Floppy Disk System, das standardmäßig zum KC85 Home Rechner ausgeliefert wurde oder beziehungsweise vom Hersteller beziehbar war. Das Ganze sieht etwas exotisch aus, es ist aber kein Einzelstück, weil ein weiteres Exemplar bekannt ist, das genau so aufgebaut ist. Worum es mir halt geht, weil ich halt in der Software-Ecke beheimatet bin, dass ich eben versuche, das Betriebssystem zu rekonstruieren, was eine recht interessante Aufgabe ist. Und des Weiteren möchte ich auch noch Erweiterungen in Betrieb nehmen. Dass man halt sagt, man nimmt den Rechner so, wie er ist und schaut mal, was man da ein paar Referé dazu zusammen kriegt. Zum Systemaufbau. Der Rechner, den ich hier vorne stehen habe, das ist ein KC853. Das Kernstück ist der U880 Prozessor, was eben der Z80 Prozessor der DDR war. Der läuft mit 1,75 MHz. Die Maschine hat 16 Kilobyte RAM. Ist voll grafikfähig mit 320 mal 260 Pixel. Und hat 16 Vordergrund und 8 Hintergrundfarben. Ganz wichtig an diesem Rechner ist das viel beachtete Modulkonzept. Das heißt also, man konnte an den Bus eine recht große Anzahl von Erweiterungsmodulen anbauen. Die eben perifere Anschlüsse ermöglichten. Ram-Erweiterungen ermöglichten vieles mehr. Wenn man normalerweise an diesem Rechner einen Diskettenlaufwerk anschließen würde, würde das bedeuten, dass wir auf das eigentliche Grundgerät noch ein weiteres Gerät draufstellen, dass einen weiteren Z80 Prozessor enthält. Der hat dann allerdings mit 4 MHz läuft. An diesem Prozessor hängt ein Floppy-Kontroller dran, der die Diskettenlaufwerke bedient. Und in diesem zweiten Prozessor-System läuft dann auch das CPM. Und das Grundgerät ist dann lediglich die Terminellausgabe. Und das Grundgerät steuert auch die Module, die dann wiederum vom CPM aus ebenfalls verwendet sind. Da gibt es dieses Koppelram-Konzept. Das heißt, es gibt 1 Kilobyte, das ist, glaube ich, statischen RAM, auf den dann beide Prozessoren zugreifen können mit ihrer Geschwindigkeit. Und das Floppy-Kontroller ist der U82-272 eingebaut, welcher dem Intel 82-272 beziehungsweise dem NEC-765 entspricht. Aber eben U82-272 ist eben die ostdeutsche Bezeichnung dafür. Und man kann 1 bis 4 Floppy-Laufwerke eben noch oben draufstellen. Das sind diese entweder originale oder nachgebautet T-A-Glaufwerke, die im Robotron Jagon K5501 heißen. So wäre es normalerweise. Was wir aber hier vor uns haben, ist, dass wir nur einen Z80-Prozessor haben. Der geht mit seinem Bus hinten aus seinem Expansionsport raus, geht oben wieder rein und verbindet sich da eben nicht für dieser D004, sondern für dieser Kiste hier. Die enthält am Bus einen 858-DMA-Chip, und dahinter hängt ein NEC-765-Floppy-Disc-Kontroller. In diesem Rechner sind gleichzeitig noch 2 Diskettenlaufwerke eingebaut und es war ein Anschluss für eine RAM-Floppy vorgesehen. Also, sodass man praktisch die eine Platine hatte, wo eben der Floppy-Kontroller unter DMA drauf war und die zweite Platine daneben, da war eine RAM-Floppy vorgesehen. Dass man nochmal unter CPM ein extra RAM-Laufwerk hat, was eben als Laufwerksbuchstabe dann zur Verfügung stand. Jetzt kommen wir nur zur Software, das Ganze. Was ich eben auf der besagten Diskette gefunden habe und was ich jetzt hier drauf befindet, war eine Datei namens cpm.com und diese cpm.com enthielt das Abbild des Betriebssystems wie es im Speicher liegt. Aus der dazugehörigen Textdatei habe ich eben die Parallelen zu der vorgefundenen Hardware gesehen. Allerdings passte das irgendwie nicht so ganz zusammen. Der erste große Unterschied bestand darin, dass die IOPorts nicht zusammenpassen. Also, was mache ich? Ich nehme diese cpm.com, disassemliere die Kucke an welchen Stellen die ganzen IOPorts auftauchen und baue die eben so um, dass sie den IOPorts entsprechen, wie es die Hardware hat. Es geht halt darum schrittweise, die Software so lange anzupassen, bis sie der Hardware entspricht, weil die Hardware ist für mich die Konstante. Weil es gibt dieses Gerät und noch ein weiteres und da will man, glaube ich, nicht die Hardware umbauen. Was dann auch noch recht hinderlich ist in der Software ist eine Interrupt-Behandlung vorgesehen. Aber wie sich aus den Analysen ergeben hat, geht die Interrupt-Leitung, die das normalerweise auslösen würde, nicht zur CPU runter. Das heißt, die CPU kriegt diesen Interrupt nie. Und es behandelte sich dabei um den Interrupt, den der DMA, ausführt, wenn er seinen Blocktransfer beendet hat. Und das ist natürlich schlecht, aber das ist so ein Punkt, da muss man dann eben schauen, dass das sehr richtig gelöst kriegt. So in Betriebnahme das Ganze. Die Inbetriebnahme ist etwas ungewöhnlich. Man muss fünf Schritte tun, bevor man das eigentliche System starten kann. Normalerweise war es damals so vorgesehen, dass das Betriebssystemabbild auf einer Kassette lag. Weil bevor es die Discrettenlaufwerke gab, wurden ja diese Home-Rechner ganz normal über Audio-Kassetten betrieben. Es wurden über Audio-Kassetten die Daten reingeladen. Es gab dann dieses berühmte Pfeifen und Piepen, was man so kennt. Normalerweise war es so vorgesehen, dass man das Betriebssystem eben in den Speicher lädt. Dann wird der Speicherbereich nochmal umgeschaltet und dann wird einfach die Kalt-Start-Routine angesprochen und damit läuft das System. Das heißt, das System lädt sich selbst nicht aus dem System sondern es lädt sich von einer Kassette. So war das damals vorgesehen und so ist es auch in der Originaldokumentation beschrieben. Was ich natürlich jetzt nicht machen möchte, was ich hingegen mache, weil es einfach praktisch ist, es gibt ein Modul, das USB und Netzwerk drin hat. Das heißt, ich habe die Möglichkeit, eine Datei, wie sie normalerweise auf der Kassette liegen würde, einfach als Datei auf diesem USB-Stick zu haben. Die lade ich an die deklarierte Speicheradresse und dann kann ich meinen Programm laufen lassen. Also ersetze ich einfach die langwierige Kassettenarbeit durch diesen USB. Was dann natürlich noch wichtig ist für die Inbetriebnahme, ist, ich brauche ja eine Diskette. Er macht ja einen Diskettenzugreifen, das Direktor einmal kurz anlesen, bevor er wirklich sagt, dass das A-Doppelpunkt kommt. Dazu muss ich wissen, wie muss ich diese Diskette formatieren. Das entnehme ich dem Diskparameterblock, der im Betriebssystem hinterlegt ist und damit weiß ich, dass ich diese Diskette mit einer Seite 40 Spuren, 256 Beizprosekte und 16 Sektoren formatieren muss. Das Laufwerk hat 80 Spuren und 2 Seiten, aber aus irgendwelchen Gründen ist in diesem System hinterlegt eine Seite 40 Spuren. Daran muss ich mich erst mal halten, um das Ganze überhaupt zum Laufen zu kriegen. Feintuning ist natürlich, dass man die größeren Diskettenformate einbindet und da richtig drin hat deklariert. So, was haben wir an offenen Punkten? Das Lustige an diesem System ist, dass ich plötzlich, ich hab da halt Dateien mit der Endung kommen, mal drauf gespielt, Testprogramme, die ich dann einfach mal starten kann, dann finde ich plötzlich Dateien BNL. Dann stelle ich fest, C-1 ist B, O-1 ist N und M-1 ist L. Aus irgendwelchen Gründen fehlt ab dem 6. Charakter jeder Datei das letzte Bit, wo der Fehler liegt. Ich hab die Directory-Listing-Routine durchgeguckt, ich kann da keine Anomalie feststellen. So Probleme bei einem Programmstart ist es ganz einfach so, dass ich kann das System starten, ich kann 1, vielleicht auch mal 2 Programme starten und dann bleibt mir der FDC hängen. Also, sprich, der Rechner tut da nichts mehr, man kann den nur noch resetten und dann reagiert da komisch und eigentlich sollte man den Ausschalten und neu starten. Ich hab das Ganze so weit eingekreist, dass der FDC irgendwann mal seinen Status ändert und das zurückgibt. Und dieses Bit, was normalerweise kippen sollte, das kippt irgendwann mal nicht mehr, dann läuft das Ding einfach in Entloschleife. Was jetzt natürlich die Gründe dafür sind, das ist ja im Prinzip nur ein Folgefehler, die Gründe liegen früher, sprich, irgendwas ist bei der Programmierung dieses Floppy Chips schiefgegangen, sodass zum Schluss der auf irgendwas wartet, was nie eintrifft. Was das genau ist, das ist noch in der Analyse. Dann gibt es ja auf diesem Modul, das USB und Netzwerk beinhaltet, ja auch bestimmte Netzwerksoftware. Diese Netzwerksoftware ist unerlässlich, weil ich damit ja auch meine ganzen Programmentwicklung für das CPM mache. Die wollte ich natürlich auch auf diesem Rechner zum Laufen kriegen, aber der Entwickler dieser Software verwendet die sogenannte Syslib für das CPM und genau diese Routinen, genau wenn einer diese Routinen anspringt, stürzt da ab, wo dieses Betriebssystem, was halt irgendwie entstanden ist, auch noch nicht so richtig zu den Erfordernissen passt, die diese Syslib will. Das heißt, ich muss diese ganzen Syslib-Calls aus der Netzwerksoftware rausschmeißen, dann habe ich zumindest schon mal diese Netzwerksoftware starten können, sprich, es war mir schon möglich, ein Ping von der Maschine abzusetzen. Dann habe ich mich mal an dem Rampfloppy-Treiber probiert. Der Rampfloppy-Treiber funktioniert praktisch so, dass ein Sprungpunkte, die das CPM braucht, für sich nochmal abzweigt, durch sich selbst durchlaufen lässt, wenn es der Eigen ist, mache das Eigen ansonsten Leiter zum alten CPM weiter. Das ist natürlich ein extrem kritischer Eingriff ins Betriebssystem und sobald der Erfolg bleibt, da auch stehen. Und damit man sich mal vorstellen kann, wie das Ganze dann aussieht und wie das Ganze funktioniert, gibt es jetzt eine Demo dazu. Das heißt, ich starte das ganze Gerätchen mal. So, jetzt habe ich den Rech nochmal gestartet. Das Bild, was man jetzt sieht, ist praktisch das Standard- Startmenü eines KC853. So sieht das aus. Und normalerweise ist es so, dass man eben bei diesem KC853 seinen Basic zur Verfügung hat. Basic liegt auf der Adresse 10.000. Und die Adresse 10.000, die brauche ich anderweitig. Deswegen ist das erste, was ich mache, erst mal dieses Basic auszuschalten. Dazu gibt es dem Befehl Switch. Basic liegt auf der internen Moduladresse 2 und mit der Null schalte ich das aus. So, jetzt ist das aus. Wenn ich jetzt das Menü nochmal neu aufrufe, dann ist das Basic weg. Ganz einfach, die Adresse 10.000, die ich frei haben möchte, da liegt jetzt einfach nichts mehr. Das nächste, was ich machen muss, ist, diese besachte USB-Modul einzuschalten, und zwar genau auf diese Adresse zu legen. Das USB-Modul enthält ein Flash-Speicher. Der Flash-Speicher wird in den KC-Speicher eingeblendet, als ROM. Und dieser Flash-Speicher enthält die Laderotiene für die USB-Programme. Die Programme, die ich von USB laden will, die sind eben in diesem Läschrom drinnen. Das heißt, ich mache auch wieder so ein Spitschbefehl. Ich lade Modul-Schacht 8, das ist auf dem auf der KC vorne der Rechte, der ist mit 08 bezeichnet. Ich will auf die Adresse 10.000 das Ganze einschalten. Wenn ich das getan habe und rufe wieder Menü auf, dann habe ich verschiedene Menüwörter zur Verfügung, wovon für mich erstmal das Wichtige, das U-Load ist, oder so viel heißt wie Lade von USB. Jetzt funktioniert das Ganze aber trotzdem noch nicht, weil dieser Rechner nur 16kB-Speicher hat. Ich habe aber 64k für das CPM-Brauch. Das heißt, in dem genau anderen Modul-Schacht steckt ein 64kB-Modul, das in vier Segmenten zu je 16k eingeteilt ist. Die liegen nebeneinander. Das heißt, das erste Segment liegt auf Adresse 0, das zweite auf Adresse 4.000, das dritte auf Adresse 8.000, das vierte auf Adresse 10.000. Man kann diese Module aber auch rotieren, sodass man praktisch das Segment, das beispielsweise auf Adresse 4.000 liegt, durch einen ganz einfachen Befehl umschalten kann, dass es auf Adresse 10.000 liegt und alle anderen rotieren weiter. Was ich jetzt erstmal mache, ist das Modul im Grundzustand einzuschalten. Habe ich mich schon vertippt? Ja. Und ich habe mich doch vertippt. Was ich einfach gemacht habe, ist, dass ich das Modul eingeschaltet habe. Der gesamte Adressbereich, das Z80, enthält entweder Speicher dieses 64k-Moduls, also das ist eine eben, die komplett durchgeht oder aber ganz hinten liegt noch das Betriebssystem auf der E1000 und ganz vorne in den ersten 16k liegt noch der Grundspeicher parallel. Da habe ich eben auf Adresse 4.000 jetzt mal ein Betriebssystem laden kann und dann wird intern ein weiteres Switch Befehl ausgeführt, der das Ganze auf Adresse 10.000 umschaltet, nicht wirklich kopiert, sondern umschaltet, damit das Betriebssystem, was ich auf Adresse 4.000 geladen habe, richtig auf der 10.000 liegt. Der Schritt ist einfach erforderlich, weil bevor auf Adresse 10.000 umgeschaltet wird, muss erstmal der Betriebssystem-Rom das GPM braucht den Rammspeicher von vorne bis hinten. Und weil der Ramm jetzt richtig eingerichtet ist, kann ich per U-Load mein Betriebssystem Image laden. Der zählt dann seine Blöcke hoch, was auf Kassette normalerweise ewig dauern würde, das rausstellen in ein paar Sekunden durch. Was jetzt noch wichtig ist, ist an der Stelle wo diese USB-Programme liegt diesen Speicher auch noch auszuschalten, weil da das CPM auch wieder drüber stäubern würde. Das heißt, ich schalte das Modul 8 wieder auf 0. Und wenn ich jetzt noch mal das Menü aufrufe, dann ist mein USB wieder weg und ich habe den Befehl CPM zur Verfügung. Und wenn ich jetzt CPM ein tippe, dann wird es spannend. Das erste, was am auffällt, ist, er macht 80 Zeichen, diese RAM-Disk, die er da initialisieren will, da habe ich mal analysiert, was er da tut. Er würde, abgesehen von dem 64K-Modul, was schon steckt, sich weitere Module zusammensuchen, würde die zusammenkleben und da ein RAM-Disk draus machen. Und weil er nichts findet und irgendwie das Betriebssystem in der Makke hat, würde er bei einem ES halt abstürzen. Das wird halt nicht funktionieren. Aber die Routine ist so angelegt, wenn man das analysiert, und guckt, liegt ein Modul mit einer bestimmten Kennung, die er vor allem hindeutet. Das heißt, ich lege jetzt mal meine Diskette rein und presse Anarchy und mit ein bisschen Glück habe ich dann meinen A-Doppelpunkt. Das heißt, diese ganzen Schritte waren jetzt erforderlich, um eben dieses Betriebssystem zu laden, was normalerweise bei jedem Standard-CPM-Rechner-Bud-Diskettereien starten und dann kommt das. Das erste, was man natürlich bei so einem CPM macht, weil man ja ganz neugierig ist, man macht ein Dir. Und da habe ich diesen vorhin beschriebenen Effekt, das natürlich eine Commodateil plötzlich BNL heißt. Und wenn er jetzt so nett noch zu mehr ist, dann kann ich das Power starten. Also vorhin hat es zumindest das gut funktioniert. Versuch mal, das Power-Programm zu starten und mit ein bisschen Glück zeigte mir das dann auch an. Aber das ist schon so eine Grenze. Es kann auch durchaus sein, dass das jetzt schon wieder nicht funktioniert. Aber schauen wir mal. Was mir auch aufgefallen ist, er braucht wesentlich länger als andere Systeme. Kann aber auch sein, er bleibt jetzt hängen. Offensichtlich tut er mir den Gefallen nicht. Die Lampe ist zwar noch an, aber er bleibt halt hängen. Ja, das wird glaube ich nichts mehr. So. Und das ist praktisch das, was ich soweit, wie ich eben mit der Betriebssystem-Software gekommen bin. Ich wollte eigentlich noch wesentlich weiterkommen, aber viel mehr war nicht zu schaffen. Die nächsten Schritte sind halt wie gesagt, diesen Fehler zu finden, in dem der halt gerade hängen geblieben ist. Dass man wirklich mal analysiert, wo dieser Floppy-Kontroller sich da halt verschluckt. Ja, und dann wäre halt wichtig, diese ganzen offenen Punkte eben auch abzuarbeiten und zu gucken, dass man das Betriebssystem zum Laufen kriegt. Wenn es denn läuft, was dann auch ganz wichtig wäre, ist das Betriebssystem so in seine Quellen zurückzuversetzen, dass das neu generierbar ist. Ja, dass man das Betriebssystem eben aus den drei Komponenten, aus denen das besteht, Bios, Bedos, CCP, dann eben diese Komponenten sauber rausextrahiert aus dem Image, was ich da hab, dass man die Treiber sauber rausgeneriert, dass man eben schaut, dass man das Betriebssystem zur Not verändern kann, wieder assembleieren kann, so dass es wieder funktioniert. Die Quellen, die ich bisher disassembleiert habe, sind zwar zu Analyse ganz gut, die sind auch zu großen Teilen schon dokumentiert, aber die sind halt noch nicht so in dem Stand, dass ein Assembler die wieder nehmen würde. Weil ich finde zum Beispiel immer wieder die kodierte Adressen, die eigentlich Marken sein sollen, was natürlich bei jeder Verschiebung sich fatal auswirkt. Dann habe ich noch diese Interruptroutine, die da nie angesprungen wird, wo man den anderen Weg andere Kriterien finden muss, wann man die händisch ruft, um eben diesen DMA wieder zurückzusetzen. Und dann habe ich natürlich noch die ganzen Probleme, wenn natürlich die Netzwerkssoft vergehen würde. Dann habe ich ein kompaktes System, das ist ja nur die zwei Einheiten hoch, wo ich auch Netzwerk und USB mitmachen kann. Und wenn man dann auch eine RAM Floppy einbauen kann, dann ist das Ding ungefähr komplett ausgestattet. So, und dann ist das zwar wunderschön, wenn man so ein System hat. Wie gesagt, es gibt ein zweites Gerät, das steht im Rechenwerk Halle im Museum. Die könnten das dann zwar auch verwenden, aber dann hätte man zwar ein schönes Spielzeug, aber außer zwei Außerwelten kann das halt niemand nutzen. Das kann auch nicht die Lösung sein. Und weil das auch nicht die Lösung sein kann, gibt es folgendes, was ich hier in dieser Wunderkiste drin habe. Was ich hier drin habe, das ist der, ich drehe es mal um, das ist der Prototyp des Nachbaus. Wenn ich dieses Teil vorne an den KC-Boss anschließen würde und die Händen des Kettenlaufwerk dranstecken würde, würde sich das hardwaremäßig genauso verhalten wie das Original. Das heißt, dass man mit dieser Platine diese Funktionalität eben so haben kann und aus einem KC853 ein sehr kompaktes CPM-System machen kann. Also diese Platine bietet eben das Potential, dass das eben mehr als nur die zwei Außerwelten nutzen können. Das ist der Ausblick bis dahin, aber natürlich funktioniert das Ganze nur, wenn wirklich die CPM-Software auch sauber läuft, wenn sie regenerierbar ist, dass auch eben andere Leute sich hinsetzen können und sagen können, okay, wir haben hier die Quellen, wir können daran selber was verändern, selber was probieren können, das neu übersetzen und das Ganze läuft wieder sauber. Das wäre natürlich das Ziel des Ganzen. So, das war es von meiner Seite. Ich bin, ich habe eigentlich noch einen wesentlich längeren Slot. Ich hätte jetzt noch Zeit für Fragen. Ich kann noch ein bisschen was erzählen, wie hier der ganze Aufbau funktioniert und ansonsten bedanke ich mich schon mal für die Aufmerksamkeit. Gibt es Fragen, gute Fragen, böse Fragen. Gedenk mich. Ja, das kann ich gerne tun. Das ist ja, ich kann den auch gerne nochmal umdrehen, aber ich glaube, wir erlösen ihn mal und machen ihn vorher aus. Das ist ja, ich kriege nicht ganz rumgedreht, ohne dass er runterfällt. Okay, aber fangen wir erstmal hier mit an. Der Rechner, den ich hier aufgebaut habe, der dient eigentlich nur dazu, dass ich meine Folien darstelle. Weil ich habe mir irgendwann mal überlegt, wenn ich Vorträge mache mit der Rechentechnik und stelle dann irgendein Notebook hin, was gar nicht in die alte Zeit passt, wieso kann man dann nicht einfach einen alten Rechner nehmen und kann gucken, ob man das nicht auch hinkriegt. Das heißt also, ich habe dieses Gerät hier genommen, das ist der Robotron A5105. Der hat mehrere Vorteile. Zum einen ist es ein sehr kompaktes System. Also, dieser Tastatur-Rechner mit eben der Floppy-Einheit dran, das ist halt so. Das kriegt man auch nur dann kleiner, wenn man dann wirklich irgendwelche Rammlaufwerke nur noch verwendet. Der Rechner hat einen RGB-Ausgang, den ich über dieses Gerät hier nach VGA wandle und der zweite Anschluss, der reingeht, ist der F-Bass-Eingang, also der Kompositeingang und der wird aus dem gespeist. Und wenn ich die beide da dran hänge, dann kann ich durch einen einfachen Knopfdruck die Quelle umschalten und kann dann sagen, hier ist meine Präsentation zu ändern und da fängt die Demo an. Ich habe dann halt einfach mal geguckt, wie man unter CPM und der Basic wäre es ja einfach, wie man unter CPM das Ding farbig kriegt. Sprich, man muss dann wirklich durch den Betriebssystem-Routinen des Rechners bedienen, also der Rechner startet von einem Rom und dieser Rom liegt auf Ebene 0. Es gibt eine Ebene 1, eine Ebene 2, eine Ebene 3. Ebene 2 ist komplett mit den 64 kB für das CPM als Ramm. Ebene 0 enthält diverse Roms. Ebene 1 ist der obere Slot und Ebene 3 wird von diesem Modulstecksystem oder umgekehrt. Und was man dann ein und das Modul und das Konzept ist so gedacht, dass ich von einem CPM-Programm aus eben im hinteren Speicherbereich bin, dann schalte ich vorne auf den Rom um, springe eine biosinterne Routine an, die mir die Grafe, die mir den Bildschirmaufbau in Farbe macht durch direktes Ansprechendes Grafekontroller, der da drin ist, dann rufe ich diese Routinen auf, übergebe meine Textbaffers und so weiter und wenn das fertig ist, dann springe ich wieder zurück, schalte wieder um, dann bin ich ganz normal wieder in meinem CPM. Dadurch habe ich das Ganze in Farbe hingekriegt und dass man dann eben auch wirklich dann dieses A-Doppelpunkt in schwarz-grünen, das ist halt so ein bisschen, ja, was das Gerät theoretisch auch kann, das ist ein Grafek, das heißt, wenn man das ganze Spiel noch ein bisschen weiter treibt, dann kann man in so eine Präsentation noch Grafiken einbinden. Was da drin steckt, ist ein Neck D7-220, da gibt es halt auch dieses berühmte Ostequivalent davon, aber hier ist, glaube ich, sogar ein originaler eingebaut, sodass ich mit diesem Gerät, wenn ich jetzt das Ganze noch ein bisschen weiterentwicke, dann auch Grafik machen kann. Das ist mein paar grafische Darstellungen damit machen. So, und das war für mich halt der Grund, irgendwann mal zu sagen, ich betreibe halt den Aufwand, ich ziehe meinen halben Ausstellungsstand um hierher und habe halt vorher meine Präsentation vorbereitet und lasse die laufen. Die Präsentation selber ist derzeit noch ein reines hart codiertes Assembler-Programm. Das heißt, es gibt Routinen, die eben diese Textausgaben machen und dann gibt es einen Definitionsbereich, der sagt, ich habe halt irgendein Kennenweit festgelegt, das mir sagt, da habe ich welche genommen mit dem obersten Bitgleich 1, weil das dann halt kein ASCII ist. Dass ich dann eins nehme, das sagt, okay, jetzt fängt eine neue Seite an oder ich will jetzt mal die Farbe umschalten, dass dann eben das Grün wird und dann wieder zurückgeschaltet wird und dann pinselt er das hin und was ich letztendlich um eine neue Präsentation zu erstellen halt mache, ist diese Datenbereiche zu verändern, das Ding neu zu Assemblieren und hier rüber zu spielen. Dass rüber spielen passiert über die Ethernet-Schnittschelle. Das heißt, meine Entwicklung mache ich ganz normal auf einem Notebook, weil es einfach schneller geht. Dann wird auf dem Notebook die Quellen werden durch den ganz normalen M80-G8 der auf einem Z80 Immulator läuft. Dann der M80 und der Link 1.3.1, die geben mir dann das fertige Binärprogramm und das wird dann per TFTP auf die Maschine übertragen. Das ist der schnellste Weg, wie ich sowas hinkriege. Weil alles andere mit Disketten und über irgendwelche Dossrechner und Formatkonvertierer, das ist alles viel zu umständlich. Also das ist einfach, ich sitze an meinem ganz normalen Rechner, entwickle irgendwas, das fertig Assemblierte wird aufs Target geschoben und dort ausprobiert. So, und das ist eigentlich ein recht bewährtes Verfahren. Die Maschine hält auch eigentlich recht gut durch und macht das Mitbrauwurf für mich. Und zur Darstellung habe ich wie gesagt einfach diesen Ost Skatstecker, auf einem West-Skatstecker gewandelt und der geht halt per RGB eben in diesen besachten Wandler rein, der dann das VGR draus macht und damit bin ich kompatibel zu heutigen Welt, weil jedes Notebook auch vorgeher sprechen. So, und auf die Art und Weise kriege ich relativ simpel das hin. Ich muss nur bei der Präsentation nur die Pfeiltasten hoch und runter, dann schalte ich die Folien durch und mit SKAP gehe ich aus dem Programm raus und dann ist er wieder in seinem CPM. Eigentlich eine ganz einfache Geschichte, aber denke ich mal, ich betreibe halt den Aufwand, weil es hier irgendwie herpasst. Ethernet. Hier, man kann es schlecht sehen, es gibt eine neu entwickelte Netzwerkkarte, die auf den alten Bus adaptiert ist und die man in den ganz normalen RJ4510-100 MB Ethernet bereitstellt. Die Karte ist von der Architektur her so aufgebaut, dass an dem 8-Bit-Bus des alten Rechners eine PIO dran hängt. An dieser PIO hängt ein AVR-Kontroller, den der Entwickler programmiert hat und da gibt es eine Firmware dazu, wo dann auch die MAC-Adresse zum Beispiel drin ist, weil man braucht ja immer eine eigene MAC-Adresse. Und an dem AVR-Kontroller hängt ein Wissnet 5100 embedded Ethernet-Modul und auf die Art und Weise schaffe ich es, dass ich ein Z80-Programm starte, diese PIO so programmiere wie die Spezifikation das vorsieht und dann kann ich die gängigen Protokolle darüber laufen lassen. Also gängige Protokolle alle gehen nicht, es geht ein Ping, es geht das TFTP, was für mich wichtig ist und es gehen auch noch ein paar mehr. Es geht FDP als Client, also man kann da sogar den als FDP-Client nehmen. Es gehen so Zeitprotokolle und ich glaube Kermit ist auch in irgendeiner Form realisiert. Also so ein paar Sachen sind realisiert, was nicht realisiert, es sind so Sachen wie HTTP oder Telnet oder so, diese ganzen Sachen gehen halt nicht, aber das TFTP reicht für mich vollkommen aus, damit ich diesen Datentransfer hinkriege. Könnte man machen, aber bei dem CPM mach ich es wie gesagt so, da ziehe ich den hier raus, steckt den an mein Notebook dran, spielt das neue Image drauf, steckt es hier wieder dran und startet das über die fünf Befehle. Weil ich ja im Grundzustand des KC's diese ganzen Sachen noch nicht zur Verfügung habe. Ich hätte theoretisch in dem Flash-Speicher dieses Modules auch die Netzwerksoftware, aber das ist für mich komplizierter als diesen Stick zu nehmen. Deswegen mache ich das da drüber, aber sämtliche Softwareentwicklungen, die schon auf einem funktionierenden CPM basiert, das mache ich alles über diesen Weg, über das TFTP-Protokoll. Ja, wenn es ansonsten keine weiteren Fragen gibt, ich bin noch bis morgen nachmittag am Stand, da kann ich dann auch nochmal am Notebook dann die ganzen Quellen und die ganzen Beineries und das alles zeigen, wenn das gewünscht wird. Ansonsten nochmal danke für die Aufmerksamkeit und dann möchte ich mich hiermit verabschieden.