OPTIC HELP FILE δ┤ _⌠É(ñ6	ó	ä,∩╫╪4╣Γ╒ε±╫ ╧ !!î!∙!h"╨"è#Σ#?$╥$j%&╞&8'δ'¢(ç-0"2╘2¢4ù57╘;»<ë@ÆAòBDkD┬D¥E▄F╚GtK4M]QiR≡R┬ST╬TïU»VX╛ZL[ñ[i\ñ]7^¬^#_┘_J`╓aáb*c┬ceÑfΩg,i1jâkl±ldm·m|n∙n~o p╔p1qbrrrísùt⌠tnv╢w#xvx²xSyzÿ{¬{╓{\|δ|ε}╘~fα≥ìÇ Çäü:é╚é&ätàêlêöë∩ë┼è½ïàì8Ä½ÄÿÅ:Æôöô
ö]ö╕ö─ò/û▄ûéùÿαÿ│ÖÇÜΣ¢{£è£╘¥Θ¥å₧çá╕óΓñ┘ª∩¿Σ⌐±¬╡½v¡H«
»∩»q░⌠░z▒R▓`▓@│┤«┤╛┤╬┤╒┤▄┤Γ┤&'
          Editorfunktionen

  F1  Aufruf OPTIC Hilfe
  F2  Abspeichern Datei
  F3  Lese Datei


  CTRL K..   Blockfunktionen

  B   Kennzeichne Anfang Block
  K   Kennzeichne Ende Block
  L   Kennzeichne Zeile
  H   Verstecke Block
  R   Lese Block von Disk
  W   Schreibe Block auf Disk
  C   Kopiere Block
  V   Verschiebe Block
  Y   Lösche Block
  S   Abspeichern Datei (wie F2)


  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 dann beim Kompilieren
  vollständig ignoriert.
*

  SETALLPAL

  Kopiert die Hintergrund-Farbpalette
  in die aktuelle Vordergrund-Palette,
  wodurch sie gleichzeitig sichtbar
  aktiviert wird.
(

  FADEPAL(Z)

  Blendet die Hintergrund-Palette in
  die  aktuelle  Vordergrund-Palette
  über. 'Z' bestimmt dabei die Zeit-
  verzögerung.
'
  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.
*
  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).

  0      maxim.Ladegeschwindigkeit. Die Zeitangabe
         'Z' wird hier ignoriert. Die Palette wird
         mitgeladen!
  1      Zeilenweise von oben nach unten
  2      Zeilenweise von unten nach oben
  3      v.Bildmitte aus zeilenw.nach oben u.unten
  7      rautenförmig von Bildmitte ausgehend
  8      diagonal von links oben nach rechts unten
  9      wie oben, jedoch mit Papierblatteffekt
  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 ingnoriert.
&
  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.
'
  EXECUTE('Name.COM/EXE')

  Führt das DOS-Programm 'Name' als
  Subprozess aus. Das Programm  muß
  eine 'COM'- oder 'EXE'-Datei max.
  in Segmentgröße (64KB) sein. Nach
  Rückkehr wird der Grafikmodus von
  OPTIX selbstständig  restauriert.
+
  SOUND('Name.WAV/VOC/SND/BYT')

  Startet d. Wiedergabe des 8Bit-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.
.
  INCLUDE('Name.TXT/OPT/INC')

  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. Er-
  möglicht das Verarbeiten von Quelltexten
  mit mehr als 64 KByte Größe.
.
  READPIC('Name.BMP/PCX/TGA')

  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, sowie die
  Formate 'TGA' und 'PCX' in 256 Farben.
  TGA-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..V16])]

  Deklariert  den  Anfang einer  Prozedur. Optional
  können  in Klammern  (durch  Komma  getrennt) bis
  zu 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 in sie  hinein
  sind nicht erlaubt.

      PROCEDURE Name(Parmeter1,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) 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) 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.
.
  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.
"
  SETGCURSOR(X0,Y0)

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

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

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

  Blendet ein Bild von einem
  schwarzen Hintergrund ein.
  Z ist die Zeitverzögerung.

  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.
%
  TEXTCOLOR(COL)

  Legt die Vordergrundfarbe 'COL'
  des aktuellen Fonts fest.
%
  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  die 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!
$
  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 Systemvariablen (s.Handbuch)

   'Label' bestimmt die Programm-Marke, zu  welcher von CHECK-
   BUTTON aus verzweigt werden soll,wenn die Taste 'ausgelöst'
   wurde.
4
  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üßen anschließend  neu geladen  werden.
/
  SHOWFILM(X0,Y0,Z,V)

  Zeigt den  zuvor mit  READFILM  geladenen
  Film.  'X0, Y0' sind die  Koordinaten 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.
1

  READFONT(V,'Font.fnt')

  Liest  den  OPTIX-Font 'Font.fnt' von  der
  Festplatte,  Diskette,  CD etc. )  in  den
  Fontpuffer 'V' (1 - 4).  Es können maximal
  4 Fontpuffer gleichzeitig verwaltet werden.
2"
  RESTOREBOX(TYP, Z)

  Kopiert den  Hintergrundspeicher  in der
  Größe des aktuellen Viewports (s.dort)in
  den Vordergrund-Bildschirmspeicher.  Mit
  'Z' wird die Zeitverzögerung  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 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.
     11 Zeilenweise in d.Mitte beginnend nach
        oben und unten.
     12 Spaltenweise i.d.Mitte beginnend nach
        rechts und 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

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

  Setzt die Hintergrundfarbe auf
  den Wert 'COL'. (0..255)
$
  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

  Zeigt  die  aktuelle  Palette  auf dem
  Bildschirm an und stoppt die Animation
  bis zum nächsten Tastendruck.

  SHOWPALETTE dient als Programmierhilfe
  und wird vom RunOnly-Interpreter igno-
  riert.
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.
6#
  LOADWIN(X0,Y0,TYP,Z)

  Lädt das geladene Fenster aus dem WIN-Bildpuffer
  auf die Koordinate 'X0,Y0'  des Bildschirms. 'Z'
  bestimmt dabei die 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 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 von oben nach unten.
     10 Transparentes Raster von unten nach oben.
     11 Zeilenweise in der Mitte beginnend nach
        oben und unten.
     12 Schiebt das Bild von oben nach unten ein.
     20..29 skaliert von 1:2 bis 1:8
(
  READPAL('Name.PAL')

  Liest die Palette  'Name.PAL'  von
  Festplatte, Diskette, CD etc.  und
  schreibt sie in  die  Hintergrund-
  palette,  wobei  eine automatische
  Anpassung andie 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.
!
  SETPVGA

  Schreibt die VGA-Palette in
  den Palettenpuffer.
+

  SAVEBUF('Name.Bmp')

  Speichert den Inhalt des Hintergrund-
  puffers incl.  BMP-Header und Palette
  in die Datei 'NAME.BMP'  im aktuellen
  PICPATH der Festplatte, 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.
*
  ENDIF

  Schließt einen IF...[ELSE] Vergleich
  ab. Siehe auch IF und ELSE.
,

  STR(VAR,ANZ,VAR$)

  Wandelt  die  Variable 'VAR' in  einen
  String um, formatiert ihn rechtsbündig
  auf 'ANZ'  Zeichen  und  schreibt  das
  Ergebnis in die Stringvariable 'VAR$'.
-
  :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.
(
  CLOCKXY(X0,Y0)

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

  Zeichnet ein Rechteck auf den
  Koordinaten des Viewports mit
  der SETCOLOR-Vordergrundfarbe.
#
  OPENDBANK('Name.DBF')

  Öffnet die  DBASE- kompatible
  Datenbank mit der Bezeichnung
  'Name.DBF' zur weiteren  Ver-
  wendung mit  den OPTIX-Daten-
  bankbefehlen.

  READDBENTRY(V)

  Liest  den  vollständigen
  Datenbankeintrag mit  der
  Nummer 'V' in d.Speicher.
,
  READDBNEW(START,INDEX,SUCH$)

  Sucht  den  nächsten  Datenbankeintrag
  der  aktuell  geöffneten  Datenbank ab
  Datensatz 'START', in  dem  der alpha-
  numerische   Inhalt   des  Datenfeldes
  'INDEX' mit dem Inhalt der Stringvari-
  ablen 'SUCH$'  übereinstimmt und liest
  ihn ein  (wie READDBENTRY). Verglichen
  werden dabei  nur  die in SUCH$ vorge-
  gebenen Zeichen.
*
  GETDBVAR(INDEX,VAR)

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

  CLOSEDBANK

  Schließt die aktuell geöffnete
  Datenbank (s. OPENDBANK), ohne
  gleichzeitig eine  neue öffnen
  zu müssen.
+
  CHAIN('Name.CHN')

  Lädt die  fertig  kompilierte  OPTIX-
  Animation 'Name.CHN' in den Programm-
  speicher und startet sie automatisch.
1
  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)

  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,W)

  Gibt eine  Textzeile  der aktuell geöffneten
  Datenbank (s.OPENDBANK)  auf dem  Bildschirm
  aus. 'F' gibt das Feld innerhalb  des  aktu-
  ellen  Datensatzes an.  Sollte  das Feld 'F'
  kein Textstring sein,wird nichts ausgegeben.
  Ist 'W' = 1, so erfolgt  ein Zeilenvorschub.
+
  CHECKTIME('Label',ZEIT)

  Kontrolliert   die   Systemzeit   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.
  160845) erfolgen.
*
  PRINT('Text')
  PRINT(VAR$)
  PRINT('Text'+VAR$) 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.
(
  PLOT(X0,Y0)

  Setzt auf die Bildschirmkoordinate
  X0,Y0 einen  Punkt mit der Vorder-
  grundfarbe.
 
  GETENV('STR')

  Liest den Inhalt  der DOS-
  Environmentvariablen 'STR'
  in einen internen  Puffer.
%

  GOTOENV('Label','String')

  Springt zur Marke 'Label', wenn
  die durch GETENV zuvor gelesene
  Environment-Variable = 'String'
  ist.
#
  DEFS(VAR$[,'Text'])

  Deklariert die Stringvariable
  'VAR$'.  Ein  Inhalt  kann in
  'Text'  vordefiniert  werden.
%
  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.
(
  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.
,
  LEER

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

  Liest  die 8Bit-Sounddatei 'Name.xxx' von
  der Festplatte, Diskette, CD etc.) in den
  XMS-Soundspeicher.  Die Größe des XMS muß
  zuvor  entsprechend dimensioniert  worden
  sein (beachten  Sie  dazu die Hinweise in
  Ihrem DOS-Handbuch: EMS/XMS).
)
  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.
&
  STOPSOUND

  Stoppt eine zuvor mit STARTSOUND
  eingeschaltete  Soundwiedergabe.
+
  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 durch SETCOLOR/SETBCOLOR.
-
  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 die  Maus  dann nicht mehr
  hinausbewegen läßt.

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


  GETPAL

  Kopiert die aktuelle
  Vordergrund- Palette
  in  den Hintergrund-
  Palettenpuffer.
$
  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.
%
  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  auch durch  [F3]
  an- und durch [F4] wieder ausgeschal-
  tet werden.
!
  COMMON



  BEEP

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

  Zeichnet   einen   Kreis  mit  dem
  Mittelpunkt 'X0,Y0' und dem Radius
  'R' in der 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'.
+
  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.
)
  KEY(V)

  Mit 'V'= 1 wird die Transparenz bei
  LOADWIN, MOVBITMAP  und  LOADSPRITE
  eingeschaltet.  Mit  KEYCOLOR  wird
  die entsprechende  Transparenzfarbe
  festgelegt. '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'.
!

  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.


  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.
,
  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üßen
  identisch   sein.  Ein   gespeichertes
  Word-Feld DEFAW(Arr,100,100) kann z.B.
  in ein Longwert-Feld DEFAL(Arr,50,100)
  gelesen werden.
+
  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,  sodaß  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).
%
  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.
$
  MOD(V,WERT)

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

  Mit  LOCALS  werden  innerhalb einer
  Prozedur lokale Variablen definiert.
  Die Summe der Prozedurparameter  und
  der lokalen  Variablen darf 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.
!
  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ß  der eingegebene  String in  'VAR$'
  vollständig  in Großbuchstaben umgewan-
  delt und zurückgegeben wird.
'
  COPYWIN(X0,Y0,X1,Y1)

  Kopiert   das  Bildschirmrechteck
  mit den Koordinaten 'X0,Y0,X1,Y1'
  aus  dem  Vordergrund- Bildschirm
  in den  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.
$
  RANDOM(MAX,VAR)

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

  Addiert zur Variablen 'VAR'
  den angegebenen 'WERT'.
#
  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.
#
  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.
)
  COPYPROG('Name.Dat')

  Kopiert  die Datei  'Name.xxx'  aus
  dem  aktuellen PICPATH  auf die  im
  Laufwerk 'B:' befindliche Diskette.
(
  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$)

  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(Wordfeld)
        Wordfeld[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  WIN-
  Puffers incl. BMP - Header  und
  Palette in die Datei 'NAME.BMP'
  im aktuellen PICPATH der  Fest-
  platte oder Diskette.
0
  PRINTC(X0,Y0,'Text')
  PRINTC(X0,Y0,Stringvar)
  PRINTC(X0,Y0,'Text'+Stringvar) 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.
'
  LEER
(
  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 für
  die angegebene  Zeit-'DAUER' (in
  1/1000sec) einen  stehenden  Ton
  mit der  Schwingungsfrequenz von
  'HZ' Hertz (Kammerton A = 440Hz)
*

  CHR(VAR$,WERT)

  Wandelt den angegebenen ASCII-'WERT'
  in ein  Textzeichen um  und  liefert
  dieses in der Stringvariablen 'VAR$'
  zurück.

 

  LEER

 

  LEER

 
 
 
 
 

 

 
