    Transfer von Programmen und Grafiken zwischen verschiedenartigen Computern

  Der Bildungscomputer A 5105

In der Zeit vor der Marktherrschaft der Windows-PCs gab es mehrere Dutzend verschiedene Heimcomputer unterschiedlicher Hersteller, zu einigen davon sind heute noch Clubs aktiv. Der folgende Artikel soll sich damit befassen, welche Mglichkeiten es gibt, trotz zunchst bestehender Verstndigungsprobleme einen Datenaustausch zwischen diesen Oldies zu ermglichen.

Mein Startcomputer war der KC compact, eine nichtautorisierte Weiterentwicklung des Amstrad CPC. Das Gehuse hatte er vom Bildungscomputer A 5105 bernommen, eine Drittverwendung dieses Gehuses ist die Komforttastatur D005 als Ersatz fr die ursprngliche Tastatur des KC 85.
Mit dem Bildungscomputer sollten die DDR-Schulen flchendeckend ausgestattet werden, als Komplettgert war es ein CP/M-Computer mit 5 1/4-Zoll-Diskettenlaufwerk, jedoch mit dreikanaligem Sound ber acht Oktaven und mit sechzehn Farben. Zwar ging das ber die blichen Eigenschaften von CP/M hinaus, doch war zu dieser Zeit anderswo die Verdrngung dieses 8-bit-Betriebssystems durch DOS und spter Windows bereits im vollen Gange.
Der BIC war auch unter der Bezeichnung K 1505 bekannt und das separat betreibbare Grundgert wurde unter dem Namen ALBA-PC auch exportiert.
In die Entwicklung des BIC sind offenbar Erfahrungen aus der Arbeit mit verschiedenen anderen Computern, die es davor gab, eingeflossen. So sind zum Beispiel (wie beim C64) Text- und Grafikbildschirm in unterschiedlichen Speicherbereichen abgelegt und knnen sich nicht gegenseitig strend beeinflussen. Einen Grafikbildschirm der Breite 640 Pixel kenne ich vom CPC und Commodore 128. Auch der Screen-Editor und das Auslsen hufig bentigter Funktionen durch F-Tasten, die man auch selbst neu belegen kann, scheint vom C64 inspiriert zu sein. Die Mglichkeit, fr Grafikanweisungen Makros anzuwenden, erinnert mich wiederum an die Turtle-Grafik von DR-Logo auf CP/M-Computern. Da bereits das Basic Befehle fr die Arbeit mit Direktzugriffsdateien bereitstellt, kenne ich vom Mallard Basic des Amstrad PCW. Ein ROM-Basic hatten auch noch die ersten mit DOS laufenden IBM-PCs. In allen Punkten bringt der BIC aber auch Verbesserungen mit sich, so verfgt er ber einen 40- und einen 80-Spalten-Textmodus (beide knnen je nach Wunsch auch mit zustzlichem Abstand zwischen den Textzeilen genutzt werden) und ber drei verschiedene Grafik-Modi.
Allerdings kannte ich vom BIC jahrelang nur den Artikel, der ihn in einer Elektronikzeitschrift (Mikroprozessortechnik 10/1988) vorstellte. Es sollte bis 1999 dauern, da ich den Computer bei einem Tag der offenen Tr an einem hiesigen Gymnasium einmal zu Gesicht bekam, arbeiten sah ich ihn zum ersten Mal auf einer Commodore-Party Anfang Mai 2004 in Hohenstein-Ernstthal, wohin Ralle sein wohl frisch erworbenes Modell mitgebracht hatte.

  Torsten Pauls KC-Emulator

Vor ein paar Wochen entdeckte ich, da Torsten Pauls KC-Emulator mittlerweile auch den BIC emulieren kann. {START1.BMP, START2.BMP}
Der Emulator befindet sich zwar noch im Beta-Stadium, hat z.B. noch keine Soundfunktionen und kann Disketten(-abbilder) nur lesen, das "Beschreiben" mute ich deswegen mit einem Hex-Editor realisieren. Trotzdem nutzte ich die Gelegenheit, den BIC auf diesem Wege endlich etwas nher kennenzulernen.

  ber den Autor

Nun wird es langsam Zeit, da ich mich erst einmal vorstelle. Ich bin ein Computerhobbyist, der zur Wende 31 Jahre jung war, in der Schule oder in AGs also Computer nicht mehr kennengelernt hatte.
Ein Schwerpunkt meiner Freizeitbeschftigung wurde im Laufe der Zeit BasiCode, eine Entwicklung niederlndischer Computerenthusiasten, die Basic-Programme auf andere Computer bertragbar und dort nutzbar werden lt.
Hierdurch (und mglicherweise auch zur Kompensation der Computerlosigkeit meiner Jugendjahre) befate ich mich nach und nach auch mit anderen Computern, zunchst als Hardware, aber zunehmend auch als Emulation unter DOS oder Windows.

  Was ist BasiCode?

Dieses Thema haben zwei Hobbykollegen und ich bereits in den KC-News 1/99 vorgestellt. BasiCode ist kurz gesagt eine gemeinsame Bedienoberflche fr unterschiedliche Computer. Von daher liegt ein Vergleich mit CP/M nahe (Software-Pool fr Computer mit unterschiedlichem Hardwareaufbau), jedoch ist das ursprngliche Speichermedium die Kassette, vor zwanzig Jahren waren Disketten fr Heimcomputer noch die Ausnahme und sehr teuer. Heutzutage knnen BasiCode-Programme selbstverstndlich auch per Diskette bertragen werden, ebenso, wie die Nutzung nicht auf 8-bit-Oldies beschrnkt, sondern auch unter DOS oder Windows mglich ist. 

  Version 3C fr BIC

Was lag fr mich also nher, mich ein wenig mit dem (emulierten) BIC vertraut zu machen, als mir einmal seine Umsetzung von BasiCode {BC1.BMP} anzusehen? Hier berraschte mich ein Konzept, wie ich es bisher noch auf keinem anderen Computer gesehen hatte: mengefhrt wird man bis zum lauffhigen Programm {BC5.BMP} geleitet.
Fr mich waren beispielsweise die Menpunkte O {BC2.BMP, BC3.BMP} (zum Einlesen des Programmlistings von der Diskette) und G {BC4.BMP} (zur Komplettierung durch die Bascoderroutinen) von Belang. Interessant hierbei ist, da Funktionen, die vom Programm (genauer: vom bertragbaren Teil ab Zeile 1000) nicht bentigt werden, im Bascoderteil weggelassen werden. Verwendet ein Programm beispielsweise keine Soundausgabe, gibt es im computerspezifischen Teil (unterhalb der Zeile 1000) auch keine Subroutine 450. Das ist auf alle Flle sinnvoller als pauschal alles zu linken, was zur Verfgung steht, egal, ob es tatschlich gebraucht wird, wie man es von Compilern schon aus der CP/M-Zeit kennt und wie es heute in Form von Dynamic Link Libraries (DLLs) unter Windows allzu bekannt ist.
Nun entdeckte ich auch gleich ein Projekt, an dem ich mich im Zurechtkommen mit der Programmierung testen konnte: der Bascoder war auf dem Stand der Version 3, enthielt noch nicht die zustzlichen Funktionen des 1991 vorgestellten Standards 3C. Zwar gibt es vielleicht nur ein halbes Dutzend Programme, die die Mglichkeiten der Farbversion nutzen (zu schnell ebbte nach der Mauerffnung bei den meisten das Interesse an den Oldies ab, man kam jetzt an AMIGAs, ATARIs und sogar PCs - auf SEGA und Nintendo will ich an dieser Stelle mal nicht eingehen - und an deren leistungsfhigere Software heran), doch wenn der BIC einmal Farben kann, ist es doch einen Versuch wert.
Die neuen Funktionen der Version 3C von BasiCode sind in BASC3C.ASC beschrieben: es stehen jetzt acht Farben zur Verfgung, beim Zurcklesen aus dem Bildschirm kann jetzt zwischen Gro- und Kleinbuchstaben unterschieden werden.
Auerdem besteht die Mglichkeit, bei der Tastaturabfrage die F-Tasten zu erkennen, doch das halte ich fr wenig zweckmig. Oft sind diese Tasten bereits mit Funktionen belegt und daher gar nicht z.B. fr die Auswahl aus Mens oder sonstige Verwendung verfgbar. Da viele der Oldie-Computer gar keine F-Tasten haben, steht es obendrein im Widerspruch zum angestrebten Ziel der bertragbarkeit der Programme. Deswegen habe ich auf die Umsetzung dieser Funktion verzichtet.
Das Resultat ist die Datei INITCOLO.URS. Das gewnschte Programm (z.B. OTHELLOC.ASC) wird in gewohnter Weise vorbereitet und, wenn es sich um ein Farb-Programm handelt, vor dem Starten lediglich INITCOLO.URS hinzugeMERGEt. 
Stilgerechter wre gewesen, die neuen Funktionen entsprechend dem bisherigen Konzept mit in BACD3BIC.RMC hineinzuarbeiten, doch dafr fehlt mir als Neuling auf diesem Gert natrlich die Programmiererfahrung.
In der derzeitigen Version des Emulators stimmen noch nicht alle Farben, ich habe sie so programmiert, da sie auf der Originalhardware (hoffe ich jedenfalls) richtig dargestellt werden und bin zuversichtlich, da es mit einer spteren Version des Emulators dann auch auf der virtuellen Maschine stimmen wird. Interessieren wrde mich einmal die Arbeitsgeschwindigkeit des Originalgertes - auf dem emulierten BIC zieht sich so eine Reversi-Partie ber mehrere Stunden hin {UNENTSCH.BMP}, was allerdings auch damit zusammenhngen kann, da mein Notebook schon etwa zehn Jahre alt ist...

  HRG-Transfer

Ermutigt von dem Erfolg nahm ich gleich das nchste Projekt in Angriff. Dieses kann als Ergnzung zu BasiCode gesehen werden, ist ihm zumindest vom Ansatz her sinnverwandt.
Seine Wurzel hat es mehr oder weniger in kleinem Tool, das 2001 spontan auf einem CPC-Treffen in Erlangen entstand, die Geschichte wurde schon in den KC-News 2/01 erwhnt. Auch in Erlangen war Ralle zugegen. Eine Grafik, die ich (damals noch als Binrdatei) von einer Diskette des Plus/4-Clubs auf den CPC bertragen hatte, gefiel ihm so gut, da er sie unbedingt auf dem KC haben wollte. So knobelten wir auf die Schnelle eine Mglichkeit aus, sie auf Diskette abzuspeichern und von dieser Diskette in seinen KC einzulesen.
Die damalige Spontanlsung war uerst umstndlich, aber inzwischen habe ich die Methode optimiert und verfeinert und auch noch auf diversen anderen Computern nutzbar gemacht.
Die Grafikdaten werden in eine Textdatei umgewandelt, ein Buchstabe verschlsselt jeweils vier benachbarte Pixel {KOD_1.BMP}. Binrdateien wrden im Vergleich zu ASCII-Dateien zustzliche Probleme bei der bertragung bringen. Diese Textdatei wird auf dem Zielcomputer eingelesen und dort wieder zurckgewandelt.
Auf den meisten Computern reprsentiert das hchstwertige Bit eines Bytes aus dem Grafikspeicher den am weitesten links liegenden Punkt einer Gruppe benachbarter Pixel.
Unterschiedlich ist jedoch die Reihenfolge dieser Bytes, am schwersten berschaubar nebenbei bemerkt auf dem KC 85/3.
Auf dem BIC ist es umgekehrt - die Byte-Reihenfolge ist unkompliziert (einfach wie beim Lesen und Schreiben, von oben nach unten zeilenweise von links nach rechts), aber hier ist die Zuordnung der Pixel zu den Bits gegenlufig, das hchstwertige Bit steht fr den am weitesten rechts liegenden Punkt einer Pixelgruppe.
Auerdem gehren mehrere Bits zu einem Pixel: welche gesetzt oder nicht gesetzt sind, entscheidet ber die Farbe, in der der Punkt am Ende auf dem Monitor sichtbar wird.
Daher rhrt, da der BIC im SCREEN 5 sechzehn Farben darstellen kann, wenn alle vier Bits gesetzt sind, ist die Farbe wei {KOD_2.BMP}. In SCREEN 3 gehren zu jedem Punkt zwei Bit, deswegen sind hier nur vier Farben darstellbar {KOD_3.BMP}. Ich habe in beiden Grafikbetriebsarten jeweils alle Pixel gesetzt.
In SCREEN 3, der Grafikbetriebsart mit 640 Pixeln Breite, stellt der Emulator leider noch nicht die rechte Hlfte des Bildschirms dar, hierfr mute ich das Programm geringfgig abndern (und die beiden Hlften auf dem PC nebeneinanderstellen){NLBOOK4.BMP}. 
Vorlufig realisiert das Programm HRGIMPRT.ASC nur das Einlesen von Grafiken in den BIC, die umgekehrte Richtung kann ich auf dem virtuellen Gert nicht testen, solange das Schreiben auf Disketten noch nicht emuliert wird. Wer, vielleicht auf der Originalhardware, den Export programmieren mchte, der hat freie Bahn, ich stelle es jedem frei, das Programm zu vervollkommnen.
Der Aufbau einer .HRT-Datei ist in den REM-Zeilen kurz skizziert, ausfhrlichere Informationen und mehr umgewandelte Bilder kann man im www finden.
Auf dem KC 85/3 und /4 bin ich mit diesem Programm schon weiter, mchte ihm vor einer Verffentlichung aber noch den letzten Schliff geben, vielleicht klappt es ja schon bis zur nchsten Ausgabe der KC-News.
Die besprochenen Programme stehen hier einzeln zur Verfgung, sind aber auch alle im Teledisk-Abbild "BASICODE.DUMP" enthalten, soda sie unter der Emulation oder nach bertragung auf eine reale 5 1/4-Zoll-Diskette auf dem Originalgert ausprobiert werden knnen.

                                    Thomas Rademacher   November 2005

  weiterfhrende Informationen

DDR-Computer-Oldies:  http://robotrontechnik.de/

KC-Emu: http://sourceforge.net/project/showfiles.php?group_id=29508&package_id=97713

PDFs zu BIC: http://www.sax.de/~zander/bic/bc_bedal.pdf u.a.

Wikipedia-Artikel: http://de.wikipedia.org/wiki/BASICODE

website: www.basicode.de

YAHOO-Forum: http://groups.yahoo.com/group/basicode

Grafiktransfer, weitere HRT-Dateien in unterschiedlichen Formaten:  http://joyce.de/software/freeware/grafik.htm

