Ein Rückblick auf BasiCode

von Steve Fox

BBC Radio 4 beendete unlängst eine Serie von Ausstrahlungen von Computerprogrammen mittels einer Esperantoform von Basic, die als Basicode bekannt ist. Jetzt, da dieser "Take Away"-Service, wie er genannt wurde, zu einem, zumindest vorläufigen, Ende gefunden hat, blickt Steve Fox zurück und schätzt seinen Wert ein.

Basicode ist das geistige Kind einer Handvoll niederländischer Computerenthusiasten. Die Idee ist, ein Basicprogramm auf solch eine Art zu verpacken, daß es auf einer Anzahl verschiedener Maschinen laufen kann, und einen Fundus copyrightfreier Software, geschrieben von Amateuren für Amateure, aufzubauen. Die Programme sollen über den Rundfunk der teilnehmenden Länder einer größtmöglichen Gruppe von Nutzern zugänglich gemacht werden. Radio Hilversum sendet sie um 18.40 GMT jeden Sonntag auf 747 kHz und auch Westdeutschland nimmt teil. Die BBC hat, vermutlich, weil sie negative Hörerreaktionen auf die unmusikalischen Klänge befürchtete, die Übertragungen bisher auf die unsoziale Zeit von 0.23 GMT beschränkt. Die erste Serie von Sendungen, verbunden mit dem Radio-4-"Chip Shop"-Programm, ist jetzt beendet, aber zweifellos werden weitere Serien folgen.

Das Basicode-System muß zwei Probleme überwinden, um ein Programm von vielen Maschinen lesbar zu machen. Erstens müssen die übertragenen (oder auf Kassette aufgenommenen) Klänge für das Betriebssystem verständlich sein und zweitens müssen die Basic-Anweisungen für die Interpretation duch das ROM-Basic des Computers geeignet sein. Um das zu ermöglichen, müssen unterschiedliche Computer mit unterschiedlichen Softwareschnittstellen ausgestattet werden. Die BBC liefert für bescheidene 3,95 £ alle Software, die erforderlich ist, um ein Basicode-Programm in eine Anzahl verbreiteter Maschinen - Apple, Sinclair, Commodore, Tandy, usw., und natürlich den BBC-Microcomputer - zu laden. Ebenfalls enthalten ist eine entsprechende Anzahl von "Basicode Save"-Programmen, die dem Nutzer ermöglicht, eine Basicode-Version seiner eigenen Software herzustellen. Einige Mikrocomputer brauchen auch zusätzlich gebaute Hardware, aber das ist zum Glück für den Beeb nicht nötig.

Das Basicode-Signal ist ein ASCII-Listing des Programms, das aus bits besteht, die mit 1200 Baud (bits je Sekunde) seriell übertragen werden. Die einfachste Methode der Kodierung wäre, für eine "1" eine 1200-Hz-Schwingung und eine 1200stel Sekunde kein Signal für eine "0" zu senden. Jedoch würde das bedeuten, daß Systemrauschen eine "1" statt einer "0" erzeugen könnte, deswegen legt Basicode eine "1" als zwei 2400-Hz-Schwingungen und eine "0" als eine 1200-Hz-Schwingung fest. Um das System noch robuster zu machen, geht jedem Byte ein Startbit (logische 0) voraus und werden zwei Stopbits (logische 1) angehängt. Am Ende jedes Programms wird ein spezielles 8-bit-Wort, das Prüfsumme genannt wird, angefügt. Durch das XORen aller vorangegangenen Bytes kann überprüft werden, ob sie erfolgreich gelesen wurden. Falls nicht, wird vom Ladeprogramm ein Prüfsummenfehler gemeldet und es ist am User, das Listing zu untersuchen und herauszufinden, wo das Programm falsch gelesen wurde. Beachten Sie, daß in diesem Stadium der Computer die Daten noch nicht als ein Basic-Programm erkannt hat, so daß keine Fehlermeldungen auftauchen können, bevor "RUN" eingegeben wird.

Daraus, daß die Basicode-Anweisungen von allen Maschinen, jede mit ihrem eigenen Basicdialekt, erkannt werden müssen, folgt, daß beim Schreiben der Programme nur die Befehle verwendet werden dürfen, die allen bekannt sind. Das ist allerdings eine sehr starke Einschränkung, besonders für die Nutzer von BBC Mikrocomputern 1). Fort sind die Prozeduren, Grafik- und Soundanweisungen, die Assemblersprache und die *FX-Befehle, um nur einige zu nennen! Mit Basicode betreten wir die farblose Welt eines spärlichen Basics. Ist es das wert? Lesen Sie weiter...

Der Original-Basicode war so unfertig, daß, weil es keinen einheitlichen Befehl für "Lösche den Bildschirm" gibt, dieser nicht gelöscht werden konnte! Aber dann erkannte man, daß man einen Mechanismus brauchte, um einige universelle Befehle in der "lokalen" Sprache zu interpretieren. Basicode-2 verwendet diese Befehle in der Form von "GOSUB (zeilennr.)" und das Ladeprogramm fügt vor dem Haupt-programm Zeilen ein, die solche Befehle interpretieren. Wenn zum Beispiel das Hauptprogramm mit "1000 GOSUB 100" beginnt und Sie eine BBC-Maschine haben, wird der Lader in Zeile 100 die Subroutine in der Form "CLS:RETURN" ergänzen. Insgesamt gibt es ein Dutzend solcher Subroutinen, um solch höchst wünschenswerte Aufgaben auszuführen wie das Positionieren des Cursors, das Eingeben von der Tastatur, das Erzeugen von Zufallszahlen, das Piepen und die Druckformatierung. Um diese Unterprogramme zu überspringen, muß die erste Zeile "10 GOTO 1000" lauten. Zusätzlich zu diesen computerspezifischen Subroutinen können die Lader spezielle Veränderungen an dem Listing vornehmen. BBC-Basic ist ungewöhnlich darin, daß es kein Leerzeichen hinter der Zeilennummer benötigt und daß es LN anstelle von LOG für Logarithmen zur Basis "e" verwendet.

Für diese Änderungen sorgt das Basicode-Ladeprogramm, das aus einem Befehlsmenü auf Seite &E00 (oder &1900 für Diskettenbenutzer), den Unterprogrammzeilen, die zunächst ab &77FE gespeichert werden, und einem Maschinencode-Programm, das bei &7979 beginnt, besteht und im Mode-7-Bildschirm auf &7C00 startet. Das normale Laden setzt sich aus dem Hinunterschieben, um die Subroutinen zu PAGEn (Überschreiben der Anweisungen), und dem Anhängen des dekodierten Listings, wie es vom Band gelesen wurde, zusammen. Einmal im Speicher, kann das Programm wie jedes andere gewohnte Basicprogramm gestartet und geSAVEt werden.

Schreiber von Basicode Basic haben ein paar Einschränkungen mehr zu beachten. Kleinbuchstaben sind nicht erlaubt, Integervariablen auch nicht. Realvariablen haben nur einfache Genauigkeit. Eine Bildschirmgröße von 24 Zeilen zu 40 Zeichen ist Standard, aber größere (einschließlich Modi 6 und 7) sind OK. Variablennamen dürfen nicht mehr als zwei Zeichen lang sein und dürfen nicht mit "O" beginnen.

Bei solchen deprimierenden Einschränkungen erwartete ich wenig von den Beispielprogrammen auf der von der BBC vertriebenen "Chip Shop"-Kassette und tatsächlich läßt ihre Präsentation viel zu wünschen übrig. Vor vier oder auch noch drei Jahren hätte man dieses Band als eine Goldgrube angesehen, aber 1984 können solche Sammlungen für den BBC-Mikrocomputer-Nutzer nicht akzeptabel sein. Trotzdem, wenn man unter die Oberfläche auf die Programmideen selbst schaut, sind manche wirklich gut und den Aufwand wert, sie mit dem vollen Umfang der Möglichkeiten des Beeb neu zu schreiben.

Sachen, die mir besonders gefallen, sind: "Chords" zum Erlernen von Gitarrengriffen, "Yahtzee" (ähnlich "Five Dice"; BEEBUG Vol. 1 No.9), ein Glücksspiel (dessen Regeln leicht zu erraten sind, wenn man sie nicht kennt, die aber nicht ordentlich erklärt werden) und "Mezirac's Squares". Der germanische Humor in "Titration" ist ein bißchen schwer, aber er läßt einen der langweiligeren Vorgänge der Chemie wie Spaß aussehen, was sicher der Maßstab jedes guten Bildungsprogramms ist.

Ich habe auch ein oder zwei Sachen aus dem Äther aufgenommen, es gab keine technischen Probleme, aber die Programme waren ebenso wie die auf der Kassette.

Der tatsächliche Nutzen des Basicode-Experiments liegt in der Qualität (und Quantität) der Software, die Nutzer zur Verfügung stellen. Manche der vorliegenden Software enthält ermunternde Worte, die den Leser dazu bringen sollen, seinen Teil beizutragen, aber ohne ein paar Anreize, die von der BBC angeboten werden, bin ich nicht zu optimistisch, was die Zukunft des Projekts betrifft. Ich denke auch, daß den Nutzern des BBC-Mikrocomputers besser gedient wäre, wenn die freie Software, die auf CEEFAX erscheint, als Klänge zum direkten Aufnehmen auf Kassette gesendet würde, anstatt nur denen verfügbar zu sein, die bereit sind, in einen Teletext-Adapter zu investieren. Die Telesoftware der BBC mag zwar nicht zu besonders sein, aber die meiste davon ist für den BBC-Mikrocomputer geschrieben und leidet damit nicht unter der Über-Simplifizierung, die von Basicode verlangt wird.

Die Chip-Shop-Kassette und das Basicode-Handbuch sind für 3,95 £ einschließlich Porto und Verpackung erhältlich bei den Broadcasting Support Services, PO Box 7, London W3 6XJ. Das ist wahrscheinlich das Schnäppchen des Jahres!


1) bezieht sich auf den Standard Basicode-1 (Anmerkung des Übersetzers)



Zeitschrift BEEBUG Juni 1984
Übersetzt von Thomas Rademacher im Dezember 2005