OPTIX HELP FILE (q▄N╚óTεln(╥ûÇ
Ö╒φ=Xx}╞y═: ⌐ !ä!@"£"∙"Ä#($▄$ê%ⁿ%▒&c'R,╨.±0Ñ1n3l4δ5¡:ì;G?R@WA█B5CÄCkD¼E}F+JφK/Q=R╞RÜSσS╟TåU¼V~X┐ZO[⌐[Σ\!^╢^+_¿_{`aïbhcd⌐d∙e½g≥h═i╘jAl?m│men²nüopçp+q╓q@rssås▒t⌐uvåw╒xDyÖy"zzz*{¼|└|ε|ü}~iYÇφÇiü}üéÄéâ═â]ä╜à
ç£ëè2ïÅïuî[ì7Å∞ÅaÉPæö²öÇò°òMû¬û╕ù%ÿ╘ÿ|Ö£█£░¥₧σƒ~áÅá±íóºó¬ñ▌ª	⌐½¡« »░ß▒╡▓y│`┤Σ┤i╡±╡╦╢ⁿ║▐╗º╝╞╜╩╛"┐x┐m└└┴ò┬├r├Σ├á─┼E╞ε╞u╟E╚'╔╩╔╦╩ê╠£╬╧;╨╥╗╥;╘└╘▌╘8█▒█*▄¥▄K▌Γ▀ß∞ßSπRσ(τ,ΘÉΩ9∞£φ₧εªε«ε║ε╚∩╚∩8±8±8±8±\≥≤╕≤╕≤╒⌠O⌡╬⌡╬⌡─÷F≈+°∙·#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√#√0■@■@■▌■▌■▌■▌■~Σ=▒5└r≈Éf▄0	₧	(

≥d╫╧
0├╪s}àìò¥Ñ(+
           Editorfunktionen

  F1  Aufruf OPTIX Hilfe
  F2  Abspeichern Datei
  F3  Öffne Datei
  F9  Kompilieren und Start
  F10 aktiviere Menüzeile

  CTRL+F1  Zeige Hilfe zum Befehl an
           d.aktuellen Cursorposition
  ALT +F1  Wiederhole letzte Hilfe


  CTRL K..   Blockfunktionen

  B   Kennzeichne Anfang Block
  K   Kennzeichne Ende Block
  L   Kennzeichne Zeile
  H   Verstecke Block
  I   BLock einrücken
  U   Block zurückrücken
  R   Lese Block von Disk
  W   Schreibe Block auf Disk
  C   Kopiere Block
  V   Verschiebe Block
  Y   Lösche Block
  S   Abspeichern Datei

  CTRL Q..

  A   Suchen und ersetzen
  L   Restore Zeile
  F   Suchen
  Y   Lösche bis Ende der Zeile

  CTRL L    Wiederhole Suche
  CTRL Y    Lösche Zeile
'
â
  REM

  Dient zum Einfügen einer  Kommen-
  tarzeile in den Quelltext.  Diese
  Zeile wird beim Kompilieren igno-
  riert.
-
½
  SETALLPAL

  Kopiert die Hintergrund-Farbpalette
  (die z.B. mit einem Bild geladen wird),
  in die aktuelle (Vordergrund-) Palette,
  wodurch sie sichtbar wird.
(
ô
  FADEPAL(Z)

  Blendet die Hintergrund-Palette in
  die aktuelle (Vordergrund)-Palette
  über. 'Z' bestimmt dabei die Zeit-
  verzögerung.
'w
  FADEOUTSUBPAL(V,Z)

  Blendet  die  aktuelle Subpalette
  'V' nach schwarz aus. 'Z' ist die
  Zeitverzögerung.
)ì
  FADEINSUBPAL(V,Z)

  Blendet die aktuelle Subpalette 'V'
  von schwarz zur  Hintergrundpalette
  ein. 'Z'  ist  die Zeitverzögerung.
*g
  CLEARSCREEN(Col)

  Löscht den  Bildschirm,  d.h.  füllt
  ihn vollständig mit der Farbe 'Col'.
8%│
  LOADPIC(V,Z)

  Lädt den Inhalt des  Hintergrundspeichers in den
  aktuellen  Vordergrund- Bildspeicher.  'V'  gibt
  dabei den Lademodus, 'Z' die Zeitverzögerung an.
  Die Hintergrundpalette  wird (außer bei Typ '0')
  nicht  automatisch  mitgeladen (vgl. SETALLPAL).

  1      maxim.Ladegeschwindigkeit. Die Zeitangabe
         'Z' wird hier ignoriert. Die Palette wird
         mitgeladen!
  2      Zeilenweise von oben nach unten.
  3      v.Bildmitte aus zeilenw.nach oben u.unten.
  8      diagonal von links oben nach rechts unten
  9      wie oben, jedoch mit Papierblatteffekt
         mit aktueller SETCOLOR-Einstellung
  10     allseitig von außen nach innen
  11     allseitig von innen nach außen
  12..17 blockweise in verschiedenen Mustern
  20     anwachsende Quadrate
  40     schmale Balken von oben  nach unten, dann
         von unten nach oben
  41     schmale Balken, oben u.unten gleichzeitig
         beginnend
  42     jede zweite Zeile, oben und unten gleich-
         zeitig beginnend
  43     jede zweite Spalte, rechts und links
         gleichzeitig beginnend
  44     jede zweite Zeile v.oben nach unten, dann
         von unten nach oben
(
ú
  PAUSE(Z)

  Unterbricht  den  Animationsablauf
  um  'Z'  Millisekunden. Kann durch
  einen beliebigen Tastendruck (Maus
  oder Tastatur) beendet werden.
(╜
  END

  Kennzeichnet das Ende eines OPTIX-
  Programms. Kompiliert wird nur bis
  zum ersten Auftreten von END. Alle
  dahinter stehenden  Befehle werden
  vom Compiler ignoriert.
&π
  SETGAMMA(V)

  Bewertet die  Hintergrundpalette
  mit dem Gammafaktor 'V'. Für 'V'
  muß das 10-fache des gewünschten
  Gammafaktors  eingesetzt werden.
  Als Wertebereich für den  Gamma-
  Faktor gilt 0,1..G..10,0.
2
  EXECUTE('Name.COM/EXE','Parameter')

  Führt das DOS-Programm 'Name' als Subprozess
  aus. Das Programm muß eine 'COM'- oder 'EXE'
  Datei sein, das Suffix (COM oder EXE)  sowie
  der Pfad muß mit angegeben werden.  Die Aus-
  führung  einer  Batch-Datei ist nur möglich,
  wenn COMMAND.COM vorher geladen wird.

  Beispiel:

     GETENV('COMSPEC',COMMAND$)
     EXECUTE(COMMAND$, '/C TEST.BAT')

  Nach Rückkehr wird der Grafikmodus von OPTIX
  wieder restauriert,  falls er vom Subprozess
  verändert wurde.
+5
  SOUND('Name.WAV/VOC/SND/BYT')

  Startet d. Wiedergabe des 8 Bit-Sounds
  'Name.xxx'. Die Wiedergabe kann durch
  einen beliebigen Tastendruck abgebro-
  chen  werden.  Zu den  Sound-Formaten
  beachten Sie die Anmerkungen im Hand-
  buch.  VOC-Dateien können auch 4 Bit-
  Deltakomprimiert sein.
30
  INCLUDE('Name.TXT/OPT/INC')     (nur 'PRO')

  Fügt  während  des  Kompilierens  die Datei
  'Name.xxx'  in  den  Quelltext ein. INCLUDE
  steht 100% stellvertretend für diese  Datei
  und hat weiter keine Wirkung.Ermöglicht das
  Verarbeiten  von  Quelltexten mit  mehr als
  64 KByte Größe.
.┌
  READPIC('Name.BMP/PCX/TGA/GIF')

  Liest das Bild  'Name.xxx' von der Fest-
  platte, Diskette, CD etc. in den Hinter-
  grund-Bildspeicher,  wobei  die  Palette
  des Bildes die Hintergrundpalette  über-
  schreibt.  Gelesen werden Bilder vom Typ
  'BMP' in 2, 16 und 256 Farben,  'GIF' in
  16  und  256 Farben  (Dekompressionszeit
  beachten!)  sowie die  Formate 'TGA' und
  'PCX'  in  256  Farben.  'TGA' und 'BMP'
  Bilder können auch komprimiert sein.
0$
  LINETO(X1,Y1,Z)

  Zieht eine Linie  mit der Vordergrundfarbe
  (SETCOLOR)  vom aktuellen Grafikcursor (s.
  GETGCURSOR) zur  Koordinate  'X1, Y1'. 'Z'
  gibt dabei die gewünschte  Zeitverzögerung
  an. Der Grafikcursor wird anschließend auf
  den letzten Punkt der Linie gesetzt.
7
  PROCEDURE Name [(V1[,V2.. V8 / V16 ])]

  Deklariert  den  Anfang einer  Prozedur. Optional
  können  in Klammern  (durch  Komma  getrennt) bis
  zu 8 ('PRO'=16) numerische  Übergabeparameter mit
  deklariert werden.Das Ende einer Prozedur muß mit
  RETURN gekennzeichnet werden. Labelsprünge  (z.B.
  GOTO) aus einer Prozedur heraus  oder hinein sind
  nicht erlaubt.  Labels sind immer  lokal in einer
  Prozedur.

      PROCEDURE Name(Parameter1,Parameter2,etc.)
       .
       ...Prozedur-Inhalt
       .
      RETURN
*
  WRITESTYLE(V)

  Legt durch 'V' die Art und Weise der
  Textaugabe fest.

   1 schreibt  ohne Effekt  in Höchst-
     geschwindigkeit.

   2 schreibt  zuerst  mit der Hinter-
     grundfarbe  ( TEXTBCOLOR ),  dann
     nach  der  durch  TEXTSPEED fest-
     gelegten Zeitverzögerung  mit der
     Text-Vordergrundfarbe (TEXTCOLOR)
     -erzeugt bei entsprechender Farb-
     wahl einen Aufblitzeffekt.

   3 erzeugt  Schattenschrift mit Vor-
     dergrund-  und  Hintergrund-Farbe
     (TEXTCOLOR/TEXTBCOLOR).
8
  PRINTLN('Text')
  PRINTLN(Stringvar)
  PRINTLN('Text'+Stringvar)
  PRINTLN(STR(NumVar,Ln)) etc.

  Gibt  den  angegebenen  'Text',  bzw.  den  Inhalt
  der  angegebenen  Stringvariablen  auf  dem  Bild-
  schirm  aus.  Die  linke  obere  Ecke  des  ersten
  Zeichens wird  dabei von  der  aktuellen  Position
  des   Grafikcursors  bestimmt.  Die  Schrifteigen-
  schaften  (Größe etc.)  werden  vom aktuellen Font
  (s. FONT)  bestimmt.  Der  Grafikcursor  wird  von
  PRINTLN auf den Anfang der nächsten Zeile gesetzt.
2■
  PRINTAT(X0,Y0,'Text')
  PRINTAT(X0,Y0,Stringvar)
  PRINTAT(X0,Y0,'Text'+Stringvar)
  PRINTAT(X0,Y0,CHR(NumVar)) etc.

  Gibt den angegebenen 'Text', bzw. den Inhalt
  der  angegebenen  'Stringvar'iablen  auf dem
  Bildschirm  aus.  Die  linke  obere Ecke des
  ersten Zeichens  wird  durch 'X0'  und  'Y0'
  bestimmt.  Die  Schrifteigenschaften  (Größe
  etc.) werden  vom aktuellen  Font  (s. FONT)
  bestimmt.  Der Grafikcursor  wird  nach  dem
  Schreiben wieder auf 'X0, Y0' zurückgesetzt.
.B
  FONT(V)

  Schaltet den  Schriftsatz 'V' (0-4) ein.
  'V'=1 bis 4 sind  für  OPTIX- Proportio-
  nalfonts  vorgesehen. Diese  Fonts müßen
  zuvor mit  READFONT  installiert  worden
  sein.  Durch FONT(0) wird einer von drei
  VGA - internen  Systemfonts  installiert
  (zweifarbig, unproportional, s.SYSFONT).
#¼
  VIEWPORT(X0,Y0,X1,Y1)

  Definiert  den  Viewport  auf
  den angegebenen  Koordinaten,
  wobei X0, Y0 die linke obere,
  X1, Y1 die rechte untere Ecke
  angeben.
"M
  SETGCURSOR(X0,Y0)

  Setzt den virtuellen Grafik-
  cursor auf X0,Y0.
'f
  INCVIEWPORT

  'Inkrementiert' den Viewport,d.h.
  erweitert  alle  Seiten  um einen
  Pixel.
(h
  DECVIEWPORT

  'Dekrementiert' den Viewport, d.h.
  verkleinert  alle Seiten  um einen
  Pixel.
 j
  FADEIN(Z)

  Blendet ein Bild von einem
  schwarzen Hintergrund ein.
  Z ist die Zeitverzögerung.
c
  FADEOUT(Z)

  Blendet das aktuelle Bild
  nach schwarz aus. 'Z' ist
  die Zeitverzögerung.
%╡
  ROTSUBPAL(V)

  Rotiert,  d.h.  verschiebt  die
  Farben  der  Subpalette  'V' um
  einen Platz. Der letzte Eintrag
  der  Subpalette   wird  in  den
  ersten übernommen.
%U
  TEXTCOLOR(Col)

  Legt die Vordergrundfarbe 'Col'
  des aktuellen Fonts fest.
%V
  TEXTBCOLOR(Col)

  Legt die Hintergrundfarbe 'Col'
  des aktuellen Fonts fest.
'
Ä
  TEXTSPEED(Z)

  Legt  die   Zeitverzögerung   des
  aktuellen Fonts  bei  der Ausgabe
  fest. Ist nicht bei WRITESTYLE(0)
  wirksam.
*
ô
  TEXTTRNSP(V)

  Legt für den  aktuellen  Font  fest,
  ob  transparent  geschrieben  werden
  soll. V = 1 schaltet die Transparenz
  ein.
#¡
  PICPATH('Pfad')
  PICPATH(PFAD$)

  Definiert den Zugriffs-'PFAD'
  für  alle Schreib-  und Lese-
  zugriffe auf Disk/Festplatte.

  z.B.: PICPATH('C:\PICTURES')
(
Ñ
  GOTO('Label')

  Springt zur Marke ':Label'. Labels
  werden case-sensitive ausgewertet,
  d.h.,  Groß-  und  Kleinschreibung
  wird vom Programm beachtet!
$m
  SCRTOBUF

  Kopiert den Inhalt des Vorder-
  grund- Bildschirmspeichers  in
  den Hintergrundpuffer.
*
«
  TEXTSHADOW(XD,YD)

  Legt  für  den  aktuellen  Font  die
  Verschiebung des Schattens gegenüber
  dem Text fest. 'XD', 'YD' können die
  Werte -128..+127 annehmen.
%½
  TEXTLOFS(V)

  Legt für den aktuellen Font den
  Zeilenabstand fest.'V' wird zum
  Zeilenabstand des Fonts addiert
  und kann die Werte -128 .. +127
  annehmen.
B%Φ
  DEFBUTTON(X0,Y0,XM,YM,P,E,R,M,TASTE,'Label')

  Erzeugt einen  Button für  die CHECKBUTTON-Kontrolle mit den
  Koordinaten 'X0, Y0' für die linke, obere Ecke und der Größe
  'XM, YM'. Ist 'XM' oder 'YM' gleich Null, so wird der Button
  nicht gezeichnet, die Funktionalität bleibt jedoch erhalten.

   'P' gibt die Subpalette (0-15) an,  aus welcher  die Farben
       des Buttons (0, 7, 8 und 15) entnommen werden.

   'E' =0 bewirkt, daß der Button nach dem Drücken automatisch
       gelöscht  wird  (Restore aus  dem Hintergrundspeicher).

   'R' =1 erzeugt einen zusätzlichen Rand im Button.

   'M' =0 unterdrückt das Zeichnen des Buttons, der Button ist
       jedoch innerhalb  der angegebenen Größe  'XM' und  'YM'
       weiterhin mit der Maus bedienbar.

   'TASTE' bestimmt  die Taste, mit  welcher der entsprechende
   Button 'ausgelöst'  werden soll. Dieser  Parameter  kann in
   folgenden Schreibweisen übergeben werden:

      #65   - Num-Zeichen+ASCII-Code der Taste
      'A'   - Buchstaben-Code der Taste
      ESC   - Direktangabe von Systemkonstanten (s.Handbuch)

   'Label' bestimmt die Programm-Marke, zu  welcher von CHECK-
   BUTTON aus verzweigt werden soll,wenn die Taste 'ausgelöst'
   wurde.
4w
  CHECKBUTTON('Label',Z,U)

  Unterbricht  den   Ablauf  der  Animation  und
  wartet  auf  eine  Eingabe  per  Tastatur oder
  Maus. Wird eine zuvor mit DEFBUTTON definierte
  Taste  gedrückt,  erfolgt ein  Sprung zum ent-
  sprechenden Button - Label. Wird innerhalb 'Z'
  Sekunden keine gültige Taste gedrückt, erfolgt
  ein Sprung  zum Label 'Label'. Eine Mausbedie-
  nung ist möglich, wenn vor CHECKBUTTON d.Maus-
  cursor mit CURSON eingeschaltet wird.Mit 'U'=1
  wird die aktuelle Uhrzeit  auf den  zuvor  mit
  CLOCKXY  definierten  Koordinaten  im  aktuell
  eingestellten Schriftsatz (s. FONT) angezeigt.
0
  SAVETEXT('Name.Txt',START,ANZAHL)

  Speichert  im aktuellen  PICPATH unter dem
  beliebigen  Dateinamen  'Name.Txt' ab  dem
  Feldindex  'START' soviele Zeilen  aus dem
  aktuell geöffneten Textfeld  (s.DEFAS) ab,
  wie  durch 'ANZAHL'  angegeben  wurden. In
  der Datei sind dann alle Zeilen  durch die
  Zeilen-Endezeichen  'Carriage Return'  und
  'Linefeed'  ASCII 13  und ASCII  10  abge-
  schlossen. Der Text kann also anschließend
  durch  jedes  Standard- Textverarbeitungs-
  programm weiterverarbeitet werden.
"¡
  SETPSTD

  Schreibt die Standardpalette
  in den  Palettenpuffer.  Die
  Standardpalette  enthält  in
  allen Subpaletten die  Stan-
  dard-DOS 16 Farben-Palette.
3┬
  MOVEBITMAP(X0,Y0,X1,Y1,S,Z,E)

  Zeichnet die im  WIN-Puffer vorhandene Bitmap
  auf den Koordinaten 'X0' und  'Y0' und bewegt
  sie dann zu den Koordinaten 'X1, Y1'. KEY(on)
  wird dabei berücksichtigt.

   'S' gibt  die  Anzahl  der  Zwischenschritte
       (0 - 1280) an.

   'Z' erzeugt  eine  Zeitverzögerung  zwischen
       den einzelnen Schritten.

   'E' = 0 löscht die Bitmap nach dem Verschie-
       ben vom Bildschirm.
.≈
  READFILM('Name.MVI')

  Liest  den  Film 'Name.MVI' (256 Farben-
  Bitmap-Clip  unkomprimiert; s. Handbuch)
  in den EMS-Video-Speicher. Dabei  werden
  alle Fonts aus dem Speicher entfernt und
  müssen anschließend neu geladen  werden.
/x
  SHOWFILM(X0,Y0,Z,V)

  Zeigt den  zuvor mit  READFILM  geladenen
  OPTIX-Film. 'X0, Y0' sind  die Koord. der
  linken oberen Ecke. 'Z'  gibt  die  Zeit-
  verzögerung  zwischen  zwei  Bildern  an.
  'V' gibt  die Anzahl  der  Wiederholungen
  an. Bei 'V' > 255 wird endlos wiederholt.
  Der vom  Film belegte  Speicher wird nach
  dessen Ende wieder freigegeben.
4&╗
  CBOX(TYP,COL,ZEIT)

  Zeichnet ein Rechteck  der Farbe 'COL' mit der
  Größe des aktuellen Viewports. Mit 'ZEIT' wird
  die  Geschwindigkeit des  Zeichnens angegeben.

  'TYP' gibt folgende Eigenschaften an:

     0  zeichnet  mit  höchster Geschwindigkeit.
        Die Angabe der Zeit hat keinen Einfluss.
     1  Zeilenweise von oben nach unten.
     2  Zeilenweise von unten nach oben.
     3  Spaltenweise von links nach rechts.
     4  Spaltenweise von rechts nach links.
     5  Jede zweite Zeile, gleichzeitig oben
        und unten beginnend.
     6  Jede zweite Zeile von oben nach unten,
        dann von unten nach oben.
     7  Senkrechte Balken von oben nach unten,
        dann von unten nach oben.
     8  Einstreuen pixelweise.
     9  Transparentes Raster v. oben nach unten.
     10 Transparentes Raster v. unten nach oben.
     11 Zeilenweise  in der Mitte beginnend nach
        oben und unten.
     12 Spaltenweise in der Mitte beginnend nach
        rechts und links.
     13 zeichnet ein virtuelle Fläche (XOR 255),
        die durch erneutes XOR - Zeichnen wieder
        verschwindet (Col wird dabei ignoriert).
     15 Vom Mittelpunkt aus anwachsend.
*┘
  READFONT(V,'Font.fnt')

  Liest den OPTIX-Font 'Font.fnt'  von
  der Festplatte, Diskette, CD etc. in
  einen der Fontpuffer 'V'.  Es können
  maximal 4 Proportional-Fonts gleich-
  zeitig verwaltet werden.
A│
  RESTOREBOX(TYP, Z)

  Kopiert den  Hintergrundspeicher in der Größe des
  aktuellen Viewports (s.dort) in den  Vordergrund-
  Bildschirmspeicher. Mit 'Z' wird die Zeitverzöge-
  rung  angegeben.

  'TYP' gibt folgende Lade-Modi an:

      0 zeichnet mit höchster Geschwindigkeit.
        Die Angabe der Zeit ist ohne Einfluss.
      1 Zeilenweise von oben nach unten.
      2 Zeilenweise von unten nach oben.
      3 Spaltenweise von  links  nach  rechts.
      4 Spaltenweise  von  rechts  nach links.
      5 Jede 2. Zeile, gleichzeitig von oben und unten
      6 Jede 2. Zeile von oben nach unten, dann umgekehrt
      7 Senkrechte Balken von oben nach unten, dann von
        unten nach oben.
      8 Einstreuen pixelweise. (Keycolor wird hier beachtet!)
     11 Zeilenweise in d.Mitte beginnend nach oben u.unten.
     12 Spaltenweise i.d.Mitte beginnend nach rechts u.links.
     15 Vom Mittelpunkt aus anwachsend.
+
  ROTPAL(A,E)

  Rotiert einen  Bereich der  aktuellen
  Palette um eine Position.  Anfang und
  Ende dieses Bereiches werden  mit 'A'
  und 'E'  festgelegt (0..255). Ist 'E'
  größer als 'A', wird die Palette nach
  rechts, sonst nach links rotiert.
,■
  LINE(X0,Y0,X1,Y1,Z)

  Zieht eine Linie mit  der Vordergrund-
  farbe  (SETCOLOR)  von  'X0, Y0'  nach
  'X1,Y1'. 'Z' gibt dabei die gewünschte
  Zeitverzögerung  an. Der  Grafikcursor
  wird anschließend  auf  das  Ende  der
  Linie gesetzt.
+}
  PLATEAU(Col1, Col2)

  Zeichnet  ein Linien-Rechteck mit den
  aktuellen VIEWPORT-Koordinaten, wobei
  die Linien  links  und  oben  mit der
  Farbe 'Col1' und  die  Linien  rechts
  und  unten  mit  der Farbe 'Col2' ge-
  zeichnet werden.  Bei geeigneter Wahl
  der Farben (oben/links = hell, unten/
  rechts = dunkel) entsteht so  ein 3D-
  Licht-/Schatten-Effekt.
$S
  SETBCOLOR(Col)

  Setzt die Hintergrundfarbe auf
  den Wert 'Col'. (0..255)
$R
  SETCOLOR(Col)

  Setzt die Vordergrundfarbe auf
  den Wert 'COL'. (0..255)
(╓
  SETRGBCOLOR(R,G,B,COL)

  Schreibt die Farbanteile 'R, G, B'
  in den  Paletteneintrag 'COL'  der
  aktuellen Vordergrund-Farbpalette.
  'R', 'G' und 'B' haben einen maxi-
  malen Wertebereich von 0..63.
,:
  TIMEOUT('Label',Z)

  Hält  den  Ablauf  der  Animation  an.
  Wird  innerhalb von 'Z'  Sekunden eine
  beliebige  Taste  gedrückt,  wird  die
  Animation  mit  dem   nächsten  Befehl
  fortgesetzt. Erfolgt kein Tastendruck,
  verzweigt  OPTIX  nach Ablauf  von 'Z'
  Sekunden zum angegebenen 'Label'.
-
╩
  SHOWPALETTE(X0,Y0,Größe)

  Zeichnet die  aktuelle  Palette auf den
  Koordinaten X0,Y0 des Bildschirms. Eine
  'Größe' von 1 zeichnet in voller Größe,
  mit 2 wird in halber Größe gezeichnet.
5º
  READTEXT('Name.Txt',START,ANZAHL)

  Liest  'ANZAHL'  Zeilen  der  beliebigen ASCII-
  Textdatei   'Name.xxx'   ab   dem   angegebenen
  'START'-Index in das  aktuell  geöffnete  Text-
  feld (s. DEFAS). Dateiintern müssen die  Zeilen
  durch  'Carriage Return' und 'Line Feed' (ASCII
  13  und  ASCII 10 =  Standard-ASCII-Textformat)
  abgeschlossen sein. Es kann also jede Standard-
  textdatei eines  Textverarbeitungsprogramms ge-
  lesen werden.Die Datei darf beliebig groß sein,
  sofern  sie  die  Größe des aktuell  geöffneten
  Textfeldes (s. DEFAS) nicht überschreitet.

  Werden mehr  Zeilen gelesen, als in das Feld ab
  'START' hineinpassen, erscheint eine Fehlermel-
  dung. Sind  gelesene Zeilen  länger als  die in
  der DEFAS-Anweisung vorgesehene Zeilenbreite,so
  werden die überschüssigen Zeichen ignoriert. In
  der Systemvariablen 'LINCTR' steht die tatsäch-
  lich gelesene Zeilenanzahl.
3╗
  PRINTTEXT(X0,Y0,START,ANZAHL,MODUS)

  Gibt  mit  den  aktuellen  Font-Einstellungen
  (s.FONT)  ab dem  Feldindex  'START' 'ANZAHL'
  Zeilen  des  aktuell  geöffneten   Textfeldes
  (s.DEFAS) auf dem  Bildschirm aus. Die  linke
  obere Ecke wird dabei mit 'X0,Y0' festgelegt.
  'MODUS' gibt an, ob vor einer Tabellenausgabe
  die jeweils  ausgegebene Zeile mit einer CBOX
  in der  max.  Zeilenbreite  hinterlegt werden
  soll.
@$;
  LOADWIN(X0,Y0,TYP,Z)

  Lädt das geladene Fenster aus dem aktuellen WIN-Bildpuffer
  auf die Koordinate 'X0,Y0'  des Bildschirms. 'Z'  bestimmt
  dabei d.Zeitverzögerung.KEY(on) wird dabei berücksichtigt.

  'TYP' gibt folgende Eigenschaften an:

     0  zeichnet mit höchster Geschwindigkeit.
        Die Angabe der Zeit wird ignoriert.
     1  Zeilenweise von oben nach unten.
     2  Zeilenweise von unten nach oben.
     3  Spaltenweise von links nach rechts.
     4  Spaltenweise von rechts nach links.
     5  Jede 2. Zeile, gleichzeitig oben und unten beginnend.
     6  Jede 2. Zeile von oben nach unten, dann umgekehrt
     7  Senkrechte Balken von oben nach unten,
        dann von unten nach oben.
     8  Einstreuen pixelweise.
     9  Transparentes Raster von oben nach unten.
     10 Transparentes Raster von unten nach oben.
     11 Zeilenweise in d.Mitte beginnend nach oben und unten.
     12 Schiebt das Bild von oben nach unten ein.
     16 Zeichnet Vollfläche der Win-Stanze in akt.SETCOLOR
     17 Zeichnet Raster der Win-Stanze in akt. SETCOLOR
     18 Zeichnet Originalfläche und SETCOLOR-Pixelraster der
        Win-Stanze 1:1 durchmischt
     19 Zeichnet Inversmaske d.aktuellen KEYCOL in SETCOLOR
     20..29 skaliert von 1:2, 1:3 ... bis 1:8
     30..39 skaliert von 10% bis 90%
(
  READPAL('Name.PAL')

  Liest die Palette  'Name.PAL'  von
  Festplatte, Diskette, CD etc.  und
  schreibt sie in  die  Hintergrund-
  palette,  wobei  eine automatische
  Anpassung an d. VGA-Palette (Shift
  um 2 Bit nach rechts)  vorgenommen
  wird.
)é
  SETSUBPAL(SPAL)

  Kopiert die Subpalette 'SPAL'(0-15)
  aus dem  Hintergrund-Palettenpuffer
  in die Vordergrundpalette.
%═
  BRUSHLINE(X0,Y0,X1,Y1,S,Z)

  Zieht eine Linie der Stärke 'S'
  von 'X0, Y0' nach 'X1, Y1'. 'Z'
  bestimmt  die  Zeitverzögerung.
  Für die  Linienstärke  'S' sind
  Werte von 1 bis 10 zulässig.
!D
  SETPVGA

  Schreibt die VGA-Palette in
  den Palettenpuffer.
,█
  SAVEBUF('Name.TGA')

  Speichert den Inhalt des  Hintergrund-
  puffers  mit der aktuellen Palette als
  256-Farben BMP-Bild in die Datei 'NAME
  .BMP' im  aktuellen PICPATH  der Fest-
  platte, Diskette etc.
&╕
  TEXTCOFS(V)

  Legt  für den aktuellen FONT den
  Buchstabenabstand fest. 'V' wird
  zum Buchstabenabstand  des Fonts
  addiert und kann die  Werte -128
  bis +127 annehmen.
/
  TEXTW('Text',VAR)
  TEXTW(VAR$,VAR)

  Liefert in  der  num. Variablen 'VAR' die
  Pixelbreite   des  angegebenen   'Textes'
  bzw. des  'VAR$'-Stringvariablen-Inhaltes
  zurück.Dabei wird der aktuelle FONT incl.
  aller  Texteinstellungen  (TEXTCOFS etc.)
  berücksichtigt.
/╦
  LOADSPRITE(X0,Y0,X1,Y1,XM,YM)

  Kopiert  einen beliebigen  Ausschnitt des
  aktuellen WIN-Puffers in den Vordergrund-
  Bildschirmspeicher.

  'X0, Y0' bestimmt  die linke,  obere Ecke
  des  Quellrechtecks  innerhalb  des  WIN-
  Puffers.  Hier  wird  ein Rechteck in der
  Breite  'XM'  und  der  Höhe 'YM' gelesen
  und  an  die  Koordinaten  'X1, Y1'   des
  Vordergrund-Bildschirmspeichers  kopiert.
  KEY(on) wird dabei berücksichtigt.
+:
  IF [Var,Text,V$..] OP [Var,Wert,V$..]

  Erlaubt eine bedingte Verzweigung des
  Programms je nach  Ergebnis des  Ver-
  gleichs der beiden Seiten. Es  können
  sowohl num. Variablen, Werte als auch
  Textvariablen,Texte oder Ausdrücke in
  den Vergleich  einbezogen werden. Ist
  die  Bedingung  zutreffend,  wird die
  auf IF folgende Programmzeile  ausge-
  führt,ansonsten wird hinter ELSE oder
  ENDIF gesprungen.Jeder IF-Anweisungs-
  block muß m.ENDIF abgeschlossen sein.

  Als  Vergleichsoperator  'OP' sind =,
  >=, <=, <, > und <> erlaubt.
,ë
  ELSE

  Erzeugt eine  alternative  Verzweigung
  bei einem IF - Befehl, dessen Ergebnis
  'FALSE' ist. Siehe auch  IF und ENDIF.
*S
  ENDIF

  Schließt einen IF...[ELSE] Vergleich
  ab. Siehe auch IF und ELSE.
,4
  STR(VAR,ANZ,VAR$)           (Prozedur)
  STR(VAR,ANZ): String        (Funktion)

  Wandelt  die  Variable 'VAR' in  einen
  String um, formatiert ihn rechtsbündig
  auf 'ANZ'  Zeichen  und  schreibt  das
  Ergebnis in die Stringvariable 'VAR$',
  bzw. liefert als Funktion einen String
  zurück.
-6
  :LABEL

  Der Compiler erkennt am vorangestellten
  Doppelpunkt  ein Label. Innerhalb einer
  Animation können beliebig  viele Labels
  definiert werden.  Vom  Bezeichner  des
  Labels  werden  maximal  16  Buchstaben
  ausgewertet,  wobei zwischen  Groß- und
  Kleinschreibung unterschieden wird!
%
Ä
  WAIT(Z)

  Stoppt den Ablauf der Animation
  um 'Z' Millisekunden. WAIT kann
  nicht  durch  einen Tastendruck
  abgebrochen werden.
(n
  CLOCKXY(X0,Y0)

  Legt die Koordinaten der Uhr fest,
  die bei CHECKBUTTON angezeigt wer-
  den kann.
#v
  RECTANGLE

  Zeichnet  ein Rechteck auf den
  Koordinaten  des VIEWPORTs mit
  der SETCOLOR-Vordergrundfarbe.
(╠
  OPENDBANK('Nam.DBF')   (nur 'PRO')

  Öffnet  die  DBASE  III-kompatible
  Datenbank  mit   der   Bezeichnung
  'Name.DBF' zur weiteren Verwendung
  mit den  OPTIX  'PRO'-Datenbankbe-
  fehlen.
#â
  READDBENTRY(V)     (nur 'PRO')

  Liest den vollständigen Daten-
  bankeintrag mit der Nummer 'V'
  in den DBASE-Speicher.
2
  READDBNEW(START,INDEX,SUCH$)   (nur 'PRO')

  Sucht  den  nächsten  Datenbankeintrag der
  aktuell  geöffneten Datenbank ab Datensatz
  'START', in dem der alphanumerische Inhalt
  des Datenfeldes 'INDEX' mit dem Inhalt der
  Stringvariablen 'SUCH$'  übereinstimmt und
  liest ihn ein (wie READDBENTRY).Verglichen
  werden dabei nur die in SUCH$ vorgegebenen
  Zeichen.
*╓
  GETDBVAR(INDEX,VAR)      (nur 'PRO')

  Liest  den  Inhalt  des  numerischen
  Eintrages 'INDEX' des aktuell geöff-
  neten Datensatzes und liefert diesen
  in der  numerischen  Variablen 'VAR'
  zurück.
$
í
  CLOSEDBANK         (nur 'PRO')

  Schließt die aktuell geöffnete
  Datenbank (s. OPENDBANK),  und
  gibt den dafür reservierten
  Speicher wieder frei.
+Æ
  CALL('Name.CHN')

  Lädt die  fertig  kompilierte  OPTIX-
  Animation 'Name.CHN' in den Programm-
  speicher und startet sie automatisch.
1I
  VLINE(X0,Y0,X1,Y1,Z)

  Zieht eine Linie von der Koordinate 'X0,Y0'
  nach 'X1,Y1'. Dabei  wird eine Exoderierung
  (XOR mit 255) der vorhandenen  Pixel vorge-
  nommen.  Ein  zweites Schreiben einer VLINE
  auf dieselben  Koordinaten stellt den alten
  Zustand wieder her. 'Z' bestimmt  dabei die
  Zeitverzögerung.
/½
  READDBPIC(E,V)                (nur 'PRO')

  Liest   das  Bild,  dessen  Dateiname  im
  Feld 'E'  des aktuell  geöffneten  Daten-
  Satzes steht, in den Hintergrundspeicher.
  Existiert dieses Bild, wird  die Variable
  'V' auf  1  (TRUE) gesetzt,  sonst  auf 0
  (FALSE).  Weicht  das Bildformat  von der
  aktuellen  Bildschirmauflösung ab,   wird
  es automatisch in den WIN-Puffer  geladen
  (vgl. READPIC).
,@
  SELBOX(X0,Y0,X1,Y1,V)

  SELBOX  liefert  in der  Variablen 'V'
  eine 1  (TRUE)  zurück, wenn  sich der
  Mauscursor innerhalb  des mit 'X1, Y1'
  und  'X2, Y2'  festgelegten  Rechtecks
  befindet und zugleich  die linke Maus-
  taste gedrückt wird. Anderenfalls wird
  in 'V' der Wert 0 (FALSE) geliefert.
2
╘
  PRINTDBLINE(X0,Y0,F)           (nur 'PRO')

  Gibt eine Textzeile der aktuell geöffneten
  Datenbank (s.OPENDBANK) auf dem Bildschirm
  aus. 'F' gibt das Feld innerhalb des aktu-
  ellen Datensatzes an.
+
  CHECKTIME('Label',ZEIT)

  Kontrolliert die aktuelle Uhrzeit und
  springt bei einem späteren  Zeitpunkt
  als m. 'ZEIT' angegeben zur Programm-
  Marke  'Label'. Die numerische Angabe
  von 'ZEIT' muß im Format HHMMSS (z.B.
  080545) erfolgen.
*f
  PRINT('Text')
  PRINT(VAR$)
  PRINT('Text'+VAR$)
  PRINT(STR(NumVar,Ln)) etc.

  Gibt  die  Textzeile  'Text' auf dem
  Bildschirm   aus.  Die  linke  obere
  Ecke wird vom Grafikcursor bestimmt.
  Die Schrifteigenschaften (Größe etc)
  werden vom aktuellen  Font bestimmt.
  Der  Grafikcursor  wird  hinter  den
  letzten Buchstaben gesetzt.
)≈
  CHECKDATE('Label',DATUM)

  Stellt das aktuelle  Datum fest und
  springt zur Programm-Marke 'Label',
  wenn das  angegebene 'DATUM'  über-
  schritten wurde. 'DATE' muß im num.
  Format  TTMMJJJJ  ( z.B. 17081994 )
  angegeben werden.
(m
  PLOT(X0,Y0)

  Setzt auf die Bildschirmkoordinate
  X0,Y0 einen  Punkt mit der Vorder-
  grundfarbe.
)½
  GETENV('STR', VAR$)       Befehl
  VAR$:=GETENV('EnvString') Funktion

  Liest  den Inhalt der DOS-Environ-
  mentvariablen 'STR' in die String-
  Variable VAR$.
$
æ
  CLOSEWIN(WIN)

  Schließt  den WIN-Puffer 'WIN'
  ('LITE' = 1, 'PRO'= 1 oder 2)
  und gibt den von ihm belegten
  Speicher wieder frei.
#}
  DEFS(VAR$[,'Text'])

  Deklariert die Stringvariable
  'VAR$'.  Ein  Inhalt  kann in
  'Text'  vordefiniert  werden.
%x
  INC(VAR,WERT)

  Inkrementiert, d.h.  erhöht den
  Inhalt der num. Variablen 'VAR'
  um den angegebenen 'WERT'.
&Ç
  DEC(VAR,WERT)

  Dekrementiert,  d.h.  vermindert
  den  Inhalt  der  num. Variablen
  'VAR' um den angegebenen 'WERT'.
*
¥
  LOOP(VAR)

  Dekrementiert die  Variable 'VAR' um
  den Wert 1 und springt zum zugehöri-
  gen DO zurück, falls 'VAR' dann noch
  größer als 0 ist.
&
ñ
  RESTORELINE(X0,Y0,X1,Y1,Z)

  Kopiert die Linie von X0,Y0 nach
  X1,Y1 mit einer  Zeitverzögerung
  'Z' aus  dem Hintergrundspeicher
  auf den Bildschirm.
(c
  PLOTC(X0,Y0,COL)

  Setzt auf die Bildschirmkoordinate
  'X0,Y0' einen Punkt der Farbe COL.
),
  BREAK(V)

  Mit 'V' = 0 kann die <Escape>-Taste
  abgeschaltet  werden.  Ein  Abbruch
  der Animation  mit <ESC>  ist  dann
  nicht mehr möglich. 'V'=1  schaltet
  die <Escape>-Abbruchfunktion wieder
  an. Im  Entwicklungssystem ist  ein
  Programmabbruch jederzeit mit <F10>
  möglich.
,
  LET()

)$
  READSOUND('Name.WAV/VOC/SND/BYT')

  Liest  die 4 oder 8 Bit-Sounddatei
  'Name.xxx' von der Festplatte,Dis-
  kette, CD etc.)  in den XMS-Sound-
  speicher.Die Größe des verfügbaren
  XMS muß für den Sound  ausreichend
  sein.(Siehe Hinweise zu EMS/XMS in
  Ihrem DOS-Handbuch).
)±
  STARTSOUND

  Startet  einen  zuvor mit READSOUND
  geladenen  Sound  als  Hintergrund-
  prozess.   Dabei   wird  eine   Uhr
  gestartet, die eine Synchronisation
  der Animation mit dem Sound mittels
  des Befehls SYNC zulässt.
&X
  STOPSOUND

  Stoppt eine zuvor mit STARTSOUND
  eingeschaltete  Soundwiedergabe.
+w
  SYSFONT(FONT,TRANSP)

  Bestimmt durch 'FONT' (1-3) einen der
  drei VGA-Systemfonts:

     1 = 8x8 , 2 = 8x14 , 3 = 8x16

  Ist 'TRANSP'=1,so kann  damit festge-
  legt werden, daß der Font transparent
  gezeichnet  wird. Aktiviert  wird der
  hier gewählte  Zeichensatz erst durch
  FONT(0).  Ihre Farben beziehen  diese
  Fonts aus SETCOLOR und SETBCOLOR.
-H
  CURSBOUND(X0,Y0,X1,Y1)

  Definiert durch 'X0, Y0' für  die obere
  linke Ecke  und 'X1, Y1' für die rechte
  untere  Ecke  einen  Bildschirmbereich,
  aus dem sich  der Mauscursor dann nicht
  mehr hinausbewegen läßt.

  Durch CURSBOUND(0,0,XMAX,YMAX) kann der
  gesamte Bildschirm wieder initialisiert
  werden.

h
  GETPAL

  Kopiert die aktuelle
  Vordergrund- Palette
  in  den Hintergrund-
  Palettenpuffer.
$N
  CURSON(X0,Y0)

  Schaltet den Mauszeiger an der
  Koordinate X0,Y0 an.
%
é
  CURSOFF

  Schaltet  den zuvor  mit CURSON
  erzeugten Mauscursor wieder ab,
  d.h. restauriert den Bildschirm
  wieder.
%Q
  CURSMOVE(X1,Y1)

  Bewegt den Mauscursor zur neuen
  Koordinate 'X1, Y1'.
&
⌐
  CURSCOL(RCOL,ICOL)

  Legt  die Farben des Mauscursors
  fest. 'RCOL'  bestimmt die Farbe
  der Umrandung, 'ICOL'  die Farbe
  der Innenfläche des Mauscursors.
+{
  TRACE(Flag)

  Ist 'FLAG' TRUE, so  wird der  Ablauf
  einer  Animation abgebrochen  und das
  schrittweise Abarbeiten des Programms
  per Tastendruck ermöglicht. Ist dage-
  'FLAG'  FALSE, so  wird das  Programm
  normal fortgesetzt. TRACE ist im Run-
  Only- Interpreter  wirkungslos.   Die
  TRACE-Funktion kann durch SCROLL-LOCK
  an- und ausgeschaltet werden.
!

  COMMON


'
  BEEP

  Erzeugt einen Signalton.
(î
  CIRCLE(X0,Y0,R,COL)

  Zeichnet   einen   Kreis  mit  dem
  Mittelpunkt 'X0,Y0' (auch negativ)
  und d.Radius 'R' in d.Farbe 'COL'.
(è
  DISK(X0,Y0,R,COL)

  Zeichnet  einen   gefüllten  Kreis
  mit  dem  Mittelpunkt 'X0, Y0' und
  dem Radius 'R' in der Farbe 'COL'.
+P
  KEYCOL(COL)

  Legt eine 'Key'-Farbe  fest, d.h. die
  Farbe,  die bei  LOADWIN,  MOVEBITMAP
  und LOADSPRITE transparent erscheint,
  also nicht mitgezeichnet wird. Dieser
  'Bluebox'-Effekt wird  mit dem Befehl
  KEY ein- und ausgeschaltet.
  Die LOADWIN-Modi  16  bis 19 beziehen
  sich excl.auf diese Transparenz-Farbe
)Θ
  KEY(V)

  Mit 'V'= 1 wird die Transparenz bei
  LOADWIN, MOVBITMAP  und  LOADSPRITE
  eingeschaltet.  Mit  KEYCOLOR  wird
  die entsprechende  Transparenzfarbe
  festgelegt (s.dort). 'V'=0 schaltet
  die KEY-Funktion aus.
)ì
  GETPIXEL(X0,Y0,V)

  Liest die Farbe  des Pixels an  der
  Koordinate  'X0, Y0'  und  schreibt
  sie in die numerische Variable 'V'.
!
u
  RETURN

  Kennzeichnet das Ende einer
  Prozedur. Jede Prozedur muß
  mit   RETURN  abgeschlossen
  werden.
-



  LEER

)
û
  SYNC(Z)

  Stoppt  die  Animation  während der
  Wiedergabe  eines  Sounds, bis  'Z'
  Millisekunden nach Start des Sounds
  vergangen sind.

m
  DO

  Kennzeichnet den Anfang
  einer Programmschleife.
  Wird nur  zusammen  mit
  LOOP verwendet.
(Ç
  GETSUBPAL(SPAL)

  Liest d. Subpalette 'SPAL' aus der
  aktuellen Palette und schreibt sie
  in die Hintergrundpalette.
'
▒
  RESTORELINETO(X1,Y1,Z)

  Kopiert dir Linie  vom  aktuellen
  Grafikcursor  nach X1,Y1  mit der
  Zeitverzögerung Z aus dem Hinter-
  grund in den  Bildschirmspeicher.
'
ë
  BEGIN

  Definiert den Anfang des Befehls-
  teils  einer  Animation, d.h. den
  Einsprungspunkt  bei  Start einer
  Animation.
,Y
  READARR(ARRAY,'Name.ARR')

  Liest den  Inhalt der Datei 'Name.ARR'
  im aktuellen PICPATH in das  geöffnete
  (s.NEW) numerische Feld 'Array'. Feld-
  organisation   und  Dateigröße  müssen
  identisch   sein.  Ein   gespeichertes
  Word-Feld DEFAW(Arr,100,100) kann z.B.
  in ein Longwert-Feld DEFAL(Arr,50,100)
  gelesen werden.
+I
  SAVEARR(ARRAY,'Name.ARR')

  Speichert das numerische Feld 'Array'
  komplett in  die  Datei 'Name.ARR' im
  aktuellen  PICPATH.  Die Organisation
  von  mehrdimensionalen  Feldern  wird
  beibehalten,  so daß bei  identischer
  Feld-Deklaration dieses Feld problem-
  los durch READARR zurückgelesen
  werden kann.
.ê
  UNTIL [Var,Text,V$..] OP [Var,Wert,V$..]

  Wendepunkt  mit   Bedingungsabfrage  für
  REPEAT-Schleifen.Durch den Vergleich der
  beiden Seiten kann eine Abbruchbedingung
  definiert  werden. Trifft die  Bedingung
  zu, so  wird  das  Programm mit  der auf
  UNTIL folgenden Zeile fortgesetzt. Ande-
  renfalls springt  das Programm zum dazu-
  gehörigen REPEAT.

    REPEAT                  REPEAT
     .                       .
     .. Programm    oder     ..Programm
     .                       .
    UNTIL MOUSEK=1          UNTIL A$>=B$

  Die Bedingungsstellung  erfolgt nach den
  gleichen Regeln wie bei IF (s. dort).
%e
  LEN(VAR$,VAR)

  Liefert  in 'VAR'  die aktuelle
  Zeichenanzahl der Textvariablen
  'VAR$'.
-#
  GRADATION(Col1,Col2,R1,G1,B1,R2,G2,B2)

  Berechnet  den Farbverlauf zwischen den
  Anfangsfarben  'R1,G1,B1'  und den End-
  farben 'R2, G2 und B2' und schreibt ihn
  in  die  aktuelle  Vordergrund-Palette.
  'Col1' ist der erste, 'Col2' der letzte
  veränderte Paletteneintrag.
$V
  MOD(V,WERT)

  Liefert in  'V' den  Rest  der
  Division von 'V' durch 'WERT'.
*▀
  LOCALS(V1 [,V2[,V3...V8/V16]])

  Mit  LOCALS  werden  innerhalb einer
  Prozedur lokale Variablen definiert.
  Die Summe der Prozedurparameter  und
  der lokalen Variablen darf 8 ('PRO':
  16) nicht übersteigen.
,▀
  REPEAT

  Definiert mit UNTIL zusammen eine end-
  bedingte  Programmschleife. Trifft die
  bei  UNTIL gestellte  Abbruchbedingung
  nicht  zu,  so  wird die  Schleife bei
  REPEAT von neuem durchlaufen(s.UNTIL).
4╒
  FOR VAR = A TO E [STEP S] DO

  Definiert  zusammen  mit NEXT  eine  Programm-
  schleife.  Die Lauf-Variable 'VAR' bekommt den
  Anfangswert 'A' und  wird bei jedem Schleifen-
  durchgang  um  1 erhöht. Wird  der Endwert 'E'
  erreicht oder überschritten, wird die Schleife
  beendet.  Optional  kann eine Schrittweite 'S'
  eingesetzt  werden. Mit  DOWNTO statt  TO wird
  die Schleifenvariable  'Var' bei  jedem Durch-
  gang um den Wert 1 vermindert.
*
«
  NEXT(V)

  NEXT schließt eine zuvor mit FOR..TO
  erzeugte Programmschleife ab.'V' muß
  die gleiche Variable wie die bei FOR
  definierte  Schleifenvariable  sein.
!n
  DEF(V[,W])

  Definiert die Variable 'V'.
  Optional  kann der Default-
  wert 'W' angegeben  werden.
+Φ
  INBOX(X1,Y1,X2,Y2,V)

  INBOX  liefert  in der  Variablen 'V'
  eine 1  zurück, wenn  sich  der Maus-
  cursor  innerhalb des mit 'X1,Y1' und
  'X2, Y2'  festgelegten  Rechtecks be-
  findet; sonst bekommt 'V' den Wert 0.
-┐
  EDITLINE(X0,Y0,MODUS,VAR$)

  Texteingabe. Stellt  den in 'VAR$' vor-
  eingestellten  Text  (minimal: ' ') zur
  Bearbeitung  im  aktuell  eingestellten
  Schriftsatz (s.FONT) an der Bildschirm-
  Koordinate 'X0,Y0' dar.Durch die Pfeil-
  Links-u.Rechts-Tasten  kann der  Cursor
  positioniert werden. Durch  <Backspace>
  wird das jeweils  linksstehende Zeichen
  gelöscht und durch <Return> die Eingabe
  abgeschlossen.  Der  ggfls.  veränderte
  Text wird dann in 'VAR$' zurückgegeben.

  Durch 'MODUS'=1  kann  bestimmt werden,
  daß bei der Eingabe nur  Großbuchstaben
  zugelassen werden.'MODUS'=2 erlaubt nur
  die Eingabe  der  Ziffern 0 bis 9 sowie
  einen Dezimalpunkt.
'α
  COPYWIN(X0,Y0,X1,Y1)

  Kopiert   das  Bildschirmrechteck
  mit den Koordinaten 'X0,Y0,X1,Y1'
  aus  dem  Vordergrund- Bildschirm
  in den aktuellen WIN-Puffer. WINX
  und WINY werden entsprechend  neu
  gesetzt.
 
|
  SETVOL(V)

  Stellt ab SB-PRO die Laut-
  stärke  des  Soundadapters
  ein.  'V' darf  zwischen 0
  und 15 liegen.
$q
  RANDOM(MAX,VAR)

  Berechnet eine Zufallszahl mit
  den Grenzen 0 ..X.. <'MAX' und
  weist sie 'VAR' zu.
 N
  ADD(VAR,WERT)

  Addiert zur Variablen 'VAR'
  den angegebenen 'WERT'.
#V
  SUB(VAR,WERT)

  Subtrahiert von der Variablen
  'VAR' den angegebenen 'WERT'.
%
  INSERT(VAR$,ZIEL$,P)

  Fügt die  Stringvariable 'VAR$'
  ab  der Zeichenposition  'P' in
  die 'ZIEL$'-Stringvariable ein.
  Überschreitet  die  neue  Länge
  die  max.  Stringlänge  von 255
  Zeichen,  wird  der  überschüs-
  sige Anteil ignoriert.
#f
  GETGCURSOR(V1, V2)

  Liefert in  den Variablen die
  Koordinaten des Grafikcursors
  zurück.
'
¿
  ACTIVEPAGE(V)

  Schaltet alle grafischen Funktio-
  nen auf Seite  'V' (0 oder 1) des
  VGA-Speichers. Voraussetzung  ist
  eine SVGA mit mind.1 MB Speicher.
%
í
  VISIBLEPAGE(V)

  Schaltet  eine der  beiden VGA-
  Speicherseiten  (0 oder 1)  auf
  den  Bildschirm.  Voraussetzung
  ist eine SVGA m.mind. 1 MB RAM.
8ì
  COPYFILE(SRC,DST,MODUS,ERROR)

  Kopiert die Datei  SRC nach DST.  Bei Modus 0 wird
  überprüft, ob eine Datei des Namens DST schon vor-
  handen ist und  liefert dann den  Fehlercode 5 zu-
  rück. Bei Modus 1 wird ohne diese Abfrage kopiert,
  d.h.  eine schon vorhandene Datei wird überschrie-
  ben.  ERROR liefert den DOS-Fehlercode zurück. Bei
  Auftreten eines  Fehlers wird die  Animation nicht
  abgebrochen. SRC muß immer einen vollständigen Da-
  teinamen bzw. Pfad enthalten.  DST enthält den Na-
  men des  Zielverzeichnisses  und/oder  einen neuen
  Namen für die Datei.  Eine Angabe von  PICPATH hat
  keinen Einfluss(!).
(─
  DELETE(ZIEL$,P,ANZ)

  Löscht  ab  Position  'P' aus  der
  Stringvar 'ZIEL$' soviele Zeichen,
  wie in 'ANZ' angegeben wurden  und
  liefert  das  Ergebnis  in 'ZIEL$'
  wieder zurück.
*╬
  INSTR(SUCH$,ZIEL$,VAR)

  Sucht in der 'ZIEL$'-Stringvariablen
  nach dem angegebenen  'SUCH$'-String
  und gibt im Erfolgsfall die Position
  des  ersten  gefundenen  Zeichens in
  'VAR' zurück.
'╚
  GETRGBCOLOR(COL,R,G,B)

  Liefert  in den Rückgabevariablen
  'R, G, B'  die  Rot-,  Grün-, und
  Blau-Anteile (jeweils 0 - 63) des
  Farbeintrages 'COL' der aktuellen
  Vordergrundpalette.
-_
  VAL(VAR$,V,FLAG)

  Wandelt den Inhalt der  Stringvariablen
  'VAR$' in einen numerischen Wert um und
  liefert das Ergebnis in der num. Varia-
  blen 'V' zurück. Sind in 'VAR$' Zeichen
  enthalten, die nicht in Ziffern wandel-
  bar sind (A-Z, a-z etc.) wird in 'FLAG'
  die Position des ersten nicht wandelba-
  ren Zeichens geliefert.
#
Æ
  ELLIPSE(X0,Y0,XR,YR,COL)

  Zeichnet eine Ellipse mit dem
  Mittelpunkt  'X0, Y0' und den
  Radien 'XR'  und  'YR' in der
  Farbe 'COL'.
 


  ARCUS
-[
  GETDBLINE(F,VAR$)           (nur 'PRO')

  Liest  eine  Textzeile  aus der aktuell
  geöffneten Datenbank (siehe  OPENDBANK)
  und liefert sie in der  Stringvariablen
  'VAR$' zurück. 'F' gibt das Feld inner-
  halb des aktuellen  Datensatzes an. Ein
  numerischer DBase-Eintrag wird wie Text
  behandelt  (1994 ergibt Text : '1994').
 

  CALLDBCHAIN
ÿ
  TEXTH(VAR)

  Liefert  in der  numer.
  Variablen   'VAR'   die
  Pixelhöhe  des  aktuell
  eingestellten  Schrift-
  satzes (s.FONT) zurück.
*ⁿ
  DEFAS(ARRAY$,ZE,INDEX)

  Deklariert am Programmanfang vor dem
  Prozedurblock) das Textfeld 'ARRAY$'
  mit einer vorgegebenen  Zeilenbreite
  von max. 'ZE' Zeichen und  einer Ge-
  samtzeilenanzahl im Feld von 'INDEX'
  Elementen.  Vor  Verwendung muß  das
  Feld durch NEW (nach BEGIN) im Spei-
  cher eingerichtet werden.

   z.B.:    DEFAS(Txt$,80,100)
            BEGIN
            NEW(Txt$)
            Txt$[22]:='Test'
            Var$:=Txt$[22]
            PRINTAT(10,10,Txt$[22]
,,
  DEFAB(BYTEARRAY,DIM1[,DIM2,..])

  Deklariert  am Programmanfang  vor dem
  Prozedurblock)  das num. Feld  'ARRAY'
  im  Byteformat ( 0  bis  255 ).  Durch
  'DIM1',  'DIM2'  etc.  können beliebig
  viele Dimensionen mit der entsprechen-
  den Elementeanzahl  eingesetzt werden.
  Vor Verwendung  muß das Feld durch NEW
  (nach BEGIN) im Speicher  eingerichtet
  werden.

   z.B.:   DEFAB(Bytefeld,2,600)
           BEGIN
           NEW(Bytefeld)
           Bytefeld[1,128]:=16
           DISK(10,10,10,Bytefeld[2,18])
           etc.
,%
  DEFAI(INTEGERARRAY,DIM1[,DIM2,..])

  Deklariert  am Programmanfang  vor dem
  Prozedurblock)  das  num. Feld 'ARRAY'
  im  Integerformat (-32768 bis +32767).
  Durch  'DIM1', 'DIM2' etc. können  be-
  liebig  viele Dimensionen mit der ent-
  sprechenden  Elementeanzahl eingesetzt
  werden.  Vor  Verwendung muß  das Feld
  durch NEW  (nach  BEGIN)  im  Speicher
  eingerichtet werden.

  z.B.:DEFAI(Intfeld,2,600)
       BEGIN
       NEW(Intfeld)
       Intfeld[1,128]:=16
       PLOT(Intfeld[1,18],Intfeld[2,18])
       etc.
*≥
  DEFAW(WORDARRAY,DIM1[,DIM2,..])

  Deklariert am Programmanfang vor dem
  Prozedurblock) das num. Feld 'ARRAY'
  im Wordformat ( 0 bis 65535 ). Durch
  'DIM1', 'DIM2' etc. können  beliebig
  viele  Dimensionen mit  der entspre-
  chenden   Elementeanzahl  eingesetzt
  werden. Vor Verwendung  muß das Feld
  durch NEW  (nach BEGIN) im  Speicher
  eingerichtet werden.

  z.B.: DEFAW(Wordfeld,120,60)
        BEGIN
        NEW(Wordfeld)
        Wordfeld[110,18]:=16
        etc.
+
  DEFAL(LONGARRAY,DIM1[,DIM2,..])

  Deklariert  am Programmanfang vor dem
  Prozedurblock)  das num. Feld 'ARRAY'
  im Longintegerformat (-2147483648 bis
  +2147483647).
  Durch 'DIM1', 'DIM2'  etc. können be-
  liebig viele Dimensionen mit der ent-
  sprechenden Elementeanzahl eingesetzt
  werden. Vor  Verwendung muß  das Feld
  durch  NEW  (nach BEGIN) im  Speicher
  eingerichtet werden.

  z.B.: DEFAL(Longfeld,20,200)
        BEGIN
        NEW(Longfeld)
        Longfeld[21,175]:=216*1293
        etc.
+≡
  DISPOSE(ARR)

  Entfernt  das  Datenfeld  'ARR' (num.
  oder String) aus dem Arbeitsspeicher.
  Die  Feldelemente  sind  anschließend
  nicht mehr ansprechbar. Das Feld  muß
  durch  DEFA..  und  NEW  eingerichtet
  worden sein.
'
  NEW(ARR)

  Richtet das Datenfeld 'ARR' (num.
  oder String)  im  Arbeitsspeicher
  ein. Die Feldelemente  können an-
  schließend durch ARR[Index] (vgl.
  DEFAW etc.) angesprochen  werden.
  Das Feld muß  durch DEFA.. vorher
  deklariert worden sein.
-█
  SAVEWIN('Name.BMP')

  Speichert den Inhalt des aktuellen WIN-
  puffers mit  der  aktuellen Palette als
  256-Farben BMP-Bild in die Datei 'NAME.
  BMP' im aktuellen PICPATH der Festplat-
  te, Diskette etc.
0╪
  PRINTC(X0,Y0,'Text')
  PRINTC(X0,Y0,Stringvar)
  PRINTC(X0,Y0,'Text'+Stringvar)
  PRINTC(X0,Y0,CHR(NumVar)) etc.

  Gibt  den angegebenen 'Text', bzw. den In-
  halt  der   angegebenen  'Stringvar'iablen
  vertikal zentriert auf dem Bildschirm aus.
  Durch  'X0'  und 'Y0' wird die Mittelachse
  bestimmt, an  welcher der Text mittig aus-
  gerichtet werden soll.  Die  Schrifteigen-
  schaften (Größe etc.) werden vom aktuellen
  Font (s. FONT) bestimmt.
-═
  BOUND(V,MIN,MAX)

  Überprüft  die Variable  'V' darauf, ob
  sie im Wertebereich von 'MIN' bis 'MAX'
  liegt.  Ist  sie kleiner,  wird 'V' auf
  'MIN'  korrigiert.  Ist sie größer, auf
  'MAX'.
&╜
  TRIM(VAR$)

  Löscht  aus  der Stringvariablen
  'VAR$' alle ggfls. am Anfang und
  Ende  der  Textzeile   stehenden
  Leerzeichen und liefert den Rest
  in 'VAR$' wieder zurück.
*α
  SAVEPAL('Name.PAL')

  Speichert die  aktuelle Hintergrund-
  Palette im Format R=0..255, G=0..255
  und B= 0..255 (TRUECOLOR-kompatibel)
  unter dem  Namen 'Name.PAL' im aktu-
  ellen PICPATH auf  der Festplatte.
(}
  AND(VAR,WERT)

  'Undiert' den Inhalt der Variablen
  'VAR'  mit  'WERT' und liefert das
  Ergebnis in 'VAR' zurück.
)~
  OR(VAR,WERT)

  'Oderiert' den Inhalt der Variablen
  'VAR' mit  'WERT' und  liefert  das
  Ergebnis in 'VAR' zurück.
+ü
  XOR(VAR,WERT)

  'Exoderiert' den Inhalt der Variablen
  'VAR'  mit 'WERT' und liefert das Er-
  gebnis in 'VAR' zurück.
*╙
  ASC(V$,VAR)
  ASC('Text',VAR)

  Wandelt  das erste  Zeichen von 'V$'
  in  den  entsprechenden ASCII - Code
  um und liefert diesen in VAR zurück.
  Ist 'V$' ohne Inhalt, wird eine Null
  geliefert.
7 *
  PSOUND('Name.WAV/VOC/SND/BYT')

  Ermöglicht  ein beliebig langes, kontinuierliches
  Abspielen  einer Sounddatei von der CD oder Fest-
  platte auch während  der  Animation - ohne  dabei
  das XMS zu belasten.  Dabei wird  im Multitasking
  spätestens ca.  alle 1,45  Sekunden (=eine Block-
  'Füllung' bei 22KHz) der nächste Soundblock auto-
  matisch nachgeladen (PSOUND = 'Poll'SOUND). Dabei
  ist darauf zu achten, daß  kein einzelner  Befehl
  (z.B. LOADPIC m.Verzögerung) länger  als ca. eine
  Sekunde  beschäftigt  ist, da sonst  das  Polling
  'abreißt'.

  Der SYNC-Befehl z.B.unterbricht das Polling (wenn
  BREAK(on)), wenn  die SYNC-Zeit  über die besagte
  Sekundendauer  hinausgeht. Um  trotzdem SYNC ein-
  setzen zu können, empfiehlt  es sich,  die SYNC's
  zu stückeln, um zwischen den SYNC's das Nachladen
  zu ermöglichen:

  Beispiel:  PSOUND('Sounddat.Wav')
             SYNC(2000)
             SYNC(3000)
             SYNC(4000)
             ... Fortsetzung nach vier Sekunden
                 nach PSOUND-Start
(█
  MID(VAR$,START,ANZAHL)

  Extrahiert aus der Stringvariablen
  'VAR$' ab Zeichenposition  'START'
  soviele  Zeichen, wie  in 'ANZAHL'
  angegeben wurden  und liefert  das
  Ergebnis in 'VAR$'  wieder zurück.
/
┬
  NOISE(HZ,DAUER)

  Erzeugt parallel zum Ablauf der Animation
  für die angegebene Zeit-'DAUER' (in msec)
  einen  stehenden Ton mit der Frequenz von
  'HZ' Hertz (Kammerton A = 440Hz).
*
  CHR(VAR$,WERT)            (Prozedur)
  VAR$ := CHR(WERT)         (Funktion)

  Wandelt den angegebenen ASCII-'WERT'
  in ein  Textzeichen um  und  liefert
  dieses in der Stringvariablen 'VAR$'
  zurück.  CHR ist sowohl als Prozedur
  als auch als Funktion verwendbar.
(²
  SOUNDLOOP(ON|OFF)

  SOUNDLOOP(ON) wiederholt einen mit
  STARTSOUND  gestarteten  Parallel-
  sound  in  endloser  Schleife, bis
  entweder  mit  SOUNDLOOP(OFF)  die
  Schleife abgebrochen oder die Wie-
  dergabe mit STOPSOUND beendet wird.
$Q
  CDCLOSE

  Schließt bei CD-Laufwerken mit
  Motor die Laufwerksschublade.
#O
  CDEJECT

  Öffnet bei CD-Laufwerken mit
  Motor die Laufwerksschublade.
/ε
  CDLOCK(ON|OFF)

  Verriegelt  bzw.  entriegelt bei CD-Lauf-
  werken  mit Motor die Schublade. Eine mit
  CDLOCK(1) verriegelte Schublade  kann mit
  dem Knopf an der Vorderseite des CD-Lauf-
  werks nicht mehr geöffnet werden.
5L
  CDSEEK(TRACK,OFFSET)

  Sucht auf der CD den 'TRACK' plus  dem 'OFFSET'
  (in Millisekunden vom Start des Track, negative
  Werte sind erlaubt) und fährt den Laserkopf des
  Laufwerkes an die entsprechende Stelle. Ein an-
  schließender CDSTART-Befehl kann die Wiedergabe
  des Tracks ohne weitere Suchvorgänge beginnen.
4
╬
  CDSTART(TRACK,OFFSET,ZEIT)

  Spielt den angegebenen 'TRACK' ab dem 'OFFSET'
  (in Millisekunden vom Start des Tracks,  nega-
  tive Werte sind erlaubt). Es werden 'Zeit'
  Millisekunden gespielt.
 
z
  CDSTOP

  Unterbricht die Wiedergabe
  des laufenden Audiotracks.
  Eine  Fortsetzung  ist mit
  CDCONT möglich.
&U
  CDCONT

  Setzt die  Wiedergabe  eines per
  CDSTOP angehaltenen Tracks fort.
!k
  CDVOL(VOL)

  Steuert  die Lautstärke des
  CD-Ausganges. VOL hat einen
  Wertebereich von 0..255.
.
╡
  CDINIT

  Initialisiert das CD-Laufwerk, wobei die
  Track-Informationen  der  eingelegten CD
  gelesen werden. Nach jedem Wechsel einer
  CD muß CDINIT aufgerufen werden.
.t
  CDSYNC(ZEIT)

  Hält die Animation an, bis 'ZEIT' Milli-
  sekunden nach Start des Tracks vergangen
  sind.
2#
  CDDEVICE(DRIVE)                  (nur 'PRO')

  Mit CDDEVICE wird bei mehreren installierten
  CD-Laufwerken das  aktive  (d.h. mit den für
  die CD-Steuerung vorgesehenen Befehlen ange-
  sprochene)  Laufwerk festgelegt.  OPTIX ver-
  waltet bis  zu 4 verschiedene  CD-Laufwerke.
0ó
  CDINFO(TRACK,MINUTE,SEKUNDE)

  Liefert in den Variablen 'TRACK', 'MINUTE'
  und  'SEKUNDE' den  aktuellen Status einer
  laufenden CD-Wiedergabe zurück.
*Ç
  CDTRACKLEN(TRACK,ZEIT)

  Liefert in der Variablen 'ZEIT' die
  Länge des Tracks 'TRACK' (in Milli-
  sekunden) zurück.
)╔
  CLOSEFONT(FONT)

  Gibt den vom Font der Nummer 'FONT'
  belegten Speicherplatz wieder frei.
  Weitere Zugriffe  auf  diesen  Font
  sind dann bis zum nächsten READFONT
  nicht mehr erlaubt.
0
█
  EXITCODE(EXCDE)                (nur 'PRO')

  Übergibt den EXITCODE 'EXCDE' beim Beenden
  der Animation an DOS. Der nach dem Beenden
  einer Animation aktuelle Exitcode  wird im
  OPTIX-Infofenster angezeigt.
.£
  VRECT(X0,Y0,X1,Y1)

  Zeichnet ein virtuelles (mit dem Hinter-
  grund per XOR'255' verknüpftes) Rechteck
  auf den Eckkoordinaten X0,Y0 und X1,Y1.
.·
  READWIN('Name.BMP/PCX/TGA/GIF')

  Hat prinzipiell die gleiche Funktion wie
  READPIC (siehe dieses),  jedoch wird das
  Bild grundsätzlich in den aktuellen WIN-
  Puffer geladen (auch bei Bildern mit der
  exakten Größe des Bildschirmes).
,╢
  INITAVI('Name.AVI')

  Öffnet die  Videodatei 'Name.AVI'.  Es
  werden von OPTIX-'LITE' unkomprimierte
  und RLE-komprimierte 256-Farben- AVI's
  (in 'PRO' auch MSVC=Microsoft Video 1)
  gelesen. Das AVI darf insgesamt (Summe
  aller  Bild- und  Sound-Blöcke)  nicht
  mehr  als  6400 Interleave-Datenblöcke
  enthalten. (Bei MSVC  möglichst 3  bis
  4 KeyFrames und auch ca.3 bis 4 Sound-
  blöcke pro Sekunde einhalten).
8

  STARTAVI(X0,Y0,VID,AUD,SIZE,SKIP,STOP,REST)

  Startet die Wiedergabe eines mit INITAVI geöffneten
  Videos auf den Koordinaten X0, Y0.  Mit VID und AUD
  kann die Video  und Audiowiedergabe getrennt einge-
  schaltet werden. Size = 1 verdoppelt die Bildgröße.
  Mit  SKIP = 1 werden  Frames übersprungen,  um eine
  Synchronizität zum Sound zu gewährleisten. STOP = 1
  elaubt einen  Abbruch des Videos durch Tastendruck.
  REST =1 restauriert den Bildschirm nach dem letzten
  Bild aus dem Hintergrundpuffer.
.w
  CLOSEAVI

  Schließt die zuletzt geöffnete AVI-Datei
  und gibt den dafür reservierten Speicher
  wieder frei.
.
  WINBUF(BUF)                  (nur 'PRO')

  Definiert die Nummer des  Window-Puffers
  (BUF = 1 oder 2),  auf den  anschließend
  zugegriffen werden kann.  Vorsicht,  ein
  Lesezugriff auf einen leeren WIN-Puffer,
  z.B. mit LOADWIN, hat immer einen Fehler
  zur Folge !
+╔
  DEFMOUSE(CURS)

  Definiert ein neues Maucursor-Outfit,
  wobei zwischen folgenden  Zeigern ge-
  wählt werden kann:

          0 : Standard
          1 : Pfeil
          2 : Kreuz
          3 : Doppelkreuz

          Doppelpfeile:
          4 : Horizontal
          5 : Vertikal
          6 : LO/RU
          7 : RO/LU

          8 : Hummel

          9 : Block 1
          10: Block 2
          11: Block 3
          12: Block 4
&
⌐
  INITFLI('Name.FLI/FLC')

  Öffnet das FLI/FLC-Movie 'Name'.
  Es werden FLI-Movies  sowie FLC-
  Movies bis  zu  einer  Größe von
  320x200 Pixeln verarbeitet.
0y
  STARTFLI(X0,Y0,Size,Stop,Rest)

  Beginnt die Wiedergabe  eines  mit INITFLI
  geöffneten FLI/FLC-Movies. Die Koordinaten
  der linken oberen Ecke  werden  mit X0, Y0
  festgelegt. Size = 1 verdoppelt die Größe,
  Stop = 1 erlaubt ein Abbrechen per Tasten-
  druck, Rest = 1 restauriert nach dem letz-
  ten  Bild  den Bildschirm  aus dem Hinter-
  grundspeicher.
-~
  CLOSEFLI

  Schließt das zuletzt geöffnete FLI/FLC-
  Movie und  gibt den  dafür reservierten
  Speicher wieder frei.
 

  AVISTEP    leer

C(T
  READFILES(Path,Suffix)

  Liest die Namen  der im  angegebenen 'Path' (vollständige Be-
  zeichnung) befindlichen  Dateien (max. 650) alphabetisch sor-
  tiert ab Feldindex 1 in das  zur Zeit geöffnete  Textfeld (s.
  DEFAS/NEW) ein.  Dabei werden nur die Dateitypen mit  dem an-
  gegebenen 'Suffix' berücksichtigt. Die Namen  aller in diesem
  Verzeichnis befindlichen Unterverzeichnisse  sowie  der z.Zt.
  verfügbaren  Laufwerke  werden  an das Listenende  angehängt.
  Im Gegensatz  zu  den  Dateinamen  werden diese  mit  eckigen
  Klammern versehen (z.B. [SUBDIR]  bzw. [C:]).  Existiert eine
  höhere  Hierarchie-Ebene  (z.B. C:\DOS\..),  so wird die ent-
  sprechende  Sprungmarkierung  der Liste  in eckigen  Klammern
  ([..]) vorangestellt.

  Als 'Suffix' muß ein  DOS-Dateisuchbegriff  angegeben  werden
  (z.B. *.*, *.PCX, *.P?? etc.).  Mehrfachangaben  dürfen keine
  Blanks enthalten und müssen durch Semikolons  getrennt werden
  (z.B.: '*.PCX;T*.TGA;*.BMP')

  Dateinamen, -Datum, -Uhrzeit und -Länge werden (jeweils durch
  Blank  getrennt)  formatiert  in die  Zeile  eingetragen. Das
  Textfeld sollte deshalb eine Mindesbreite von mind.36 Zeichen
  haben, sofern alle Informationen ausgewertet werden sollen.

  Die Anzahl der tatsächlich durch READFILES im Feld  eingetra-
  genen Zeilen ist danach i.d.Systemvariablen LINCTR verfügbar.

  Beispiel:    DEFAS(Files,36,200)  hier: 36 Zeichen/200 Zeilen
               ..
               NEW(Files)
               READFILES('C:\SUBDIR','*.TXT;*.EXE;*.COM')
               FOR I:= 1 TO LINCTR DO
               ..
"r
  SETFMVOL(VOL)

  Steuert  die  Lautstärke des
  FM-Kanals des Soundadapters.
  Wertebereich ist 0 bis 15.
"r
  SETCDVOL(VOL)

  Steuert  die  Lautstärke des
  CD-Kanals des Soundadapters.
  Wertebereich ist 0 bis 15.
"l
  SETMSTVOL(VOL)

  Steuert die Summenlautstärke
  des Soundadapters.  Wertebe-
  reich ist 0 bis 15.
)
º
  EXIST('Pfad\Datei', VAR)

  Liefert TRUE in der Variablen 'VAR'
  zurück,  wenn  der  angebenene Pfad
  oder  die Datei auf dem Datenträger
  gefunden wurde.
.É
  COMINIT(COMX, INI)

  Initialisiert die serielle Schnittstelle
  COMX (1..4)  mit dem Wert INI.  Die Bits
  von INI haben folgende Bedeutung:

  Bit 0   0: 7 Bits         1: 8 Bits
  Bit 1   muß immer 1 sein
  Bit 2   0: 1 Stop-Bit     1: 2 Stop-Bits
  Bit 3   0: keine Parität  1: Parität an
  Bit 4   0: ungerade       1: gerade Par.

  Bit 5 bis 7     000   =  110  Baud
   Baudrate:      001   =  150  Baud
                  010   =  300  Baud
                  011   =  600  Baud
                  100   = 1200  Baud
                  101   = 2400  Baud
                  110   = 4800  Baud
                  111   = 9600  Baud
-0
  SENDBYTE(COMX, VAR)

  Sendet das  Byte  VAR über die serielle
  Schnittstelle COMX.  Diese muß  vor Be-
  ginn  der Übertragung  mit COMINIT ini-
  tialisiert werden. Vor dem Senden eines
  Bytes muß mit  GETLSTATUS  festgestellt
  werden, ob der Sendepuffer der Schnitt-
  stelle leer ist.
0
╠
  RECEIVEBYTE(COMX, VAR)

  Liest ein  von der seriellen Schnittstelle
  COMX empfangenes Byte in die Variable VAR.
  Zuvor muß mit GETLSTATUS festgestellt wer-
  den, ob ein Byte empfangen wurde.
7`
  LPRINT(StringVar$)
  LPRINT('Text')
  LPRINT('Text'+StringVar$)
  LPRINT(CHR(NumVar)+STR(NumVar,x)) etc.

  Gibt auf der  parallelen Schnittstelle LPT1 (PRN)
  den String STR$ aus. Ist kein Drucker angeschlos-
  sen oder betriebsbereit, wird eine  Fehlermeldung
  erzeugt.  Der Status  des Druckers  läßt sich mit
  PRNSTATUS feststellen.
4°
  SETDBLINE(FELD, STR$)              (nur 'PRO')

  Überschreibt das Feld 'FELD' des aktuell gele-
  senen Datensatzes  einer geöffneten  Datenbank
  mit  dem  String STR$.  Mit STR$ können sowohl
  numerische als auch  String-Felder überschrie-
  ben werden.Es ist streng darauf zu achten, daß
  bei numerischen Feldern der  übergebene String
  mit der Felddeklaration (Vorkommastellen,Nach-
  kommastellen)  übereinstimmt,  da sonst dieses
  Feld nicht mehr fehlerfrei gelesen werden kann.
1╧
  WRITEDBENTRY(Entry)            (nur 'PRO')

  Schreibt den  gelesenen  Datensatz (ggfls.
  nach  Änderung  durch  SETDBLINE)  in  die
  geöffnete Datenbank zurück. Dabei wird der
  Datensatz 'Entry' in  der  Datenbank über-
  schrieben. Ist 'Entry' größer als d.Anzahl
  vorhandener Datensätze, wird der Datensatz
  automatisch am Ende d.Datenbank angehängt.
  Das  Datensatzattribut  des  geschriebenen
  Datensatzes wird auf 'ungelöscht' geändert
0²
  FULLSCREEN(on | off)

  Schaltet aus  dem aktuellen SVGA-Modus in
  den  Standard-VGA-Modus  320x200x256 (on)
  und wieder zurück (off). Ist speziell für
  die  automatische  Pixelverdoppelung  bei
  FLI- und AVI-Wiedergabe  gedacht, deshalb
  Achtung: die OPTIX-interne  Grafikverwal-
  tung bleibt im SVGA-Modus(z.B. XMAX,YMAX)

  Beispiel:
              INITFLI('xxx.FLI')
              FULLSCREEN(on)
                SETALLPAL
                STARTFLI(...
              FULLSCREEN(off)
5]
  SETMSTATUS(COMX, STATUS)

  Setzt die Ausgänge der  seriellen Schnittstelle
  COMX auf den Wert 'STATUS', wobei die Bits fol-
  gende Bedeutung haben:

  Bit 0   DTR
  Bit 1   RTS
  Bit 2   N.F.     (OUT 1)
  Bit 3   N.F.     (OUT 2)
  Bit 4   Schleife
  Bit 5   N.F.
  Bit 6   N.F.
  Bit 7   N.F.     N.F. = Bit hat keine Funktion
6ó
  GETLSTATUS(COMX, STATUS)

  Liest den Linestatus der seriellen Schnittstelle
  COMX und liefert ihn in der Variablen STATUS zu-
  rück. Die Bits von STATUS haben folgende  Bedeu-
  tung:

  Bit 0   Daten bereit
  Bit 1   Überlauffehler
  Bit 2   Paritätsfehler
  Bit 3   Rahmenfehler
  Bit 4   Datenwortunterbrechung
  Bit 5   Senderegister leer
  Bit 6   Sendeschieberegister leer
  Bit 7   immer 0
)\
  GETMSTATUS(COMX, VAR)

  Liest den Modemstatus der seriellen
  Schnittstelle  COMX und liefert ihn
  in der Variablen STATUS zurück. Die
  Bits  von  STATUS   haben  folgende
  Bedeutung:

  Bit 0   Delta  CTS
  Bit 1   Delta  DSR
  Bit 2   Flanke RI
  Bit 3   Delta  RLSD
  Bit 4   CTS
  Bit 5   DSR
  Bit 6   RI
  Bit 7   RLSD
,√
  LPRINTLN('Text')
  LPRINTLN(Var$)

  Gibt den angegeben  Text als Zeile auf
  LPT1  aus. Im Gegensatz zu LPRINT wird
  als Abschluß  automatisch ein CHR(10)+
  CHR(10)  - 'Carriage Return' und 'Line
  Feed' - ausgegeben. (Sonst wie LPRINT)
 
 
 


3

  PARAMSTR(NUM)   (String-Funktion nur in 'PRO')

  Liefert  den an  OPTIX-'PRO' übergebenen  DOS-
  Parameterstring   mit  der  Nummer  'NUM'  als
  String  zurück.  Leerzeichen  und  Tabs werden
  als Trennung zwischen zwei Parametern betrach-
  tet.

-W
  XMAX, YMAX                 (Funktionen)

  Liefern die maximal  auf dem Bildschirm
  verfügbaren  Koordinaten  zurück. Diese
  Werte sind um eins kleiner als die  An-
  zahl der Pixel und Zeilen der aktuellen
  Bildschirmauflösung.  Bei einer vorhan-
  denen Auflösung von 640x480 wird XMAX =
  639 und YMAX = 479 zurückgeliefert.
 

  YMAX

6
τ
  ON, TRUE, OFF, FALSE           (Sytemkonstanten)

  ON  und TRUE  stehen für den numerischen Wert 1,
  OFF und FALSE stehen für den numerischen Wert 0.
  Der Compiler setzt die entsprechenden Werte beim
  Kompilieren ein.
 


  OFF

 

  TRUE

 

  FALSE

2╢
  BLASTER                           (Funktion)

  Diese Funktion  liefert den  Wert TRUE, wenn
  OPTIX beim Start einen Soundblaster-kompati-
  blen Soundadapter gefunden hat.
1ÿ
  MOUSE                            (Funktion)

  Diese Funktion liefert  den Wert TRUE, wenn
  OPTIX beim Start einen Maustreiber gefunden
  hat.
/
  MOUSEX, MOUSEY                 (Funktion)

  Diese Funktionen  liefern  die  aktuellen
  Koordinaten  des  Mauscursors, wenn zuvor
  ein Maustreiber  installiert  wurde.  Die
  Abfrage funktioniert auch, wenn der Maus-
  cursor nicht angeschaltet ist.
 
	  MOUSEY
!s
  MOUSEK           (Funktion)

  Diese  Funktion liefert den
  aktuellen Zustand der Maus-
  Buttons zurück.
"x
  MCURS             (Funktion)

  Diese Funktion  liefert TRUE
  zurück,  wenn der Mauscursor
  angeschaltet ist.
)ß
  WINX, WINY             (Funktionen)

  Diese Funktionen liefern  die Größe
  des  aktuellen  WIN-Puffers  zurück
  (Pixel/Zeilen). Sollte der aktuelle
  WIN-Puffer leer sein,  wird jeweils
  eine 0 zurückgeliefert.
 
  WINY
*{
  DBENTRY      (Funktion nur in 'PRO')

  Liefert die  Nummer des letzten, aus
  der Datenbank gelesenen Datensatzes.
1
▐
  DBCTR               (Funktion nur in 'PRO')

  Liefert die Anzahl aller in einer Datenbank
  vorhandenen Datensätze,  wobei auch die als
  ungültig bzw. gelöscht gekennzeichneten Da-
  tensätze mitgezählt werden.
2
α
  DBVALID              (Funktion nur in 'PRO')

  Liefert den Wert TRUE, wenn die letzte Lese-
  operation aus der Datenbank  erfolgreich war
  und der Datensatz gültig ist (d.h. nicht als
  gelöscht gekennzeichnet).
/
  KEYPRESSED                     (Funktion)

  Prüft, ob eine Taste  gedrückt  wurde und
  liefert dann TRUE zurück. Das eingegebene
  Zeichen kann mit der Funktion READKEY ge-
  lesen werden.  Danach  liefert KEYPRESSED
  wieder ein FALSE zurück.
+
  READKEY                    (Funktion)

  Liefert  die zuletzt  gedrückte Taste
  der Tastatur als numerischen Wert zu-
  rück.  READKEY wartet nicht auf einen
  Tastendruck,  sondern liefert eine 0,
  wenn keine Taste zur Abholung bereit-
  steht.
.│
  Tastaturcodes         (Systemkonstanten)

  Diese reservierten Wörter  enthalten die
  Tastaturcodes  der  verschiedenen  Funk-
  tionstasten. Mit ihnen kann auf einfache
  Weise die Steuerung eines Programms mit-
  tels der Funktionstasten realisiert
  werden.

  Es sind folgende Kürzel definiert:

  F1..F12 RET    HOME  END  PGUP  PGDN
  LEFT    RIGHT  DOWN  UP   INS   DEL
  BACKSP  ESC    TAB   STAB (Shift-Tab)
 
  RET
 
  HOME
 
  END
 
  PGUP
 
  PGDN
 
  INS
 
  DEL
 
  LEFT
 
  RIGHT
 
  UP
 
  DOWN
 
  F1
 
  F2
 
  F3
 
  F4
 
  F5
 
  F6
 
  F7
 
  F8
 
  F9
 
  F10
 
  F11
 
  F12
 
	  BACKSP
 
  TAB
 
  STAB
"		 Leer

"ä
  AVIX, AVIY      (Funktionen)

  Diese Funktionen liefern die
  Größe (Pixel und Zeilen) des
  aktuell geöfneten AVI-Videos.
 

  AVIY

2
  JOY1X, JOY1Y, JOY2X, JOY2Y      (Funktionen)

  Diese Funktionen liefern  die aktuellen X/Y-
  Koordinaten der beiden an den PC angeschlos-
  senen  Joysticks.  Als Maximalwert wird 4096
  zurückgeliefert, wenn kein Joystick ange-
  schlossen ist.
 

  JOY1Y

 

  JOY2X

 

  JOY2Y

 ^
  JOYK            (Funktion)

  Liefert Informationen über
  gedrückte Joystick-Buttons.
%_
  JOY                  (Funktion)

  Liefert True, wenn ein Joystick
  angeschlossen ist.
/R
  SYSTIME        (Funktion)

  Liefert einen Zeitzähler  zurück, der mit
  der Animation gestartet wird. Dieser Zäh-
  ler  wird alle 10 Millisekunden inkremen-
  tiert  und dient zum Erzeugen von zeitab-
  hängigen  Schleifen etc.  Während des Ab-
  laufes von FLI/FLC sowie AVI-Videos soll-
  te SYSTIME nicht benutzt werden.
m
  LINCTR        (Funktion)

  Liefert die mit READTEXT
  tatsächlich eingelesenen
  Textzeilen zurück.
$}
  DATE                (Funktion)

  Liefert das aktuelle Datum als
  numerische Variable im  Format
  DDMMJJJJ zurück.
'ä
  TIME                   (Funktion)

  Time liefert die aktuelle Uhrzeit
  als numerische Variable im Format
  HHMMSS zurück.
.½
  SOUNDFLG                      (Funktion)

  Diese Funktion liefert ein True, solange
  ein mit STARTSOUND gestarteter Sound als
  Hintergrundprozess noch abläuft.
+~
  EMSSIZE                    (Funktion)

  Liefert die  aktuelle  Größe des noch
  freien EMS-Speichers in KByte zurück.
7Æ
  XMSSIZE                                (Funktion)

  Liefert  die Größe des größten, zusammenhängenden
  XMS-Speicherblocks in KByte zurück.Der erweiterte
  Speicher (XMS als auch EMS) kann durch wechselnde
  Belegung fragmentiert sein,  so daß trotz ausrei-
  chender  Gesamtspeichermenge kein  XMS-Block groß
  genug ist,  um einen Sound bestimmter Länge voll-
  ständig laden zu können.
,
╧
  MEMSIZE                     (Funktion)

  Liefert die  Größe des  OPTIX noch zur
  Verfügung stehenden  DOS-Speichers zu-
  rück. In diesem Speicherbereich werden
  z.B. die Feldvariablen angelegt.
'o
  ERRORLEVEL

  Liefert nach EXECUTE-Aufruf ggfls.
  den Exitcode des aufgerufenen Pro-
  zesses zurück.
(M
  CDDRIVES

  Liefert die Anzahl der verfügbaren
  CD-Laufwerke zurück.
,α
  CDAUDIO                     (Funktion)

  Diese  Funktion  liefert  True zurück,
  wenn eine CD einen oder mehrere spiel-
  bare (Audio-) Tracks enthält. Der Test
  muß zuvor durch  den Befehl CDINIT er-
  folgen.
"Ç
  STARTTRACK        (Funktion)

  Diese Funktion  liefert  die
  Nummer des ersten spielbaren
  (Audio-) Tracks einer CD.
#â
  ENDTRACK           (Funktion)

  Diese  Funktion  liefert  die
  Nummer des letzten spielbaren
  (Audio-) Tracks einer CD.
+█
  AMINUTE                    (Funktion)

  Diese  Funktion liefert den aktuellen
  Zeitpunkt  der laufenden CD,  bezogen
  auf den Anfang der CD, in Minuten zu-
  rück.  Zuvor  muß  CDINFO  aufgerufen
  werden.
*ß
  ASECOND                   (Funktion)

  Diese Funktion liefert den Sekunden-
  anteil des aktuellen Zeitpunktes der
  laufenden CD, bezogen auf den Anfang
  der CD,  zurück.  Zuvor  muß  CDINFO
  aufgerufen werden.
&k
  VCOLOR          (Systemvariable)

  Liefert die aktuell eingestellte
  SETCOLOR-Vordergrundfarbe.

&l
  BCOLOR          (Systemvariable)

  Liefert die aktuell eingestellte
  SETBCOLOR-Hintergrundfarbe.

/±
  PARAMCOUNT        (Funktion nur in 'PRO')

  Liefert  die  Anzahl  der Kommandozeilen-
  Parameter zurück,  die dem Programm über-
  geben wurden. Leerzeichen und Tabs werden
  als Trennung zwischen zwei Parametern be-
  trachtet.
!Z
  ENVCOUNT         (Funktion)

  Liefert die Anzahl der DOS-
  Environmentvariablen.
'î
  COMPORTS               (Funktion)

  Diese Funktion liefert die Anzahl
  der von  DOS gefundenen seriellen
  Schnittstellen zurück.
 
       Leer

+ö
  PRNSTATUS                  (Funktion)

  Liefert den Status des Druckers LPT1.
  Die Bits beschreiben den Zustand fol-
  gender Steuerleitungen:

  Bit 0   N.F. (Bit hat keine Funktion)
  Bit 1   N.F.
  Bit 2   N.F.
  Bit 3   -Fehler
  Bit 4   Select
  Bit 5   kein Papier
  Bit 6   Acknowledge
  Bit 7   -Busy

  Ein betriebsbereiter Drucker liefert
  normalerweise eine 223 zurück.
 


 

 

 

 

 

 
