

Die Anf{nge von Basicode 

Basicode entstand aus den Versuchen, Programme zu schreiben, die auf einer ganzen Reihe von Maschinen laufen sollen und nicht nur auf der einen, auf der sie geschrieben wurden.

Die meisten Neulinge in der Welt des Computerns entdecken recht bald, da~ man nicht einfach irgendein altes Programm kaufen kann, auch wenn es in der weltweit am meisten verwendeten Sprache, Basic, geschrieben ist, und sicher sein kann, da~ es auf seinem speziellen Microcomputer laufen wird - man mu~ sich vergewissern, ob es BBC Basic, QL Super Basic, Commodore Simon's Basic... ist. Sollte Basic nicht eine universelle Sprache sein?

Nun, ja, aber leider haben Computersprachen wie menschliche die Angewohnheit, Dialekte zu entwickeln. Noch schlechter ist, da~ diese Dialekte gegenseitig unverst{ndlich sind. Was gew|hnlich passiert, ist, da~ jeder Hersteller denkt, er kann sein Basic ein bi~chen besser als sein Konkurrent machen, indem er hier diesen Befehl hinzuf}gt, dort jenen erweitert und
}berhaupt herumbastelt. So haben zwar alle Basics Befehle wie PRINT, GOTO und FOR ... HEXT gemeinsam, aber der Weg, wie sie den Bildschirm l|schen, kann CLEAR sein oder CLS oder sogar eine spezielle Taste, die keine andere Maschine hat.

Das Ergebnis davon ist, da~ es fast immer einen oder zwei Befehle in einem Programm geben wird, die das Aufh{ngen eines "fremden" Microcomputers verursachen werden, wenn er versucht, es laufen zu lassen. Es ist schon eine Schande, da~ Maschinen, die in ihrem Basic 95 Prozent kompatibel sind, sich nicht einig werden k|nnen, irgendeinen Kompromi~ zu finden.

Sie k|nnen es doch und sie tun es auch. Jemand im niederl{ndischen Rundfunk hatte tats{chlich den Geistesblitz, mit einer Art von Basic Esperanto herauszukommen, das eine gro~e Zahl von Heimcomputern verstehen kann. Es hei~t Basicode und ist in zwei Stufen aufgebaut.

Jedes Basic hat eine Liste von Befehlen wie PRINT und RUN und Operationen wie + und *, die es als zul{ssig akzeptieren wird. Basicode w{hlt einfach diese Befehle aus, die in den meisten dieser Listen vorkommen und verzichtet auf die ganzen Versionen, die nur f}r eine spezifische Maschine gelten. Das Ergebnis wird in der Tabelle gezeigt:


ABS	IF	REM	TO	
AND	INPUT	RESTORE	VAL	
ASC	LEFT$	RETURN	+
ATN	LEN	RIGHT%	-	
CHR$	LET	RUN	*
COS	LOG	SGN	/
DATA	MID$	SIN	_
DIM	NEXT	SQR	=
END	NOT	STEP	<
FOR	ON	STOP	>
GOSUB	OR	TAB	<>
GOTO	PRINT	TAN	<=
INT	READ	THEN	>=

Das ist nat}rlich sch|n, bis man ein Programm schreiben m|chte, das ein paar von jenen fehlenden Befehlen verwendet. Gerade diese enthalten allgemeine Funktionen wie das L|schen des Bildschirms und die Erzeugung von Zufallszahlen, es mu~ ein Weg gefunden werden, sie verf}gbar zu machen, aber nicht auf eine maschinenspezifische Art.

Der Trick ist, alle diese maschinenspezifischen Befehle in einen gesonderten Teil des Hauptprogramms zu legen und sie aufzurufen, indem GCSUB-Befehle verwendet werden, die ein entsprechendes Unterprogramm aufrufen. Zum Beispiel ist in den Basicodevereinbarungen festgelegt, da~, um den Bildschirm statt mit CLEAR oder CLS zu l|schen, GOSUB 100 geschrieben wird. In Zeile 100 findet man den f}r seine spezielle Maschine zutreffenden Befehl zum L|schen des Bildschirms.

Auf diese Art k|nnen all die maschinenabh{ngigen Befehle in einem seperaten Programm sicher weggespeichert werden, das vor dem Hauptprogramm, das wiederum ganz maschinenunabh{ngig bleibt, plaziert wird. Dieses spezielle Hilfsprogramm wurde f}r jede der Maschinen, die Basicode unterst}tzen, erstellt und wird als erstes geladen, bevor das Hauptprogramm geladen oder geschrieben wird.

Um dies konsistent l|sen zu k|nnen, sind die gesamten ersten 1000 Zeilen eines Basicodeprogramms f}r diese speziellen Routinen reserviert und den Routinen feste Zeilennummern zugeordnet. Der Hauptteil des Programms beginnt dann in Zeile 1000 selbst.

Auf diese Art k|nnen Programme f}r eine ganze Reihe von Maschinen geschrieben und ausgef}hrt werden, vorausgesetzt, die Basicode-Festlegungen zu erlaubten Befehlen und zur Programmstruktur werden befolgt. Aber ein Problem besteht immer noch: es mu~ noch ein Weg gefunden werden, Programme zu }bertragen, ohne alles neu eintippen zu m}ssen.

Das Problem hierbei ist, da~, wenn auch die meisten Microcomputer die generell gleiche Technik zum Programmespeichern benutzen - auf Kassetten, mit Ton-Entsprechungen f}r die Nullen und Einsen, die ein Computerprogramm ergeben -, die Details abweichen. insbesondere sind die Frequenzen, die benutzt werden, um Programme auf B{ndern zu speichern, von Maschine zu Maschine unterschiedlich.

Wieder l|st Basicode das, indem es einfach definiert, welche Frequenzen verwendet werden sollen, und ein St}ck Software f}r jede Maschine schreibt, das diese Frequenzen in die umwandelt, die der spezielle Microcomputer verarbeiten kann.

Die Verwendung dieser Techniken erm|glicht es, Programme von Microcomputer zu Microcomputer zu schreiben und zu transportieren. Tats{chlich hat das niederl{ndische Radio noch gr|~ere Pl{ne vor. Es entwickelte Basicode urspr}nglich, um es zu erm|glichen, Programme an Studenten am niederl{ndischen [quivalent zur Open University zu verteilen. Die Frequenzen werden }ber den [ther verbreitet statt auf Band gespeichert zu werden.

Das ist ein sehr einfacher Vorgang, aber hat den Nachteil, f}r Fehler durch schlechten Empfang anf{llig zu sein. Es ist auch unsch|nes Radio, wenn man das Pech hat, es zu h|ren, statt es dem Computer zu f}ttern. Deswegen h{lt man die ]bertragungen kurz wand verlegt sie auf unsoziale Stunden, um die Zahl der H|rer, die bel{stigt werden, klein zu halten.

Das ist die Methode, die von Radio Four's Computersendung The Chip Shop }bernommen wurde, das die Exklusivrechte f}r die ]bertragung von Basicode in diesem Land hat. Basicodeprogramme werden in den fr}hen Morgenstunden von Samstagen und Sonntagen, um 5.55 Uhr, gesendet. Um die ]bertragungen zu empfangen braucht man nichts weiter als ein Radio und das passende Basicode-Kit f}r seinen Heimcomputer.

Diese kostet 3,95 und ist f}r eine Reihe von Maschinen erh{ltlich, so f}r den Apple 11, BBC, Electron, Commodore 64, Dragon, MSX, Oric und Spectrum. Basicode-Kits und mehr Information sind erh{ltlich beim Broadcasting Support Service, PO Box i, London WS 6X-1.

Zeitschrift YOUR COMPUTER Oktober 1984

]bersetzt von Thomas Rademacher im Oktober 2002
                                                                                               