ABS  -  CINT Inhalt | DEFDBL - FIX


Kapitel 5-3
Der Befehlssatz

CINTL - DEF USR


 
 

CINTL 
Typ: Funktion 
Syntax:  CINTL(<num.Ausdruck>) 
Erklärung:  Wandelt einen beliebigen numerischen Wert in Long-Integer-Format (ganze Zahlen von -2147483648 bis +2147483647) um. Der Definitionsbereich der Funktion umfaßt den Long-Integer-Bereich. Andere Werte führen zu der Fehlermeldung "Integer Überlauf", wenn  zuvor mit COMPILER "FPUEXON" die Fließkomma-Exceptions aktiviert wurden. 
Beispiel: A=1 
B=3 
PRINT CINTL(A/B) 
PRINT CINTL(A)/CINTL(B) 
PRINT CINTL(1E+10) 
Ergebnis: 
0.333333333333333 
Integer Überlauf in Zeile Nr: 4 
siehe auch:  CDBL  CINT  CSNG 
   
 

 
CIRCLE 
Typ: Befehl 
Syntax:  CIRCLE <num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>[,<num. Ausdruck>,<num.Ausdruck>] 
CIRCLE <X>,<Y>,<Radius>[,<Startwinkel>,<Endwinkel>] 
Erklärung:  Zeichnet einen nicht gefüllten Kreis auf den Bildschirm. <X> und <Y> geben den Kreismittelpunkt an. Optional können Start- und Endwinkel in Zehntel-Graden angegeben werden. Hierbei ist Winkel=0 rechts vom Mittelpunkt, Winkel=900 oberhalb des Mittelpunkts etc.. 
Farbe, Linienstil und -breite können über LINE COLOR, LINE STYLE bzw. LINE WIDTH bestimmt werden. Ist mittels CLIP ein Bildfenster definiert, wird außerhalb dieses Bereichs nicht gezeichnet. 
Beispiel: CIRCLE 70,50,40 
CIRCLE 70,50,30,0,1800 
CIRCLE 60,50,20,1800,3200 
CIRCLE 70,50,25,500,600 
CIRCLE 70,50,25,1200,1300 
Ergebnis:  Es werden diverse Kreise und Kreisbögen auf den Bildschirm gezeichnet.
siehe auch:  ELLIPSE   PCIRCLE   PELLIPSE 
   
 
 
 
CLEAR 
Typ: Befehl 
Syntax:  CLEAR [<num. Ausdruck>][,<num. Ausdruck>] 
CLEAR [<Heap-Speicher>][,<Stack-Größe>] 
Erklärung:  Löscht alle Variableninhalte und Dimensionierungen. Offene Dateien werden geschlossen, eventuell noch vorhandene Daten im Druckerpuffer werden ausgegeben, ON ERROR GOTOON HELP GOSUB, ON MOUSEBUT GOSUB, ON KEY GOSUB und ON TIMER GOSUB Aufrufe werden abgeschaltet. Dieser Befehl hat in Omikron Basic 6 nur ohne Parameter eine Bedeutung. Um die Größe des Heap-Speichers bzw. des Stacks einzustellen verwenden Sie bitte die entsprechenden Compilersteuerwörter. 
siehe auch:  COMPILER "PRE_SIZE X"      COMPILER "STACK X"
   
 
 
 
CLIP 
Typ: Befehl 
Syntax:  CLIP [<num.Ausdruck>,<num.Ausdruck>{ TO <num.Ausdruck>,<num.Ausdruck>|,<num.Ausdruck>,<num.Ausdruck>}] 
CLIP [<X>,<Y>{ TO <X2>,<Y2>|,Breite,Höhe}] 
Erklärung:  Definiert ein Grafik-Fenster, das den Zeichenbereich für folgende Zeichenbefehle begrenzt: BITBLT, BOX, CIRCLE, DRAW, ELLIPSE, FILL, PBOX, PCIRCLE, PELLIPSE, POLYGON, PPOLYGON, PRBOX, RBOX, TEXT, PRINT, WRITE
Außerhalb dieses Fenster wird die Zeichenoperation zwar ausgeführt, der Bildschirm wird dabei jedoch nicht verändert. 
Das Fenster kann entweder durch Angabe zweier gegenüberliegender Eckpunkte oder eines Eckpunktes mit Höhe und Breite definiert werden. 
Ohne Parameterangaben wird das Grafik-Fenster ausgeschaltet (dies ist auch die Standard-Einstellung). 
Beispiel: CLIP 30,30,20,20 
PCIRCLE 30,30,20 
CLIP 60,60 TO 150,100 
PRBOX 65,65,200,200 
Ergebnis:  Es wird ein durch CLIP begrenzter Kreis und ein begrenztes Rechteck gezeichnet.
siehe auch:   
   
 
 
 
CLOSE
Typ: Befehl 
Syntax:  CLOSE [<num.Ausdruck>[[<num.Ausdruck>]]] 
CLOSE [<Dateinummer>[[<Dateinummer>]]] 
Erklärung:  Schließt den oder die mit der Dateinummer assozierte(n) Datei(en). Ohne Angabe von Parametern werden alle Dateien geschlossen. 
Beispiel: CLOSE 
CLOSE 1,7,Om 
Ergebnis:  Dateien werden geschlossen.
siehe auch:  OPEN 
   
 
 
 
CLS 
Typ: Befehl 
Syntax:  CLS 
Erklärung:  Der gesamte Bildschirm wird gelöscht und der PRINT-Cursor wird auf seine Home-Position ( linke obere Ecke) gesetzt. 
Beispiel: PELLIPSE 50,50,40,20 
WAIT .5 
CLS 
PRINT "Programm beenden mit [Return]";E
Ergebnis:  Zuerst wird eine Ellipse gezeichnet. Nach 0.5 s wird der Bildschirm wieder gelöscht.
   
 
 
 
CMD 
Typ: Funktion 
Syntax:  CMD <num.Ausdruck> 
CMD <Dateinummer> 
Erklärung:  Lenkt die Ausgaben von PRINT und WRITE  auf eine Datei um. Die der Dateinummer entsprechende Datei muß zuvor mittels OPEN geöffnet worden sein. Durch die Möglichkeit, Dateien auch auf den Drucker zu öffnen (siehe OPEN), kann die Ausgabe auch auf den Drucker oder die serielle Schnittstelle umgelenkt werden. Ist der numerische Ausdruck null, so kommen die Ausgaben wieder zum Bildschirm.

Hinweis: Unter dem MacOS ist es nicht üblich, den Drucker direkt anzusteuern. Wenn Sie Ihre Bildschirmausgaben auf den Drucker umleiten wollen, sollten Sie dafür den Befehl GRAF_PORT 1 verwenden.
Beispiel: OPEN "O",3,FN Get_Fsspec$(0,0,"Macintosh HD:CMD-Test")
CMD 3 
PRINT "Dieser Text wird jetzt in eine Datei geschrieben." 
CMD 0 
Ergebnis:  Zuerst wird über Kanal 3 eine Datei geöffnet und mit CMD 3 werden alle Ausgaben in diese Datei umgelenkt. Dadurch erscheint der Text hinter PRINT nicht mehr auf dem Bildschirm, sondern wird in die Datei geschrieben.
siehe auch: GRAF_PORT
   
 
 
COLOR
siehe auch: BITBLT    LINE COLOR    FILL COLOR   TEXT COLOR
   
 

 
COMMON 
Erklärung:  Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
COMPILER als Befehl 
Typ: Befehl 
Syntax:  COMPILER {OFF|ON|<String-Ausdruck>} 
Erklärung:  Zwischen COMPILER OFF und COMPILER ON stehende Programmteile werden beim Compilieren nicht mitübersetzt und fallen so aus dem Programm. In <String-Ausdruck> können dem Compiler Steuerwörter übergeben werden. 

Wichtig: Um ein sicher lauffähiges Compilat zu erhalten, sollten einige der nachfolgenden Steuerwörter zu Beginn eines jeden Programms stehen (siehe auch das Programm 'Mandelbrot.BAS' im Ordner DEMO).

Folgende Steuerwörter sind möglich: 

COMPILER "BAS_MEM X" 
Diese Einstellung teilt dem Compiler die benötigte Menge an Basic-Speicher mit. X steht dabei für die erforderliche Anzahl an Bytes. Fehlt dieses Steuerwort, so wird ein Wert von 262144 angenommen. 
  
COMPILER "CONST_IF_EXCLUDE" oder  COMPILER "CIE" 
Durch dieses Compiler-Steuerwort wird das Auslassen redundanter Programmteile beim Compilieren zugelassen. 
Damit ist folgendes gemeint: 
Immer wenn eine IF-Bedingung einen konstanten Wert liefert, wenn die Bedingung also entweder immer oder nie erfüllt ist, dann wird der Teil, welcher sowieso nicht benutzt wird, einfach ganz weggelassen. Im Zusammenhang mit Konstanten (siehe DEF_CONST) wird es dadurch möglich, ein Programm auf verschiedene Weise zu übersetzen. Die Konstanten wirken wie Schalter, die je nach zugewiesenem Wert die Übersetzung steuern. Beispielsweise wäre eine Konstante "Demo" denkbar, die,- wenn ungleich Null, bestimmte Teile des Programms ausklammert. Die Teile des Programms, die nicht in die Demoversion gehören, werden dann gar nicht mitübersetzt und machen es daher unmöglich, aus der Demoversion wieder eine Vollversion zu basteln. Auf ähnliche Weise lassen sich auch mehrsprachige Programmversionen erzeugen, die, abhängig von der "Language"-Konstanten, immer die richtigen, länderspezifischen Texte und Unterprogramme enthalten. 
  
COMPILER "CONST_IF_INCLUDE oder COMPILER "CII" 
schaltet die normale Behandlung nicht verwendeter IF-Zweige wieder ein. Es wird also immer alles übersetzt. Dies ist auch die Voreinstellung des Compilers. 

COMPLER "CTRL_C ON|OFF" 
Hiermit kann man festlegen, ob das compilierte Programm jederzeit durch die Tastenkombination [Ctrl]+[C] abgebrochen werden kann oder nicht. Die Voreinstellung ist CTRL_C OFF. 

COMPILER "CUT_ON|OFF" 
Wenn CUT eingeschaltet ist, kürzt der Compiler alle Funktionen und Prozeduren heraus, die in dem Programm nirgendwo verwendet werden. Voraussetzung dafür ist,  daß sämtliche Prozeduren und Funktionen sauber getrennt sind, d.h. mit END_PROC bzw. END_FN jeweils ihr Ende markiert ist. Prozeduren und Funktionen können auch mit RETURN abgeschlossen sein. In diesem Fall gilt das erste unbedingte (nicht hinter einem IF stehende) RETURN als Abschluß. 
  
COMPILER "DEBUG ON|OFF" 
Dieses Steuerwort ist eine Zusammenfassung von "IUEX", "FPUEX", "RC" und "SC". Bei neuentwickelten Programmen empfehlen wir dringend, dieses Steuerwort zu setzen. Sie werden dann vom Omikron Basic auf Programmierfehler (z.B. Division durch Null, zu klein dimensionierte Felder, zu gering bemessener Stack, falscher Variablentyp bei READ etc.) hingewiesen. Wenn solche Fehler nicht bemerkt werden, kommt es meist irgendwann zum Absturz, ohne daß  die eigentliche Ursache erkennbar ist.

Hinweis: Durch Setzen dieses Steuerwortes wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich, da ja zur Laufzeit ständig Überprüfungen vorgenommen werden müssen. Dieses sollte jedoch während der Entwicklungszeit in Kauf genommen werden, um ein möglichst fehlerfreies Produkt zu erhalten. 
  
COMPILER "DEF_CONST" 
Dieses Steuerwort leitet eine Konstantendefinition ein. Alle nachfolgenden Zuweisungen an Einzelvariablen (Felder und Strings sind nicht erlaubt!) definieren nun eine Konstante. Die Verwendung solcher Konstanten hat mehrere Vorteile:

1. Solche symbolischen Namen sind leichter zu lesen als "echte" konstante Ausdrücke und sie lassen sich auch leichter ändern, da sie ja nur einmal zugewiesen werden.

2. Soweit es sich bei den konstanten Ausdrücken um Berechnungen handelt, können diese schon vom Compiler durchgeführt und ersetzt werden. Dadurch wird das Compilat  schneller und kürzer.

3. Bedingte Compilierung mit CONST_IF_EXCLUDE und CONST_IF_INCLUDE wird durch die Verwendung von Konstanten vereinfacht: Wenn an verschiedenen Stellen im Programm einzelne Teile für verschiedene Programmversionen nur unter bestimmten, aber gleichen Bedingungen compiliert werden sollen, dann braucht die Konstante nur einmal bei der Deklaration verändert zu werden. 
Konstanten sollten immer zu Beginn des Programmcodes definiert werden, allerdings erst nach dem ersten CLEAR. Wie sich aus dem Namen schon ergibt, darf den Konstanten natürlich nur einmal im gesamten Programm ein Wert zugewiesen werden. 

COMPILER "END_CONST" 
Dieses Compiler-Steuerwort muß am Ende einer Konstantendeklaration stehen, die mit DEF_CONST eingeleitet wurde. 

COMPILER "EVENT" 
Es wird an dieser Stelle ein 'WaitNextEvent' in das Programm hineincompiliert, wenn das Omikron Basic Ausgabefenster aktiv ist. 

COMPILER "FILE_TYPE XXXX" 
Auf dem Mac hat jede Datei einen bestimmten Typ, der aus 4 Zeichen besteht. Normalerweise erzeugt Omikron Basic ausführbare Programme vom Typ "APPL". Wenn Sie aber z. B. eine Shared Library, ein Plugin oder eine Systemerweiterung schreiben möchten, müssen Sie der Datei einen entsprechenden Typ zuweisen. Systemerweiterungen haben den Typ "INIT", Shared-Libraries "shlb" und bei Plugins hängt der Typ von dem Programm ab, mit dem das Plugin benutzt werden soll. 

 
COMPILER "FPU_EXCEPTIONS ON|OFF" oder COMPILER "FPUEXON|OFF" 
Falls die Fießkomma-Unit im Prozessor eine Exception meldet, z.B. wenn das Ergebnis einer Rechenoperation eine nicht darstellbare Zahl ist oder eine ungültige Operation stattgefunden hat, wird Alarm geschlagen. 

Hinweis: Durch Setzen dieses Steuerwortes wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich, da ja zur Laufzeit ständig Überprüfungen vorgenommen werden müssen. Dieses sollte jedoch während der Entwicklungszeit in Kauf genommen werden, um ein möglichst fehlerfreies Produkt zu erhalten. 
  
COMPILER "IU_EXCEPTIONS ON|OFF" oder COMPILER "IUEXON|OFF" 
Falls die Integer-Unit im Prozessor eine Exception meldet, wie z.B. "Zahlenbereich überschritten" oder "Division durch Null", wird Alarm geschlagen. 

Hinweis: Durch Setzen dieses Steuerwortes wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich, da ja zur Laufzeit ständig Überprüfungen vorgenommen werden müssen. Dieses sollte jedoch während der Entwicklungszeit in Kauf genommen werden, um ein möglichst fehlerfreies Produkt zu erhalten. 

COMPILER "LIB_MAKER ON|OFF"
Dieses Steuerwort wird vom Compiler ignoriert und nur vom
Library Maker ausgewertet.

   COMPILER "MEMORY_MOVE_BACK" oder COMPILER "MMB" 
MEMORY_MOVE kopiert jetzt Speicherbereiche von hinten nach vorne. Die Kopierrichtung ist von Bedeutung, wenn sich Quell- und Zielbereich überschneiden. 
  
COMPILER "MEMORY_MOVE_FORWARD" oder COMPILER "MMF" 
MEMORY_MOVE kopiert jetzt Speicherbereiche von vorne nach hinten. Dies ist auch die Default-Einstellung. Die Kopierrichtung ist von Bedeutung, wenn sich Quell- und Zielbereich überschneiden. 


COMPILER "MIN_SIZE X" 
X gibt an, wieviel Application-Heap Ihrem Programm nach dem Start mindestens zugewiesen werden muß, damit es überhaupt lauffähig ist. Bedenken Sie bitte, daß z. B. das Omikron Basic Ausgabefenster im Applicationheap gepuffert wird. Wenn dieses Steuerwort fehlt, wird ein Default-Wert von 262144 Bytes eingetragen. Diese Einstellung kann auch  vom Finder aus über den Menüpunkt 'Information' erfolgen.
  
COMPILER "NO LINENUMBERS" oder COMPILER "NOLNR" 
Um im Fehlerfall oder für RESUME (siehe auch TRACE ON) die Zugehörigkeit einer Programmstelle zu einer bestimmten Zeile festzustellen, wird normalerweise eine Tabelle angelegt. Diese benötigt 6 Bytes pro Zeile und verlängert somit größere Programme um einige kByte. Mit NO LINENUMBERS kann man das Anlegen dieser Tabelle unterdrücken. Allerdings ist ohne diese Tabelle das Ermitteln einer bestimmten Zeile unmöglich, so daß man im Fehlerfall dann immer die Zeile 0 gemeldet bekommt. Während der Programmentwicklungszeit sollte die Zeilennummerntabelle deshalb nicht unterdrückt werden. 
  
COMPILER "OUTPUT_WINDOW X*Y" oder COMPILER "OPW X*Y" 
Es wird das Omikron Basic Ausgabefenster in der Breite X und der Höhe Y angelegt.

Achtung: Diese Steuerwort muß angegeben werden, wenn mit SCREEN weitere Omikron Basic Ausgabefenster geöffnet werden sollen oder wenn die Pseudo-Multitasking-Befehle ON TIMER, ON MOUSEBUT etc. benutzt werden sollen. 

COMPILER "PRE_SIZE X" 
X gibt an, wieviel Application-Heap Ihrem Programm nach dem Start bevorzugt zugewiesen werden soll. Bedenken Sie bitte, daß z. B. das Omikron Basic Ausgabefenster im Application-Heap gepuffert wird. Wenn dieses Steuerwort fehlt, wird ein Default-Wert von 262144 Byte eingetragen. Diese Einstellung kann auch  vom Finder aus über den Menüpunkt 'Information' erfolgen.
   
COMPILER "RANGE_CONTROL ON|OFF" oder COMPILER "RCON|OFF" 
Es wird während der Laufzeit Ihres Programms bei jedem Zugriff auf eine Feldvariable  geprüft, ob die angegebenen Indices innerhalb des dimensionierten Bereichs liegen. Außerdem wird darauf geachtet, daß die Bit-Nummer beim BIT-Befehl einen zulässigen Wert hat und daß bei CINT das Argument im erlaubten Zahlenbereich liegt. Falls nicht, bricht das Programm mit einer Fehlermeldung ab.

Hinweis: Durch Setzen dieses Steuerwortes wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich, da ja zur Laufzeit ständig Überprüfungen vorgenommen werden müssen. Dieses sollte jedoch während der Entwicklungszeit in Kauf genommen werden, um ein möglichst fehlerfreies Produkt zu erhalten. 

COMPILER "SHARED_LIBRARY|SHLB" 
Der Compiler wird angewiesen, statt eines ausführbaren Programms eine sogenannte Shared-Library zu erzeugen. Eine solche Library besteht aus Funktionen (DEF FNEX) und Daten, die von anderen Programmen aufgerufen werden. Im Unterschied zu den statischen Omikron Basic Libraries, die mit dem jeweiligen Programm fest verbunden sind, können Shared-Libraries parallel von verschiedenen Programmen genutzt werden.
Diesem Vorteil steht der Nachteil entgegen, daß die Funktionen wegen der standardisierten Parameterübergabe und des aufwendigen Aufrufverfahrens langsamer ausgeführt werden, als Funktionen aus einer Omikron Basic Library.
Wenn Sie Plugins schreiben möchsten, müssen Sie ebenfalls dieses Steuerwort setzen und außerdem noch mit COMPILER "FILE_TYPE XXXX" den Filetyp passend einstellen, so daß das Programm, für das Ihr Plugin vorgesehen ist, dieses auch erkennt.
Siehe auch das Beispielprogramm "SharedLib.BAS" im DEMO-Ordner.


COMPILER "SIGNATURE SIGN" 
Auf dem Mac bekommt jedes Programm eine eigene Signatur, die aus 4 Zeichen besteht. Das MacOS identifiziert die installierten Programme mit dieser Signatur und nicht, wie unter anderen Betriebssystemen üblich, durch deren Namen. Wenn Sie also ein neues Programm schreiben, sollten Sie diesem auch eine eigene Signatur geben. Soll das Programm verbreitet werden, so muß eine Signatur bei Apple beantragt werden, um die Eindeutigkeit zu gewährleisten. Signaturen, die nur aus Kleinbuchstaben bestehen oder Sonderzeichen enthalten, sind für Apple selbst reserviert. Wenn Sie keine Signatur angeben, so werden vier Fragezeichen eingetragen.  
   
COMPILER "STACK_CONTROL ON|OFF" oder COMPILER "SCON|OFF" 
Es wird während der Laufzeit Ihres Programms zu Beginn einer jeden Programmzeile geprüft, ob noch genügend Platz auf dem Stack vorhanden ist. Falls nicht, bricht das Programm mit einer Fehlermeldung ab.

Hinweis: Durch Setzen dieses Steuerwortes wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich, da ja zur Laufzeit ständig Überprüfungen vorgenommen werden müssen. Dieses sollte jedoch während der Entwicklungszeit in Kauf genommen werden, um ein möglichst fehlerfreies Produkt zu erhalten. 

COMPILER "STACK X" 
Diese Einstellung teilt dem Compiler die benötigte Stackgröße mit. X steht dabei für die erforderliche Anzahl an Bytes. Fehlt dieses Steuerwort, so wird ein Wert von 16384 angenommen. 

COMPILER "STRING +|*X"
Omikron Basic verfügt über eine sehr schnelle und effektive String-Vervaltung, die durch dieses Steuerwort noch besser den Bedürfnissen Ihres Programms angepaßt werden kann. Sie können damit festlegen, wieviel Platz zusätzlich reserviert werden soll, wenn ein String angelegt wird. Dieser zusätzliche Bereich vermeidet sehr viele Kopiervorgänge im Speicher (z.B. wenn weitere Zeichen an den String angehängt werden). Dadurch steigt die Gesamt-Performance deutlich an.
Vor dem X kann ein Plus- oder ein Mal-Zeichen angegeben werden, wobei im ersten Fall einfach die mit X bestimmte Anzahl Bytes zusätzlich zur Länge des Strings reserviert wird während im zweiten Fall die Länge des Strings mit X multipliziert wird und sich die daraus ergebende Anzahl an Bytes reserviert wird. Das Ergebnis wird in beiden Fällen noch auf eine durch 8 teilbare Zahl aufgerundet.
Z.B. würde COMPILER "STRING +64" bewirken, daß der Befehl A$="Test-String" im Speicher 11+64=75 aufgerundet auf eine durch 8 teilbare Zahl =80 Byte für den String reserviert. Werden dann später weitere Zeichen (weniger als 70) an den String angehängt, so muß nicht erst ein freier Speicherbereich gesucht und der neue String dorthin kopiert werden, sondern die zusätzlichen Zeichen können einfach an den bestehenden String angehängt werden.
Wenn auf der anderen Seite die Verarbeitungsgeschwindigkeit für Sie nicht so wichtig ist, stattdessen aber ein minimaler Speicherverbrauch im Vordergrund steht (z.B. weil Sie mit sehr großen Stringfeldern arbeiten), können Sie mit COMPILER "STRING +0" dafür sorgen, daß nur der minimal nötige Speicher verbraucht wird. Allerdings wird auch in diesem Fall auf die nächste durch 8 teilbare Zahl aufgerundet. Der obige "Test-String" würde also 16 Byte belegen.
Die Voreinstellung für dieses Steuerwort ist: COMPILER "STRING *2", es wird also immer doppelt soviel Speicher reserviert, wie der String lang ist.

  
COMPILER "TRACE ON|OFF" oder COMPILER "TRON|OFF" 
Vor jeder Programmzeile wird auf Tastatur-, Timer- und Mausunterbrechungen gepfüft. Dies ist für die Pseudo-Multitaskingbefehle ON TIMER, ON HELP, ON KEY und ON MOUSEBUT zwingend erforderlich. Zusätzlich werden der aktuelle Programm- und gegebenenfalls auch der Stapelzeiger gespeichert. Nur dadurch ist es im Fehlerfall möglich, die Zeile, in der der Fehler auftrat, überhaupt festzustellen. Während der Programmentwicklungszeit sollte TRACE ON immer eingestellt sein, damit man bei Fehlermeldungen auch die fehlerhafte Zeile erfährt. 
Wenn man mit ON ERROR GOTO und RESUME eine eigene Fehlerroutine programmiert hat, muß TRACE ON eingeschaltet sein, da diese Befehle sonst nicht funktionieren.

Hinweis: Durch TRACE ON wird Ihr Programm länger und die Ausführungsgeschwindigkeit verringert sich. 

COMPILER "WARNINGS ON|OFF" 
Während der Übersetzung eines Programms kann es zu Warnmeldungen des Compilers kommen, die den Programmierer auf eventuelle Fehler aufmerksam machen sollen. Diese Fehler sind aber nicht so schwerwiegend, daß kein lauffähiges Programm mehr entstünde. Darum wird die Compilierung auch nicht abgebrochen, sondern nur eine Warnung ausgegeben. Mit WARNINGS OFF kann dieses unterdrückt werden.  
Beispiel: COMPILER "DEF_CONST" 
 Deutsch%=1 
 Englisch%=2 
 Spanisch%=3 
 Language%=Deutsch% 
COMPILER "END_CONST" 
COMPILER "CIE" 
IF Language%=Deutsch% 
 THEN PRINT "Wir sprechen deutsch." 
 ELSE 
  IF Language%=Englisch% 
   THEN PRINT "We are speaking english." 
   ELSE 
    IF Language%=Spanisch% THEN PRINT "Hablamos espa¤ol" 
  ENDIF 
ENDIF 
COMPILER "CII" 
Ergebnis:  Da Language%=Deutsch% gesetzt wurde und "CIE" eingeschaltet ist, wird beim Compilieren nur der deutsche Teil übersetzt. Die anderen Zeige werden übersprungen und sind dadurch im fertigen Programm gar nicht enthalten.
siehe auch:  COMPILER als Funktion   Programm 'Mandelbrot' im Ordner DEMO
   
 
 
 
COMPILER als Funktion 
Typ: Funktion 
Syntax:  COMPILER 
Erklärung:  Ergibt immer den Wert -1 und hat damit in Omikron Basic 6 keine sinnvolle Verwendung. 
Beispiel: IF COMPILER THEN PRINT "Compiler!" 
Ergebnis:  Compiler! 
siehe auch:  COMPILER als Befehl 
   
 
 
 
CONT 
Erklärung:  Hat in Omikron Basic 6 keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
CONTINUE  
Typ: Befehl 
Syntax:  CONTINUE 
Erklärung:  CONTINUE innerhalb einer SELECT ... CASE-Anweisung übergeht jeweils die nächste CASE-Bedingung und führt das Programm hinter dem CASE weiter aus. 
Beispiel: A$="Q" 
SELECT A$ 
 CASE "Q" :PRINT "Das Zeichen war ein Q" 
  CONTINUE 
 CASE "0" TO "9":PRINT "Das Zeichen war eine Ziffer" 
END_SELECT 
Ergebnis:  Das Zeichen war ein Q 
Das Zeichen war eine Ziffer 
siehe auch:  SELECT   CASE 
   
 

 
COPY 
Typ: Befehl 
Syntax:  COPY <Dateiname>TO <Dateiname> 
COPY <Quell-Dateiname>TO <Ziel-Dateiname> 
Erklärung:  Erstellt von <Quell-Dateiname> eine Kopie, mit dem Namen <Ziel-Dateiname>. Für Quell- und Ziel-Datei muß jeweils ein FileSpecificationRecord  angegeben werden, wie man ihn z.B. von FILESELECT oder FN Get_Fsspec$ aus der ExtensionsLibrary zurückerhält. 
Jokerzeichen im Dateinamen sind nicht zugelassen. Kann die Datei nicht gefunden werden, wird der Befehl abgebrochen und eine Fehlermeldung ausgegeben, wenn Error_Messages aktiviert ist. 
Beispiel: COPY Fn GetFsspec$(0,0,"OmikronBasic") TO Fn GetFsspec$(0,0,"OmikronBasic.Kopie") 
Ergebnis:  Die Datei OmikronBasic wird kopiert. Die neue Datei erhält den Namen OmikronBasic.Kopie
siehe auch:  BACKUP 
   
 
 
 
COS 
Typ: Funktion 
Syntax:  COS(<num.Ausdruck>) 
Erklärung:  Berechnet den Cosinus des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe DEG, RAD). 
Beispiel: PRINT COS( PI ) 
DEG 
PRINT COS(90) 
Ergebnis:  -1 
 0 
siehe auch:  ARCCOS
   
 
 
COSEC 
Typ: Funktion 
Syntax:  COSEC(<num.Ausdruck>) 
Erklärung:  Berechnet den Cosecans des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe auch DEGRAD).
Beispiel: PRINT COSEC( PI /2) 
DEG 
PRINT COSEC(135) 
Ergebnis:   1 
 1.4142135623731 
   
 

COSECH 
Typ: Funktion 
Syntax:  COSECH(<num.Ausdruck>) 
Erklärung:  Berechnet den Cosecans-Hyperbolicus des numerischen Ausdrucks. 
Beispiel: PRINT COSECH(1) 
Ergebnis:   0.850918128239322 
   
 

COSH 
Typ: Funktion 
Syntax:  COSH(<num.Ausdruck>) 
Erklärung:  Berechnet den Cosinus-Hyperbolicus des numerischen Ausdrucks. 
Beispiel: PRINT COSH(0.5) 
Ergebnis:  1.12762596520638 
   
 

COT 
Typ: Funktion 
Syntax:  COT(<num.Ausdruck>) 
Erklärung:  Berechnet den Cotangens des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe auch DEGRAD)
Beispiel: PRINT COT(3) 
DEG 
PRINT COT(90) 
Ergebnis:  -7.01525255143454 
 0 
siehe auch:   
   
 
 
COTH 
Typ: Funktion 
Syntax:  COTH(<num.Ausdruck>) 
Erklärung:  Berechnet den Cotangens-Hyperbolicus des numerischen Ausdrucks. Der numerische Wert muß ungleich null sein. 
Beispiel: PRINT COTH(1) 
Ergebnis:  1.31303528549933 
   
 

CSNG 
Typ: Funktion 
Syntax:  CSNG(<num.Ausdruck>) 
Erklärung:  Wandelt einen beliebigen numerischen Ausdruck in Single-Float-Format um. 
Beispiel: A#=1# 
B#=3# 
PRINT CSNG(A#/B#) 
PRINT CSNG(A#)/CDBL(B#) 

 
Ergebnis:  0 .3333333 
0 .333333333333333 
siehe auch:  CDBL   CINT   CINTL 
   
 

CSRLIN 
Typ: Funktion 
Syntax:  CSRLIN 
Erklärung:  Ergibt die Zeile, in der sich der Cursor gerade befindet. Die oberste Zeile hat die Nummer eins, im Gegensatz zu "@", bei dem die oberste Zeile die Nummer null hat. 
Beispiel: PRINT @(10,0);"Hier ist Zeile: "; CSRLIN 
Ergebnis:  Hier ist Zeile: 11 
siehe auch:  POS   LOCATE    PRINT  
   
 
 
CVD 
Typ: Funktion 
Syntax:  CVD(<String-Ausdruck>) 
Erklärung:  Die ersten 8 Zeichen des String-Ausdrucks werden in eine Double-Float-Zahl umgewandelt. CVD ist die Umkehrfunktion zu MKD$. Die Funktion dient in erster Linie zum Lesen von Binär-Dateien, welche Double-Float-Zahlen nicht in ihrer lesbaren ASCII-Darstellung, sondern in ihrer binären Darstellung enthalten.

Achtung:  ASC(A$) gibt als Ergebnis null zurück, wenn A$ aus weniger als 8 Zeichen besteht und die nichtfatalen Fehlermeldungen abgeschaltet sind (Error_messages 0). Andernfalls erscheint die Meldung "Unerlaubter Funktionsaufruf". 
Beispiel: PRINT CVD("12345678") 
PRINT CVD( MKD$(12345678)) 
Ergebnis:  1.03008436562014D-71 
12345678 
siehe auch:  CVI   CVIL  CVS   MKD$ 
 

CVI 
Typ: Funktion 
Syntax:  CVI(<String-Ausdruck>) 
Erklärung:  Die ersten beiden Zeichen des String-Ausdrucks werden in eine Short-Integer-Zahl umgewandelt. CVI ist die Umkehrfunktion zu MKI$. Die Funktion dient in erster Linie zum Lesen von Binär-Dateien, welche Short-Integer-Zahlen nicht in ihrer lesbaren ASCII-Darstellung, sondern in ihrer binären Darstellung enthalten.

Achtung:  ASC(A$) gibt als Ergebnis null zurück, wenn A$ aus weniger als 2 Zeichen besteht und die nichtfatalen Fehlermeldungen abgeschaltet sind (Error_messages 0). Andernfalls erscheint die Meldung "Unerlaubter Funktionsaufruf". 
Beispiel: PRINT CVI("12") 
PRINT CVI( MKI$(12)) 
Ergebnis:  12594 
12 
siehe auch:  CVD   CVIL    CVS   MKI$ 
   
 
 
CVIL 
Typ: Funktion 
Syntax:  CVIL(<String-Ausdruck>) 
Erklärung:  Die ersten 4 Zeichen des String-Ausdrucks werden in eine Long-Integer-Zahl umgewandelt. CVIL ist die Umkehrfunktion zu MKIL$. Die Funktion dient in erster Linie zum Lesen von Binär-Dateien, welche Long-Integer-Zahlen nicht in ihrer lesbaren ASCII-Darstellung, sondern in ihrer binär Darstellung enthalten.

Achtung:  ASC(A$) gibt als Ergebnis null zurück, wenn A$ aus weniger als 4 Zeichen besteht und die nichtfatalen Fehlermeldungen abgeschaltet sind (Error_messages 0). Andernfalls erscheint die Meldung "Unerlaubter Funktionsaufruf". 
Beispiel: PRINT CVIL("1234") 
PRINT CVIL( MKIL$(1234)) 
Ergebnis:  825373492 
1234 
siehe auch:  CVD   CVI   CVS   MKIL$ 
   
 
 
CVS 
Typ: Funktion 
Syntax:  CVS(<String-Ausdruck>) 
Erklärung:  Die ersten 4 Zeichen des String-Ausdrucks werden in eine Single-Float-Zahl umgewandelt. CVS ist die Umkehrfunktion zu MKS$. Die Funktion dient in erster Linie zum Lesen von Binär-Dateien, welche Single-Float-Zahlen nicht in ihrer lesbaren ASCII- Darstellung, sondern in ihrer binär Darstellung enthalten.

Achtung:
  ASC(A$) gibt als Ergebnis null zurück, wenn A$ aus weniger als 4 Zeichen besteht und die nichtfatalen Fehlermeldungen abgeschaltet sind (Error_messages 0). Andernfalls erscheint die Meldung "Unerlaubter Funktionsaufruf". 
Beispiel: PRINT CVS("1234") 
PRINT CVS( MKS$(1234)) 
Ergebnis:  2.593151E-9 
1234 
siehe auch:  CVD   CVI  CVIL   MKS$
   
 

DATA 
Typ: Befehl 
Syntax:  DATA <Ausdruck>[[,<Ausdruck>]] 
Erklärung:  Die numerischen Ausdrücke bzw. String-Ausdrücke sind der Reihe nach als offene Zuweisungen im Programm gespeichert. Die DATA-Zuweisung hat auch dann Gültigkeit, wenn sie vom Programm noch nicht durchlaufen wurde. 
Mittels READ können die Ausdrücke wiederum der Reihe nach einer entsprechenden Variablen zugewiesen werden. RESTORE verschiebt den Zeiger, der auf die nächste offene Zuweisung zeigt.

Wichtig: Achten Sie unbedingt darauf, daß numerischen Variablen nur numerische Ausdrücke und Stringvariablen nur String-Ausdrücke zugewiesen werden. 
Beispiel: DATA "Hund",A$ 
Inh=2 
READ A$,B$,C$,A 
PRINT A$,B$,C$,A 
DATA "Katze",23*Inh 
Ergebnis:  Hund Hund Katze 46 
siehe auch:  READ    RESTORE 
   
 
 
DATE$ 
Typ: Befehl 
Syntax:  DATE$=<String-Ausdruck> 
Erklärung:  Weist der Systemuhr das Datum <String-Ausdruck> zu. <String-Ausdruck> ist in dem Format "TT.MM.JJJJ" anzugeben. (T=Tag, M=Monat, J=Jahr) 
Beispiel: DATE$="08.11.1997" 
Ergebnis:  Das aktuelle Datum wird auf den 08.11.1997 eingestellt. 
siehe auch:  DATE$ als Funktion    TIME$ als Befehl 
   
 
 
DATE$ 
Typ: Funktion 
Syntax:  DATE$ 
Erklärung:  Gibt einen String-Ausdruck des Datums entsprechend dem eingestellten Format Ihres Computers. Das Format können Sie mit dem Kontrollfeld 'Datum & Zeit' ändern. 
Beispiel: PRINT DATE$
Ergebnis:  Das aktuelle Datum wird auf dem Bildschirm ausgegeben. 
siehe auch:  DATE$ als Befehl    TIME$ als Funktion 
   
 

DEFAULT 
Typ: Befehl 
Syntax:  DEFAULT 
Erklärung:  Innerhalb einer SELECT ... CASE Anweisung wird mit DEFAULT oder OTHERWISE der Programmzweig eingeleitet, der ausgeführt werden soll, wenn keine der anderen Alternativen zutraf. Der DEFAULT-Zweig muß immer die letzte Möglichkeit innerhalb der SELECT ... CASE Anweisung sein. Ein weiteres CASE darf nicht folgen. 
siehe auch:  OTHERWISE
   
 

DEFER
Erklärung: Reserviert für zukünftige Anwendungen! 
Dieses Wort bitte nicht verwenden!!
   
 
 
DEF FN 
Typ: Befehl 
Syntax:  DEF FN <Variable>[(<Variable>[[,<Variable>]])][=<Ausdruck>] 
DEF FN <Funktions-Variable>[(<Parameter>[[,Parameter]])][=<Ausdruck>] 
Erklärung:  Weist der Funktionsvariablen die Funktion zu. Es können ein oder mehrere Parameter definiert werden, die beim Aufruf angegeben werden müssen. Die Parameter sind lokale Variablen (siehe auch LOCAL). Der Wert der Funktion kann direkt durch  =<Ausdruck> angegeben werden oder alternativ nach einer ein- oder mehrzeiligen Berechnung durch RETURN <Ausdruck>. 
Die Funktion ist im Programm über FN<Funktions-Variable>[(<Parameter>[[,Parameter]])] aufrufbar.
Die Funktionsdefinition kann an beliebiger Stelle im Programm erscheinen. Eine mehrzeilige Funktionsdefinition darf während des Programmablaufs nicht durchlaufen werden. Eine mehrzeilige Funktionsdefinition sollte mit END_FN beendet werden. Diese Anweisung wirkt wie ein normales RETURN und dient in erster Linie der besseren Strukturierung des Programms. 
Beispiel:

PRINT FN Doppelt(13) 
PRINT FN Primzahl$(13) 
END 

DEF FN Doppelt(A)=2*A 

DEF FN Primzahl$(A) 
 LOCAL N,P$="Primzahl" 
 FOR N=2 TO SQR(A) 
  IF A MOD N=0 THEN P$="keine Primzahl" 
 NEXT N 
 RETURN P$ 
END_FN 

Ergebnis:  26 
Primzahl 
siehe auch:  DEF PROC    DEF USR 
   
 

DEF FNEX 
Typ: Befehl 
Syntax:  DEF FNEX <num.Variable>[(<num.Variable>[[,<num.Variable>]])][=<num.Ausdruck>] 
DEF FNEX <Funktions-Variable>[(<num.Parameter>[[,num.Parameter]])][=<num.Ausdruck>] 
Erklärung:  Definiert eine Funktion, die Sie an andere Programme oder das Betriebssystem exportieren möchten. Es können ein oder mehrere numerische Parameter definiert werden, die beim Aufruf von einem anderen Programm angegeben werden müssen. Die Parameter sind lokale Variablen (siehe auch LOCAL). Der Wert der Funktion kann direkt durch  =<num.Ausdruck> angegeben werden oder alternativ nach einer ein- oder mehrzeiligen Berechnung durch RETURN <num.Ausdruck>. 
Eine mit DEF FNEX definierte Funktion kann von dem Programm aus, in dem die Funktion definiert wurde, nicht aufgerufen werden. Das wäre auch nicht besonders sinnvoll, da der von Apple standardisierte Aufrufformalismus recht kompliziert ist und dadurch wesentlich länger dauert, als der optimierte Aufruf einer mit DEF FN definierten Omikron Basic Funktion.
Die Funktionsdefinition kann an beliebiger Stelle im Programm erscheinen. Eine mehrzeilige Funktionsdefinition darf während des Programmablaufs nicht durchlaufen werden. Eine mehrzeilige Funktionsdefinition sollte mit END_FN beendet werden. Diese Anweisung wirkt wie ein normales RETURN und dient in erster Linie der besseren Strukturierung des Programms.
Es können mit DEF FNEX keine Stringfunktionen definiert werden. Wenn Strings bearbeitet werden sollen, kann dies dadurch geschehen, daß man einen Zeiger auf den String übergibt.
Wenn mehr als ein Ergebnis zurückgegeben werden soll, muß man ebenfalls Zeiger auf die zusätzlichen Variablen übergeben, so daß das aufrufende Programm das Ergebnis dann an diesen Stellen ablegen kann.
Wenn Sie Shared-Libraries oder Plugins schreiben möchten, können Sie die mit DEF FNEX definierten Funktionen mit EXPORT als exportiert markieren.
Einige Funktionen des Macintosh-Betriebssystems benötigen Zeiger auf Callback-Routinen als Parameter, um z.B. den Fensterinhalt ständig zu aktualisieren, während der Anwender den Fensterschieber bewegt oder als sogenannte Completion-Routine bei asynchroner Datenübertragung. Für solche Zwecke können Sie ebenfalls mit DEF FNEX definierte Funktionen verwenden, indem Sie die mit "&" ermittelte Adresse der Funktion an den MAC_OS Befehl übergeben.

Achtung: Bei der Definition der Funktionen und beim Aufruf ist genauestens darauf zu achten, daß die passenden Datentypen verwendet werden. Wenn z.B. die mit DEF FNEX definierte Funktion eine Integer-Zahl erwartet, darf keine Fließkommazahl übergeben werden. Im Unterschied zu internen Omikron Basic Funktionsaufrufen (DEF FN) kann zur Laufzeit keine automatische Typanpassung vorgenommen werden. Falsche Datentypen führen besonders bei der Übergabe von Pointern meistens zum totalen Systemabsturz. 
Beispiel: Beispielprogramm "SharedLib.BAS" im DEMO-Ordner
Ergebnis: 
siehe auch:  DEF FN    EXPORT     EXPORT_INIT    EXPORT_EXIT   COMPILER "shlb"    MAC_OS
   

 
DEF PROC 
Typ: Befehl 
Syntax:  DEF PROC <Prozedurname>[([R]<Variable>[[,[R ]<Variable>]])] 
Erklärung:  Leitet eine Prozedurdefinition ein. Es können ein oder mehrere Parameter definiert werden. Die Parameter sind lokale Variablen (siehe auch LOCAL). Durch ein vorangestelltes R werden die Werte nach Beendigung der Prozedur an die im Prozeduraufruf genannten Variablen übergeben. Die Prozedur wird durch ein RETURN oder besser durch ein END_PROC beendet. 
Zum Aufruf ist der Prozedurname zu nennen und gegebenenfalls die in Klammern gesetzten und durch Kommata getrennten Ausrücke. Ist in der Definition an einer Stelle ein "R" vor die Variable gestellt, so muß an 
entsprechender Stelle im Aufruf eine Variable stehen. An diese wird am Ende der Prozedur der Inhalt der Prozedurvariablen übergeben. Beim Prozeduraufruf können die Klammern auch weggelassen werden. 
Die Prozedurdefinition kann an beliebiger Stelle im Programm erscheinen. Die Prozedurdefinition darf während des Programmablaufs nicht durchlaufen werden. 
Beispiel:

Zentriere "Dieser Text erscheint zentriert" 
Gesperrt "OMIKRON-BASIC",2 
END 

DEF PROC Zentriere(Text$) 
 PRINT TAB((W_CHAR-LEN(Text$))/2);Text$; 
END_PROC 

DEF PROC Gesperrt(Text$,Anzahl_Leerzeichen) 
 LOCAL I 
 FOR I=1 TO LEN(Text$) 
  PRINT MID$(Text$,I,1); 
  PRINT " "*Anzahl_Leerzeichen; 
 NEXT I 
END_PROC 

Ergebnis:  Dieser Text erscheint zentriert 
O M I K R O N - B A S I C 
siehe auch:  DEF FN   DEF USR 
   
 
 
DEF USR 
Typ: Befehl 
Syntax:  DEF USR=<num.Ausdruck> 
Erklärung:  Legt die Adresse fest, die beim Aufruf eines Maschinensprache-Programms durch USR angesprungen wird. 
Beispiel: DEF USR Scroll_Screen 
Ergebnis:  Das Maschinenprogramm kann jetzt mit USR(Parameter) aufgerufen werden. 
siehe auch:  DEF FN     DEF PROC
   
 
 

ABS  -  CINT Inhalt | DEFDBL - FIX

Support | Bestellen | Start | Home: http://www.berkhan.de


© 1997-2001 Berkhan-Software