home *** CD-ROM | disk | FTP | other *** search
- #include <exec/types.h>
- #include <intuition/intuition.h>
- #include <proto/exec.h>
- #include <proto/dos.h>
- #include <proto/mathieeedoubbas.h>
- #include <proto/mathieeedoubtrans.h>
- #include <proto/intuition.h>
- #include <proto/graphics.h>
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- #include <math.h>
-
- #define E 2.718281828
- #define PPI 3.14159265358979323846
-
- #define Mul(a,b) NewMul(a,b)
- #define Add(a,b) NewAdd(a,b)
- #define Sub(a,b) NewSub(a,b)
- #define Div(a,b) NewDiv(a,b)
- #define Flt(a) NewFlt(a)
- #define Fix(a) NewFix(a)
- #define Cmp(a,b) NewCmp(a,b)
- #define Abs(a) NewAbs(a)
- #define Neg(a) NewNeg(a)
- #define Pow(a,b) NewPow(a,b)
- #define Tst(a) NewTst(a)
- #define Log10(a) NewLog10(a)
- #define Floor(a) NewFloor(a)
- #define ACos(a) NewAcos(a)
- #define ASin(a) NewAsin(a)
- #define ATan(a) NewAtan(a)
- #define Sin(a) NewSin(a)
- #define Cos(a) NewCos(a)
- #define Tan(a) NewTan(a)
- #define Log(a) NewLog(a)
- #define Sqr(a) NewSqr(a)
-
- double NewSub(double a,
- double b);
- double NewSqr(double a);
- double NewSin(double a);
- double NewCos(double a);
- double NewTan(double a);
- double NewPow(double a,
- double b);
- double NewNeg(double a);
- double NewMul(double a,
- double b);
- double NewLog10(double a);
- double NewLog(double a);
- double NewFlt(LONG a);
- LONG NewFix(DOUBLE a);
- double NewFloor(double a);
- double NewDiv(double a,
- double b);
- double NewCos(double a);
- LONG NewCmp(double a,
- double b);
- double NewCeil(double a);
- double NewAtan(double a);
- double NewAsin(double a);
- double NewAdd(double a,
- double b);
- double NewAcos(double a);
- double NewAbs(double a);
- LONG NewTst(DOUBLE a);
-
- struct info
- {
- USHORT code;
- struct IntuiMessage *Nachricht;
- ULONG NachrichtenArt;
- APTR IAddress;
- SHORT MouseX,MouseY;
- };
-
- struct Block
- {
- LONG Links,Rechts;
- LONG RechenArt,Valid;
- LONG Konstante;
- LONG Fehler;
- char *String;
- DOUBLE Wert;
- struct Block *Left,*Right;
- };
-
- #define MAXCHARS 500
-
- struct HilfsStruktur
- {
- char Formel[MAXCHARS];
- char Hilfe[MAXCHARS];
- DOUBLE Variable,Konstante1,Konstante2,Konstante3,Konstante4;
- LONG Fehler;
- };
-
-
- struct Konstanten
- {
- DOUBLE k1,k2,k3,k4;
- };
-
-
- /* Fehlercodes */
-
- #define DIVBYZERO 1 /* Es wurde durch 0 geteilt */
- #define LOGNEG 2 /* Es wurde von Zahl <= 0 der Log gebildet */
- #define SQRTNEG 4 /* Es wurde von Zahl <0 die Wurzel gebildet */
- #define ATRIG 8 /* Es wurde von Zahl >1 oder <-1 asin/acos gebildet */
- #define UNPAKLAM 16 /* Unpaarige Klammern */
- #define TEST 32
- #define NOFUNC 64 /* Keine Funktion eingegeben */
- #define NO_KONST 128 /* Keine solche Konstante */
- #define NO_MEM 256 /* Kein Speicher für weiteren Block */
- #define POWERROR 512 /* Negative Zahl hoch Bruch wurde versucht */
- #define NO_FUNC 1024 /* Keine Funktion gefunden */
-
- /* Rechenarten */
- #define ADDI 1
- #define SUBT 2
- #define MULT 3
- #define DIVI 4
- #define POWE 5
- #define SINU 6
- #define COSI 7
- #define TANG 8
- #define ASIN 9
- #define ACOS 10
- #define ATAN 11
- #define LOG1 12
- #define LNAT 13
- #define ABSO 14
- #define SIGU 15
- #define SQRT 16
- #define FLOO 17
- #define X 18
- #define MKON 19 /* Math. Konstante */
- #define UKON 20 /* User Konstante */
- #define ZIFF 21 /* Ziffern */
- #define KLAM 22
-
- VOID __asm Print(register __a1 struct RastPort *RP,
- register __a0 char *text,
- register __d0 LONG col,
- register __d1 LONG xpos,
- register __d2 LONG ypos);
- ULONG __asm EventAbfrage(register __a0 struct Window *Window,
- register __a1 struct info *MsgInfo);
- LONG __asm request(register __d0 char *JaPointer,
- register __d1 char *NeinPointer,
- register __d2 char *BodyPointer);
- LONG __asm ev(register __d0 LONG l,register __d1 LONG r,register __d2 struct Block *block);
- VOID __asm Free_Block(register __a0 struct Block *First);
- VOID __asm Free_Konst(register __a0 APTR Zeiger);
- APTR Init_Konst(VOID);
- LONG __asm Set_Konst_P(register __a0 APTR Zeiger,register __d0 LONG Nummer,register __d1 DOUBLE *Wert_P);
- LONG Set_Konst(APTR Zeiger,LONG Nummer,DOUBLE Wert);
- struct Block * __asm Init_Mem(register __a0 char *string);
- LONG __asm Init_Block(register __a0 struct Block *Zeiger);
- LONG __asm check(register __d0 LONG z1,register __d1 LONG z2,
- register __d2 LONG l,register __d3 LONG r,
- register __a0 char *string);
- LONG __asm checkback(register __d0 LONG z1,register __d1 LONG z2,
- register __d2 LONG l,register __d3 LONG r,
- register __a0 char *string);
- VOID __asm copy(register __d0 LONG i,register __d1 LONG Anzahl,
- register __d2 char *Ziel,register __d3 char *Source);
- double sgn(DOUBLE x);
- LONG BereichsKontr(DOUBLE b);
- LONG __asm PreCalc(register __d0 struct Block *Zeiger,register __d1 APTR Konst);
- DOUBLE __asm GetKonst(register __a0 APTR Konst,register __d1 LONG Nummer);
- DOUBLE Calc(struct Block *Zeiger,DOUBLE x);
- LONG __asm AnzahlKlammern(register __a0 char *string);
- VOID __asm left(register __a0 char *Ziel,
- register __a1 char *string,
- register __d0 LONG Anzahl);
- VOID __asm right(register __a0 char *Ziel,
- register __a1 char *string,
- register __d0 LONG Anzahl);
- VOID __asm mid(register __a0 char *Ziel,
- register __a1 char *string,
- register __d0 LONG Anfang,
- register __d1 LONG Anzahl);
- DOUBLE stof(char *string);
- VOID ftos(char *Ziel,
- DOUBLE Zahl,
- LONG Nachkomma);
- VOID __asm UmwFtoS(register __a0 char *Ziel,
- register __a1 DOUBLE *Zahl1,
- register __d0 LONG Nachkomma);
- DOUBLE Vorkomma(DOUBLE Zahl);
- VOID __asm testfunktion(register __a0 LONG *test);
- LONG search(char *string);
- LONG __asm NewRequest(register __a0 struct Window *AktWindow,
- register __d0 char *JaPointer,
- register __d1 char *NeinPointer,
- register __d2 char *BodyPointer);
-
- VOID __asm Box(register __a1 struct RastPort *RastPort, /* Der RastPort */
- register __d0 LONG xs, /* Start: X */
- register __d1 LONG ys, /* Start: Y */
- register __d2 LONG xe, /* Ende : X */
- register __d3 LONG ye); /* Ende : Y */
- VOID __asm Center(register __a1 struct Window *Window, /* Das Fenster */
- register __a0 char *string, /* Der Text */
- register __d0 LONG Color, /* Die Farbe */
- register __d1 LONG y_Pos); /* Die Y-Pos. */
- VOID __asm Gadget_On(register __a0 struct Gadget *Gadget, /* Das Gadget */
- register __d1 struct Window *Window); /* Das Fenster */
- VOID __asm Gadget_Off(register __a0 struct Gadget *Gadget, /* Das Gadget */
- register __a1 struct Window *Window); /* Das Fenster */
- LONG __asm GetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget */
- register __d0 LONG MaxPos); /* Max. Pos. */
- LONG __asm GetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget */
- register __d0 LONG MaxPos); /* Max. Pos. */
- VOID __asm SetPropPosH(register __a0 struct Gadget *Gadget,/* Das Gadget */
- register __a1 struct Window *Window,
- register __d0 LONG MaxPos, /* Die MaxPos */
- register __d1 LONG Schrittweite, /* Schrittweite */
- register __d2 LONG NewPos); /* Neue Posit. */
- VOID __asm SetPropPosV(register __a0 struct Gadget *Gadget,/* Das Gadget */
- register __a1 struct Window *Window,
- register __d0 LONG MaxPos, /* Die MaxPos */
- register __d1 LONG Schrittweite, /* Schrittweite */
- register __d2 LONG NewPos); /* Neue Posit. */
- LONG __asm PrepareTmpRas(register __a1 struct RastPort *RP);/* Der RastPort */
- VOID __asm ClearTmpRas(register __a1 struct RastPort *RP); /* Der RastPort */
- LONG __asm PrepareArea(register __a1 struct RastPort *RP,
- register __d0 LONG MaxPoints);
- VOID __asm ClearArea(register __a1 struct RastPort *RP);
-
- VOID __asm Fak(register __a0 DOUBLE *Ziel,
- register __d0 LONG i);
- VOID __asm NuK(register __a0 DOUBLE *Ziel,
- register __d0 LONG n,
- register __d1 LONG k);
- VOID __asm GetKonst_P(register __a0 DOUBLE *Ziel,
- register __a1 APTR Konst,
- register __d0 LONG Nummer);
- LONG __asm Calc_P(register __a0 DOUBLE *Ziel,
- register __a1 struct Block *Zeiger,
- register __a2 DOUBLE *x);
- VOID __asm berechnen(register __a0 DOUBLE *Ziel,
- register __d0 UBYTE *string,
- register __d1 DOUBLE *var,
- register __d2 struct Konstanten *kon,
- register __d3 LONG *Fehler);
- VOID __asm UmwStoF(register __a0 DOUBLE *Ziel,
- register __a1 char *string);
-
-
- struct Menu * __asm LastMenu(register __a0 struct Menu *menu);
- struct MenuItem * __asm LastItem(register __a0 struct Menu *menu);
- struct MenuItem * __asm LastSub(register __a0 struct Menu *menu);
- struct Menu * __asm AddMenu(register __a0 struct Menu *menu,
- register __a1 char *Titel,
- register __d0 USHORT Flags);
- struct Item * __asm AddItem(register __a0 struct Menu *menu,
- register __a1 char *Titel,
- register __d0 USHORT Flags,
- register __d1 char HotKey);
- struct Item * __asm AddSub(register __a0 struct Menu *menu,
- register __a1 char *Titel,
- register __d0 USHORT Flags,
- register __d1 char HotKey);
- struct MenuItem * __asm GetItem(register __a0 struct Menu *menu,
- register __a1 char *Titel,
- register __d0 USHORT Flags,
- register __d1 char HotKey);
- VOID __asm ClearMenu(register __a0 struct Menu *menu);
- struct MenuItem * __asm FreeItem(register __a0 struct MenuItem *item);
- struct Menu * __asm FreeMenu(register __a0 struct Menu *menu);
- VOID __asm NewSetMenuStrip(register __a1 struct Window *Window,
- register __a0 struct Menu *menu);
-
-