page%swap@Sun.COM (Bob Page) (11/13/89)
Submitted-by: guineau@wjg.enet.dec.com (W. John Guineau)
Posting-number: Volume 89, Issue 213
Archive-name: applications/cm.2
# This is a shell archive.
# Remove anything above and including the cut line.
# Then run the rest of the file through 'sh'.
# Unpacked files will be owned by you and have default permissions.
#----cut here-----cut here-----cut here-----cut here----#
#!/bin/sh
# shar: SHell ARchive
# Run the following text through 'sh' to create:
# cm.h
# cm.info.uu
# fixed1.DAT
# fixed2.DAT
# smvem.DAT
# svem.DAT
# This is archive 2 of a 2-part kit.
# This archive created: Sun Nov 12 20:10:27 1989
echo "extracting cm.h"
sed 's/^X//' << \SHAR_EOF > cm.h
X
X/*
X * Celestial Mechanics Simulation Tool
X *
X * W. John Guineau
X * 3 Royal Crest Drive #9
X * Marlboro, Mass. 01752
X * (508) 485-6233
X *
X * Files:
X * cm.c
X * cm.h
X * cm.doc
X *
X * To Compile with Lattice 5.02:
X *
X * lc -b0 -Lm cm
X *
X * NOTICE
X * ------
X *
X * I have placed this software in the Public Domain with the
X * condition that all the files remain together and that I remain
X * listed as the original author. This software may not be used for
X * commercial purposes or to make money in any way without expressed
X * written permission from the author (me). I'm including the source
X * code so if you make any significant modifications please concider
X * sending me a copy at the above address. I'd also be interested in
X * any interesting saved setup files you create.
X *
X *
X * This is my first Amiga program so I welcome any comments at all.
X * I wrote this program as both a way to learn the Amiga environment
X * and in response to a conversation I had with a friend on Celestial
X * Mechanics.
X *
X *
X */
X
X
X
X
X
X
X#define BLKPEN 0
X#define WHTPEN 1
X#define REDPEN 2
X#define ORGPEN 3
X#define YLWPEN 4
X#define GRNPEN 5
X#define BLUPEN 6
X#define PURPEN 7
X
X#define REQBCK ORGPEN
X
X#define SX 640
X#define SY 400
X#define STE 12
X#define SD 3
X#define COLORS 8
X
X#define PX 220
X#define PY STE
X#define PW 200
X#define PH 12
X
X
X
X#define MAX_X 630
X#define MAX_Y 340
X
X
X
XUSHORT colortable[COLORS] = {
X 0x000, /* BLKPEN */
X 0xfff, /* WHTPEN */
X 0xf00, /* REDPEN */
X 0xf90, /* ORGPEN */
X 0xff0, /* YLWPEN */
X 0x0f0, /* GRNPEN */
X 0x00f, /* BLUPEN */
X 0xf0f /* PURPEN */
X};
XUWORD *cp; /* color palette */
X
X
X
X/*
X * Screen and Windows
X */
X
Xstruct NewScreen ns = {
X 0,0, /* Left, top */
X SX,SY,SD, /* width,height,depth */
X ORGPEN,WHTPEN, /* detail and block pens */
X HIRES|LACE, /* mode (max pixels!) */
X CUSTOMSCREEN, /* type */
X NULL, /* fonts? */
X "Celestial Mechanics V1.0",
X NULL, /* gadgets? */
X NULL /* bitmap? */
X
X};
X
X
X#define IDCMPFL (CLOSEWINDOW|MOUSEBUTTONS|MENUPICK|GADGETUP|REQCLEAR)
X#define IDCMPFL_MM (CLOSEWINDOW|MOUSEBUTTONS|MENUPICK|GADGETUP|REQCLEAR|MOUSEMOVE)
X
X
X
Xstruct NewWindow nw = {
X 0,STE, /* Start position */
X SX,SY-STE, /* width, height, */
X BLKPEN,WHTPEN, /* detail, block pens */
X /* IDCMP flags */
X IDCMPFL,
X
X GIMMEZEROZERO
X | ACTIVATE
X | REPORTMOUSE
X | WINDOWCLOSE
X | SMART_REFRESH,
X
X NULL, /* First gadget in list */
X NULL, /* User checkmark */
X "Gravitational Behaviour",/* Window Title */
X NULL, /* Pointer to screen (Set later) */
X NULL, /* Pointer to superbitmap */
X 0,0,0,0, /* Ignored because not sizeable */
X CUSTOMSCREEN /* on our own screen */
X};
X
Xstruct NewWindow npw = {
X PX,PY, /* Start position */
X PW,PH, /* width, height, */
X ORGPEN,REDPEN, /* detail, block pens */
X
X NULL, /* IDCMP flags */
X
X BORDERLESS
X | NOCAREREFRESH,
X
X NULL, /* First gadget in list */
X NULL, /* User checkmark */
X NULL, /* Window Title */
X NULL, /* Pointer to screen (Set later) */
X NULL, /* Pointer to superbitmap */
X 0,0,0,0, /* Ignored because not sizeable */
X CUSTOMSCREEN /* on our own screen */
X};
X
X
X
X
X
X
X/*
X * Text Attributes
X */
Xchar def_font[] ="topaz.font";
X
Xstruct TextAttr TxtAt_Plain = {
X (UBYTE *)def_font,
X 8,
X FS_NORMAL,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_BIU = {
X (UBYTE *)def_font,
X 8,
X FSF_BOLD | FSF_ITALIC | FSF_UNDERLINED,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_BU = {
X (UBYTE *)def_font,
X 8,
X FSF_BOLD | FSF_UNDERLINED,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_BI = {
X (UBYTE *)def_font,
X 8,
X FSF_BOLD | FSF_ITALIC,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_B ={
X (UBYTE *)def_font,
X 8,
X FSF_BOLD,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_IU ={
X (UBYTE *)def_font,
X 8,
X FSF_ITALIC | FSF_UNDERLINED,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_I ={
X (UBYTE *)def_font,
X 8,
X FSF_ITALIC,
X FPF_ROMFONT
X};
X
Xstruct TextAttr TxtAt_U ={
X (UBYTE *)def_font,
X 8,
X FSF_UNDERLINED,
X FPF_ROMFONT
X};
X
X
X
X
X
X
X/**************************************
X * Gadgets
X **************************************/
X
X/*
X * Gadget ID numbers
X */
X#define NAMEGAD 1
X#define RADIUSGAD 2
X#define MASSGAD 3
X#define VELOCITYGAD 4
X#define DIRECTIONGAD 5
X#define OKGAD 6
X#define CANCELGAD 7
X#define RESETGAD 8
X#define GGAD 9
X#define DTGAD 10
X#define TGAD 11
X#define DSGAD 12
X#define TLGAD 13
X#define COLOR1GAD 14
X#define COLOR2GAD 15
X#define COLOR3GAD 16
X#define COLOR4GAD 17
X#define COLOR5GAD 18
X#define COLOR6GAD 19
X#define COLOR7GAD 20
X#define FNGAD 21
X#define FNOKGAD 22
X#define FNCANGAD 23
X#define STGAD 24
X#define FXGAD 25
X#define AOKGAD 26
X
X
X
X/*
X * Some common gadget stuff
X */
Xstruct IntuiText yes_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 3,3, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Yes", /* IText */
X NULL /* NextText */
X};
X
Xstruct IntuiText no_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 7,3, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "No", /* IText */
X NULL /* NextText */
X};
X
X
X/*
X * cancel gadget
X */
X
XSHORT cancel_Pairs[] = {
X 0, 0,
X 68,0,
X 68,22,
X 0, 22,
X 0, 0
X};
X
Xstruct Border cancel_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X REDPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode */
X 5, /* Count of XY pairs */
X (SHORT *)&cancel_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xchar *cantxt="CANCEL"; /* This gad is either CAN or DEL */
Xchar *deltxt="DELETE";
X
Xstruct IntuiText cancel_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 9,8, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X NULL, /* IText */
X NULL /* NextText */
X};
X
Xstruct Gadget cancel = {
X NULL, /* NextGadget pointer */
X 130, 115, /* LeftEdge, TopEdge */
X 68, 22, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&cancel_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &cancel_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X CANCELGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * ok gadget
X */
X
XSHORT ok_Pairs[] = {
X 0, 0,
X 30,0,
X 30,22,
X 0, 22,
X 0, 0
X};
X
Xstruct Border ok_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X GRNPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY p airs */
X (SHORT *)&ok_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText ok_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 5,7, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "OK", /* IText */
X NULL /* NextText */
X};
X
X
Xstruct Gadget ok = {
X &cancel, /* NextGadget pointer */
X 15, 115, /* LeftEdge, TopEdge */
X 30, 22, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&ok_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &ok_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X OKGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X/*
X * reset gadget
X */
X
XSHORT reset_Pairs[] = {
X 0, 0,
X 51,0,
X 51,22,
X 0, 22,
X 0, 0
X};
X
Xstruct Border reset_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X YLWPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&reset_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText reset_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 5,7, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "RESET", /* IText */
X NULL /* NextText */
X};
X
X
Xstruct Gadget reset = {
X &ok, /* NextGadget pointer */
X 60, 115, /* LeftEdge, TopEdge */
X 51, 22, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&reset_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &reset_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X RESETGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X/****************************************************
X * Gadgets in Body Requestor
X ****************************************************/
X
X
X
X
X/*
X * Text for x,y printout in Body req
X */
Xchar xy_buf[80];
Xstruct IntuiText xy_text = {
X BLUPEN,WHTPEN, /* FrontPen, BackPen */
X JAM2, /* DrawMode */
X 15,96, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X xy_buf, /* IText */
X NULL /* NextText */
X};
X
X
X
X/*
X * Fixed gadget
X */
X
Xstruct Image fx_image = {
X 0,0, /* relative to select box */
X 30,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X BLUPEN, /* planeonoff */
X NULL /* next image, none */
X};
X
Xstruct IntuiText fx_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,82, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Fixed", /* IText */
X &xy_text /* NextText */
X};
X
X
Xstruct Gadget fixed = {
X &reset, /* NextGadget pointer */
X 140, 80, /* LeftEdge, TopEdge */
X 30, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHNONE
X | GADGIMAGE,
X /* Activation Flags */
X TOGGLESELECT
X | RELVERIFY,
X
X BOOLGADGET /* GadgetType */
X | REQGADGET,
X (APTR)&fx_image, /* GadgetRender */
X NULL, /* SelectRender */
X &no_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X FXGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * Color gadgets
X */
X
Xstruct IntuiText color_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,65, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "COLOR", /* IText */
X &fx_text /* NextText */
X};
X
X
Xstruct Image color1_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x1, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color1 = {
X &fixed, /* NextGadget pointer */
X 119, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color1_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR1GAD, /* GadgetID */
X (APTR)WHTPEN /* UserData Pointer */
X};
X
X
Xstruct Image color2_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x2, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color2 = {
X &color1, /* NextGadget pointer */
X 129, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color2_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR2GAD, /* GadgetID */
X (APTR)REDPEN /* UserData Pointer */
X};
X
X
Xstruct Image color3_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x3, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color3 = {
X &color2, /* NextGadget pointer */
X 139, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color3_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR3GAD, /* GadgetID */
X (APTR)ORGPEN /* UserData Pointer */
X};
X
X
Xstruct Image color4_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x4, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color4 = {
X &color3, /* NextGadget pointer */
X 149, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color4_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR4GAD, /* GadgetID */
X (APTR)YLWPEN /* UserData Pointer */
X};
X
X
Xstruct Image color5_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x5, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color5 = {
X &color4, /* NextGadget pointer */
X 159, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color5_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR5GAD, /* GadgetID */
X (APTR)GRNPEN /* UserData Pointer */
X};
X
X
Xstruct Image color6_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x6, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color6 = {
X &color5, /* NextGadget pointer */
X 169, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color6_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR6GAD, /* GadgetID */
X (APTR)BLUPEN /* UserData Pointer */
X};
X
X
Xstruct Image color7_image = {
X 0,0, /* relative to select box */
X 10,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X 0x7, /* planeonoff */
X NULL /* next image, none */
X };
X
X
Xstruct Gadget color7 = {
X &color6, /* NextGadget pointer */
X 179, 63, /* LeftEdge, TopEdge */
X 10, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP
X | GADGIMAGE,
X /* Activation Flags */
X RELVERIFY,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&color7_image, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X COLOR7GAD, /* GadgetID */
X (APTR)PURPEN /* UserData Pointer */
X};
X
X
X
X/*
X * direction gadget
X */
X
XSHORT direction_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border direction_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&direction_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText dir_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,47, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "DIRECTION", /* IText */
X &color_text /* NextText */
X};
X
X
XUBYTE direction_sbuf[12] = "0";
XUBYTE direction_ubuf[12];
X
Xstruct StringInfo direction_txstr = {
X direction_sbuf, direction_ubuf, /* Buffer, UndoBuffer */
X 0, 12, 0, /* BufferPos, MaxChars, DispPos */
X 0, 1, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget direction = {
X &color7, /* NextGadget pointer */
X 110, 45, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | LONGINT
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&direction_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&direction_txstr, /* SpecialInfo */
X DIRECTIONGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * velocity gadget
X */
X
XSHORT velocity_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border velocity_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&velocity_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText vel_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,34, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "VELOCITY", /* IText */
X &dir_text /* NextText */
X};
X
X
XUBYTE velocity_sbuf[20] = "0.0e0";
XUBYTE velocity_ubuf[20];
X
Xstruct StringInfo velocity_txstr = {
X velocity_sbuf, velocity_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 5, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
X
Xstruct Gadget velocity = {
X &direction, /* NextGadget pointer */
X 110, 32, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&velocity_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&velocity_txstr, /* SpecialInfo */
X VELOCITYGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * name gadget
X */
X
XSHORT name_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border name_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&name_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText name_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,8, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "NAME", /* IText */
X &vel_text /* NextText */
X};
X
XUBYTE name_sbuf[12] = "SUN";
XUBYTE name_ubuf[12];
X
Xstruct StringInfo name_txstr = {
X name_sbuf, name_ubuf, /* Buffer, UndoBuffer */
X 0, 12, 0, /* BufferPos, MaxChars, DispPos */
X 0, 3, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget name= {
X &velocity, /* NextGadget pointer */
X 110, 6, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&name_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&name_txstr, /* SpecialInfo */
X NAMEGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X/*
X * mass gadget
X */
X
XSHORT mass_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border mass_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&mass_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText mass_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,21, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "MASS", /* IText */
X &name_text /* NextText */
X};
X
XUBYTE mass_sbuf[20] = "1.0e0";
XUBYTE mass_ubuf[20];
X
Xstruct StringInfo mass_txstr = {
X mass_sbuf, mass_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 5, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 1, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget mass = {
X &name, /* NextGadget pointer */
X 110, 19, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&mass_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&mass_txstr, /* SpecialInfo */
X MASSGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X/****************************************************
X * Gadgets in Setup Requestor
X ****************************************************/
X
X
X/*
X * ShowTime gadget
X */
X
Xstruct Image st_image = {
X 0,0, /* relative to select box */
X 30,11, /* same size as select box */
X SD, /* planes deep as screen */
X NULL, /* image data, but we don't need it */
X 0x00, /* planepick- none */
X BLUPEN, /* planeonoff */
X NULL /* next image, none */
X};
X
Xstruct IntuiText st_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,98, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "ShowTime", /* IText */
X NULL /* NextText */
X};
X
X
Xstruct Gadget st = {
X &reset, /* NextGadget pointer */
X 145, 96, /* LeftEdge, TopEdge */
X 30, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHNONE
X | GADGIMAGE,
X /* Activation Flags */
X TOGGLESELECT
X | RELVERIFY,
X
X BOOLGADGET /* GadgetType */
X | REQGADGET,
X (APTR)&st_image, /* GadgetRender */
X NULL, /* SelectRender */
X &no_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X STGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * TrailLength gadget
X */
X
XSHORT tl_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border tl_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&tl_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
X
XUBYTE tl_sbuf[20] = "0";
XUBYTE tl_ubuf[20];
X
Xstruct StringInfo tl_txstr = {
X tl_sbuf, tl_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 1, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 1, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct IntuiText tl_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,60, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "TrailLength", /* IText */
X &st_text /* NextText */
X};
X
X
Xstruct Gadget tl = {
X &st, /* NextGadget pointer */
X 110, 58, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | LONGINT
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&tl_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&tl_txstr, /* SpecialInfo */
X TLGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * ds (Delta S) gadget
X */
X
XSHORT ds_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border ds_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&ds_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText ds_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,47, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Units/Pixel", /* IText */
X &tl_text /* NextText */
X};
X
X
XUBYTE ds_sbuf[20] = "1.0e0";
XUBYTE ds_ubuf[20];
X
Xstruct StringInfo ds_txstr = {
X ds_sbuf, ds_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 5, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 1, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget ds = {
X &tl, /* NextGadget pointer */
X 110, 45, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&ds_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&ds_txstr, /* SpecialInfo */
X DSGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * t_gadget
X */
X
XSHORT t_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border t_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&t_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText t_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,34, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Real Time", /* IText */
X &ds_text /* NextText */
X};
X
X
XUBYTE t_sbuf[12] = "0";
XUBYTE t_ubuf[12];
X
Xstruct StringInfo t_txstr = {
X t_sbuf, t_ubuf, /* Buffer, UndoBuffer */
X 0, 12, 0, /* BufferPos, MaxChars, DispPos */
X 0, 1, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
X
Xstruct Gadget t = {
X &ds, /* NextGadget pointer */
X 110, 32, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | LONGINT
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&t_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&t_txstr, /* SpecialInfo */
X TGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * G gadget
X */
X
XSHORT G_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border G_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&G_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText G_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,8, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Gravity (G)", /* IText */
X &t_text /* NextText */
X};
X
XUBYTE G_sbuf[20] = "6.67e0";
XUBYTE G_ubuf[20];
X
Xstruct StringInfo G_txstr = {
X G_sbuf, G_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 6, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget G = {
X &t, /* NextGadget pointer */
X 110, 6, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&G_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&G_txstr, /* SpecialInfo */
X GGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X/*
X * dt gadget
X */
X
XSHORT dt_Pairs[] = {
X 0, 0,
X 90,0,
X 90,13,
X 0, 13,
X 0, 0
X};
X
Xstruct Border dt_bord = {
X -1, -3, /* LeftEdge, TopEdge */
X WHTPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&dt_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText dt_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 10,21, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Sim Time", /* IText */
X &G_text /* NextText */
X};
X
XUBYTE dt_sbuf[20] = "1.0e0";
XUBYTE dt_ubuf[20];
X
Xstruct StringInfo dt_txstr = {
X dt_sbuf, dt_ubuf, /* Buffer, UndoBuffer */
X 0, 20, 0, /* BufferPos, MaxChars, DispPos */
X 0, 5, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 1, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget dt = {
X &G, /* NextGadget pointer */
X 110, 19, /* LeftEdge, TopEdge */
X 88, 11, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&dt_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&dt_txstr, /* SpecialInfo */
X DTGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X
X/*
X * FileName cancel gadget
X */
X
XSHORT fncancel_Pairs[] = {
X 0, 0,
X 68,0,
X 68,22,
X 0, 22,
X 0, 0
X};
X
Xstruct Border fncancel_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X REDPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode */
X 5, /* Count of XY pairs */
X (SHORT *)&fncancel_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText fncancel_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 9,8, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "CANCEL", /* IText */
X NULL /* NextText */
X};
X
Xstruct Gadget fncancel = {
X NULL, /* NextGadget pointer */
X 230, 35, /* LeftEdge, TopEdge */
X 68, 22, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&fncancel_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &fncancel_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X FNCANGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X/*
X * fnok gadget
X */
X
XSHORT fnok_Pairs[] = {
X 0, 0,
X 30,0,
X 30,22,
X 0, 22,
X 0, 0
X};
X
Xstruct Border fnok_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X GRNPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&fnok_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText fnok_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 5,7, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "OK", /* IText */
X NULL /* NextText */
X};
X
X
Xstruct Gadget fnok = {
X &fncancel, /* NextGadget pointer */
X 100, 35, /* LeftEdge, TopEdge */
X 30, 22, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&fnok_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &fnok_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X FNOKGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X
X/*
X * FileName gadget
X */
X
XSHORT fn_Pairs[] = {
X 0, 0,
X 300,0,
X 300,10,
X 0, 10,
X 0, 0
X};
X
Xstruct Border fn_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X YLWPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&fn_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText fn_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 140,5, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Data File Name?", /* IText */
X NULL /* NextText */
X};
X
X
XUBYTE fn_sbuf[100] = "CM.DAT";
XUBYTE fn_ubuf[100];
X
Xstruct StringInfo fn_txstr = {
X fn_sbuf, fn_ubuf, /* Buffer, UndoBuffer */
X 0, 100, 0, /* BufferPos, MaxChars, DispPos */
X 0, 6, /* UndoPos, NumChars */
X 0, 0, 0, /* DispCount, CLeft, CTop */
X 0x0, 0, /* LayerPtr, LongInt */
X NULL /* AltKeyMap */
X};
X
Xstruct Gadget fn = {
X &fnok, /* NextGadget pointer */
X 50, 20, /* LeftEdge, TopEdge */
X 300, 10, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET
X | STRINGCENTER,
X /* GadgetType */
X STRGADGET
X | REQGADGET,
X (APTR)&fn_bord, /* GadgetRender */
X NULL, /* SelectRender */
X NULL, /* GadgetText */
X 0x0, /* MutualExclude */
X (APTR)&fn_txstr, /* SpecialInfo */
X FNGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X
X/*
X * aok gadget
X */
X
X
XSHORT aok_Pairs[] = {
X 0, 0,
X 25,0,
X 25,12,
X 0, 12,
X 0, 0
X};
X
Xstruct Border aok_bord = {
X -1, -1, /* LeftEdge, TopEdge */
X GRNPEN,REDPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY p airs */
X (SHORT *)&aok_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
Xstruct IntuiText aok_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 5,2, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "OK", /* IText */
X NULL /* NextText */
X};
X
X
Xstruct IntuiText A_text6 = {
X ORGPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,11, /* LeftEdge, TopEdge */
X &TxtAt_BI, /* TextAttr */
X "Celestial Mechanics", /* IText */
X NULL /* NextText */
X};
X
Xstruct IntuiText A_text5 = {
X ORGPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,21, /* LeftEdge, TopEdge */
X &TxtAt_BI, /* TextAttr */
X " Simulator ", /* IText */
X &A_text6 /* NextText */
X};
X
Xstruct IntuiText A_text4 = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,38, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X " W. John Guineau ", /* IText */
X &A_text5 /* NextText */
X};
X
Xstruct IntuiText A_text3 = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,46, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "3 Royal Crest Dr #0", /* IText */
X &A_text4 /* NextText */
X};
X
Xstruct IntuiText A_text2 = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,54, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X " Marlboro, Ma 01752", /* IText */
X &A_text3 /* NextText */
X};
X
Xstruct IntuiText A_text = {
X WHTPEN,REDPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 25,62, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X " (508) 485-6233 ", /* IText */
X &A_text2 /* NextText */
X};
X
X
Xstruct Gadget aok = {
X NULL, /* NextGadget pointer */
X 85, 82, /* LeftEdge, TopEdge */
X 23, 10, /* Width, Height */
X /* Gadget Flags */
X GADGHCOMP,
X /* Activation Flags */
X RELVERIFY
X | ENDGADGET,
X /* GadgetType */
X BOOLGADGET
X | REQGADGET,
X (APTR)&aok_bord, /* GadgetRender */
X NULL, /* SelectRender */
X &aok_text, /* GadgetText */
X 0x0, /* MutualExclude */
X NULL, /* SpecialInfo */
X AOKGAD, /* GadgetID */
X NULL /* UserData Pointer */
X};
X
X
X
X
X
X
X
X/***********************************************************
X *
X * MENUS
X *
X ***********************************************************/
X
X
X/*
X * MenuNumber component definitions
X */
X#define M_Control 0
X#define I_Stop 0
X#define I_Start 1
X
X#define M_Edit 1
X#define I_ClearB 0
X#define I_ClearS 1
X#define I_Modify 2
X#define I_Create 3
X#define I_Setup 4
X
X#define M_File 2
X#define I_Exit 0
X#define I_SavScr 1
X#define I_SavDat 2
X#define I_LoadDat 3
X#define I_About 4
X
X/*
X * MenuNumber Shortcuts
X */
X#define MN_CStop (SHIFTMENU(M_Control)|SHIFTITEM(I_Stop)|SHIFTSUB(NOSUB))
X#define MN_CStart (SHIFTMENU(M_Control)|SHIFTITEM(I_Start)|SHIFTSUB(NOSUB))
X
X#define MN_ESetup (SHIFTMENU(M_Edit)|SHIFTITEM(I_Setup)|SHIFTSUB(NOSUB))
X#define MN_ECreate (SHIFTMENU(M_Edit)|SHIFTITEM(I_Create)|SHIFTSUB(NOSUB))
X#define MN_EMod (SHIFTMENU(M_Edit)|SHIFTITEM(I_Modify)|SHIFTSUB(NOSUB))
X#define MN_EClearS (SHIFTMENU(M_Edit)|SHIFTITEM(I_ClearS)|SHIFTSUB(NOSUB))
X#define MN_EClearB (SHIFTMENU(M_Edit)|SHIFTITEM(I_ClearB)|SHIFTSUB(NOSUB))
X
X#define MN_FAbout (SHIFTMENU(M_File)|SHIFTITEM(I_About)|SHIFTSUB(NOSUB))
X#define MN_FLDat (SHIFTMENU(M_File)|SHIFTITEM(I_LoadDat)|SHIFTSUB(NOSUB))
X#define MN_FSDat (SHIFTMENU(M_File)|SHIFTITEM(I_SavDat)|SHIFTSUB(NOSUB))
X#define MN_FSScr (SHIFTMENU(M_File)|SHIFTITEM(I_SavScr)|SHIFTSUB(NOSUB))
X#define MN_FExit (SHIFTMENU(M_File)|SHIFTITEM(I_Exit)|SHIFTSUB(NOSUB))
X
X
X
X/*
X * "File" menu subitems
X */
Xstruct IntuiText AboutTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "About", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem About = {
X NULL, /* next item */
X 0,0,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&AboutTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText LoadTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Load Data", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem LoadData = {
X &About, /* next item */
X 0,10,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&LoadTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText SaveDTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Save Data", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem SaveData = {
X &LoadData, /* next item */
X 0,20,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&SaveDTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText SaveSTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Save Screen", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem SaveScreen = {
X &SaveData, /* next item */
X 0,30,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&SaveSTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText ExitTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Exit", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Exit = {
X &SaveScreen, /* next item */
X 0,40,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&ExitTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
X
X
X/*
X * "Edit" menu subitems
X */
Xstruct IntuiText SetupTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Setup...", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Setup = {
X NULL, /* next item */
X 0,0,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&SetupTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText CreateTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Create...", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Create = {
X &Setup, /* next item */
X 0,10,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&CreateTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText ModifyTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Modify...", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Modify = {
X &Create, /* next item */
X 0,20,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&ModifyTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText ClearSTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Clear Screen", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem ClearS = {
X &Modify, /* next item */
X 0,30,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&ClearSTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText ClearBTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Clear Bodys", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem ClearB = {
X &ClearS, /* next item */
X 0,40,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&ClearBTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
X
X
X/*
X * "Control" menu subitems
X */
X
Xstruct IntuiText StartTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Start", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Start = {
X NULL, /* next item */
X 0,0,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&StartTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
Xstruct IntuiText StopTxt = {
X BLKPEN,WHTPEN, /* FrontPen, BackPen */
X JAM1, /* DrawMode */
X 0,0, /* LeftEdge, TopEdge */
X &TxtAt_Plain, /* TextAttr */
X "Stop", /* IText */
X NULL /* NextText */
X};
X
Xstruct MenuItem Stop = {
X &Start, /* next item */
X 0,10,100,10, /* Left,Top Edge, Width, Height */
X ITEMENABLED /* flags */
X | ITEMTEXT
X | HIGHCOMP,
X 0L, /* MutualExclude */
X (APTR)&StopTxt, /* Name */
X 0, /* Command */
X NULL, /* SubItem */
X 0 /* NextSelect */
X};
X
X
X
X/*
X * Actual Menus
X */
Xstruct Menu File = {
X NULL, /* NextMenu */
X 0,0,50,0, /* Left,Top Edge, Width, Height */
X MENUENABLED, /* flags */
X "File", /* Name */
X &Exit /* First Item */
X
X};
X
Xstruct Menu Edit = {
X &File, /* NextMenu */
X 50,0,50,0, /* Left,Top Edge, Width, Height */
X MENUENABLED, /* flags */
X "Edit", /* Name */
X &ClearB /* First Item */
X
X};
X
Xstruct Menu Control = {
X &Edit, /* NextMenu */
X 100,0,90,0, /* Left,Top Edge, Width, Height */
X MENUENABLED, /* flags */
X "Control", /* Name */
X &Stop /* First Item */
X
X};
X
X
X
X
X/********************************************************
X * Requesters
X ********************************************************/
X
X
X
X
XSHORT req_Pairs[] = {
X 0, 0,
X 209, 0,
X 209, 149,
X 0, 149,
X 0, 0
X};
X
Xstruct Border req_bord = {
X 0, 0, /* LeftEdge, TopEdge */
X PURPEN,ORGPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&req_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
X
X
XSHORT fnr_Pairs[] = {
X 0, 0,
X 399, 0,
X 399, 59,
X 0, 59,
X 0, 0
X};
X
Xstruct Border fnr_bord = {
X 0, 0, /* LeftEdge, TopEdge */
X PURPEN,ORGPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&fnr_Pairs, /* XY pairs */
X NULL /* Next Border */
X};
X
X
X
XSHORT A_Pairs2[] = {
X 4, 4,
X 195, 4,
X 195, 95,
X 4, 95,
X 4, 4
X};
X
Xstruct Border A_bord2 = {
X 0, 0, /* LeftEdge, TopEdge */
X GRNPEN,BLUPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&A_Pairs2, /* XY pairs */
X NULL /* Next Border */
X};
X
XSHORT A_Pairs[] = {
X 0, 0,
X 199, 0,
X 199, 99,
X 0, 99,
X 0, 0
X};
X
Xstruct Border A_bord = {
X 0, 0, /* LeftEdge, TopEdge */
X REDPEN,GRNPEN,JAM2, /* FrontPen, BackPen, DrawMode*/
X 5, /* Count of XY pairs */
X (SHORT *)&A_Pairs, /* XY pairs */
X &A_bord2 /* Next Border */
X};
X
X
X
X
X
Xstruct Requester BodyInfo = {
X NULL, /* OlderRequester */
X 200,100, /* LeftEdge,TopEdge */
X 210,150, /* Width Height */
X 0,0, /* RelLeft,RelTop */
X &mass, /* gadgets */
X &req_bord, /* ReqBorder */
X &mass_text, /* text */
X NULL, /* Flags */
X REQBCK, /* BackFill (pen) */
X NULL, /* ReqLayer */
X {NULL}, /* pad */
X {NULL}, /* ImageBMap */
X NULL, /* RWindow */
X {NULL} /* pad */
X};
X
X
Xstruct Requester SetupInfo = {
X NULL, /* OlderRequester */
X 200,100, /* LeftEdge,TopEdge */
X 210,150, /* Width Height */
X 0,0, /* RelLeft,RelTop */
X &dt, /* gadgets */
X &req_bord, /* ReqBorder */
X &dt_text, /* text */
X NULL, /* Flags */
X REQBCK, /* BackFill (pen) */
X NULL, /* ReqLayer */
X {NULL}, /* pad */
X {NULL}, /* ImageBMap */
X NULL, /* RWindow */
X {NULL} /* pad */
X};
X
X
Xstruct Requester FileName = {
X NULL, /* OlderRequester */
X 100,100, /* LeftEdge,TopEdge */
X 400,60, /* Width Height */
X 0,0, /* RelLeft,RelTop */
X &fn, /* gadgets */
X &fnr_bord, /* ReqBorder */
X &fn_text, /* text */
X NULL, /* Flags */
X REQBCK, /* BackFill (pen) */
X NULL, /* ReqLayer */
X {NULL}, /* pad */
X {NULL}, /* ImageBMap */
X NULL, /* RWindow */
X {NULL} /* pad */
X};
X
X
Xstruct Requester RAbout = {
X NULL, /* OlderRequester */
X 200,100, /* LeftEdge,TopEdge */
X 200,100, /* Width Height */
X 0,0, /* RelLeft,RelTop */
X &aok, /* gadgets */
X &A_bord, /* ReqBorder */
X &A_text, /* text */
X NULL, /* Flags */
X BLUPEN, /* BackFill (pen) */
X NULL, /* ReqLayer */
X {NULL}, /* pad */
X {NULL}, /* ImageBMap */
X NULL, /* RWindow */
X {NULL} /* pad */
X};
X
X
X
SHAR_EOF
echo "extracting cm.info.uu"
sed 's/^X//' << \SHAR_EOF > cm.info.uu
X
Xbegin 644 cm.info
XMXQ```0``````)P`B`%``*P`&``,``0"&9!@`AF0P````````````````````>
XM`````X8`@"[0`(`O(````",```!"``````````````````````!0`"H``@`!X
XM^2@#`````````````````````@``````````````````````````$``````$Z
XM`````(`````````````)``````````0```````````````````X`````````;
XM```?````````````'P``````$````!\````````````.````````````````[
XM``````````````````'X````$``````'_@``````/```#_\``````'X``!__T
XM@`````#_```?_\``````_P``/__``````/\``#__P`````!^```__\``````3
XM/```/__``(```````#__P``````````?_X``````````#_\```````````?^I
XM```````````!^`````````````````/`````0``````'X````$``````#_``B
XM`````````!_X```````````?^```````````'_@```````````_P````````$
XM```'X````````"```\@`````````````````````````````````````````2
XM`$````````````````````````````#______________?______________H
XM____________[______[_____W_____________V__________O_________R
XM__________'____________@____________X/______[____^#_________8
XM___Q________________________________________[_______________U
XMP____________X'___________\`____________`/___________P#_____<
XM______^!____________P________W______________________________9
XM__________________________________________________P_____O___0
XM___X'____[______\`___________^`'___________@!___________X`?_H
XM__________`/___________X'________]___#?_____________________"
XM_____________________[____________________________\``````%``J
XM*@`"``(Y\`,````````````````````"```````````````````````````0L
XM``````0`````@`````````````D`````````!````````````````````X``4
XM``````````?````````````'P``````0````!\````````````.`````````H
XM`````````````````````````?@````0``````?^```````````/_P``````<
XM````'_^``````#P``!__P`````!^```__\``````_P``/__``````/\``#__N
XMP`````#_```__\``@```?@``/__``````#P``!__@``````````/_P``````A
XM````!_X```````````'X````````````````'@````!``````#\`````0```;
XM``!_@```````````_\```````````/_```````````#_P```````````?X``[
XM`````````#\`````````(``>"```````````````````````````````````%
XM````````0````````````````````````````/_____________]________M
XM___________________O______O_____?_____________;_________^___R
XM_________________'____________@____________X/______O____^#__K
XM__________Q________________________________________O________`
XM_________________________________\/___________^!____________9
XM`/___________P#___________\`________?___@?___________\/_____<
XM________________________________________________________X?__U
XM__^______\#_____O_____^`?___________`#___________P`_________7
XM__\`/___________@'___________\#_________W__A]_______________0
XM____________________________O____________________________P``5
X'``$`````!/__#
X``
Xend
Xsize 1807
SHAR_EOF
echo "extracting fixed1.DAT"
sed 's/^X//' << \SHAR_EOF > fixed1.DAT
X--- CM Setup Data ---
XG=6.670e+00
Xds=1.000e+00
Xdt=5.000e-01
Xt=0
XTrailLength=-1
XShowTime=1
X--- CM Body Data ---
X#=name ;pen;fixed;Radius;Mass;x,y;Vx,Vy;Dir
X0=FX1 ;2;1;0;7.000e+01;1.830e+02,2.020e+02;0.000e+00,0.000e+00;0.000e+00
X1=FX2 ;3;1;0;5.500e+02;2.950e+02,2.020e+02;0.000e+00,0.000e+00;0.000e+00
X2=FX3 ;4;1;0;9.000e+02;4.080e+02,2.050e+02;0.000e+00,0.000e+00;0.000e+00
X3=Moving ;5;0;0;4.000e+00;1.299e+02,2.214e+02;4.924e+00,8.682e-01;1.000e+01
SHAR_EOF
echo "extracting fixed2.DAT"
sed 's/^X//' << \SHAR_EOF > fixed2.DAT
X--- CM Setup Data ---
XG=8.000e+04
Xds=1.000e+01
Xdt=1.000e+00
Xt=0
XTrailLength=-1
XShowTime=1
X--- CM Body Data ---
X#=name ;pen;fixed;Radius;Mass;x,y;Vx,Vy;Dir
X0=SUN ;1;1;0;1.000e+03;1.740e+03,-1.374e+03;0.000e+00,0.000e+00;0.000e+00
X1=SUN ;1;1;0;1.000e+03;4.070e+03,-1.354e+03;0.000e+00,0.000e+00;0.000e+00
X2=SUN ;5;0;0;3.000e+01;5.320e+03,-1.334e+03;-2.121e+01,2.121e+01;1.350e+02
SHAR_EOF
echo "extracting smvem.DAT"
sed 's/^X//' << \SHAR_EOF > smvem.DAT
X--- CM Setup Data ---
XG=6.670e-08
Xds=1.000e+06
Xdt=8.640e+04
Xt=0
XTrailLength=1
XShowTime=1
X--- CM Body Data ---
X#=name ;pen;fixed;Radius;Mass;x,y;Vx,Vy;Dir
X0=SUN ;4;0;0;1.990e+30;3.000e+08,-1.760e+08;0.000e+00,0.000e+00;0.000e+00
X1=VENUS ;5;0;0;4.900e+24;4.080e+08,-1.760e+08;-1.816e+00,3.465e+01;9.300e+01
X2=EARTH ;6;0;0;6.000e+24;4.500e+08,-1.760e+08;-3.641e+00,2.966e+01;9.700e+01
X3=MARS ;2;0;0;6.400e+23;5.280e+08,-1.760e+08;-4.185e+00,2.373e+01;1.000e+02
X4=MERCURY ;3;0;0;3.300e+23;3.580e+08,-1.760e+08;-8.359e+00,4.741e+01;1.000e+02
SHAR_EOF
echo "extracting svem.DAT"
sed 's/^X//' << \SHAR_EOF > svem.DAT
X--- CM Setup Data ---
XG=6.670e-08
Xds=1.000e+06
Xdt=8.640e+04
Xt=0
XTrailLength=-1
XShowTime=1
X--- CM Body Data ---
X#=name ;pen;fixed;Radius;Mass;x,y;Vx,Vy;Dir
X0=SUN ;4;0;0;1.990e+30;3.000e+08,-1.760e+08;0.000e+00,0.000e+00;0.000e+00
X1=VENUS ;5;0;0;4.900e+24;4.080e+08,-1.760e+08;-1.816e+00,3.465e+01;9.300e+01
X2=EARTH ;6;0;0;6.000e+24;4.500e+08,-1.760e+08;-3.641e+00,2.966e+01;9.700e+01
X3=MARS ;2;0;0;6.400e+23;5.280e+08,-1.760e+08;-4.185e+00,2.373e+01;1.000e+02
SHAR_EOF
echo "End of archive 2 (of 2)"
# if you want to concatenate archives, remove anything after this line
exit