INPUT$   -   LPRINT Inhalt | NOISE - POKE


Kapitel 5-7
Der Befehlssatz

 LSET - NEXT



 
 
LSET 
Typ: Befehl
Syntax:  LSET <String-Variable>=<String-Ausdruck>
Erklärung:  Der String-Ausdruck wird linksbündig in die String-Variable eingesetzt, ohne daß deren Länge verändert wird. Gegebenenfalls wird der String-Ausdruck hinten abgeschnitten. Dieser Befehl wird besonders bei Zuweisungen an Puffervariablen (siehe FIELD) benutzt.
Beispiel: A$= SPACE$(20) 
LSET A$="Omikron" 
PRINT "*";A$;"*"
Ergebnis:   *Omikron             *
siehe auch:  RSET    FIELD     LEFT$ 
   
 

MAC_OS
Typ: Befehl 
Syntax:  MAC_OS [<num.Variable>][[,<num.Variable>]] [;num.Konstante]; {<String-Konstante>|<num.Konstante>}, <String-Konstante> [[,<num.Ausdruck>]] 
MAC_OS [<Rückgabe-Variable>][[,<Rückgabe-Variable>]] [;Flags]; {<Import-Library-Name>|<Import-Library-Nummer>}, <Funktions-Name> [[,<Parameter>]] 
Erklärung:  Dies ist ein Universalbefehl, mit dem Funktionen importiert werden können. Er dient hauptsächlich dazu, Aufrufe an das MacOS zu machen, kann aber auch dazu benutzt werden, Funktionen aus Shared-Libraries zu importieren. An die <Rückgabe-Variablen> kann ein Wert zurückgegeben werden. Wieviele und welcher Typ hier angegeben werden müssen, hängt von der zu importierenden Funktion ab. Wenn die Funktion nichts zurückgibt, können die Variablen auch ganz weggelassen werden. Ein Semikolon muß jedoch stehen bleiben.

In <Flags> können Sie optional einige Flags übergeben und dadurch den Befehl modifizieren. Zur Zeit sind folgende Bits belegt:

Bit 0 : Der Import wird als "weak" markiert. Das bedeutet, daß Ihr Programm auch dann gestartet wird, wenn der Code-Fragment-Manager die gewünschte Funktion gar nicht findet (unresolved import). In solchen Fällen müssen Sie daher selbst dafür Sorge tragen, daß Ihr Programm auf keinen Fall Funktionen aufruft, die nicht vorhanden sind. Das können Sie dadurch erreichen, daß Sie den Gestalt-Manager nach den vorhandenen Betriebssystemteilen fragen (InsideMacintosh, Operating Systems Utilities) oder zunächst den Transition-Vector der Funktion untersuchen, indem Sie die Funktion mit Flags=3 aufrufen. Dabei muß eine Long-Integer-Variable als Rückgabeparameter angegeben werden. Eventuelle Parameter brauchen Sie bei diesem Test nicht zu übergeben. Wenn der zurückgelieferte Wert null ist, ist die Funktion nicht vorhanden und darf auf keinen Fall aufgerufen werden.
Bit 1 : Es wird keine Funktion aufgerufen, sondern es werden nur Daten importiert. Sie erhalten einen Wert, wie ihn auch der Adressoperator "&" zurückliefern würde. Wenn die importierten Daten von einer in Omikron Basic geschriebenen Library exportiert werden, können Sie auf diese mit dem Dereferenzoperator "*" zugreifen, andernfalls müssen Sie aus der Dokumentation zu der betreffenden Library ermitteln, ob der gelieferte Wert ein Datum, ein Pointer, ein Handle oder etwas anderes ist.

Der <Import-Library-Name> gibt an, aus welcher Shared-Library die gewünschte Funktion importiert werden soll. Statt der String-Konstanten kann an dieser Stelle auch eine numerische Konstante von 1 bis 8 stehen. Dann werden die folgenden vordefinierten Strings eingesetzt: 

1: "InterfaceLib" 
2: "MathLib" 
3: "QuickTimeLib" 
4: "SpeechLib" 
5: "QuickDrawGXLib" 
6: "AppleScriptLib" 
7: "ObjectSupportLib" 
8: "StdCLib"

<Funktions-Name> ist der Name der Funktion, die aufgerufen werden soll. Dabei ist auf Groß- und Kleinschreibung zu achten.

Wichtig: <Flags>, <Import-Library-Name> oder <Import-Library-Nummer> und <Funktions-Name> müssen Konstanten sein, da sie schon zur Compilierungszeit bekannt sein müssen. Also keine Variablen angeben, sondern Klartext, wie bei den vordefinierten Einträgen.

<Parameter1>,<Parameter2>, ... sind numerische Parameter, die an die Funktion übergeben werden. Strings können nicht direkt übergeben werden. Stattdessen übergibt man einen Pointer auf den String. Dabei ist darauf zu achten, ob die Funktion einen Pascal-String oder einen C-String erwartet. Der String muß also gegebenenfalls mit einem Längenbyte versehen bzw. nullterminiert werden.  
Beispiel:  Siehe die Programme Import.BAS und SpeekText.BAS im Ordner DEMO
Ergebnis:   
siehe auch:  DEF FNEX
 
 
 
MAT
Typ: Befehl
Syntax:  MAT <Feldvariable>{+|-|*|/}<Feldvariable> 
MAT <Feldvariable>=<Feldvariable>[ {+|-|*|/}<Feldvariable> ] 
1: MAT <Feldvariable>=1 
2: MAT <Feldvariable>=<Feldvariable> 
3: MAT <Feldvariable>{+|-|*|/}<num.Ausdruck> 
4: MAT <Feldvariable>=<Feldvariable>{+|-|*|/}<Feldvariable>
Erklärung:  Zunächst ein paar grundsätzliche Dinge:
Matrixbefehle funktionieren nur mit zweidimensionalen Fließkommafeldern. Dabei spielt es keine Rolle, ob Sie einfache oder doppelte Genauigkeit verwenden. Die Größe der Matrizen wird durch die angegebenen Indices bestimmt. Die Zählung der Elemente beginnt wie immer bei Null. Matrix!(2,2) meint also eine dreireihige quadratische Matrix. Matrix!(N,M) ist entsprechend eine (N+1,M+1)-Matrix. Wie immer bei der Verwendung von Feldern kann der Index auch weggelassen werden, was genauso behandelt wird, als hätte man den höchsten Index angegeben. Wurde das Feld Matrix! also auf (3,3) dimensioniert, dann ist Matrix!(,) eine vierreihige quadratische Matrix. 
Bei der Verwendung des Befehls MAT sind vier verschiedene Syntaxen zu unterscheiden: 

1. Erzeugen einer Einheitsmatrix. Der quadratischen Matrix wird die Einheitsmatrix zugewiesen.

2. Die Matrixzuweisung: Es werden alle Elemente der rechten Seite der linken zugewiesen. 
Hinweis: Dieser Befehl funktioniert mit beliebigen Feldern, die nicht die speziellen Anforderungen von Matrizen im Sinne von Omikron Basic genügen. Es wird einfach alles von rechts nach links kopiert, bis zum angegebenen Element. Eine Typkonvertierung ist dabei natürlich nicht möglich.

3. Skalare Matrix-Operationen: Je nach Operator wird 
- zu jedem Element ein Wert addiert 
- von jedem Element ein Wert subtrahiert 
- jedes Element mit einem Wert multipliziert 
- jedes Element durch einen Wert dividiert

4. Vektorielle Matrix-Operationen: Je nach Operator werden 
- zwei Matrizen addiert (elementweise) 
- zwei Matrizen subtrahiert (elementweise) 
- zwei Matrizen multipliziert 
- zwei Matrizen dividiert (mit der Inversen multipliziert)

Bei der Matrizen-Multiplikation bzw. Division ist auf eine geeignete Wahl der Matrix-Dimensionen zu achten. Es gilt: A(P,Q)=B(P,N)*C(N,Q). 
Bei der Division muß zusätzlich die Matrix C quadratisch sein. 
Beispiel: N=3 
DIM Matrix!(N,N),Mat_A!(N,N),Mat_B!(N,N),Mat_C!(N,N) 
DIM Array(10),Feld(10) 
MAT Matrix!(,)=1 
MAT Mat_A!(1,1)+2 
MAT Mat_C!(,)=Mat_B!(,)+Mat_A!(,) 
MAT Matrix!(1,2)=Mat_A!(1,2) 
MAT Feld(5)=Array(6):'Der kleinere Index gilt
Ergebnis:   
siehe auch:  MAT  CLEAR     MAT INV
 
 
 
MAT CLEAR
Typ: Befehl
Syntax:  MAT CLEAR <Feldvariable>
Erklärung:  MAT CLEAR löscht ein beliebiges Feld bis zum angegebenen maximalen Index. Wird kein Index angegeben, so wird das gesamte Feld gelöscht. Dieser Befehl ist nicht auf Fließkommafelder beschränkt, sondern kann für beliebige Datentypen und beliebige Dimensionen benutzt werden.
Beispiel: N=3 
DIM Matrix!(N,N) 
DIM Array(10) 
MAT CLEAR Matrix!(,) 
MAT CLEAR Array(5)
Ergebnis:  Das Feld Matrix!(,) wird vollständig gelöscht, das Feld Array() nur bis zum Element 5. 
siehe auch:  MAT
   
 
 
 
MAT INV
Typ: Befehl
Syntax:  MAT <Feldvariable>= INV <Feldvariable>
Erklärung:  Berechnet die inverse Matrix. Beide Matrizen müssen quadratisch sein. Existiert die inverse Matrix nicht (Determinate = 0), so wird eine Fehlermeldung erzeugt.
Beispiel: N=3 
DIM Mat_A!(N,N),Mat_B!(N,N) 
MAT Mat_A!(,)=1 
MAT Mat_B!(,)= INV Mat_A!(,)
Ergebnis:   Es wird die Inverse der Einheitsmatrix berechnet. Das ergibt natürlich wieder die Einheitsmatrix.
siehe auch:  MAT
   
 
 
 
MAX
Typ: Funktion
Syntax:  MAX (<Ausdruck>,<Ausdruck>)
Erklärung:  Gibt den größeren der beiden Ausdrücke als Funktionswert. Vergleiche zwischen numerischen Ausdrücken und String-Ausdrücken sind unzuläsig. 
Beispiel: PRINT MAX(1,4), MAX(-6, PI)
Ergebnis:   4   3.14159265358979
siehe auch:  MIN
   
 
 
MEMORY
Typ: Funktion
Syntax:  MEMORY(<num.Ausdruck>) 
MEMORY(<Blocklänge|-1>)
Erklärung:  Die MEMORY-Funktion reserviert einen nicht verschiebbaren Speicherblock im Application-Heap ihres Programms.  Der Aufruf mit "-1" als Parameter liefert die Länge des größten freien Blocks zurück. Ansonsten wird die Speicheradresse zurückgegeben, ab der der verlangte Speicherblock zur Verfügung steht. Um genügend große Mengen Speicher mit MEMORY reservieren zu können, muß der Application-Heap ausreichend groß gewählt werden (siehe COMPILER "PRE_SIZE ...") . Steht nicht genug Speicher zur Verfügung, so erscheint eine Fehlermeldung des Memory-Managers. Speicherblöcke, die mit MEMORY angelegt wurden, können mit FRE() wieder freigegeben werden.

Hinweis: Sie sollten immer etwas Speicher frei lassen (mindestens 512K), da diverse Omikron Basic Befehle bzw. MacOS-Funktionen Speicher im Application-Heap benötigen.

X-Note: Unter MacOS X liefert MEMORY(-1) stets sehr große Werte zurück, da jedes Programm über 4 GB virtuellen Speicher verfügt. Aus dem gleichen Grunde kann ein mit MEMORY angeforderter Speicherblock auch eine negative Adresse haben.
Beispiel: Free_Mem=MEMORY(-1) 
IF Free_Mem>40000 
 THEN Bild_Puffer=MEMORY(32000) 
 ELSE PRINT "Zu wenig Speicher frei!" 
ENDIF
Ergebnis:  Es wird zunächst nachgefragt, wie groß der größte zusammenhängende und freie Speicherblock ist. Danach wird ein Block von 32000 Bytes als Bild_Puffer  reserviert, wenn noch mehr als 40000 Byte frei sind. Ansonsten wird ein Fehler gemeldet. 
siehe auch:  FRE
   
 
 
 
MEMORY_BLOCK
Typ: Befehl
Syntax:  MEMORY_BLOCK <Zwei Ziffern>, <num.Ausdruck>, <num.Variable> 
MEMORY_BLOCK <Name>, <Größe>, <Adressrückgabevariable>
Erklärung:  Der MEMORY_BLOCK-Befehl erzeugt schon bei der Eingabe in Ihr Programm einen Speicherblock der angegebenen Größe, der in Ihrem Programm fortan erhalten bleibt. Dieser reservierte Speicherblock ist fortan Bestandteil Ihres Programms und wird dementsprechend auch vom Editor mit abgespeichert bzw. geladen. Dieser Speicherblock wird identifiziert durch die beiden Ziffern direkt hinter dem MEMORY_BLOCK Befehl. Wird ein weiterer MEMORY_BLOCK mit gleichen zwei Ziffern erzeugt, der eine geringere Größe als der erste hat, so wird der erste dabei zerstört. 
Da der Speicherblock also durch die zwei Ziffern gekennzeichnet ist, sind maximal 100 Speicherblöcke (00-99) in einem Programm möglich.

Achtung: Es müssen immmer GENAU zwei Ziffern sein (z.B. 03, 00 oder 23). Die Größe des Blocks muß eine gerade Zahl sein und die Länge darf 32 MB nicht übersteigen.

Hiweis: Um größere Memory-Blöcke anzulegen, muß für das Programm im Editor genug Speicher reserviert sein. Verwenden Sie dazu den Dialog Modus/Editoreinstellungen ... .

Der MEMORY_BLOCK kann vom Editor aus mit dem Menüpunkt 'MEMORY_BLOCK zuladen' im Bearbeiten-Menü mit Daten gefüllt werden. Die Daten können z.B. ein Bild enthalten, das Sie in Ihrem Programm verwenden wollen oder aber auch ein kurzes Maschinenspracheprogramm, das eine spezielle Aufgabe besonders schnell erledigt. 
Erst wenn Ihr Programm nach erfolgter Compilierung über den MEMORY_BLOCK-Befehl läuft, wird die Adresse des Speicherblocks in die Rückgabevariable geschrieben. Da vor dem eigentlichen Programmstart die absolute Adresse des MEMORY_BLOCK's also nicht bekannt ist, sollten Maschinenspracheprogramme in durch MEMORY_BLOCK angelegten Speicherbereichen keine absoluten Adressen verwenden! 

Achtung: In einen MEMORY_BLOCK können sie zur Laufzeit Ihres Programms nicht schreiben, da er sich im Code-Fragment befindet und dadurch schreibgeschützt ist. Ein MEMORY_BLOCK kann nur vom Editor aus mit Daten gefüllt werden.
Beispiel: 'Vor Programmstart muß ein geeignetes Titelbild vom Editor aus in den MEMORY_BLOCK geladen werden. 
MEMORY_BLOCK 00,32000,Titelbild 
BITBLT Titelbild,0,0,W_PIXEL,H_PIXEL 
WAIT 3 
Ergebnis:  Sobald das Programm über den MEMORY_BLOCK Befehl läuft, steht in der Variablen 'Titelbild' die physikalische Adresse des Bildes. Wenn das Bild über ein geeignetes Format verfügt (6 Byte Header wie bei BITBLT beschrieben), kann es danach auf dem Bildschirm dargestellt werden. (z.B. als Hintergrund für ein Spiel)
siehe auch:  MEMORY     MEMORY_MOVE 
   
 
 
 
MEMORY_MOVE[B]
Typ: Befehl
Syntax:  MEMORY_MOVE[B] <Quelladresse>, <Länge>TO <Zieladresse>
Erklärung:  Das Kopieren von Speicherbereichen kann man am besten mit dem MEMORY_MOVE Befehl bewerkstelligen. Das Speicherstück, das bei <Quelladresse> beginnt und <Länge> lang ist, wird an die <Zieladresse> kopiert.  MEMORY_MOVEB hat die gleiche Funktion wie MEMORY_MOVE und wird nur aus Kompatibilitätsgründen unterstützt.

Hinweis: Die Kopiergeschwindigkeit ist am größten, wenn Quell- und Zieladresse auf einer 8-Byte-Grenze liegen.
Beispiel: Puffer=MEMORY(20000) 
MEMORY_MOVE Puffer+15000,5000 TO Puffer
Ergebnis:  Es werden 5000 Bytes vom hinteren Ende des Puffers an den Anfang kopiert. 
siehe auch:  MEMORY    MEMORY_BLOCK
   
 
 
 
MERGE
Erklärung:   hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
MID$
Typ: Befehl
Syntax:  MID$(<String-Variable>,<num.Ausdruck>,<num. Ausdruck>)= <String-Ausdruck> 
MID$(<String-Variable>,<Stelle>,<Anzahl>)=<String-Ausdruck>
Erklärung:  Weist der String-Variablen ab der angegebenen Stelle den String-Ausdruck zu und zwar  maximal  die angegebene Anzahl Zeichen. Dabei wird die Länge der String-Variablen nicht verändert. 
Beispiel: Programm$="Omikron Basic" 
MID$(Programm$,8,1)="-" 
PRINT Programm$
Ergebnis:  Omikron-Basic
siehe auch:  MID$ als Funktion   RIGHT$   LEFT$ 
   
 
 
 
MID$  
Typ: Funktion
Syntax:  MID$(<String-Ausdruck,<num.Ausdruck>[,<num.Ausdruck>]) 
MID$(<String-Ausdruck>,<Stelle>[,<Länge>]) 
Erklärung:  Ergibt einen Teilstring des String-Ausdrucks beginnend ab der gegebenen Stelle mit der gegebenen Länge. Ist <Länge> nicht gegeben oder größer als der verbleibende Teil des String-Ausdrucks, so endet der Teilstring am Ende des String-Ausdrucks. 
Beispiel: A$="Omikron Basic" 
PRINT MID$(A$,6,7) 
PRINT MID$("abcdefg",4) 
Ergebnis:  on Basi 
defg 
siehe auch:  MID$ als Befehl   LEFT$   RIGHT$ 
   
 
 
 
MIN 
Typ: Funktion 
Syntax:  MIN (<Ausdruck>,<Ausdruck>) 
Erklärung:  Gibt den kleineren der beiden Ausdrüe als Funktionswert. Vergleiche zwischen numerischen und String-Ausdrücken sind unzulässig. 
Beispiel: PRINT MIN(-6,0), MIN(7,7.1) 
Ergebnis:  -6    7 
siehe auch:  MAX 
   
 
 
 
MIRROR$ 
Typ: Funktion 
Syntax:  MIRROR$(<String-Ausdruck>) 
Erklärung:  Spiegelt den gegebenen String-Ausdruck. Das erste Zeichen wird mit dem letzten vertauscht, das zweite mit dem vorletzten etc. 
Beispiel: PRINT MIRROR$("12340") 
Ergebnis:  04321 
 
 
 
MKD$ 
Typ: Funktion 
Syntax:  MKD$(<num.Ausdruck>) 
Erklärung:  Wandelt den numerischen Ausdruck in eine Double-Float-Zahl um, und diese in einen 8 Zeichen langen String. 
MKD$ ist die Umkehrfunktion zu CVD. 
Beispiel: Zahl$=MKD$( PI ) 
FOR I=1 TO 8 
 PRINT HEX$(ASC(MID$(Zahl$,I,1))); 
NEXT I 
Ergebnis:   $40 $9 $21 $FB $54 $4 $2D $18
siehe auch:  CVD   MKI$   MKIL$   MKS$ 
   
 
 
 
MKDIR 
Typ: Befehl 
Syntax:  MKDIR <String-Ausdruck> 
Erklärung:  Legt einen neuen Ordner an. In <String-Ausdruck> muß ein FileSpecificationRecord übergeben werden. 
Beispiel:  MKDIR FN Get_Fsspec$(0,0,"Macintosh HD:OmikronBasic:Programme:")
Ergebnis:   Legt einen neuen Ordner mit dem Namen Programme im Ordner OmikronBasic an.
siehe auch:  RMDIR   CHDIR 
   
 
 
 
MKI$ 
Typ: Funktion 
Syntax:  MKI$(<num.Ausdruck>) 
Erklärung:  Wandelt den numerischen Ausdruck in eine Short-Integert-Zahl um, und diese in einen 2 Zeichen langen String. 
MKI$ ist die Umkehrfunktion zu CVI. 
Beispiel: PRINT MKI$($5445)+MKI$($5354) 
Ergebnis:  TEST 
siehe auch:  CVI    MKIL$    MKS$    MKD$
   
 
 
 
MKIL$ 
Typ: Funktion 
Syntax:  MKIL$(<num.Ausdruck>) 
Erklärung:  Wandelt den numerischen Ausdruck in eine Long-Integer-Zahl um, und diese in einen 4 Zeichen langen String. 
MKIL$ ist die Umkehrfunktion zu CVIL. 
Beispiel: PRINT MKIL$($57656C74) 
Ergebnis:  Welt 
siehe auch:  CVIL     MKI$     MKS$     MKD$
   
 
 
 
MKS$ 
Typ: Funktion 
Syntax:  MKS$(<num.Ausdruck>) 
Erklärung:  Wandelt den numerischen Ausdruck in eine Single-Float-Zahl um, und diese in einen 4 Zeichen langen String. 
MKS$ ist die Umkehrfunktion zu CVS. 
Beispiel: Zahl$=MKS$( PI ) 
FOR I=1 TO 4 
 PRINT HEX$(ASC(MID$(Zahl$,I,1))); 
NEXT I 
Ergebnis:   $40 $49 $F $DA 
siehe auch:  CVS   MKD$   MKI$   MKIL$ 
   
 
 
 
MOD 
Typ: Operator 
Syntax:  <num.Ausdruck>MOD<num.Ausdruck> 
Erklärung:  Ermittelt den Rest einer Division des ersten numerischen Ausdrucks durch den zweiten. Der Teiler muß natürlich ungleich 0 sein. Das Vorzeichen entspricht dem des ersten Ausdrucks. 
Beispiel: PRINT 10 MOD 3,-20 MOD 7,15 MOD -6 
Ergebnis:  1   -6    3 
siehe auch:  Mathematische Operatoren 
   
 
 
 
MODE 
Typ: Befehl 
Syntax:  MODE <String-Ausdruck> 
MODE <Länderkennung> 
Erklärung: 

Stellt den länderspezifischen Modus ein. 
Mögliche Einstellungen sind: 

"D" für Deutschland, 
"GB" für England, 
"I" für "Italien", 
"F" für Frankreich und 
"USA" für die Vereinigten Staaten von Amerika. 

Die Ländereinstellung beeinflußt die Umwandlung von Groß- in Kleinbuchstaben und umgekehrt mit LOWER$ und UPPER$

Beispiel: MODE "D" 
PRINT UPPER$(äöü) 
MODE "USA" 
PRINT LOWER$(ÄÖÜ) 
Ergebnis:  ÄÖÜ 
ÄÖÜ
 
 
 
MODE= 
Typ: Befehl 
Syntax:  MODE= <num. Ausdruck> 
MODE= <Zeichenmodus> 
Erklärung:  Stellt den Zeichenmodus für alle Graphikbefehle ein. 
Mögliche Einstellungen sind: 

1: deckend 
2: transparent 
3: XOR 
4: revers transparent 
 
 
 
 
MODE LPRINT 
Erklärung:   hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
MOUSEBUT
Typ: Funktion 
Syntax:  MOUSEBUT 
Erklärung:  Gibt den Zustand der Maustaste an und berücksichtigt dabei auch den Zustand der Modifier-Keys. Dementsprechend liefert die Funktion Werte zwischen 0 und 32 zurück wie z.B.: 

MOUSEBUT = 1 wenn nur Maustaste gedrückt 
MOUSEBUT = 2 wenn Maustaste und Befehls-Taste gedrückt 
MOUSEBUT = 3 wenn Maustaste und Shift-Taste gedrückt 
usw. 

Der Funktionswert von MOUSEBUT ergibt sich also aus dem Wert der Modifier-Keys (siehe Beschreibung bei INKEY$) + 1 für die gedrückte Maustaste.

Hinweis bei Verwendung von Mäusen mit zwei oder drei Tasten:
Definieren Sie Ihre Mehrtastenmaus so, daß die zweite Maustaste wie [Cmd]+[Return] und die dritte wie [Alt]+[Return] wirkt. Dann erhalten Sie in MOUSEBUT Werte zwischen 0 (kein Taste gedrückt) und 7 (alle drei Tasten gedrückt) zurück. Natürlich können Sie auch die mittlere Taste mit einem Doppelklick belegen und die rechte als zweite Maustaste verwenden oder jede beliebige andere Kombination.
Beispiel: PRINT "Ende mit beliebiger Taste" 
REPEAT 
 PRINT @(2,0);MOUSEBUT;SPACE$(5); 
UNTIL LEN(INKEY$) 
Ergebnis:  Das Programm gibt in der dritten Zeile den jeweiligen Zustand der Maustaste und der Modifier-Keys aus. 
siehe auch:  MOUSEX   MOUSEY 
   
 
 
 
MOUSEOFF
Typ: Befehl 
Syntax:  MOUSEOFF 
Erklärung:  Schaltet die Maus ab (Der Mauszeiger ist nicht mehr sichtbar). 
siehe auch:  MOUSEON 
   
 
 
 
MOUSEON 
Typ: Befehl 
Syntax:  MOUSEON 
Erklärung:  Schaltet die Maus an (Der Mauszeiger ist wieder sichtbar). 
siehe auch:  MOUSEOFF 
   
 
 
 
MOUSEX
Typ: Funktion 
Syntax:  MOUSEX 
Erklärung:  Ergibt die X-Koordinate der Mausposition. Dabei ist es unerheblich, ob die Maus gerade angezeigt wird oder nicht. 
Beispiel: PRINT "Ende mit beliebiger Taste" 
REPEAT 
 PRINT @(2,0);MOUSEX;SPACE$(5); 
 PRINT @(3,0);MOUSEY;SPACE$(5); 
UNTIL LEN(INKEY$) 
Ergebnis:  Das Programm gibt in der dritten Zeile die aktuelle X-Position und in der vierten Zeile die aktuelle Y-Position des Mauszeigers aus 
siehe auch:  MOUSEY   MOUSEBUT 
   
 
 
 
MOUSEY 
Typ: Funktion 
Syntax:  MOUSEY
Erklärung:  Ergibt die Y-Koordinate der Mausposition. Dabei ist es unerheblich, ob die Maus gerade angezeigt wird oder nicht. 
Beispiel: PRINT "Ende mit beliebiger Taste" 
REPEAT 
 PRINT @(2,0);MOUSEX;SPACE$(5); 
 PRINT @(3,0);MOUSEY;SPACE$(5); 
UNTIL LEN(INKEY$)
Ergebnis:  Das Programm gibt in der dritten Zeile die aktuelle X-Position und in der vierten Zeile die aktuelle Y-Position des Mauszeigers aus 
siehe auch:  MOUSEX   MOUSEBUT 
   
 
 
 
NAME ... AS
Typ: Befehl 
Syntax:  NAME <String-Ausdruck>AS <String-Ausdruck> 
NAME <Dateiname/alt>AS <Dateiname/neu> 
Erklärung:  <Dateiname/alt> muß einen FileSpecificationRecord enthalten. <Dateiname/neu> darf nur den neuen Namen enthalten. Wenn eine Directory umbenannt werden soll, müssen die Namen mit einem Doppelpunkt abgeschlossen werden. 
Beispiel: NAME FN Get_Fsspec$(0,0,"AlterName") AS "NeuerName" 
NAME FN Get_Fsspec$(0,0,"AlterOrdner:") AS "NeuerOrner:"
Ergebnis:  Die Datei AlterName wird in NeuerName umbenannt. Der Ordner AlterOrdner wird in NeuerOrdner umbenannt.
siehe auch:  COPY   BACKUP 
   
 
 
 
NAND 
Typ: Operator 
Syntax:  <num.Ausdruck>NAND<num.Ausdruck> 
Erklärung:  Verknüpft die beiden numerischen Ausdrücke logisch "nicht-und (NOT AND)". 
Beispiel: PRINT BIN$((%1010 NAND %1100)+%10000) 
Ergebnis:  %111 
siehe auch:  AND    OR     NOR     XOR     IMP     EQV     NOT
   
 
 
 
NDC 
Erklärung:   hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
NEW 
Erklärung:   hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
 
NEXT 
Typ: Befehl 
Syntax:  NEXT [<num.Variable>] 
NEXT [<Schleifenvariable>] 
Erklärung:  Beendet eine FOR ... NEXT Schleife. Ist keine Schleifenvariable angegeben, so bezieht sich das NEXT immer auf das letzte FOR. 
siehe auch:   FOR    UNTIL    WEND 
   
 
 
 

INPUT$   -   LPRINT Inhalt | NOISE - POKE

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


© 1997-2001 Berkhan-Software