                           MathPlot
                           ========
                           
                  © by Rüdiger Dreier 1991/92/93


Diese Anleitung soll eine Benutzung der ShareWareversion von MathPlot
ermöglichen. Abschnitte, die mit "!!" in der ersten Spalte gekenn-
zeichnet sind, enthalten wichtige Hinweise und sollten gelesen werden.
Bei einer Registrierung erhalten Sie eine gedruckte Version der 
aktuellen Anleitung.

Zur Registrierung siehe "Registrierung.txt"

Meine Adresse:

 Rüdiger Dreier
 Gustav-Winkler-Str. 40
 W-4800 Bielefeld 18
 Deutschland

Bis auf weiteres bin ich auch per EMail erreichbar:

 uphya600@unibi.hrz.uni-bielefeld.de             oder
 ruediger.dreier@dave.hrz.uni-bielefeld.de








Ein wichtiger Hinweis
=====================

!!  Der Autor übernimmt keinerlei Haftung für Schäden, die aus der sach-
!!  oder unsach-gemässen Benutzung des Programms entstehen !!
!!
!!  Weiterhin wird keine Haftung für die Fehlerfreiheit des Programms
!!  übernommen !!
!!
!!  Benutzung auf eigene Gefahr !
!!
!!  MathPlot ist SHAREWARE. 
!!  Bei regelmäßiger Benutzung ist die Share-Gebühr zu bezahlen. 
!!  Näheres siehe weiter unten. Dazu bitte das Formular aus 
!!  "Registrierung.txt" benutzen !
  

Zu dieser Version von MathPlot
==============================

!! Diese Version des Programms ist eine Demoversion mit leichten
!! Einschränkungen (Es erscheint in regelmäßigen Abständen ein 
!! Nervrequester). Sie darf unter folgenden Bedingungen weiter-
!! gegeben werden:

   -  Der Copyrighttext darf nicht verändert worden sein.
     
   -  Es darf mit dem Vertrieb des Programms KEIN Geld verdient werden (also 
      nur Kosten für Porto, Material und eine KLEINE Gebühr für die Ab-
      nutzung der Kopieranlage, Strom etc.)

   -  Das Programmpaket darf nicht verändert worden sein.

   -  Das Programmpaket muß vollständig sein, also sämtliche Teile der
      Anleitung (in mindestens einer Sprache) und eine lauffähige Version 
      von MathPlot sowie eine Version der mtool.library müssen zusammen 
      weitergegeben werden.
      
   -  Will jemand MathPlot (oder einen Teil davon) oder die mtool.library
      (oder einen Teil davon) kommerziell nutzen (z.B. in eine sogenannte
      "PD-Disk-Serie" mit einem Verkaufspreis von über DM 5,-- je Diskette
      aufnehmen), so ist dafür die schriftliche Genehmigung des Autors
      nötig.
      
   -  Es IST erlaubt, die Textdateien in andere Sprachen zu übersetzen
      und zusammen mit diesem Programm weiterzugeben. Wer sich diese
      Mühe gemacht hat, sende mir bitte die entsprechende Datei zu. Dann
      bitte auch mitteilen, ob ich diese Datei bei den Demo-Version und
      den registrierten Versionen von MathPlot beilegen darf !
      
   -  Es IST erlaubt und erwünscht, daß diese Demoversion in 
      elektronischen Netzwerken verbreitet wird.
      
      

Sharegebühr
===========

Wird dieses Programm regelmäßig benutzt, so ist die Sharegebühr zu bezahlen.
Sie beträgt DM 30,-- oder (US)$ 20,-- und ist unter Angabe des Programmnamens
und der Programmversion (möglichst auch wo man sie gefunden hat) an die
oben stehende Adresse zu senden (bitte das Formular aus "Registrierung.txt"
benutzen). Dafür erhält man

   -  Die neuste Version von Math-Plot (Vollversion). Diese Version darf
      NICHT weitergegeben werden.
      
   -  Eine gedruckte Anleitung (die Vollversion von dieser, bitte angeben, 
      ob Deutsch oder Englisch, andere Sprachen stehen NICHT zur Ver-
      fügung).
      
   -  Updateservice. Neuere Versionen können (falls vorhanden) gegen
      Einsendung einer Leerdiskette, Rückporto und Umschlag
      unter Angabe der Registriernummer angefordert werden. Bitte die
      vorhandene Version angeben. Sollte keine neuere Version vorliegen, oder
      die Veränderungen zu minimal sein, werde ich mit der Antwort warten,
      bis entsprechende Veränderungen vorhanden sind.
      Falls Sie per EMail erreichbar sind, kann ich auch in gewissen
      Abständen die neueste Version als "UUENCODE'd" Version zuschicken.
      
Ich akzeptiere auch gültig, (bundes)deutsche Briefmarken. Der Einzelwert
einer Marke sollte nicht über DM 1,-- liegen.



Der Quelltext von MathPlot
==========================

Der Quelltext ist NICHT frei kopierbar und ist nur gegen Bezahlung
erhältlich. Die Gebühr hierfür beträgt DM 30,-- oder (US)$ 20,--.

!! Der Quelltext darf nicht weitergegeben oder (ohne schriftliche
!! Genehmigung) kommerziell genutzt werden. Der Quelltext ist NUR für
!! registrierte Benutzer erhältlich.



Anwendungsgebiet
================

MathPlot ist ein Programm zum Zeichnen zweidimensionaler mathematischer
Funktionen. Es können bis zu 10 Funktionen eingegeben und gezeichnet
werden. Zusätzlich kann man sich von jeder Funktion die erste und
zweite Ableitung zeichnen lassen (jeweils numerisch oder symbolisch
bestimmt). Weiterhin sucht das Programm Nullstellen, Extrema und
Wendestelle. Numerische Integration ist möglich. Ein ARexx-Port
zur einfachen Erweiterung des Programms steht zur Verfügung.
MathPlot eignet sich zur Unterstützung bei Kurvendiskussionen, 
um die selbst errechneten Ergebnisse zu kontrollieren.



Anforderungen an den Rechner
============================

!! Das  Programm läuft nur unter  Kickstart 2.04 und höher ! 512 kB
!! Speicher sollten eigentlich ausreichen, für große Screens ist 1MB
!! Chip-Ram nicht schlecht. Der Stack sollte mindestens 20000 Bytes
!! betragen, sonst kommt es zu leicht zu Abstürzen. Im logischen Verzeichnis
!! LIBS: müssen sich mehrere Libraries befinden:

!! -  mathieeedoubbas.library
!! -  mathieeedoubtrans.library
!! -  asl.library
!! -  mtool.library (in diesem Ordner enthalten)
!! -  diskfont.library (V36 oder höher)
!! -  ILBM.library (wird für das Abspeichern als IFF-File gebraucht,
!!                  sonst nicht nötig)

Und in S: sollten sich befinden (Nicht unbedingt nötig):

   -  Funktionen.fkt, einige vordefinierte Funktionen.
   -  Colours.col, Die Farbdaten des Programms.

Falls der ARexx-Port benutzt werden soll, sollte der Inhalt des
Ordner "Macros" nach REXX: kopiert werden (bei ARexx scheint ein
"assign ..... add" nicht zu funktionieren).



Die Menupunkte
==============

Es folgt eine kurze Beschreibung der verschiedenen Menupunkte. Die
Bedeutung der meisten Menupunkte sollte alleine schon aus dem Namen
hervorgehen.

 Projekt
 -------
  
  Neu
  ---
    Nach einer Sicherheitsabfrage wird der Bildschirm gelöscht. Geschieht
    automatisch beim Verändern der Intervallgrenzen. Eine evt. vorhandene
    HP-Plotausgabe wird abgeschlossen. 
    
  IFF Save As
  -----------
    Dieser Menupunkt benutzt die ILBM.library. Ist sie nicht vorhanden, so
    erscheint ein Requester. Ist sie vorhanden, so wird nach dem Namen des
    Files gefragt und der Bildschirm abgespeichert. Sollte ein Fehler
    aufgetreten sein, so erscheint ein Requester.
    Falls das Programm von Workbench gestartet wurde, so wird das Icon als
    Icon für diese Datei benutzt.
    
  Funktionen laden/speichern
  --------------------------
    Nach Eingabe eines Namens wird die entsprechende Datei bearbeitet. Die 
    in der Datei enthaltenen Zeilen werden als Funktionen interpretiert, 
    bzw. die aktuellen Funktionen werden gespeichert. Das Demo-File zeigt,
    wie die Funktionen anzuordnen sind.
    
  Macros/Konstanten laden/speichern
  ---------------------------------
    Siehe bei Funktionen laden/speichern.
    
  Farbe laden
  -----------
    Der Name einer Datei wird abgefragt, die als Farbdatei geladen werden
    soll. Das Demo-File enthält ebenfalls alle nötigen Daten.

  Drucken
  -------
    Der Screen wird auf einem Preferences-Drucker ausgegeben. Während des
    Druckvorgangs ändert sich die Farbe des Screens. Eine HP-Ausgabe wird
    abgeschlossen.
    
  Iconify
  -------
    Der Screen wird geschlossen und auf der Workbench erscheint ein Icon
    für das Programm. Ein Doppelklick auf das Icon startet das Programm
    wieder. Die alten Funktionen etc. sind noch erhalten. Sollte nicht
    genügend Speicher vorhanden sein, um einen Screen zu öffnen, so wird
    das Programm beendet. Als Icon wird das Icon des Programms benutzt,
    falls es von der Workbench gestartet wurde. Bei Start von CLI 
    funktioniert Iconify nicht.
    
  About
  -----
    Es werden Informationen über das Programm (Versionsnummer) und den Autor
    angezeigt. Ebenso wird der Name des PublicScreens und des ARexx-Ports
    angezeigt. In neueren Versionen werden vielleicht noch mehr Daten
    angezeigt.
    
  Ende
  ----
    Nach einer Sicherheitsabfrage wird das Programm beendet (natürlich nur,
    falls die Sicherheitsabfrage entsprechend beantwortet wurde). 
!!  Da der Screen von MathPlot ein "Public-Screen" ist, kann es passieren,
!!  daß zu diesem Zeitpunkt noch ein FREMDES Fenster auf dem Screen
!!  ist. In diesem Fall wird das Programm NICHT beendet und es erscheint
!!  eine Mitteilung.

 Zeichnen
 --------
   
  Funkionen ändern
  ---------------- 
    Nach Anwahl dieses Menupunktes erscheint ein Untermenu mit den bisher
    eingegebenen Funktionen (es werden die ersten 14 Zeichen jeder Funktion
    angezeigt). Wird eine dieser Funktionen angewählt, so erscheint sie in
    einem Fenster, so daß sie verändert werden kann. Die Funktion muß
    mathematisch korrekt eingegeben werden.
    Wenn unpaarige Klammern vorhanden sind, erscheint das Fenster gleich
    wieder, damit man die Funktion korrigieren kann. Die veränderte Funktion
    wird mit RETURN oder durch Anwahl von "Fertig" übernommen; wird
    "Cancel" angewählt, so wird die ursprüngliche Funktion weiter verwendet. 

  Funkion #? Ableitung 
  --------------------
    Bei jedem dieser 5 Menupunkte erscheint wieder das oben beschriebene
    Untermenu. Durch Anwahl eines Untermenupunktes kann man dann bestimmen,
    welche Funktion man gezeichnet haben will. Numerische Ableitungen werden
    nach dem Sekantenverfahren bestimmt, dabei können schon in der ersten
    Ableitung Ungenauigkeiten auftreten, die in der zweiten Ableitung dann
    schon recht deutlich werden. Beim symbolischen Ableiten wird erst die
    Ableitung als Term bestimmt und dann normal gezeichnet. Dabei kommt es
    dann nach Anwahl der Funktion zu einer kurzen Verzögerung, in der die
    Ableitung bestimmt wird. Diese Methode ist genauer, hat aber auch ihre
    Nachteile:

  - Das Bilden der Ableitung ist ein rekursiver Vorgang. Der Stack sollte 
    daher ausreichend (mind. 20000 Bytes) sein. Kommt es zu unerklärlichen 
    Abstürzen, sollte man ihn noch weiter erhöhen.
    
  - Einige der verwendbaren Funktionen sind nicht ohne weiteres abzuleiten.  
    Die Ableitung von sgn ist z.B. fast überall Null, nur um Null herum ist 
    sie nicht definiert. Das Programm setzt dafür aber einfach Null ein.
    
  - Außerdem wird z.B. die Ableitung von ln zu 1/x bestimmt und auch so 
    gezeichnet, d.h. auch im negativen Bereich gezeichnet, obwohl ln dort 
    überhaupt nicht definiert ist.
    
    
  Diskussion
  ----------
    Unter diesem Menupunkt kann man sich eine grobe Kurvendiskussion
    erstellen lassen (Nullpunkte, Wendepunkte und Extrempunkte). Diese
    Punkte werden nur für das eingegebene Intervall bestimmt. Außerdem
    wird die Funktion sowie die erste und zweite Ableitung angezeigt. Bei
    Extremstellen wird angegeben, ob es ein Minimum oder Maximum ist, bei
    Wendestellen, ob es eine rechts/links "Kurve" oder umgekehrt ist.
    Vorher wird man noch gefragt, ob das Programm nach jedem Abschnitt 
    stoppen soll. Falls ja, wird man nach jedem Abschnitt gefragt, ob der 
    Bildschirm erst gelöscht werden soll.


  WICHTIG  !!!
  ============
!!  Ich übernehme keinerlei Verantwortung für die Richtigkeit der
!!  Ableitungen oder anderer Ergebnisse dieses Programms ! Nie blind auf die
!!  Ergebnisse vertrauen, lieber nochmal von Hand nachrechnen !!!!

  Num. Integration
  ----------------
    Hier können Sie eine Funktion numerisch Integrieren lassen. In dem
    erscheinenden Fenster wird die angewählte Funktion angezeigt (sie kann
    hier auch noch verändert werden !), außerdem werden Start und Ende des
    Integrationsbereiches abgefragt. Schließlich muß man noch angeben, in
    wievielen Schritten gearbeitet werden soll. Meist gilt: je mehr
    Schritte, desto besser. Die Integration startet man mit "Fertig", das 
    Ergebnis wird in dem einem Textgadget angezeigt, Fehler im anderen Text-
    gadget.

    Das Fenster schließt man durch Anwahl von "Quit".


Die von diesem Programm benutzten Ableitungen
=============================================

 -   +-*/                 Das bliche 
 -   x^a                  a*x^{(a-1)}
 -   a^x                  a^x*ln{a}
 -   f(x)^{g(x)}          (g(x)*ln(f(x)))'*f(x)^{g(x)}
 -   trig. Fkt.           Das bliche 
 -   abs(x)               sgn(x) (Für x=0 nicht richtig)
 -   int(x)               0 (Läßt sich drüber diskutieren) 
 -   sgn(x)               0 (Laßt sich drüber diskutieren) 



Die Fehlercodes des Programms
=============================

DIVBYZERO   &   1  &  Es wurde durch 0 geteilt 
LOGNEG      &   2  &  log(<=0) 
SQRTNEG     &   4  &  sqrt(<0) 
ATRIG       &   8  &  asin/acos(x), x<-1 oder x > 1 
UNPAKLAM    &   16 &  Unpaarige Klammern 
TEST        &   32 &  Wird nicht benutzt 
NOFUNC      &   64 &  Keine Funktion eingegeben
NO_KONST    &  128 &  Keine solche Konstante  
NO_MEM      &  256 &  Nicht genug Speicher     
POWERROR    &  512 &  < 0 hoch Bruch wurde versucht   
NO_FUNC     & 1024 &  Keine Funktion gefunden 
ER_AHYP     & 2048 &  Fehler bei acosh(),atanh() 


 Bearbeiten
 ----------
  Achsen/autom.
  ------------
    Es wird ein Koordinatenkreuz mit den letzten bei "manuell" eingegebenen
    Unterteilungen gezeichnet. 

  Achsen/manuell
  --------------
    Ein Fenster zur Abfrage der Anzahl Unterteilungen in x- und y-Richtung
    und der Textstellen (in der Form: Texte jede x-te Unterteilung)
    erscheint. Die Einstellungen geschehen über Schieberegler. Die beiden
    Regler für eine Achse sind miteinander gekoppelt, so daß bei 
    "Text jede ..." kein höherer Wert eingegeben kann, als es überhaupt
    Unterteilungen gibt.

    Um das ideale Koordinatensystem zu erhalten, ist es ratsam, vor dem
    Zeichnen der Funktion die Einstellungen so lange zu variieren, bis die
    Darstellung gefällt. Ist erst einmal eine Funktion gezeichnet, so kann
    nur einmal ein Koordinatensystem gezeichnet werden, danach ist der 
    entsprechende Menupunkt nicht mehr anwählbar. 
    Bevor die Achsen gezeichnet werden, erscheint das Fenster 
    wie unter "Text eingeben" beschrieben, um nach der Farbe für die Achsen zu 
    fragen.


  Zoom
  ----
    Dieser Menupunkt stellt eine Art Lupenfunktion zur Verfügung. Das
    Intervall, das als nächstes gezeichnet werden soll, kann mit der Maus
    ausgewählt werden. Die obere/linke Ecke wird mit der Maus angefahren,
    die linke Maustaste gedrückt  und gehalten und  dann die rechte/untere
    Ecke ausgewählt und  die Maustaste losgelassen. Danach wird der 
    Bildschirm gelöscht. Während die Maustaste gedrückt wird, wird um den
    momentan ausgewählten Bereich ein Kasten gezeichnet. Eine evt.
    vorhandene HP-Plotausgabe wird abgeschlossen.


  Text einfügen
  -------------
    Es erscheint ein Fenster mit einem Stringgadget, in dem man einen Text
    eingeben kann. Nach RETURN wird dieser Text immer an der aktuellen
    Mausposition angezeigt und kann so positioniert werden. Nach Druck auf
    die linke Maustaste erscheint ein Fenster, in dem man die Farbe für den
    Text auswählen kann (1-4, wenn keine HP-Plotausgabe aktiv ist, sonst
    1-8). Nur drei der vier Farben sind auf dem Bildschirm sichtbar, die
    vierte ist die Hintergrundfarbe. Wird eine Farbe >4 angewählt, so wird
    automatisch für den Bildschirm eine Farbe aus dem Bereich 1 bis 4
    gewählt. In der Hp-Ausgabedatei steht natürlich der gewählte Wert.
    
  
  Genauigkeit
  -----------
    Es  erscheinen 4 SubMenuPunkte, mit denen die Genauigkeit auf "klein",
    "mittel", "groß" oder "Sehr groß" gesetzt werden kann. Je genauer 
    gezeichnet wird, desto mehr Zeit wird benötigt.
    
    
  Intervall
  ---------
    Nach Anwahl dieses Menupunktes erscheint ein Fenster mit 4 String-
    gadgets, in denen die alten Intervallgrenzen (der Bereich, für den
    die Funktion gezeichnet werden soll) anzeigt werden. Diese Werte kann
    man wie gewohnt verändern. Der eingegebene Term muß nur den An-
    forderungen entsprechen, die auch für die Funktionen gelten. 
    Außerdem darf die linke/untere Grenze nicht größer/gleich sein als die 
    rechte/obere. In solchen Fällen erscheint das Fenster nach Anwahl des 
    "Fertig"-Gadget wieder. Weiterhin sind zwei Cycle-Gadgets vorhanden 
    (für jede Achse eins). Hier wird eingegeben, wie die für diese Achse 
    eingegebenen Werte zu interpretieren sind. Zur Verfügung stehen 
    *1, *e, *pi, 10^, e^.


  Konstanten
  ----------
    Es erscheint ein Fenster mit einem Cycle- und einem Stringgadget. Mit
    dem Cycle-Gadget wird der Name der Konstanten (a-z) eingegeben. 
    Wird der gewünschte Name angezeigt, RETURN drücken. Der Wert für e und x 
    wird später nirgendswo verwendet, sollte also nicht benutzt werden. Das
    Stringgadget ist zunächst deaktiviert. Wurde ein Name ausgewählt, so
    wird es aktiviert und eine evt. vorhandene Definition der Konstanten
    wird angezeigt. Diese kann verändert bzw. neu eingegeben werden. Durch
    Anwahl des "Fertig"-Gadgets wird die Definition übernommen. Bei Anwahl 
    von "Cancel" vergißt das Programm die Veränderungen, die alte Definition 
    der Konstanten wird weiter verwendet.


  Macros
  ------
    Siehe auch bei Konstanten.

    In den Funktionen wird ein Macro als_Macroname oder _Macroname(Parameter) 
    angesprochen (z.B. _a bzw. _a(2*x)). Wird ein Parameter angegeben, so 
    wird in dem Macro der Buchstabe x durch den Parameter ersetzt. Ein 
    Macro kann selbst wieder aus anderen Macros bestehen. Rekursionen 
    werden NICHT automatisch erkannt.


  HP-Ausgabe
  ----------
    Bei "An" wird der Name eines Files abgefragt, in das die Daten für
    einen HP-Plotter geschrieben werden sollen. Alle Zeichenvorgänge incl.
    Text einfügen werden in diese Datei geschrieben. Solange dieser Modus
    aktiv ist, bleibt die Farbe des Screens verändert. Ausgeschaltet wird
    dieser Modus mit "Aus" oder durch Ändern des Intervall oder durch
    normalen Ausdruck (Drucken).
    
    
  Farbe wählen
  ------------
    Das Fenster wie oben beschrieben erscheint. Die hier zu wählende Farbe 
    wird für alle Zeichenvorgänge benutzt (außer Achsen zeichnen).
    
    
  Font wählen
  -----------
    Mit den beiden Subitems "Font für Text" und "Font für Label" kann der 
    Zeichensatz, die Größe und der Style bestimmt werden, der zum Be-
    schriften der Achsen bzw. bei Text einfügen benutzt wird.
    Zur Auswahl erscheint der Standart-Font-Requester des Systems.
    
    
  Auflösung ändern
  ----------------
    In einer Liste werden alle verfügbaren (sinnvollen) Darstellungsmodi
    aufgelistet. Außerdem kann hier die tatsächliche neue Auflösung eingegeben
    werden.
    Sollte beim Öffnen des Bildschirm etwas nicht ganz klappen, so wird
    versucht, einen Bildschirm mit den Default-Werten (die auf jedem
    Amiga laufen sollten), zu öffnen. Klappt dies auch nicht, sollte das
    Programm sich selbst beenden.


  ARexx-Macro starten
  -------------------
    In dem erscheinenden Requester kann ein Rexx-File ausgewählt werden,
    das dann ausgeführt wird. Es werden alle Dateien in rexx: mit der
    Endung ".mapl" angezeigt (im Gegensatz zur Endung ".mpl", die
    einen zusätzlichen Befehl kennzeichnet und besser nicht von Hand
    gestartet werden sollten).





Optionen und Eingabeformate
===========================

 Funktionsterme
 ==============
 
  Jeder Funktionsterm darf aus den Rechenarten +,-,*,/,^
  und den Funktionen sin, cos, tan, log, int, sgn, abs, sqr, asin, acos,
  atan, sinh, cosh, tanh, asinh, acosh, atanh, ln und den Konstanten 
  a - z und pi ohne x sowie der Variablen x bestehen. e und pi sind mit den
  erwarteten Werten vordefiniert. 
  
  Zahlen dürfen normal (1; 1.1; .1) oder in Potenzschreibweise (3e5,5d-7) 
  eingegeben werden. Bei Potenzen darf vor dem Exponenten ein + oder - 
  stehen, ohne daß der Exponent gleich geklammert werden muß. In der Regel 
  sollte man aber alles so klammern, daß zweifelsfrei festgelegt ist, in 
  welcher Reihenfolge der Term berechnet werden soll. Es gilt natürlich 
  Potenz- vor Punkt- vor Strichrechnung.
  
  
 Optionen
 ========
  Beim Starten lädt MathPlot die Dateien S:Colours.col und S:Funktionen.fkt.
  Beim Start von der Workbench kann außerdem über das .info-File die Größe 
  der Zeichenfläche eingestellt werden. Dazu sind die Schlüsselworte
  WIDTH und HEIGHT zu definieren. Weiterhin gibt es noch die Schlüsselwörter 
  VIEW und ROUND. Bei ROUND kann TRUE oder FALSE angegeben werden, 
  entsprechend werden die Ausgaben bei Diskussion gerundet oder nicht 
  (sehr kleine Zahlen werden auf NULL gesetzt).
  Bei VIEW kann einer der in der Tabelle angegebenen Werte eingegeben werden. 
  Entsprechend wird der Bildschirm dargestellt. Die Größe der Zeichenfläche 
  sollte den ViewMode angepaßt sein (z.B. 640x480 bei Productivity). Die Werte 
  können addiert werden (außer die beiden VGA-Modi). Einen Hires-Interlace-
  Screen mit 60 Hz Bildwiederholfrequenz (bei entsprechenden Chips, NTSC-
  Darstellung) erhält man mit 102404.
  Bei Verwendung entsprechender Chips wird ein NTSC-Screen automatisch in
  der Höhe gestreckt. Sollte die Darstellungsart auf dem Rechner nicht
  verfügbar sein, so versucht das Programm zunächste eine Standartscreen
  zu öffnen. Falls das nicht klappt, endet das Programm kommentarlos. Ein 
  Hires-Screen (ohne Angabe von PAL) sollte aber auf jedem Rechner ver-
  fügbar sein.
  Weiterhin gibt es noch das Schlüsselwort TEXT. Hier sollte der Name (und
  evt. Pfad) der gewünschten Textdatei angegeben werden.


 Einige mögliche ViewModes
 =========================
  
  NTSC_MONITOR_ID          69632
  PAL_MONITOR_ID          135168 
  HIRES_KEY                32768
  SUPER_KEY                32800
  INTERLACE                    4
  VGAPRODUCT_KEY          233508
  VGAPRODUCTLACE_KEY      233509




ARexx-Port
==========

 Einleitung
 ----------
  MathPlot enthält einen ARexx-Port namens "MPlot_ARexx" (Groß/Klein-
  schreibung beachten !). Dieser ARexx-Port wurde mit Hilfe der
  ARexxBox V1.00 von Michael Balzer erstellt. Damit stehen bei allen
  Kommandos, die Werte zurückgeben, die Schlüsselwörter VAR/K und STEM/K
  zur Verfügung. Ebenso gibt es die Variable RC2, die evt. eine weitere
  Fehlernummer oder einen Fehlertext enthält.
  Die Art der Parameterübergabe und Werterückgabe entspricht den Richtlinien
  aus den "User Style Guide".
  Die Standartkommandos, die in diesem Programm eine sinnvolle Bedeutung
  haben, wurden ebenfalls übernommen.
  
 ARexx-Kommandos
 ---------------
  Es follt eine Aufzählung und teilweise Erklärung aller vorhandener
  Kommandos. Dabei wird das Format verwendet, wie es auch das HELP-Kommando
  erzeugt. Dies ist im wesentlichen das Format, das auch die Shell-Befehle
  als Schablone benutzen. Um den Griff zum Handbuch zu vermeiden, zuerst
  eine kurze Erklärung der wichtigsten "Templates"
  
  /A - das angegebene Argument MUSS immer vorhanden sein.
  /K - das angegebene Schlüsselwort MUSS mit angegeben werden, falls dieses
       Argument angegeben werden soll
  /S - Einfacher Ein/Ausschalter
  /N - Numerisches Argument
  /M - Es können mehrere Argumente folgen

  Bsp: PROMPT/K/A bedeutet, daß immer ein Argument der Form "PROMPT argument"
       angegeben werden muß
       
  Die Liste der Befehle:
    
   BEEP
    Einfacher DisplayBeep()
   CLEAR FORCE/S
    Löscht den Bildschirm. Bei Angabe von FORCE erfolgt keine Sicherheits-
    abfrage.
   EVALSTRING VAR/K,STEM/K,FUNCTION/A,X/K => VALUE
    Wertet eine Funktion aus (Diese Funktion muß immer angegeben werden).
    Es kann ein Wert für x übergeben werden. Gibt den Wert zurück.
   FAULT VAR/K,STEM/K,NUMBER/N/A => DESCRIPTION
    Bisher nicht implementiert.
   GET1DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE
    Ergibt die erste Ableitung der angegebenen Funktion (die Nummer bezieht
    sich auf die Stellung im Untermenu, 0 für die erste Funktion, 9 für die
    letzte).
   GET2DERIVE VAR/K,STEM/K,NUMBER/N/A => DERIVE
    siehe oben.
   GETCOLOR VAR/K,STEM/K,TEXTCOLOR/S,AXISCOLOR/S,PLOTCOLOR/S => TEXTCOLOR/N,AXISCOLOR/N,PLOTCOLOR/N
    Gibt die aktuellen Farben zurück.
   GETCONST VAR/K,STEM/K,NAME/A => DEFINITION
    Gibt die Definition der angegebenen Konstanten zurück. Als Name muß ein
    Buchstabe 'a' - 'z' übergeben werden.
   GETERROR VAR/K,STEM/K => NUMBER/N
    Gibt den letzten aufgetretenen Mathe-Fehler zurück.
   GETFUNCTION VAR/K,STEM/K,NUMBER/N/A => DEFINITION
    Gibt die Definition der angegebenen Funktion zurück.
   GETINTERVALL VAR/K,STEM/K,XAXIS/S,XMIN/S,XMAX/S,YAXIS/S,YMIN/S,YMAX/S 
    => DEFINITIONSTRING,DEFINITIONNUMBER/N
    Gibt die Definition des Intervall zurück. Es darf immer nur eins der
    Schlüsselwörter angegeben werden.
   GETMACRO VAR/K,STEM/K,NAME/A => DEFINITION
    Gibt die Definition eines Macros zurück.
   GETPRECISION VAR/K,STEM/K => PRECISION/N
    Gibt die aktuelle Zeichengenauigkeit zurück.
   HELP VAR/K,STEM/K,COMMAND,PROMPT/S => COMMANDDESC,COMMANDLIST/M
    HELP alleine gibt eine Liste aller Kommandos aus. HELP command gibt
    eine Hilfe zu dem angegebenen Kommando aus. PROMPT wird noch nicht 
    unterstützt.
   HPGL_ON FILENAME
    Schaltet die HP-Grafikausgabe ein.
   LABELPEN COLOR/N
    Setzt die Zeichenfarbe für die Achsen.
   LOADCONST FILENAME
    Lädt Konstantendefinitionen.
   LOADFUNC FILENAME
    Lädt Funktionsdefinitionen.
   LOADMACRO FILENAME
    Lädt Macrodefinitionen.
   NEW PORTNAME/K
    Löscht den Bildschirm. PORTNAME wird zur Zeit noch nicht unterstützt.
   NUMINT VAR/K,STEM/K,STEPS/N/A,XMIN/A,XMAX/A,FUNCTION/A => VALUE
    Numerische Integration.
   PLOT NUMBER/N/A,NORMAL/K/S,DERIVE1/K/S,DERIVE2/K/S,DERIVE1NUM/K/S,
    DERIVE2NUM/K/S,FORCE/S
    Zeichnet die angegebene Funktion (NUMBER, 0-9) entsprechend den anderen
    Schlüsselwörtern.
   PRINT PROMPT/S
    Druckausgabe, PROMPT wird noch nicht unterstützt.
   QUIT FORCE/S
    Beendet das Programm, FORCE unterdrückt die Sicherheitsabfrage.
   REQUESTFILE VAR/K,STEM/K,TITLE/K,PATH/K,FILE/K,PATTERN/K,SAVE/S => FILENAME
    Erzeugt einen Filerequester mit den entsprechenden Vorgaben. SAVE/S ist
    zusätzlich zu den Vorgaben aus den "User Style Guide" vorhanden und
    erzeugt eine SAVE-Filerequester (den, bei den man eine Datei NICHT mit
    einem Doppelclick anwählen kann).
   REQUESTNOTIFY PROMPT/K/A,BUTTON/K
    Entspricht in den Templates nicht dem "User Style Guide" und sollte
    daher nicht benutzt werden.
   REQUESTNUMBER VAR/K,STEM/K,PROMPT/K,DEFAULT/K/N => NUMBER/N
    Fragt nach einer Nummer. Zur Zeit so realisiert, daß auch Buchstaben
    eingegeben werden können, aber nur die Zahl, die sich aus dem ein-
    gegebenen String ergibt auch zurückgegeben wird. Es werden nur
    Integer-Werte zurückgegeben.
   REQUESTRESPONSE VAR/K,STEM/K,TITLE/K,PROMPT/K/A,BUTTON/K => RETURN/N
    Erzeugt einen Easy-Request. PROMPT ist der angezeigte Text, mit BUTTON
    (z.B. OK|Cancel) gibt man den Text für die Anwahlfelder an. Es wird die
    Nummer des angewählten Gadgets zurückgegeben (1,2... = erstes
    von links, zweites von links...). Falls das rechte Gadget angewählt 
    wurde ist RC=5.
   REQUESTSTRING VAR/K,STEM/K,PROMPT/K,DEFAULT/K,TITLE/K => STRING
    Fragt einen String ab.
   RX VAR/K,STEM/K,CONSOLE/S,ASYNC/S,COMMAND/F => RC/N,RESULT
    Startet ein externes ARexx-Skript.
   SAVECONST FILENAME
    Speichert die Konstanten ab.
   SAVEFUNC FILENAME
    Speichert die Funktionen ab.
   SAVEIFF FILENAME
    Speichert den Bildschirm als IFF-Grafik ab.
   SAVEMACRO FILENAME
    Speichert die Macros ab.
   SCREENTOBACK
    Bringt den Screen in den Hintergrund.
   SCREENTOFRONT
    Bringt den Screen in den Vordergrund.
   SELECTMENU MENU/N/A,ITEM/N/A,SUB/N,FORCE/S
    Wählt ein Menu aus. FORCE unterdrückt einen Teil der Requester, die bei
    direkter Anwahl des Menus (mit der Maus) erscheinen würden. Das oberste
    Item/Subitem ist immer die Nummer 0, danach der Reihe nach durchzählen.
    Unterteilungen werden mitgezählt.
   SETCOLOR PLOTCOLOR/N/K,AXISCOLOR/N/K,TEXTCOLOR/N/K
    Setzt die Farben zum Zeichnen, für die Achsen und für den Text. Die
    letzte Möglichkeit wird z.Z. noch nicht unterstützt.
   SETCONST NAME/A,DEFINITION/A
    Setzt eine Konstante auf den neuen Wert.
   SETFUNC NUMBER/N/A,DEFINITION/A
    Setzt eine Funktion auf den neuen Wert.
   SETINTERVALL XAXIS/N/K,XMIN/K,XMAX/K,YAXIS/N/K,YMIN/K,YMAX/K
    Setzt das Intervall neu.
   SETMACRO NAME/A,DEFINITION/A
    Setzt ein Macro neu.
   SETNUMPRECISION PRECISION/N/A
    Setzt die Anzahl Nachkommastellen für die Rückgabewerte bei 
    EVALSTRING und NUMINT.
   VERSION VAR/K,STEM/K => VERSION  
    Gibt einen Versionsstring zurück.

 ARexx-Macros
 ------------
  Mit diesen Macros (nicht zu verwechseln mit den (Funktions-) Macros im
  Programm !) bietet sich die Möglichkeit, immer wiederkehrende Aufgaben zu
  vereinfachen. So können ganze Funktionenreihen erzeugt und als .IFF- oder
  .PLT-File abgespeichert werden. Ein Beispiel ist vorhanden:
  
  - Schar
     Zeichnet eine Kurvenschar. Der Benutzer wird nach der Nummer
     der Funktion im Menu (0 - 9), dem Namen der Konstanten, dem Start- und
     Endwert für diese Konstante und der Anzahl Schritte gefragt. Danach 
     wird die Funktion entsprechend der Anzahl Schritte mit jeweils 
     anderen Wert für die Konstante gezeichnet. Dieses Skript sollte 
     vom Programm aus gestartet werden.


Danksagungen
============
 Einigen Leuten möchte ich besonders danken. Ohne Sie läge das Programm
 jetzt sicherlich nicht in dieser Version vor:

  - Den Leuten von Commodore für Kickstart/Workbench 2.0 (besonders für
    die gadtools.library).
  - Joern Clausen, der als beta-Tester eine Reihe von Fehler fand und
    auch mit Verbesserungsvorschlägen nicht geizte. Das Programmicon stammt
    ebenfalls aus seiner Feder (Maus ?).
  - Michael Balzer für seine ARexxBox. Ohne dieses tolle Hilfsprogramm
    hätte MathPlot noch immer seinen primitiven ersten ARexx-Port.



Abschluß
========

    Wer Verbesserungsvorschläge, Fehlermeldungen oder ähnliches 
    hat, kann mir schreiben (Adresse am Anfang).

       Viel Freude mit diesen Programm !!

