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 <math.h>
-
- #define Sgn(a) IEEEDPFlt(IEEEDPTst(a))
- #define sgn(a) IEEEDPFlt(IEEEDPTst(a))
- #define ASinh(a) Log(arg+Sqr(arg*arg+1))
-
- #define E 2.718281828
- #define PPI 3.14159265358979323846
-
- #define Mul(a,b) IEEEDPMul(a,b)
- #define Add(a,b) IEEEDPAdd(a,b)
- #define Sub(a,b) IEEEDPSub(a,b)
- #define Div(a,b) IEEEDPDiv(a,b)
- #define Flt(a) IEEEDPFlt(a)
- #define Fix(a) IEEEDPFix(a)
- #define Cmp(a,b) IEEEDPCmp(a,b)
- #define Abs(a) IEEEDPAbs(a)
- #define Neg(a) IEEEDPNeg(a)
- #define Pow(a,b) IEEEDPPow(a,b)
- #define Tst(a) IEEEDPTst(a)
- #define Log10(a) IEEEDPLog10(a)
- #define Floor(a) IEEEDPFloor(a)
- #define ACos(a) IEEEDPAcos(a)
- #define ASin(a) IEEEDPAsin(a)
- #define ATan(a) IEEEDPAtan(a)
- #define Sin(a) IEEEDPSin(a)
- #define Cos(a) IEEEDPCos(a)
- #define Tan(a) IEEEDPTan(a)
- #define Log(a) IEEEDPLog(a)
- #define Sqr(a) IEEEDPSqrt(a)
-
- struct info
- {
- USHORT code;
- struct IntuiMessage *Nachricht;
- ULONG NachrichtenArt;
- APTR IAddress;
- SHORT MouseX,MouseY;
- };
-
- struct MToolBase
- {
- struct Library Node;
- LONG SegList;
- struct Library *SysBase;
- struct GfxBase *GfxBase;
- struct IntuitionBase *IntuitionBase;
- struct Library *MathIeeeDoubBasBase;
- struct Library *MathIeeeDoubTransBase;
- };
-
- struct Block
- {
- LONG Links,Rechts;
- LONG RechenArt,Valid;
- LONG Konstante;
- LONG Fehler;
- char *String;
- DOUBLE Wert;
- struct Block *Left,*Right;
- };
-
-
- 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 Print(struct RastPort *RP,
- char *text,
- LONG col,
- LONG xpos,
- LONG ypos);
- ULONG EventAbfrage(struct Window *Window,
- struct info *MsgInfo);
- LONG request(char *JaPointer,
- char *NeinPointer,
- char *BodyPointer);
- VOID Fak(DOUBLE *Ziel, LONG i);
- VOID NuK(DOUBLE *Ziel,LONG n,LONG k);
- VOID Free_Block(struct Block *First);
- VOID Free_Konst(APTR Zeiger);
- APTR Init_Konst(VOID);
- LONG Set_Konst_P(APTR Zeiger,LONG Nummer,DOUBLE *Wert_P);
- struct Block *Init_Mem(char *string);
- LONG Init_Block(struct Block *Zeiger);
- LONG check(LONG z1,LONG z2,
- LONG l, LONG r,
- char *string);
- LONG checkback(LONG z1,LONG z2,
- LONG l, LONG r,
- char *string);
- VOID copy(LONG i, LONG Anzahl,
- char *Ziel,char *Source);
- LONG PreCalc(struct Block *Zeiger,APTR Konst);
- VOID GetKonst_P(DOUBLE *Ziel,APTR Konst,LONG Nummer);
- DOUBLE GetKonst(APTR Konst,LONG Nummer);
- LONG Calc_P(DOUBLE *Ziel,
- struct Block *Zeiger,
- DOUBLE *x);
- LONG AnzahlKlammern(char *string);
- VOID berechnen(DOUBLE *Ziel,
- UBYTE *string,
- DOUBLE *var,
- struct Konstanten *kon,
- LONG *Fehler);
- VOID left(char *Ziel,
- char *string,
- LONG Anzahl);
- VOID right(char *Ziel,
- char *string,
- LONG Anzahl);
- VOID mid(char *Ziel,
- char *string,
- LONG Anfang,
- LONG Anzahl);
- VOID UmwStoF(DOUBLE *Ziel,
- char *string);
- VOID UmwFtoS(char *Ziel,
- DOUBLE *Zahl1,
- LONG Nachkomma);
- LONG NewRequest(struct Window *AktWindow,
- char *JaPointer,
- char *NeinPointer,
- char *BodyPointer);
- VOID Box(struct RastPort *RastPort, /* Der RastPort */
- LONG xs, /* Start: X */
- LONG ys, /* Start: Y */
- LONG xe, /* Ende : X */
- LONG ye); /* Ende : Y */
- VOID Center(struct Window *Window, /* Das Fenster */
- char *string, /* Der Text */
- LONG Color, /* Die Farbe */
- LONG y_Pos); /* Die Y-Pos. */
- VOID Gadget_On(struct Gadget *Gadget, /* Das Gadget */
- struct Window *Window); /* Das Fenster */
- VOID Gadget_Off(struct Gadget *Gadget, /* Das Gadget */
- struct Window *Window); /* Das Fenster */
- LONG GetPropPosH(struct Gadget *Gadget, /* Das Gadget */
- LONG MaxPos); /* Max. Pos. */
- LONG GetPropPosV(struct Gadget *Gadget, /* Das Gadget */
- LONG MaxPos); /* Max. Pos. */
- VOID SetPropPosH(struct Gadget *Gadget, /* Das Gadget */
- struct Window *Window,
- LONG MaxPos, /* Die MaxPos */
- LONG Schrittweite, /* Schrittweite */
- LONG NewPos); /* Neue Posit. */
- VOID SetPropPosV(struct Gadget *Gadget, /* Das Gadget */
- struct Window *Window,
- LONG MaxPos, /* Die MaxPos */
- LONG Schrittweite, /* Schrittweite */
- LONG NewPos); /* Neue Posit. */
- LONG PrepareTmpRas(struct RastPort *RP); /* Der RastPort */
- VOID ClearTmpRas(struct RastPort *RP); /* Der RastPort */
- LONG PrepareArea(struct RastPort *RP,
- LONG MaxPoints);
- VOID ClearArea(struct RastPort *RP);
- struct Menu *LastMenu(struct Menu *menu);
- struct MenuItem *LastItem(struct Menu *menu);
- struct MenuItem *LastSub(struct Menu *menu);
- struct Menu *AddMenu(struct Menu *menu,
- char *Titel,
- USHORT Flags);
- struct Item *AddItem(struct Menu *menu,
- char *Titel,
- USHORT Flags,
- char HotKey);
- struct Item *AddSub(struct Menu *menu,
- char *Titel,
- USHORT Flags,
- char HotKey);
- struct MenuItem *GetItem(struct Menu *menu,
- char *Titel,
- USHORT Flags,
- char HotKey);
- VOID ClearMenu(struct Menu *menu);
- struct MenuItem *FreeItem(struct MenuItem *item);
- struct Menu *FreeMenu(struct Menu *menu);
- VOID NewSetMenuStrip(struct Window *Window,
- struct Menu *menu);
-
-
-
-
- #pragma libcall MToolBase left 1e 9803
- #pragma libcall MToolBase right 24 9803
- #pragma libcall MToolBase mid 2a 109804
- #pragma libcall MToolBase UmwFtoS 30 9803
- #pragma libcall MToolBase copy 36 321004
- #pragma libcall MToolBase check 3c 8321005
- #pragma libcall MToolBase checkback 42 8321005
- #pragma libcall MToolBase AnzahlKlammern 48 801
- #pragma libcall MToolBase request 4e 21003
- #pragma libcall MToolBase NewRequest 54 210804
- #pragma libcall MToolBase EventAbfrage 5a 9802
- #pragma libcall MToolBase Print 60 2108905
- #pragma libcall MToolBase Box 66 3210905
- #pragma libcall MToolBase Center 6c 108904
- #pragma libcall MToolBase Gadget_On 72 9802
- #pragma libcall MToolBase Gadget_Off 78 9802
- #pragma libcall MToolBase GetPropPosH 7e 802
- #pragma libcall MToolBase GetPropPosV 84 802
- #pragma libcall MToolBase SetPropPosH 8a 2109805
- #pragma libcall MToolBase SetPropPosV 90 2109805
- #pragma libcall MToolBase PrepareTmpRas 96 901
- #pragma libcall MToolBase ClearTmpRas 9c 901
- #pragma libcall MToolBase PrepareArea a2 902
- #pragma libcall MToolBase ClearArea a8 901
- #pragma libcall MToolBase UmwStoF ae 9802
- #pragma libcall MToolBase Fak b4 802
- #pragma libcall MToolBase NuK ba 10803
- #pragma libcall MToolBase berechnen c0 3210805
- #pragma libcall MToolBase Init_Konst c6 0
- #pragma libcall MToolBase Init_Mem cc 801
- #pragma libcall MToolBase Init_Block d2 801
- #pragma libcall MToolBase Set_Konst_P d8 10803
- #pragma libcall MToolBase GetKonst_P de 19803
- #pragma libcall MToolBase PreCalc e4 1002
- #pragma libcall MToolBase Calc_P ea a9803
- #pragma libcall MToolBase Free_Konst f0 801
- #pragma libcall MToolBase Free_Block f6 801
- #pragma libcall MToolBase CreatePort fc 802
- #pragma libcall MToolBase DeletePort 102 801
- #pragma libcall MToolBase CreateExtIO 108 802
- #pragma libcall MToolBase DeleteExtIO 10e 802
- #pragma libcall MToolBase CreateStdIO 114 801
- #pragma libcall MToolBase DeleteStdIO 11a 801
- #pragma libcall MToolBase LastMenu 120 801
- #pragma libcall MToolBase LastItem 126 801
- #pragma libcall MToolBase LastSub 12c 801
- #pragma libcall MToolBase AddMenu 132 9803
- #pragma libcall MToolBase AddItem 138 109804
- #pragma libcall MToolBase AddSub 13e 109804
- #pragma libcall MToolBase GetItem 144 109804
- #pragma libcall MToolBase ClearMenu 14a 801
- #pragma libcall MToolBase FreeItem 150 801
- #pragma libcall MToolBase FreeMenu 156 801
- #pragma libcall MToolBase NewSetMenuStrip 15c 8902
-