3000 6f0f 0000 T ... BASCOD42-51


                            - 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