- 42 - A B C aber bei einem anderen Computer: A B C TAN Berechnet den Tangens eines in Radialen angegebe- nen Winkels. Vgl. des weiteren bei COS THEN Vgl. IF TO Vgl. FOR VAL Bestimmt den nummerischen Wert eines 'string'. Wenn der 'string' nicht rein numerisch ist, ist das Ergebnis nicht bei jedem Computer das gleiche. Beispiel: AS= "1.4E6": A=VAL (AS) nach Ablauf ist A=1,4E6 AS= 12D : A=VAL(AS) nach Ablauf ist A unbestimmt. 4.7 Die zugelassenen Operatoren _______________________________ 4.7.1 Die Rechnoperatoren Auf die Rechenoperatoren findet folgendes Anwendung: erst Potenzieren, dann von links nach rechts Multipli- zieren und Dividieren, dann von links nach rechts Ad- dieren und Subtrahieren. Darüber hinaus gilt folgendes: Was zwischen Klammern steht, wird zuerst berechnet, und Funktionswerte werden bestimmt, ehe das Rechnen mit den Rechenoperatoren beginnt. = Ordnet den Wert des Ausdrucks rechts vom =-Zeichen den Variablen links vom =-Zeichen zu. Beispiele: A=4+6 ^ Erhebt eine Zahl oder Variable in eine bestimmte Potenz. Beispiel: A=2:B=16:C=A^B * Multipliziert zwei Zahlen oder Variable miteinander. Beispiel: A=5:B=3*2*A - 43 - / Dividiert zwei Zahlen oder Variable miteinander. Beispiel: A=5:B=100/A/2 nach Ablauf ist B=10 + Addiert zwei Zahlen oder Variale miteinander. Beispiel: B=1:A=B+9 nach Ablauf ist B=10 - Subtrahiert zwei Zahlen oder Variable von einan- der. Beispiel: A=10-3-4 nach Ablauf ist A=3 4.7.2 Die 'string'-Operatoren + Koppelt 'strings' miteinander. Beispiele: AS="BAS": BS = "ICO" : CS="DE-3": DS=AS+BS+CS nach Ablauf ist DS="BASICODE-3" Im Hinblick auf 'string'-Operatoren vergleiche man auch mit LEFTS, MIDS und RIGHTS. 4.7.3 Die logischen Operatoren Unter logischen Operatoren verstehen wir die Operato- ren, die als Ergebnis der Operation einen logischen Wert, nämlich 'wahr' oder 'unwar', liefern. Dieser logische Wert kann sofort genutzt werden, beispielsweise nach IF, kann aber auch in einer numerischen Variablen gespeichert/aufbewahrt werden. Man beachte jedoch fol- gendes: Eine numerische Variable, in der ein logischer Wert gespeichert/aufbewahrt wird, darf nicht fuer re- chenkundige Bearbeitungen genutzt werden. = Vergleicht die zwei Variablen oder Ausdrücke links und rechts vom Gleichheitszeichen/=-Zeichen mitein- ander. Das Ergebnis ist entweder 'war' oder aber 'unwar'. (Gleichzeitig: Ordnet den Wert des Ausdrucks rechts - 44 - vom =-Zeichen der Variablen links vom =-Zeichen zu). Beispiele: A=(5=6) nach Ablauf ist A = 'unwar' IF AS=BS THEN < Vergleicht zwei Variable oder Ausdrücke miteinander und betrachtet, ob der linke kleiner ist als der rech- te. Das Ergebnis ist eine logische Variable. Wen 'strings' verglichen werden, wird darauf gesehen, ob der linke 'string' eher als der rechte in einer alphanumerisch geordneten Reihe vorkommt (so können Sie also alphabetisch ordnen). Beispiele: A=5:B(A<7) B ist nun 'wahr' AS="HO":BS="HA":A=(AS<BS) A ist nun 'unwahr' > Ebenso wie bei < , nur wird jetzt geprüft, ob groeßer als bzw. später in der Reihe. <> Schaut, ob zwei Variable oder Ausdrücke ungleich zueinander sind. Das Ergebnis ist wieder ein logischer Wert. Beispiele: A=(6<>7) A ist nun 'wahr' AS="HO":BS ="H": A=(AS<>BS) A ist nun 'wahr' IF A<>5 THEN ... <= Kleiner als oder gleich mit. In bezug auf die Wir- kungsweise vgl. <, doch man lese anstelle von 'kleiner als' 'kleiner als oder gleich mit'. >= Grösser als oder gleich mit. Für logische Operatoren vergleiche man des weiteren mit AND, OR und NOT. - 45 - Bei den letzten drei Operatoren ist ausschließlich die oben angegebene Reihenfolge der Zeichen gestattet. Somit ist IF A = < 5 beispielsweise FALSCH. 4.8 Der Aufbau eines BASICODE-3-Programms ----------------------------------------- Dieser Paragraph gibt die vorgeschriebene Einteilung für die Zeilenzahlen eines guten BASICODE-3-Programms: 0 - 999: Die Standardroutinen (vgl. Kapitel 5). Diese Routinen sind für jeden Computer anders und werden durch das Übersetzungs- 1000: programm geliefert. 1000: Die erste Zeile des BASICODE-3-Pro- gramms. Diese muß die folgende Form haben: --- 1000 A = <Wert> : GOTO 20: REM Programm- name <Wert> ist die Höchstzahl der Zeichen, die von allen 'strings' zusammen ver- wendet werden. Durch den Sprung nach Zeile 20 reservieren die Computer, die das nötig haben, Gedächtnisraum für die 'strings'. 1010 - 19999: das Hauptprogramm 20000 - 24999: Subroutinen, die Sie bestimmt für das Programm brauchen, in denen aber Auf- träge stehen, die in BASICODE-3 nicht zugelassen sind und sich ebensowenig mittels der Subroutinen verwirklichen lassen. Diese Aufträge müssen in REM- - 46 - -Zeilen mit der erforderlichen Er- läuterung versehen werden, so daß andere sie ihrem Computer anpassen können. 25000 - 29999: eventuell benötigte DATA-Zeilen. 30000 - 31999: Ausschließlich REM-Zeilen. Hier kann eine kurze Beschreibung des Programms stehen (falls erforderlich; ebenso kön- nen hier eventuelle Literaturhinweise stehen. 32000 - 32767: In REM-Zeilen der Name und die An- schrift des Ausarbeiters dieses Pro- gramms. Über die Subroutinen von 20000-24999 bemerken wir noch das folgende: Versuchen Sie, so weit wie nur möglich zu vermeiden, daß Sie Auftraege verwenden, die in BASICODE-3 nicht zugelassen sind. In einigen Fällen ist das jedoch nicht zu vermeiden (beispielsweise wenn Sie durchaus auf diese oder jene Weise mit Farbe arbeiten wollen). In diesem Falle setzen Sie diese Routinen auf die Zeilen 20000-24999. Es ist dann von großer Bedeutung, das Sie mit REM-Aufträgen gut angeben, was in diesen Routinen genau geschehen soll. Es ist des weiteren eine gute Gewohnheit, die Zeilenzahlen mit Abständen von 10 auflaufen zu lassen, so daß später noch Zeilen dazwischen eingefügt werden können. - 47 - Or. S. 55 - 57 -------------- Commodore 64 und Commodore 128 -------------------------- Einlesen des Übersetzungsprogramms ----------------------------------- Das Übersetzungsprogramm ist vällig in Mschinenspra- che geschrieben, und es kann somit nicht mit einem LIST-Auftrag ausgelesen werden. Es wird nach dem 're- setten' (aus- und ansetzen) des Computers von der Kas- sette aus mit dem Auftrag LOAD oder - falls gewünscht - mit LOAD"C-64 BASICODE-3 eingelesen. Während des Ein- lesens ist leider nichts auf dem Schirm zu sehen. Das Einlesen von der Kassette dauert fast drei Minuten. Nach dem Einlesen kann das Programm mit RUN gestartet werden. Nach diesem RUN-Auftrag bringt das Programm den Com- puter in den BASICODE-3-Zustand. Dabei wird der Gedächt- nisraum von S8C00 bis einschl. SCFFF in Gebrauch ge- nommen und für BASIC abgeschirmt. Das dauert nur eine Sekunde. Sodann erscheint die Meldung, daß die Maschi- ne in den BASICODE-Zustand gebracht worden ist, und im Gedächtnis stehen nur die festen BASICODE-3-Subroutine- zeilen. Es ist höchstwarscheinlich , daß das Übersetzungspro- gramm nicht arbeiten wird in einem C-64 mit anderem Zubehör als einem ursprünglichen Commodore-diskdrive und/oder Printer. Insbesondere wird das Programm nicht arbeiten, wenn ein Cartridge eingebracht worden ist. Wird das Programm in einen anderen Commodore-Computer als den C-64 geladen, so wird es ebenfalls nicht ar- beiten, sondern ziemlich sicher den ganzen Computer - 48 - auf 'tilt' bringen, und warscheinlich wird nur ein 'reset' diesen Computer wieder zu einer normalen Ver- haltensweise bringen. Gemäß Angabe vieler Nutzer arbeitet das Programm zu- gleich auf einem Commodore 128, der in '64 mode' ge- startet wurde. Leider war es dem Verfasser nicht mög- lich, diese Angaben ordentlich zu überprüfen. Es ist mithin nicht ganz ausgeschlossen, dass bestimmte Pro- gramm-Bestandteile in einem Commodore 128 doch Pro- bleme mit sich bringen. Nutzung des Übersetzungsprogramms ---------------------------------- Nachdem der Computer in den BASICODE-Zustand gekommen ist, kann man ein Wahl-Menu aufrufen, indem man auf eine (ganz gleich welche) der Funktionstasten drückt. ---- In diesem Menu wird dann erwähnt, daß man mit einem Drücken auf die Funktionstaste f3 ein BASICODE-Pro- gramm einlesen kann (wobei - wenn nötig - die festen Subroutinen automatisch eingeregelt werden) und daß man mit einem Druck auf Funktionstaste f5 ein bereits vorhandenes Programm, das das BASICODE-3-Protokoll er- fuellt, wegschreiben kann. Mit einem Druck auf den Zwischenraumstab wird das Menu wieder verlassen, und man kehrt zurück zur normalen Funktionsweise des Computers. Wenn man - während das Menu auf dem Schirm steht - auf f2 drückt, erscheinen einige Extra-Zeilen im Bild, woraus hervorgeht, daß nächstens mit Funktionstaste f2 die Standard-Subroutinen bereitgestellt werden (nütz- lich, wenn man ein Programm in BASICODE schreiben will), - 49 - daß mit Funktionstaste f4 BASICODE eingelesen und dem eventuell bereits vorhandenen Programm angekop- pelt wird (man achte dann darauf, daß die Zeilenzah- len weiter laufen) und daß mit Funktionstaste f6 alle Programmzeilen (also ab Zeilennummer 0) in BA- SICODE-Format weggeschrieben werden. Die letzten bei- den Möglichkeiten sind nur von Bedeutung, wenn man gemäß dem jetzt völlig veralteten BASICODE-1-Stan- dard arbeiten möchte. Entscheidet man sich für das Einlesen von BASICODE, so muß der Recorder angelassen werden. Dazu erscheint die übliche Meldung auf dem Schirm. Danach wird der ganze Schirm rot. Sobald das Leseprogramm einen BA- SICODE-Anlaufton liest, wird der Schirm grün. So- bald das eigentliche Programm eingelesen wird, wird der Bildschirm alle 1,2 Sekunden seine Farbe veraen- dern, bis das ganze Programm eingelesen ist. Danach erscheint die normale READY-Meldung. Wenn ein Lese- fehler festgestellt wird, wird das nach dem Einlesen gemeldet. Das Programm kann dann doch 'gelistet' wer- den, wodurch man möglicherweise den Lesefehler fin- den und beheben kann. Wenn die Farbveränderungen aus- bleiben, wird offenbar nicht korrekt gelesen. Man kann das Einlesen dann abbrechen, indem man den Re- corder stillsetzt, das Band zurückspult und durch mehrmaliges Drücken der Funktionstasten das Einlesen erneut versucht. Wenn man sich im Menu für Funktionstaste f5 (oder f6) entscheidet, also für das Wegschreiben, so wird das Übersetzungsprogramm erst kontrollieren, ob die weg- - 50 - -zuschreibenden Programmzeilen die wichtigsten For- derungen erfüllen, nämlich ob die Zeilenlaenge maxi- mal 60 Zeichen beträgt und ob in den Programmzeilen verbotene Kommandos vorkommen (wie beispielsweise POKE und SYS). Diese Kontrolle geht sehr schnell und ist auf dem Schirm sichtbar. Wenn ein Fehler gefun- den wird, stoppt das Programm mit einer Meldung, in welcher Zeile welcher Fehler ermittelt wurde. Man muß dann selbst diese Zeile 'listen' und verbessern. Danach kann wieder mit der richtigen Funktionstaste das Wegschreiben aufgerufen werden. Wenn keine Fehler gefunden werden, erscheint kurz nach der Kontrolle die normale Meldung, daß man den Recorder auf das Aufnehmen einstellen soll. Danach beginnt das Wegschreiben. Wärend dessen, daß ein BASICODE-Programm auf die Kassette weggeschrieben wird, wird - genau so wie während des Einlesens - der Bildschirm alle 1,2 Sekunden die Farbe wechseln. Nur während des Schreibens des 5 Sekunden wärenden Anlauftons ist der Schirm konstant grün gefärbt. Das Übersetzungsprogramm kopieren ---------------------------------- Eine Kopie des Übersetzungsprogramms kann dadurch ge- fertigt werden, daß das Übersetzungsprogramm erst mit LOAD eingelesen wird, wobei vor allem noch kein RUN- -Auftrag gegeben wird, sondern gerade ein passender SAVE-Auftrag, beispielsweise: SAVE"C-64 BASICODE-3" oder SAVE"0:C-64 BASICODE-3", 8 wenn man über einen 'disk- drive' verfügt. - 51 - Das Kopieren des Programms ist ausschließlich für den eigenen Gebrauch gestattet. Man vergleiche in diesem Zusammenhang den Anhang über 'copyright'. Spezielle Besonderheiten bei Commodore 64: ------------------------------------------ In BASICODE besteht der Textschirm aus 25 Zeilen mit je 40 Zeichen. Graphische Zeichen sind nicht gestat- tet. Unter BASICODE arbeitet die Maschine immerhin ausschließslich im Textstand, wobei Großbuchstaben ne- ben Kleinbuchstaben möglich sind. Der graphische Schirm umfaßt 200 Zeilen/Linien von 288 Bildpunkten. Der graphische Schirm ist somit et- was schmaler als das, was maximal möglich wäre. Im graphischen Schirm sind 25 Zeilen Text mit maxi- mal 36 Zeichen je Zeile möglich. Das Geräusch umfaßt theoretisch fast neun Oktaven, nämlich von SP=0 bis einschließlich SP=106. Die nie- drigsten beiden Oktaven produzieren jedoch eher Brumm- toene als das, was man als angenehmes Geräusch empfin- det. Die in den meisten Computern verfügbaren 'accolades' sind im C-64 nicht möglich. An deren Stelle erschei- nen Blockhaken auf dem Schirm. Die Funktionstasten werden ausschließlich für das Aufrufen des BASICODE-Menu verwendet. Die Farbtasten duerfen in BASICODE nicht verwendet werden. Das Übersetzungsprogramm kann wärend des Lesens oder Schreibens von der Kassette getrennt werden, indem man den Recorder stillsetzt. In Notfällen kann man STOP + ************************************************************* 10 Seiten Abschrift beendet !!! Dieter Schleinitz Fominstr. 61/204 Ruf: 2985 R A D E B E R G --------------- 8142