POS  -  SAVE Inhalt | TEXT ROTATION - XOR


Kapitel 5-10
Der Befehlssatz

 SCREEN - TEXT HEIGHT



 
 
 
SCREEN 
Typ: Befehl 
Syntax:  SCREEN <num.Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>[,<num.Ausdruck>,<num.Ausdruck>]] 
SCREEN <Bildschirmnummer>[,<X>,<Y>[,<W>,<H>]]
Erklärung:  Mit diesem Befehl können weitere Omikron Basic Ausgabefenster geöffnet werden, die dann automatisch vom Omikron Basic verwaltet werden. Sie brauchen sich also nicht um Redraws und dergleichen zu kümmern. Der Befehl wirkt nur, wenn der Compiler zuvor mit dem Steuerwort COMPILER "OUTPUT_WINDOW X*Y" angewiesen wurde, einen Event-Handler für die Ausgabefenster einzubinden.
In der Syntax mit einem Parameter können Sie festlegen, in welches Fenster die Ausgaben mit PRINT, TEXT, DRAW etc. geleitet werden sollen. Die Syntax mit 3 Parametern öffnet ein neues Fenster mit der Breite <X> und der Höhe <Y> in der linken oberen Ecke des Bildschirms, während die Version mit 5 Parametern ein neues Fenster an der Stelle (<X>,<Y>) mit der Breite <W> und der Höhe <H> erzeugt. Die Syntax mit 3 Parametern kann auch zum Löschen von Ausgabefenstern benutzt werden, indem man für die Breite Null eingibt. Die Werte <X>,<Y>,<W>,<H> beziehen sich immer auf das Innere des Fensters.
Wenn ein Ausgabefenster mit <Bildschirmnummer> schon existiert, wird kein neues Fenster geöffnet, sondern das vorhandene nur entsprechend den Parametern <X>,<Y>,<W>,<H> verschoben und in der Größe verändert.
Omikron Basic kann insgesamt 32 solcher Fenster verwalten.

Hinweis: Wenn Sie QuickDraw-Befehle oder die Funktionen der Macintosh Toolbox auf die Omikron Basic Ausgabefenster anwenden wollen, müssen Sie sich zunächst die zugehörigen WindowPtr und GWorldPtr mit den Funktionen 'Get_Window_Ptr' und 'Get_G_World_Ptr' aus der ExtensionLibrary holen. Diese übergeben Sie dann an die entsprechenden MacOS-Funktionen. Bedenken Sie bitte, daß zu jedem Fenster eine Offscreen-Grafics-World gehört, in der der Fensterinhalt gepuffert wird. Zeichenbefehle müssen also sowohl im Fenster als auch in der Offscreen-Grafics-World durchgeführt werden.

Achtung: Da zu jedem Ausgabefenster ein Puffer im Speicher angelegt werden muß, sollten Sie mit dem COMPILER-Steuerwort "PRE_SIZE" bzw. "MIN_SIZE" dafür sorgen, daß genug Heap-Speicher vorhanden ist.
Ein Fenster mit 1280x960 Bildpunkten benötigt bei 256 Farben 1.2 MB Speicher.   
Beispiel: Siehe das Programm 'Mandelbrot.BAS' im Ordner 'DEMO'
 
 
SEC 
Typ: Funktion 
Syntax:  SEC(<num.Ausdruck>) 
Erklärung:  Berechnet den Secans des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus. 
Beispiel: RAD 
PRINT SEC(0.5) 
Ergebnis:   1.13949392732455 
siehe auch:  COSEC   SIN   DEG    RAD 
   
 
 
SECH 
Typ: Funktion 
Syntax:  SECH(<num.Ausdruck>) 
Erklärung:  Berechnet den Secans-Hyperbolicus des numerischen Ausdrucks. 
Beispiel: PRINT SECH(1) 
Ergebnis:   0.648054273663886 
siehe auch:  COSECH   SINH    DEG    RAD 
   
 

 
SEEK 
Typ: Befehl 
Syntax:  SEEK <Dateinummer>, <Position>[,<Modus>] 
Erklärung:  Mit dem SEEK-Befehl setzen Sie den internen Dateizeiger für User-Dateien. Der nächste PUT- oder GET-Befehl schreibt bzw. liest dann ab dieser Position in der Datei. 

<Modus> hat folgende Bedeutung: 

<Modus>=0: Die angegebene Position bezieht sich auf den Dateianfang. 
<Modus>=1: Die Position ist relativ zur aktuellen Position gemeint. Auch negative Werte sind hier möglich (z.B. setzt -5 den Dateizeiger 5 Positionen zurück) 
<Modus>=2: Die Position bezieht sich auf das Dateiende. Nur negative Werte oder 0 sind hier erlaubt. 

Fehlt die Modusangabe, so bezieht sich <Position> auf den Dateianfang.
siehe auch:  OPEN   PUT   GET 
   
 
   
 
SEGPTR 
Typ: Funktion 
Syntax:  SEGPTR 
Erklärung:  Die Funktion SEGPTR liefert einen Zeiger auf die globalen Variablen des Omikron Basics. Die Benutzung dieser Zeiger sollte dem Spezialisten vorbehalten bleiben, da man durch fehlerhafte Änderungen der Einträge leicht das ganze System zum Absturz bringen kann. 

Offset Speicherbereich 

0 Reserviert 
4 Reserviert 
8 Reserviert 
12 Reserviert 
16 Reserviert 
20 0 
24 Zeiger hinter den Array-Bereich 
28 0 
32 Zeiger auf den gerade freien BASIC-Speicher 
36 Zeiger zeigt auf den Anfang der gerade ausgeführten Programmzeile 
40 Garbage-Top 
44 Garbage-Bottom 
48 Reserviert 
52 Unsterste Adresse des BASIC-Stacks (einstellbar mit COMPILER "STACK X") 
56 Reserviert 
60 Höchste Speicheradresse des BASICs (einstellbar mit COMPILER "BAS_MEM" X) 
64 Reserviert 
68 Zeiger auf die Arrays 
72 Zeiger auf den String-Heap

Hinweis: Weitere globale Variablen des Omikron Basics können mit speziellen Funktionen und Prozeduren aus der ExtensionLibrary abgefragt bzw. verändert werden. (z.B. FN Get_Window_Ptr, PROC Set_Pen_Size
siehe auch:  VARPTR    ExtensionLibrary   Die Speicherorganisation im Omikron Basic
   
 

   
SELECT 
Typ: Befehl 
Syntax:  SELECT <Ausdruck> 
Erklärung:  Mit SELECT wird die SELECT ... CASE Anweisung eingeleitet. Der hinter SELECT stehende Ausdruck wird ausgewertet und auf eine Long-Integer-Zahl abgebildet. Bei String-Ausdrücken sind daher nur die ersten vier Zeichen von Belang. Abhängig von diesem einmal ermittelten Wert wird in die folgenden CASE-Teile verzweigt. Der Ausdruck wird nur einmal zu Beginn bewertet, das heißt, wenn er später noch einmal modifiziert wird, dann hat das keine Auswirkungen mehr auf die SELECT ... CASE Verzweigungen. 
siehe auch:  END_SELECT   CASE   DEFAULT   OTHERWISE   CONTINUE   IF 
   


 
SGN 
Typ: Funktion 
Syntax:  SGN(<num.Ausdruck>) 
SGN( X ) 
Erklärung:  Die Signum-Funktion liefert:

-1 für X < 0 
0 für X = 0 
1 für X > 0 
Beispiel: PRINT SGN(7), SGN(-6), SGN(0) 
Ergebnis:   1    -1     0 
 
 
 
SHL 
Typ: Operator 
Syntax:  <num.Ausdruck>SHL <num.Ausdruck> 
<num.Ausdruck>SHL <Anzahl> 
Erklärung:  Verschiebt bitweise nach links. Die höchstwertigsten Bits gehen verloren. In den niederwertigsten Bits werden Nullen nachgeschoben. Von <Anzahl> werden in jedem Fall nur die 5 niederwertigsten Bits berücksichtigt, so daß sich hierfür Werte zwischen 0 und 31 ergeben. 
SHL vermittelt eine vorzeichenlose Integer-Multiplikation mit Zweier-Potenzen ("X SHL Y" entspricht "X*(2^Y)"). 
Beispiel: PRINT 4 SHL 2,1 SHL 10 
Ergebnis:   16    1024 
siehe auch:  SHR 
   
 
 
SHR 
Typ: Operator 
Syntax:  <num.Ausdruck>SHR <num.Ausdruck> 
<num.Ausdruck>SHR <Anzahl> 
Erklärung:  Verschiebt bitweise nach rechts. Die niederwertigsten Bits gehen verloren. In den höchstwertigsten Bits werden Nullen nachgeschoben. Von <Anzahl> werden in jedem Fall nur die 5 niederwertigsten Bits berücksichtigt, so daß sich hierfür Werte zwischen 0 und 31 ergeben. 
SHR vermittelt eine vorzeichenlose Integer-Division durch Zweier-Potenzen ("X SHR Y" entspricht "X\(2^Y)"). 
Beispiel: PRINT 81 SHR 2,64 SHR 1 
Ergebnis:   20    32 
siehe auch:  SHL 
   
 
 
 
SIN 
Typ: Funktion 
Syntax:  SIN(<num.Ausdruck>) 
Erklärung:  Berechnet den Sinus des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus (siehe DEG, RAD). 
siehe auch:  DEG   RAD   COS 
   
 
 
SINH 
Typ: Funktion 
Syntax:  SINH(<num.Ausdruck>) 
Erklärung:  Berechnet den Sinus-Hyperbolicus des numerischen Ausdrucks. 
Beispiel: PRINT SINH(10) 
Ergebnis:   11013.232 
siehe auch:  DEG   RAD   COSH 
   
 
 
SORT [ASC] 
Typ: Befehl 
Syntax:  SORT [ASC] <Feldbezeichner>([[<num.Ausdruck>:]<num.Ausdruck>]) [TO<Feldbezeichner>([<num.Ausdruck>]) [,<Feldbezeichner>([<num.Ausdruck>])]...] 
SORT [ASC] <Feldbezeichner>([[<Start-Index>:]<Ziel-Index>]) [TO<Feldbezeichner>([<Dummy>]) [,<Feldbezeichner>([<Dummy>])]...] 
Erklärung:  SORT sortiert ein eindimensionales Feld. Die Feldelemente werden in aufsteigender Reihenfolge angeordnet. Bei String-Feldern wird streng nach DIN 5007 sortiert, d.h. Groß- und Kleinschreibung wird nicht berücksichtigt. Alle Umlaute werden wie die ausgeschriebenen Buchstabenkombinationen behandelt (Ä = AE, Ö = OE ...). Wenn nur nach ASCII-Werten sortiert werden soll, ist der Zusatz ASC anzugeben. 
Folgt hinter dem SORT-Befehl ein TO, so kann man dahinter beliebig viele weitere Feldbezeichner angeben, die dann auch gleich mit umsortiert werden. Dadurch ist es z.B. möglich, einen Adressendatensatz, der aus den Feldern Name$(), Straße$(), Postleitzahl(), Ort$(), Telefon() 
besteht, nach Namen zu sortieren und dabei gleich die anderen Felder mit umzuordnen, so daß danach die zusammengehörenden Elemente die gleichen Indizes haben. In diesem Fall würde der BASIC-Befehl lauten:
SORT Name$() TO Straße$(),Postleitzahl(),Ort$(),Telefon()

<Ziel-Index> gibt den höchsten Index an, bis zu dem sortiert werden sollen. Wird 0 angegeben, so wird das gesamte Feld sortiert. Das Weglassen von <Ziel-Index> wirkt so, als hätten Sie den höchsten Index angegeben. In diesem Fall wird alles bis zum letzten Element sortiert.

Ab Omikron Basic 7.1 kann zusätzlich ein durch Doppelpunkt abgetrennter <Start-Index> angegeben werden. Damit ist es möglich, nur bestimmte Bereiche des Feldes zu ordnen. Auf diese Weise kann man ein Feld sukzessive nach verschiedenen Kriterien sortieren (siehe auch das Programm 'SORT.BAS' im Ordner 'DEMO').

Hinweis: Wenn Felder mitsortiert werden sollen, so wird dafür zusätzlicher Speicher im Garbagebereich benötigt. Siehe das Kapitel 'Speicherorganisation im Omikron Basic'. Die benötigte Speichermenge können Sie wie folgt berechnen: Anzahl der Elemente in Feldbezeichner() mal 4 plus Speicherbedarf des größten Feldes, das mitsortiert werden soll. 
Beispiel: DIM Werte(10) 
FOR I=0 TO 10 
 Werte(I)= RND(10) 
NEXT I 
SORT Werte() 
FOR I=0 TO 10 
 PRINT Werte(I) 
NEXT I 


DIM Texte$(11) 
REPEAT 
 INPUT "Beliebiger Text [Return]->ENDE : ";Texte$(N) 
 IF LEN(Texte$(N))=0 THEN EXIT 
 N+=1 
UNTIL N>11 
N-=1
IF N>0
THEN SORT Texte$(N) 
FOR I=0 TO N 
  PRINT Texte$(I) 
NEXT I 
ELSE PRINT "Nichts zu sortieren"
ENDIF
INPUT "Programm beenden mit 'RETURN' ";E
END
Ergebnis:  Es werden dem Feld Werte() zunächst 11 Zufallszahlen zugewiesen. Danach wird das Feld geordnet und die Elemente werden auf dem Bildschirm ausgegeben. 
Das zweite Programm ließt maximal 12 Strings vom Benutzer ein, ordnet diese dann und gibt sie auf dem Bildschirm aus.

siehe auch das Programm 'SORT.BAS' im Ordner 'DEMO'
 
 
 
SPACE$ 
Typ: Funktion 
Syntax:  SPACE$(<num.Ausdruck>) 
Erklärung:  Ergibt einen mit Leerzeichen (CHR$(32)) gefüllten String mit der durch den numerischen Ausdruck gegebenen Länge. Die Funktion ist identisch zu SPC
Beispiel: PRINT "*";SPACE$(14);"*" 
Ergebnis:  *              * 
siehe auch:  SPC    STRING$
   
 
 
SPC 
Typ: Funktion
Syntax:  SPC(<num.Ausdruck>) 
Erklärung:  Ergibt einen mit Leerzeichen (CHR$(32)) gefüllten String mit der durch den numerischen Ausdruck gegebenen Länge. Die Funktion ist identisch zu SPACE$
Beispiel: PRINT "*";SPC(14);"*" 
Ergebnis:  *              *
siehe auch:  SPACE$    STRING$ 
   
 

SPEEK 
Typ: Funktion 
Syntax:  SPEEK(<num.Ausdruck>) 
SPEEK(<Adresse>) 
Erklärung:  Liest an der durch den numerischen Ausdruck gegebenen Adresse eine Fließkommazahl mit doppelter Genauigkeit. Sie können diesen Befehl z.B. dazu verwenden, um Omikron Basic fremde Datenstrukturen, die vom Betribssystem oder anderen Programmen stammen in Omikron Basic Fließkommazahlen einzulesen. <Adresse> sollte eine durch 4 teilbare Zahl sein, sonst wird die Funktion erheblich langsamer ausgeführt.
siehe auch:  PEEK   WPEEK   LPEEK   DPEEK   POKE   WPOKE    LPOKE    SPOKE   DPOKE
   


   
SPOKE 
Typ: Befehl 
Syntax:  SPOKE <num.Ausdruck>,<num. Ausdruck> 
SPOKE <Adresse>,<Wert> 
Erklärung:  Legt den Wert an der gegebenen Adresse als eine Single-Float-Zahl ab. Dieser Befehl ist nützlich, wenn man eigene Datenstrukturen mit Fließkommazahlen aufbauen will. <Adresse> sollte eine durch 4 teilbare Zahl sein, sonst wird der Befehl erheblich langsamer ausgeführt.
siehe auch:  PEEK   WPEEK   LPEEK   SPEEK   DPEEK   POKE   WPOKE   LPOKE   DPOKE 
   

SQR
Typ: Funktion 
Syntax:  SQR(<num.Ausdruck>) 
Erklärung:  Berechnet die Quadratwurzel des numerischen Ausdrucks. Der numerische Ausdruck muß ein positiver Wert sein. 
Beispiel:  PRINT SQR(2) 
Ergebnis:   1.4142135623731 
siehe auch:  ^ (Potenzoperator)
   
 
 
STEP
Typ: Befehl
Syntax: STEP <num.Ausdruck>
Erklärung:  Mit STEP können Sie die Schrittweite bei FOR ... NEXT Schleifen festlegen. Für den numerischen Ausdruck können beliebige Integer- oder Fließkommazahlen eingesetzt werden. Auch negative Zahlen sind zulässig. 
siehe auch:  FOR   NEXT
   
 

STOP 
Typ: Befehl 
Syntax:  STOP 
Erklärung:  STOP bricht die Programmausführung ab. Im Unterschied zu END wird vorher noch eine Fehlermeldung ausgegeben.
Wenn das Programm mit Debuggen gestartet wurde, wird es direkt hinter dem STOP-Befehl angehalten und der Debugger aktiviert, so dass Sie die weitere Programmausführung über den Debugger kontrollieren können.
 
 
 
STR$ 
Typ: Funktion 
Syntax:  STR$(<num.Ausdruck>) 
Erklärung:  STR$ wandelt den numerischen Ausdruck in einen String um. STR$ ist also die Umkehrfunktion zu VAL. Bei der Umwandlung werden alle mit USING getroffenen Einstellungen beachtet. 
STR$ wandelt immer ins Dezimal-Format, gegebenenfalls in Exponentialdarstellung. Zur Wandlung in andere Zahlensysteme verwenden Sie HEX$, OCT$ oder BIN$. 
Beispiel: Pi$=STR$(PI) 
USING " DM ###.##" 
Betrag$=STR$(12.121) 
USING ' abschalten 
PRINT Pi$,Betrag$ 
Ergebnis:   3.14159265358979    DM 12.12 
siehe auch:  VAL   BIN$    HEX$    OCT$    USING 
   
 
 
 
STRING$ 
Typ: Funktion 
Syntax:  STRING$(<num.Ausdruck>,{<num.Ausdruck>|<String-Ausdruck>}) 
STRING$(<Anzahl>,{ASCII-Code|<String-Ausdruck>} 
Erklärung:  Erzeugt einen String der Länge <Anzahl>, in dem das durch <String-Ausdruck> oder seinem entsprechenden <ASCII-Code> (siehe ASCII-Tabelle) gegebene Zeichen entsprechend oft vorkommt. Es gilt nur das erste in <String-Ausdruck> vorkommende Zeichen. 
Beispiel: PRINT STRING$(10,"*"),STRING$(10,95) 
Ergebnis:   **********    __________ 
siehe auch:  SPACE$    SPC   *(Stringmultiplikation)
   
 
 
 
SWAP 
Typ: Befehl 
Syntax:  SWAP <Variable>,<Variable> 
Erklärung:  Vertauscht die Inhalte der beiden gegebenen Variablen. Die beiden Variablen müssen identischen Variablentyps sein. Es können auch Feldvariablen mit Einzelvariablen vertauscht werden. 
Beispiel: A=10:B=20 
SWAP A,B 
PRINT A,B 
Ergebnis:   20    10 
 
 
 
SYSTEM
Erklärung:  Hat in Omikron Basic keine Bedeutung und wird vom Compiler ignoriert. Bitte nicht verwenden. 
   
 
 
TAB 
Typ: Funktion 
Syntax:  TAB(<num.Ausdruck>) 
Erklärung:  Diese Funktion tabuliert Ausgaben von PRINT, LPRINT oder PRINT #. Der numerische Ausdruck gibt die neue Ausgabespalte an, auf die der Schreibzeiger vorrückt. Befindet sich der Zeiger bereits hinter der durch TAB definierten Spalte, so wird die Position des Schreibzeigers nicht verändert. Der Zeiger wird also im Gegensatz zu @ nicht wieder zurückgesetzt.
Beispiel: PRINT TAB(10);"10. Spalte";TAB(25);"25. Spalte" 
PRINT TAB(10);1.256;TAB(25);3.6589 
Ergebnis:            10. Spalte     25. Spalte 
           1.256           3.6589 
siehe auch:  PRINT    PRINT @    LPRINT 
   
 
 
 
TAN 
Typ: Funktion 
Syntax:  TAN(<num.Ausdruck>) 
Erklärung:  Berechnet den Tangens des numerischen Ausdrucks. Das Ergebnis ist abhängig vom eingestellten Winkelmodus. 
Beispiel: RAD: PRINT TAN(PI / 8) 
Ergebnis:   0.414213562373095 
siehe auch:  COT 
   
 
 
 
TANH 
Typ: Funktion 
Syntax:  TANH(<num.Ausdruck>) 
Erklärung:  Berechnet den Tangens-Hyperbolicus des numerischen Ausdrucks. 
Beispiel: PRINT TANH(0.5) 
Ergebnis:   0.46211715726001 
siehe auch:  COTH
   
 
 
 
TEXT 
Typ: Befehl 
Syntax:  TEXT <num.Ausdruck>,<num.Ausdruck>,<String-Ausdruck> [,<num.Ausdruck>,<num.Ausdruck>,<num.Ausdruck>] 
TEXT <X>,<Y>,<Ausgabetext> [,<Breite>,<Wortflag>, <Buchstabenflag>] 
Erklärung:  Dieser Befehl gibt einen formatierten Grafik-Text aus. Die Koordinaten <X> und <Y> erlauben pixelgenaues Positionieren des Textes. Dabei wird der Text so ausgegeben, daß sich die linke Ecke der Basislinie an der Position (<X>,<Y>) befindet. 
Wenn die Textbreite und die Formatflags mit angegeben sind, wird je nach Einstellung zusätzlich formatiert. Ist das Wortflag auf 1 gesetzt, so erfolgt die Anpassung der Breite durch eine Dehnung der Wortzwischenräume. Wenn zusätzlich das Buchstabenflag gesetzt ist, werden auch die Buchstabenzwischenräume angepasst, so daß ein ausgeglichener Blocksatz entsteht. 
Textfarbe, Stil, und Größe können über TEXT COLOR, TEXT STYLE bzw. TEXT HEIGHT bestimmt werden. Ist mittels CLIP ein Bildfenster definiert, so wird außerhalb dieses Bereiches nicht gezeichnet. 
Der verwendete Font kann mit der Prozedur 'Set_Text_Font' aus der ExtensionLibrary bestimmt werden.
Beispiel: TEXT 10,23,"Dieser lange Satz soll genau in den Kasten passen",420,1,0 
BOX 9,9,423,20 
PRINT : PRINT 
Ergebnis:  Der Text wird durch Verbreiterung der Wortzwischenräume so formatiert, daß er genau in die gezeichnete Box passt. 
siehe auch:  TEXT COLOR    TEXT HEIGHT    TEXT STYLE    Set_Text_Font 
   
 
 
 
TEXT COLOR 
Typ: Befehl 
Syntax:  TEXT COLOR = <num.Ausdruck> 
TEXT COLOR = <Farbnummer> 
Erklärung:  Definiert die Schriftfarbe für Grafik-Text. Mit der Prozedur 'Set_Text_Back_Color' aus der ExtensionLibrary läßt sich auch die Hintergrundfarbe verändern.
siehe auch:  TEXT    Set_Text_Fore_Color    Set_Text_Back_Color 
   
 
 
 
TEXT HEIGHT 
Typ: Befehl 
Syntax:  TEXT HEIGHT = <num.Ausdruck> 
TEXT HEIGHT = <Höhe in Pixeln> 
Erklärung:  Setzt die Texthöhe des Grafik-Textes. 
Beispiel: FOR Text_H=2 TO 17 
 TEXT HEIGHT =Text_H 
 TEXT 10,Y+5, STR$(Text_H)+" Punkt Textprobe" 
 Y+=Text_H*2 
NEXT Text_H 
Ergebnis:  Es wird Text in verschiedener Größe auf den Bildschirm geschrieben. 
siehe auch:  TEXT   Set_Text_Size
   
 
 

POS  -  SAVE Inhalt | TEXT ROTATION - XOR

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


© 1997-2001 Berkhan-Software