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 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 ToolBase
- {
- 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 ToolBase left 1e 9803
- #pragma libcall ToolBase right 24 9803
- #pragma libcall ToolBase mid 2a 109804
- #pragma libcall ToolBase UmwFtoS 30 9803
- #pragma libcall ToolBase copy 36 321004
- #pragma libcall ToolBase check 3c 8321005
- #pragma libcall ToolBase checkback 42 8321005
- #pragma libcall ToolBase AnzahlKlammern 48 801
- #pragma libcall ToolBase request 4e 21003
- #pragma libcall ToolBase NewRequest 54 210804
- #pragma libcall ToolBase EventAbfrage 5a 9802
- #pragma libcall ToolBase Print 60 2108905
- #pragma libcall ToolBase Box 66 3210905
- #pragma libcall ToolBase Center 6c 108904
- #pragma libcall ToolBase Gadget_On 72 9802
- #pragma libcall ToolBase Gadget_Off 78 9802
- #pragma libcall ToolBase GetPropPosH 7e 802
- #pragma libcall ToolBase GetPropPosV 84 802
- #pragma libcall ToolBase SetPropPosH 8a 2109805
- #pragma libcall ToolBase SetPropPosV 90 2109805
- #pragma libcall ToolBase PrepareTmpRas 96 901
- #pragma libcall ToolBase ClearTmpRas 9c 901
- #pragma libcall ToolBase PrepareArea a2 902
- #pragma libcall ToolBase ClearArea a8 901
- #pragma libcall ToolBase UmwStoF ae 9802
- #pragma libcall ToolBase Fak b4 802
- #pragma libcall ToolBase NuK ba 10803
- #pragma libcall ToolBase berechnen c0 3210805
- #pragma libcall ToolBase Init_Konst c6 0
- #pragma libcall ToolBase Init_Mem cc 801
- #pragma libcall ToolBase Init_Block d2 801
- #pragma libcall ToolBase Set_Konst_P d8 10803
- #pragma libcall ToolBase GetKonst_P de 19803
- #pragma libcall ToolBase PreCalc e4 1002
- #pragma libcall ToolBase Calc_P ea a9803
- #pragma libcall ToolBase Free_Konst f0 801
- #pragma libcall ToolBase Free_Block f6 801
- #pragma libcall ToolBase CreatePort fc 802
- #pragma libcall ToolBase DeletePort 102 801
- #pragma libcall ToolBase CreateExtIO 108 802
- #pragma libcall ToolBase DeleteExtIO 10e 802
- #pragma libcall ToolBase CreateStdIO 114 801
- #pragma libcall ToolBase DeleteStdIO 11a 801
- #pragma libcall ToolBase LastMenu 120 801
- #pragma libcall ToolBase LastItem 126 801
- #pragma libcall ToolBase LastSub 12c 801
- #pragma libcall ToolBase AddMenu 132 9803
- #pragma libcall ToolBase AddItem 138 109804
- #pragma libcall ToolBase AddSub 13e 109804
- #pragma libcall ToolBase GetItem 144 109804
- #pragma libcall ToolBase ClearMenu 14a 801
- #pragma libcall ToolBase FreeItem 150 801
- #pragma libcall ToolBase FreeMenu 156 801
- #pragma libcall ToolBase NewSetMenuStrip 15c 8902
-