Eine Diskette aus heiterem Himmel

Es gibt wirklich nicht mehr viele Aktive zum Thema BasiCode, doch der Vorsitzende des Plus/4-Clubs ist einer davon. Seit 1991 erscheint das Diskettenmagazin "Club-Info" und Abonnenten bekommen noch Bonus-Disketten zu dieser Club-Diskette beigelegt. Der jüngsten Sendung lag eine BasiCode-Diskette bei, auf der ich neben vielen mir bereits bekannten Programmen auch "neue" fand, die ich natürlich hier vorstellen möchte.

 

Keinen Geburtstag mehr verpassen

Das erste (Screenshot aus dem Commodore-plus/4-Emulator YAPE) stammt von einem User aus Weixdorf, dem nördlichsten Stadtteil von Dresden. Man kann hier in den DATA-Zeilen Verwandte und Freunde mit ihrem Geburtstag und sonstigen Daten eintragen. Gibt man nun das aktuelle Datum ein, bekommt man für einen wählbaren Zeitraum von bis zu vier Wochen im Voraus die anstehenden Jubiläen angezeigt. Dergleichen erledigt mittlerweile mit weniger Mühe der Alleskönner Smartphone, daher wenden wir uns gleich dem nächsten Programm zu.

 

Gedankenspiele

Die Übertragung von hochauflösenden Grafiken auf andersartige Computer ist nicht trivial, denn jeder 8-bit-Oldie speichert die Pixel in seiner eigenen Reihenfolge ab, ganz zu schweigen davon, dass es unterschiedliche Auflösungen gibt.
Am leichtesten wäre der Transfer in Form von Binärdateien, Speicherabzügen. Doch das ist in BasiCode leider nicht vorgesehen.
Bei den "WDR-Computerclub"-Sendungen gab es ein Übertragungsverfahren namens Videodat. Zwei BasiCode-Programme ( Videodat und Alf-2 auf der Sammelkassette 9) nutzen dieses und auf der JOYCE Homepage stellte ich eine daran angelehnte Methode vor, die Pixelgruppen als Buchstaben verschlüsselt, um Bilder als ASCII-Dateien auszutauschen, doch auch das stößt wegen abweichender Zeichensätze z.B. bei Sinclair und Commodore auf Schwierigkeiten im BasiCode-System.

 

Bilder laden im C64-Stil

Ganz ähnliche Überlegungen scheint ein User aus Brand-Erbisdorf angestellt zu haben. Der Autor entschied sich für einem Speicherabzug eines Commodore-Rechners, legte die PEEK-Werte einfach in den DATA-Zeilen ab. Somit sind sie gleich im, dann allerdings riesigen, Programm und nicht in einer separaten Datei enthalten. Zum Aufbauen der Grafik werden diese Bytes "einzeln angefaßt" und die Pixel mit der Subroutine 620 von BasiCode gesetzt.

 

Hier stößt man leider an die Grenzen von BasiCode: es dauert natürlich lange, bis das Bild fertig aufgebaut ist. Außerdem sind meist nur Bildschirmausschnitte übertragbar, denn bei vielen 8-bit-Oldies passen nicht genug DATA-Zeilen in den verfügbaren Speicher, so gehört zu dem Kopf des "BasiCode-Girls" weiter unten eigentlich noch eine stützende Hand. Noch eine Einschränkung (für diesen Grafik-Transfer) ist der Verzicht auf Farben, das ist auf den diversen Modellen zu unterschiedlich gelöst und lässt sich nicht unter einen Hut bringen, weil einfach auch nicht genug Ressourcen zur Verfügung stehen.

 

Die kenn' ich doch ?

Beim zweiten Programm traf ich auf eine "alte Bekannte", das Mädel, deren Portrait seinerzeit wohl die Mailboxen verstopfte, dennoch hatte ich bis heute nirgends die Daten für diese Grafik ausfindig machen können. Ich kenne das Bild aus einer Computerzeitschrift für den Amstrad CPC und habe es bereits in o.g. Beitrag für den JOYCE vorgestellt. Hier habe ich die CP/M Box, den Amstrad PCW Emulator von habisoft benutzt.

 

 

LIEBER BASICODE-USER !
======================
DIES IST MEIN ERSTES EIGENES BASICODE-3-
PROGRAMM ! DAMIT KANN ICH JEDEM BEI DEM
ES LAEUFT GRAFIKEN NACH VORLAGE UND/ODER
WUNSCH VOM SCANNER ODER AUS EINER
UMFANGREICHEN GRAFIK-SAMMLUNG VOM
COMMODORE C+4 ODER C64 ANBIETEN!
----------------------
ZUR KONTROLLE DER VERBREITUNG OPFERE
BITTE EINE POSTKARTE MIT BESTAETIGUNG
ODER AUSDRUCK DER GRAFIK AN MICH !!
++++++++++++++++++++++
BEI PORTOERSTATTUNG UND DATENTRAEGER
SENDE ICH WUNSCHGRAFIK(EN) ZURUECK.
SPAETERE WUENSCHE DANN GEGEN
UNKOSTENERSTATTUNG (VB)

 

 

Fälscher am Werk ?

Das dritte Programm (Screenshot aus dem Hagemans-online-Bascoder) ist das gleiche, aber mit einer anderen Grafik, einem Scan einer damals gebräuchlichen Banknote, dem Portrait von Clara Schumann. Für das Fertigen besserer Blüten war die Technik damals noch nicht fortgeschritten genug. ;-)

 

 

Das Programm hat mich so begeistert, daß ich selbst gleich einige Bilder codiert habe. Hier ein paar, vielleicht hilfreiche, Anmerkungen:

Nach meinem Geschmack hätten die Pixel zeilenweise ausgelesen werden sollen (und nicht Commodore-typisch 8x8-Blockweise), aber das ist weniger relevant, an zwei oder drei ineinander verschachtelten Schleifen kommt man in keinem Fall vorbei.

Auf dem JOYCE-Monitor (oder zum Beispiel auf dem CPC in MODE 2 sowie bei Basics auf dem PC) wird das Bild wegen der höheren horizontalen Auflösung in der Breite gestaucht erscheinen. Dann helfen folgende Änderungen.

1000 A=210:GOTO 20:REM *** COMMODORE-GRAFIK DEKODIEREN ***
1010 SW=1/HG:SS=1/VG:S=32:Z=24:P=8
⭢   SW=2/HG: ...
1020 GOSUB 600:CN=0
. . .
1050 CN=0:GOSUB 620:HO=HO+SW:RETURN
⭢   1050 CN=0:GOSUB 620:HO=HO+0.5*SW:GOSUB 620:HO=HO+0.5*SW:RETURN
. . .
1150 IF X=255 THEN HO=HO+P*SW:GOTO 1330
1160 IF X=0 THEN GOSUB 620:HO=HO+SW*P:GOSUB 630:GOTO 1330
⭢   REM IF X=0...
1170 IF X>127 THEN GOSUB 1070:X=X-128:GOTO 1190
. . .

Die Zeilen 1150 und 1160 dienen übrigens der Beschleunigung des Zeichnens: wird keins der acht Pixel des Bytes gesetzt, wird nur der Grafikcursor weiterbewegt - sollen alle gesetzt werden, wird eine Linie gezogen, statt die Pixel einzeln zu setzen. Eine clevere Idee!

Sollte das Bild mit vertauschten Farben erscheinen, wie folgt ändern:
1140 READ X:IF X=1.5 THEN 1390
⭢   READ X:X=255-X:IF X=253.5 THEN 1390

Durch Rundungsfehler möglicherweise auftretende waagerechte/senkrechte Störlinien verschwinden nach folgenden Korrekturen:
1090 HO=0:VE=0
⭢   1090 HO=0.002:VE=0.002
1370 HO=0:VE=VE+P*SS
⭢   1370 HO=0.002:VE=VE+P*SS

 

Etwas moderner?

Keine Lust, den JOYCE hervorzuräumen? BasiCode lässt sich auch in modernerer Umgebung nutzen. Auf aktuellen PCs lassen sich die historischen Computer als Emulationen nutzen, in manchen Fällen ohne Installation, einfach als online-Version im Internet-Browser, wie im Fall des Portraits des AMSTRAD-Chefs. Dieses habe ich, wie die nächsten fünf Bilder, auf der Basis des Programms erstellt.

Diese beiden Bilder stammen ebenfalls aus Emulationen, nämlich eines ATARI- und eines AMIGA-Computers.

 

 

Falls aber das moderne Betriebssystem eine Emulation nicht arbeiten lassen will (wie die alte Version JOYC134D von John Elliott), kann eine Einkapselung in die DOSBox helfen. Hier ist der Schöpfer der Grafiken im Beitrag Pixel-Portraitsabgebildet. Dank an ihn für seine Vorlagen!

 

 

Eine Anwendung der DOSBox ist Basicode@DFend, vorgestellt auf dieser Homepage. Dort werden dem Nutzer die erforderlichen Einstellungen abgenommen. Emuliert wurde ein Robotron KC 85/4.

 

GW-Basic auf heutigen Maschinen

BasiCode arbeitet mit Zeilennummern, daher sind die heutigen Versionen von Basic nicht nutzbar. Doch alte Basics von IBM-Kompatiblen laufen vielleicht auch nicht mehr, deswegen schrieb Rob Hagemans PC-Basic und für dieses auch den passenden Bascoder.

Am allerbequemsten ist wohl das schon mehrfach erwähnte Verfahren, das BasiCode-Listing einfach ins Textfenster des online-Bascoders (ebenfalls von Rob Hagemans geschrieben) zu ziehen. Es ist sogar möglich, diese website auf seinem PC zu speichern und damit zu arbeiten, wenn man nicht mit dem Internet verbunden ist.

Zur höheren Bequemlichkeit dieser Varianten kommt der Vorteil hinzu, daß auch das Tempo deutlich höher ist - es gibt also wirklich keine Ausreden mehr, das eine oder andere Programm auch einmal selbst auszuprobieren, statt immer nur darüber zu lesen.

 

 

Hat jemand mitgezählt ?

Ein und dasselbe Programm lief hier in acht unterschiedlichen Umgebungen, genau das ist für mich der Reiz von BasiCode: Commodore-, Sinclair-, Schneider/Amstrad-, Atari-, auch MSX- und DOS/Windows-Nutzer können gemeinsam arbeiten.

Die DDR war eine Hochburg für dieses Programmiersystem geworden und von hier aus (bzw. später aus dem "Neufünfland") wurden noch regelmäßig BasiCode-Listings über den Rundfunk ausgestrahlt, als andere Stationen solche Sendungen längst wieder eingestellt hatten.

Heute erscheint es paradox, daß ich BasiCode zu seiner Hoch-Zeit nur ganz am Rande (wie durch kleine Artikel in der Fernsehzeitschrift) mitbekommen habe. Das Interesse am Programmieren war zwar vorhanden, doch eigene Hardware war finanziell noch unerreichbar, außerdem war ich junger Familienvater und seit 1979 schon Schichtarbeiter…

Es war üblich, als letzte REM-Zeile zu vermerken, wann es eine Rundfunkausstrahlung gab. Bei der Geburtstagsliste findet sich ein solcher Eintrag:

       32130  REM ERSTAUSSTRAHLUNG: DS-KULTUR
       32140  REM-SPEZIAL 920415 ,

doch beim "BC-GIRL" und der "GELDDAME" fehlt so ein Hinweis. Nun hatten sich auch hier die inzwischen leichter erhältlichen, mittlerweile für den Hobbyisten besser bezahlbaren und (anscheinend?) attraktiveren Computer ausgebreitet und der Stern von BasiCode sank unter den Horizont. Das Internet konnte die Verbindung unter den Anhängern noch nicht übernehmen.

So sollte es eben fast dreißig Jahre dauern, bis die Programme auch in meinen Bestand gelangten - mal sehen, welche Überraschungen noch auf mich warten!

 

Thomas Rademacher im Juni 2020

Hier geht's zum Download der ASCII-Files