/*
 *
 *   this is where we put all the setup window stuff for the amiga
 *
 */
#include	"errno.h"
#include   "functions.h"
#include	"fcntl.h"
#include	"exec/types.h"
#include	"exec/io.h"
#include	"exec/memory.h"
#include	"libraries/dos.h"
#include	"libraries/dosextens.h"
#include	"graphics/gfx.h"
#include	"graphics/display.h"
#include	"graphics/gfxbase.h"
#include	"graphics/copper.h"
#include	"graphics/regions.h"
#include	"graphics/sprite.h"
#include	"devices/inputevent.h"
#include	"intuition/intuition.h"

#define INTUITION_REV   0
#define GRAPHICS_REV    0

#define INTUITION 0x00000001
#define GRAPHICS  0x00000002
#define SCREEN    0x00000004
#define WINDOW    0x00000008
#define COLORMAP  0x00000010
#define MENU      0x00000020
#define FIRST     0x00000040
#define SECOND    0x00000080
#define F_ICON    0x00000100
#define F_CONSOLE 0x00000200

#define FILE_MENU 2
#define PARA_MENU 1
#define PLOT_MENU 0

/* Intuit flags */
#define DEF_FLAGS ITEMTEXT | ITEMENABLED | HIGHCOMP
#define DEF_FLAGS2 ITEMTEXT | ITEMENABLED | HIGHCOMP | CHECKIT
#define CHK_FLAGS DEF_FLAGS2 | CHECKED
#define OFF_FLAGS ITEMTEXT | HIGHCOMP | CHECKIT

#define IDCMP_SOME MOUSEBUTTONS | VANILLAKEY | MOUSEMOVE 
#define IDCMP_ALL  IDCMP_SOME | GADGETUP | GADGETDOWN | MENUPICK | MENUVERIFY
#define IDCMP_ONE   GADGETUP

#define ERASE   3
#define MOVE	 2
#define TURNON  1
#define TURNOFF 0

#define NET	 0
#define DRW	 1
#define LIB	 2

struct	IntuitionBase	*IntuitionBase;
struct	IntuiMessage	*message;
struct	InputEvent		key_event;
struct	GfxBase			*GfxBase;
struct	Screen			*Screen;
struct	Window			*Window;
struct	RastPort 		*rp,*rport,sport;
struct	ViewPort		*vp;
struct BitMap 			smap;
struct SimpleSprite	sprite;
struct FileLock 		*filelock,*firstfilelock,*oldfilelock;

extern char heading[],drwbuf[],shtbuf[],linbuf[];

USHORT
	h_control,red_val,green_val,blue_val,messcode,
	mx, my,screen_height, screen_width,screen_mode,
	draw_color,ox,oy,bstat,spgot,lastrealcnt,last_extent,done_sav;

long	class,clearmask,sav_where,sav_where_cnt;

APTR	address;

struct NewScreen
NewScreen =
   {
      0,0,640,400,
      3,
      0,1,
      NULL,
      CUSTOMSCREEN,
      NULL,
      "                             DynamicCAD Rev. 1.20 July 28,1986",
      NULL,NULL,
   };

struct NewWindow 
back_ground =
   {  0,0,640,400,  /* window coordinates */
      0,1,           /* pen colors */
	   IDCMP_ONE,
      NOCAREREFRESH | ACTIVATE | SMART_REFRESH |
	   BACKDROP | BORDERLESS | REPORTMOUSE,
      NULL,          /* Gadget List */
      NULL,          /* Check Mark */
      NULL,          /* Fill in Title */
      NULL,          /* Fill in Screen */
      NULL,          /* Bit Map */
      640,400,640,400,  /* window size limits */
      CUSTOMSCREEN,
   };

 char filename[40],dirname[40],netname[40],libname[40],generic[40],
	  drwname[40],drwdirname[40],libdirname[40],netdirname[40],
     leve_text[40],unit_text[40],size_text[40],line_text[40],part_text[40],
     posi_text[40],alph_text[40],grid_text[40],letr_text[40],offs_text[40],
	  fr_fil1_text[40],fr_fil2_text[40],fr_fil3_text[40],fr_fil4_text[40],
	  fr_fil5_text[40],fr_fil6_text[40],fr_fil7_text[40],fr_fil8_text[40],
 	  fr_fil9_text[40],fr_fil10_text[40],
     rowcount[7],colcount[7],gencount[7],buffu[7],percount[7],ratcount[7],
	  entcount[7],
	  dsp1count[7],dsp2count[7],dsp3count[7],dsp4count[7],
     dsp5count[7],dsp6count[7],dsp7count[7],dsp8count[7],
	  srh1count[7],srh2count[7],srh3count[7],srh4count[7],
     srh5count[7],srh6count[7],srh7count[7],srh8count[7],
	  untcount[7],pwtcount[7],mwtcount[7],
	  nwtcount[7],owtcount[7],
	  *sav_fnam[200],olddirname[40],extension[4],
        net1count[5],net2count[5],net3count[5],net4count[5],
        net5count[5],net6count[5],net7count[5];

/**************************************************************************
		file open in/out requesters starts here
*************************************************************************/

USHORT a1bp1_dat[] = 
{ 0xFFFE, 0xFEFE, 0xFC7E, 0xF83E, 0xF11E, 
  0xE38E, 0xC7C6, 0x8002, 0x8002, 0xFFFE },

 a2bp1_dat[] = 
{ 0xFFFE, 0x8002, 0x8002, 0xC7C6, 0xE38E, 
  0xF11E, 0xF83E, 0xFC7E, 0xFEFE, 0xFFFE },

 cbox1_dat[] = {
 0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,0xFFFF,
 0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE,0x7FFE },

 cbox2_dat[] = {
 0xFFFF,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0x8001,0xFFFF,
 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000 },

 sort_off_dat[] = {
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000,
 0xDFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD001, 0xE1C7, 0xE3F0, 0x1C7F, 0x7F01, 0x6000,
 0xD003, 0x3363, 0x32D0, 0x3633, 0x3301, 0x6000,
 0xD003, 0x8633, 0x30C0, 0x6330, 0x3001, 0x6000,
 0xD001, 0xC633, 0xE0C0, 0x633C, 0x3C01, 0x6000,
 0xD000, 0x7633, 0x60C0, 0x6330, 0x3001, 0x6000,
 0xD003, 0x3363, 0x30C0, 0x3630, 0x3001, 0x6000,
 0xD001, 0xE1C7, 0x19E0, 0x1C78, 0x7801, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xDFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6000,
 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000 },

 sort_on_dat[] = {
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000,
 0xDFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD001, 0xE1C7, 0xE3F0, 0x0071, 0x8C01, 0x6000,
 0xD003, 0x3363, 0x32D0, 0x00D9, 0xCC01, 0x6000,
 0xD003, 0x8633, 0x30C0, 0x018D, 0xEC01, 0x6000,
 0xD001, 0xC633, 0xE0C0, 0x018D, 0xBC01, 0x6000,
 0xD000, 0x7633, 0x60C0, 0x018D, 0x9C01, 0x6000,
 0xD003, 0x3363, 0x30C0, 0x00D9, 0x8C01, 0x6000,
 0xD001, 0xE1C7, 0x19E0, 0x0071, 0x8C01, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xD000, 0x0000, 0x0000, 0x0000, 0x0001, 0x6000,
 0xDFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x6000,
 0xC000, 0x0000, 0x0000, 0x0000, 0x0000, 0x6000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xE000 },

 blank_dat[] = {
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000 },

 exists_dat[] = {
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC,
 0xC000, 0x0000, 0x0000, 0x000C, 0xDFFF, 0xFFFF, 0xFFFF, 0xFFEC,
 0xD000, 0x0000, 0x0000, 0x002C, 0xD000, 0x0000, 0x0000, 0x002C,
 0xD0FE, 0xC37E, 0x3C7E, 0x3C2C, 0xD066, 0x6618, 0x665A, 0x662C,
 0xD060, 0x3C18, 0x7018, 0x702C, 0xD078, 0x1818, 0x3818, 0x382C,
 0xD060, 0x3C18, 0x0E18, 0x0E2C, 0xD066, 0x6618, 0x6618, 0x662C,
 0xD0FE, 0xC37E, 0x3C3C, 0x3C2C, 0xD000, 0x0000, 0x0000, 0x002C,
 0xD000, 0x0000, 0x0000, 0x002C, 0xDFFF, 0xFFFF, 0xFFFF, 0xFFEC,
 0xC000, 0x0000, 0x0000, 0x000C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC },

 new_dat[] = {
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC,
 0xC000, 0x0000, 0x0000, 0x000C, 0xDFFF, 0xFFFF, 0xFFFF, 0xFFEC,
 0xD000, 0x0000, 0x0000, 0x002C, 0xD000, 0x0000, 0x0000, 0x002C,
 0xD000, 0x18DF, 0xD8C0, 0x002C, 0xD000, 0x1CCC, 0xD8C0, 0x002C,
 0xD000, 0x1ECC, 0x18C0, 0x002C, 0xD000, 0x1BCF, 0x1AC0, 0x002C,
 0xD000, 0x19CC, 0x1FC0, 0x002C, 0xD000, 0x18CC, 0xDDC0, 0x002C,
 0xD000, 0x18DF, 0xD8C0, 0x002C, 0xD000, 0x0000, 0x0000, 0x002C,
 0xD000, 0x0000, 0x0000, 0x002C, 0xDFFF, 0xFFFF, 0xFFFF, 0xFFEC,
 0xC000, 0x0000, 0x0000, 0x000C, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC,
 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFC };

struct Image
 arr1_im  = 	{  0,0, 15,10, 1, &a1bp1_dat[0], 2,0 },
 arr2_im  = 	{  0,0, 15,10, 1, &a2bp1_dat[0], 2,0 },
 blank_im =    {  0,0, 43,16, 1, &blank_dat[0], 2,0 },
 cbox1_im = 	{  0,0, 16,10, 2, &cbox1_dat[0], 3,0 },
 cbox2_im = 	{  0,0, 16,10, 2, &cbox2_dat[0], 3,0 },
 sort_on_im =	{  0,0, 83,19, 1, &sort_on_dat[0], 2,0 },
 sort_off_im=  {  0,0, 83,19, 1, &sort_off_dat[0],2,0 },
 exists_im =   {  0,0, 62,19, 1, &exists_dat[0],2,0 },
 new_im    =   {  0,0, 62,19, 1, &new_dat[0],   2,0 },
 dummy_im = {};

struct IntuiText
 	ent_text   = { 2,1, JAM1, 0,-12, NULL, "Enter" },
 	dsp_text   = { 2,1, JAM1, 0,-12, NULL, "Display" },
 	srh_text   = { 2,1, JAM1, 0,-12, NULL, "Search" },
 	row_text   = { 2,1, JAM1, -40,0, NULL, "ROW :" },
 	col_text   = { 2,1, JAM1, -40,0, NULL, "COL :" },
 	per_text   = { 2,1, JAM1, -40,0, NULL, " %  :" },
	rat_text   = { 2,1, JAM1, -185,0, NULL, "Alpha numeric ratio  :"},
 	inc_text   = { 2,1, JAM1, -40,0, NULL, "INCH:" },
 	mmm_text   = { 2,1, JAM1, -40,0, NULL, "mm  :" },
 	unt_text   = { 2,1, JAM1, -80,0, NULL, "UNIT SIZE:" },
 	pwt_text   = { 2,1, JAM1, -80,0, NULL, "P WEIGHT :" },
 	mwt_text   = { 2,1, JAM1, -80,0, NULL, "M WEIGHT :" },
	nwt_text   = { 2,1, JAM1, -80,0, NULL, "N WEIGHT :" },
 	owt_text   = { 2,1, JAM1, -80,0, NULL, "O WEIGHT :" },
 	gen_text   = { 2,1, JAM1,  0, 0 },
 	st_text1   = { 2,1, JAM1, 10, 8 },
	sl_text    = { 2,1, JAM1, 10, 8 },
 	sl_ask_text= { 2,1, JAM1,  0, 0 },
 	sl_text1   = { 2,1, JAM1, 40, 0 },
 	sl_text2   = { 2,1, JAM1, 40, 0 },
 	sl_text3   = { 2,1, JAM1, 40, 0 },
 	sl_text4   = { 2,1, JAM1, 40, 0 },
 	sl_text5   = { 2,1, JAM1, 40, 0 },
 	sl_text6   = { 2,1, JAM1, 40, 0 },
 	sl_text7   = { 2,1, JAM1, 40, 0 },
 	sl_text8   = { 2,1, JAM1, 40, 0 },
 	sl_text9   = { 2,1, JAM1, 40, 0 },
 	sl_text10  = { 2,1, JAM1, 40, 0 },
	fr_fil1    = { 1,0,	JAM2,  0, 0, NULL, fr_fil1_text },
	fr_fil2    = { 1,0, JAM2,  0, 0, NULL, fr_fil2_text },
	fr_fil3    = { 1,0, JAM2,  0, 0, NULL, fr_fil3_text },
	fr_fil4    = { 1,0, JAM2,  0, 0, NULL, fr_fil4_text },
	fr_fil5    = { 1,0, JAM2,  0, 0, NULL, fr_fil5_text },
	fr_fil6    = { 1,0, JAM2,  0, 0, NULL, fr_fil6_text },
	fr_fil7    = { 1,0, JAM2,  0, 0, NULL, fr_fil7_text },
	fr_fil8    = { 1,0, JAM2,  0, 0, NULL, fr_fil8_text },
	fr_fil9    = { 1,0, JAM2,  0, 0, NULL, fr_fil9_text },
	fr_fil10   = { 1,0, JAM2,  0, 0, NULL, fr_fil10_text },
 	dsp_clr_text = { 2,1, JAM1, 18, 3, NULL,"Clear" },
 	srh_clr_text = { 2,1, JAM1, 18, 3, NULL,"Clear" },
 	LD_text    = { 2,1, JAM1, 29, 5, NULL, "Move Drawing In" },
 	LDL_text   = { 2,1, JAM1, 29, 5, NULL, "Select Library File" },
	NET_text   = { 2,1, JAM1, 29, 5, NULL, "Enter Net List Name"},
 	fr_text2   = { 2,1, JAM1,-80, 0, NULL, "Directory:" },
 	fr_text3   = { 2,1, JAM1,-40, 0, NULL, "File:" },
	sort_text  = { 2,1, JAM1,-40, 6, NULL, "SORT:" },
 	SAV_text   = { 2,1, JAM1, 29, 5, NULL, "Move Drawing Out" },
 	yn_text1   = { 2,1, JAM1, 11, 8, NULL, "Are You Sure?" },
 	OK_text    = { 2,1, JAM1, 22, 6, NULL, "OK" },
 	CAN_text   = { 2,1, JAM1,  7, 6, NULL, "CANCEL" },
 	IN_text    = { 2,1, JAM1, 21, 6, NULL, "IN" },
 	OUT_text   = { 2,1, JAM1, 17, 6, NULL, "OUT" },
 	YES_text   = { 2,0, JAM2, 22, 6, NULL, "YES" },
 	NO_text    = { 2,3, JAM2, 24, 6, NULL, "NO"  },
 	ON_text    = { 0,1, JAM2, 22, 6, NULL, "ON"  },
 	OFF_text   = { 2,3, JAM2, 21, 6, NULL, "OFF" },
 	RUN_text   = { 2,1, JAM2, 20, 6, NULL, "Run" },
	DO_text    = { 2,1, JAM2, 24, 6, NULL, "Do"  },
	QUIT_text  = { 2,1, JAM2, 16, 6, NULL, "QUIT" },
 	DM_text    = { 2,1, JAM1, 15,15, NULL, "Dynamic-CAD V 1.20 July 28,1986" },
   colm_text   = { 2,1, JAM1, 0, 0, NULL,   "Column Positions"},
   nams_text   = { 2,1, JAM1, 0, 0, NULL,   "Names"},
	sigs_text   = { 2,1, JAM1, -210,0, NULL, "Columns  Signal Name :"},
 	refs_text   = { 2,1, JAM1, -185,0, NULL, "Reference Designator :" },
 	pins_text   = { 2,1, JAM1, -185,0, NULL, "Pin Number :" },
 	sour_text   = { 2,1, JAM1, -185,0, NULL, "Source Pin :" },
 	comp_text   = { 2,1, JAM1, -185,0, NULL, "Component Type :" },
 	draw_text   = { 2,1, JAM1, -185,0, NULL, "Drawing Number :" },
	shet_text   = { 2,1, JAM1, -185,0, NULL, "Sheet Number :" },
 	drawn_text  = { 2,1, JAM1, -70,-10, NULL, "Drawing Number :" },
	shetn_text  = { 2,1, JAM1, -70,-10, NULL, "Sheet Number :" },
   cnad_text   = { 2,1, JAM1, -70,-10, NULL, "Company Name and Date"};

 short
 	sl_point1[]	= { 0,0, 299,0, 299,299, 0,299, 0,0 },
	sl_point2[]	= { 2,2, 295,2, 295,295, 2,295, 2,2 },
 	fr_point1[] = { 0,0, 278,0, 278,157, 0,157, 0,0 },
 	fr_point2[] = { 0,0, 253,0, 253, 95, 0, 95, 0,0 },
 	fr_point5[] = { 0,0, 185,0, 185,  9, 0,  9, 0,0 },
 	fr_point6[] = { 0,0, 207,0, 207,  9, 0,  9, 0,0 },
 	st_point2[] = { 0,0, 177,0, 177,  9, 0,  9, 0,0 },
 	yn_point1[] = { 2,2, 172,2, 172,44, 2,44, 2,3, 171,3, 171,43, 3,43, 3,3 },
 	st_point1[] = { 2,2, 265,2 ,265,56, 2,56, 2,3, 264,3, 264,55, 3,55, 3,3 },
 	ok_point4[] = { 3,3, 66,3, 66,15, 3,15, 3,3 },
 	ok_point3[] = { 0,0, 70,0, 70,18, 0,18, 0,1, 69,1, 69,17, 1,17, 1,2 },
 	ok_point2[] = { 3,3, 58,3, 58,15, 3,15, 3,3 },
 	ok_point1[] = { 0,0, 61,0, 61,18, 0,18, 0,1, 60,1, 60,17, 1,17, 1,2 },
       net_point1[] = { 0, 0, 161,0, 161, 9, 0, 9, 0,0 }; 

struct Border
	sl_bord2 =  {  0, 0, 2, 0, JAM1, 5, sl_point2 },
 	sl_bord1 =  {  0, 0, 2, 0, JAM1, 5, sl_point1, &sl_bord2 },
 	fr_bord5 =	{ -1,-1, 2, 0, JAM1, 5, fr_point5},
 	st_bord2 =	{ -1,-1, 2, 0, JAM1, 5, st_point2},
 	fr_bord2 =	{ 22,13, 2, 0, JAM1, 5, fr_point2},
 	fr_bord1 =	{  1, 1, 2, 0, JAM1, 5, fr_point1, &fr_bord2},
 	yn_bord1 =  {  0, 0, 2, 0, JAM1, 9, yn_point1},
 	st_bord1 =  {  0, 0, 2, 0, JAM1, 9, st_point1},
 	ok_bord4 =  {  0, 0, 2, 0, JAM1, 5, ok_point4},
    ok_bord3 =  {  0, 0, 2, 0, JAM1, 9, ok_point3, &ok_bord4},
 	ok_bord2 =  {  0, 0, 2, 0, JAM1, 5, ok_point2},
 	ok_bord1 =  {  0, 0, 2, 0, JAM1, 9, ok_point1, &ok_bord2},
	net_bord1[] = { -1,-1, 2, 0, JAM1, 5, net_point1 };


/************************************************************************
*
*                 all the gadget stuff for this program
*
*************************************************************************/


struct StringInfo
 	dir_str  = {dirname, buffu, 0, 40 },
 	file_str = {filename,buffu, 0, 40 },
 	ask_str  = {generic, buffu, 0, 40 },
 	row_str  = {rowcount,buffu, 0,  5 },
 	col_str  = {colcount,buffu, 0,  5 },
 	per_str  = {percount,buffu, 0,  5 },
	rat_str  = {ratcount,buffu, 0,  5 },
 	gen_str  = {colcount,buffu, 0,  7 },
	ent_str  = {entcount,buffu, 0,  5 },
 	dsp1_str = {dsp1count,buffu, 0, 5 },
 	dsp2_str = {dsp2count,buffu, 0, 5 },
 	dsp3_str = {dsp3count,buffu, 0, 5 },
 	dsp4_str = {dsp4count,buffu, 0, 5 },
 	dsp5_str = {dsp5count,buffu, 0, 5 },
 	dsp6_str = {dsp6count,buffu, 0, 5 },
 	dsp7_str = {dsp7count,buffu, 0, 5 },
 	dsp8_str = {dsp8count,buffu, 0, 5 },
 	srh1_str = {srh1count,buffu, 0, 5 },
 	srh2_str = {srh2count,buffu, 0, 5 },
 	srh3_str = {srh3count,buffu, 0, 5 },
 	srh4_str = {srh4count,buffu, 0, 5 },
 	srh5_str = {srh5count,buffu, 0, 5 },
 	srh6_str = {srh6count,buffu, 0, 5 },
 	srh7_str = {srh7count,buffu, 0, 5 },
 	srh8_str = {srh8count,buffu, 0, 5 },
 	unt_str  = {untcount, buffu, 0, 6 },
 	pwt_str  = {pwtcount, buffu, 0, 6 },
 	mwt_str  = {mwtcount, buffu, 0, 6 },
 	nwt_str  = {nwtcount, buffu, 0, 6 },
 	owt_str  = {owtcount, buffu, 0, 6 },
 	linbuf_str  = {linbuf,heading, 0, 83 },
 	dawbuf_str  = {drwbuf,heading, 0, 21 },
 	shtbuf_str  = {shtbuf,heading, 0, 21 },
   net1_str    = {net1count,heading,0,4},
   net2_str    = {net2count,heading,0,4},
   net3_str    = {net3count,heading,0,4},
   net4_str    = {net4count,heading,0,4},
   net5_str    = {net5count,heading,0,4},
   net6_str    = {net6count,heading,0,4},
   net7_str    = {net7count,heading,0,4};

struct PropInfo
  propstuff = { AUTOKNOB | FREEVERT, 0,0, 0x3fff, 0x3fff };

struct Gadget

 	fr_go_button = {
		NULL, 4,136, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, (APTR)&IN_text },

	fr_exists_str = {
		&fr_go_button, 110,136, 1,1,
		GADGIMAGE | GADGHIMAGE /* | GRELWIDTH */ ,
		NULL ,
		REQGADGET,
		(APTR)&exists_im },

	fr_new_str = {
		&fr_go_button, 110,136, 1,1,
		GADGIMAGE | GADGHIMAGE ,
		NULL ,
		REQGADGET,
		(APTR)&new_im },

 	fr_sort_button = {
		&fr_go_button, 100,136, 62,19,
		GADGIMAGE | GADGHIMAGE ,
		TOGGLESELECT ,
		BOOLGADGET | REQGADGET,
		(APTR)&sort_off_im, (APTR)&sort_on_im, NULL },

 	fr_stop_button = {
		&fr_go_button, 206,136, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, (APTR)&CAN_text },

 	fr_scrollbar = {
		&fr_stop_button, 5,25, 15,70, GADGHCOMP | GADGIMAGE,
		RELVERIFY | FOLLOWMOUSE,
		PROPGADGET | REQGADGET, (APTR)&dummy_im, NULL, NULL, 0,
		(APTR)&propstuff },

 	fr_uparrow = {
		&fr_scrollbar, 5,14, 15,10, GADGIMAGE | GADGHCOMP,
		GADGIMMEDIATE,
		BOOLGADGET | REQGADGET, (APTR)&arr1_im },

 	fr_dnarrow = {
		&fr_uparrow, 5,100, 15,10, GADGIMAGE | GADGHCOMP,
		GADGIMMEDIATE,
		BOOLGADGET | REQGADGET, (APTR)&arr2_im },

 	fr_fil1_str = {
		&fr_dnarrow, 25,15, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil1, 0, NULL },

 	fr_fil2_str = {
		&fr_fil1_str, 25,24, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil2, 0, NULL },

 	fr_fil3_str = {
		&fr_fil2_str, 25,33, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil3, 0, NULL },

 	fr_fil4_str = {
		&fr_fil3_str, 25,42, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil4, 0, NULL },

 	fr_fil5_str = {
		&fr_fil4_str, 25,51, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil5, 0, NULL },

 	fr_fil6_str = {
		&fr_fil5_str, 25,60, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil6, 0, NULL },

 	fr_fil7_str = {
		&fr_fil6_str, 25,69, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil7, 0, NULL },

 	fr_fil8_str = {
		&fr_fil7_str, 25,78, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil8, 0, NULL },

 	fr_fil9_str = {
		&fr_fil8_str, 25,87, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil9, 0, NULL },

 	fr_fil10_str = {
		&fr_fil9_str, 25,96, 240, 8,
		GADGHCOMP, RELVERIFY | GADGIMMEDIATE, BOOLGADGET | REQGADGET,
		NULL, NULL, (APTR)&fr_fil10, 0, NULL },

 	fr_dir_str = {
		&fr_fil10_str, 87,112, 189, 11,
		GADGHCOMP, RELVERIFY, STRGADGET | REQGADGET,
		(APTR)&fr_bord5, NULL, (APTR)&fr_text2,	0, (APTR)&dir_str },

 	fr_file_str = {
		&fr_dir_str, 87,125, 189,11,
		GADGHCOMP, RELVERIFY, STRGADGET | REQGADGET,
		(APTR)&fr_bord5, NULL, (APTR)&fr_text3,	0, (APTR)&file_str },

 	yn_go_button = {
		NULL, 12,20, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, (APTR)&OK_text },

 	yn_stop_button = {
		&yn_go_button, 101,20, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, (APTR)&CAN_text },

 	str_go_button = {
		NULL, 38,33, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, NULL },

 	str_stop_button = {
		&str_go_button, 168,33, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, NULL },

 	str_ask = {
		&str_stop_button, 80,18, 180,11, GADGHCOMP, RELVERIFY,
		STRGADGET | REQGADGET, (APTR)&st_bord2, NULL, NULL,
		0, (APTR)&ask_str },

 	sl_go_button = {
		NULL, 38,250, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, NULL },

 	sl_stop_button = {
		&sl_go_button, 200,250, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, NULL },

 	sl_box1_button = {
		&sl_stop_button, 10, 20, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im, (APTR)&sl_text1 },

 	sl_box2_button = {
		&sl_box1_button, 10, 35, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im, (APTR)&sl_text2 },

 	sl_box3_button = {
		&sl_box2_button, 10,50, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im, (APTR)&sl_text3  },

 	sl_box4_button = {
		&sl_box3_button, 10,65, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text4 },

 	sl_box5_button = {
		&sl_box4_button, 10,80, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text5 },

 	sl_box6_button = {
		&sl_box5_button, 10,95, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text6 },

 	sl_box7_button = {
		&sl_box6_button, 10,110, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text7 },

 	sl_box8_button = {
		&sl_box7_button, 10,125, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text8 },

 	sl_box9_button = {
		&sl_box8_button, 10,140, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&sl_text9 },

	sl_box10_button = {
		&sl_box9_button, 10,155, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im, (APTR)&sl_text10 },

	sl_ask = {
		&sl_stop_button, 100,23, 180,11, GADGHCOMP, RELVERIFY,
		STRGADGET | REQGADGET, (APTR)&st_bord2, NULL, (APTR)&sl_ask_text,
		0, (APTR)&ask_str },

	sl_row = {
		&sl_stop_button, 60,25, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, (APTR)&row_text,
		0, (APTR)&row_str },

 	sl_col = {
		&sl_row, 160,25, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, (APTR)&col_text,
		0, (APTR)&col_str },

 	sl_per = {
		&sl_box8_button, 60,20, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, (APTR)&per_text,
		0, (APTR)&per_str },

 	sl_rat = {
		&sl_per, 200,35, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, (APTR)&rat_text,
		0, (APTR)&rat_str },

 	sl_gen = {
		&sl_stop_button, 60,35, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, (APTR)&st_bord1, NULL, (APTR)&gen_text,
		0, (APTR)&gen_str },

 	ent_lvl = {
		&sl_stop_button, 20,30, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&ent_text, 0, (APTR)&ent_str },

 	dsp1_lvl = {
		&ent_lvl, 120,30, 60,10,
		GADGHCOMP, RELVERIFY | LONGINT,	STRGADGET | REQGADGET,
		NULL, NULL, (APTR)&dsp_text, 0, (APTR)&dsp1_str },

 	dsp2_lvl = {
		&dsp1_lvl,120, 45, 60,10,
		GADGHCOMP, RELVERIFY | LONGINT,	STRGADGET | REQGADGET,
		NULL, NULL, NULL, 0, (APTR)&dsp2_str },

 	dsp3_lvl = {
		&dsp2_lvl,120,60, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp3_str },

 	dsp4_lvl = {
		&dsp3_lvl,120,75, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp4_str },

 	dsp5_lvl = {
		&dsp4_lvl,120,90, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp5_str },

 	dsp6_lvl = {
		&dsp5_lvl,120,105, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp6_str },

 	dsp7_lvl = {
		&dsp6_lvl,120,120, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp7_str },

 	dsp8_lvl = {
		&dsp7_lvl,120,135, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&dsp8_str },

 	dsp_clr_button = {
		&dsp8_lvl,120,150, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&dsp_clr_text },

 	srh1_lvl = {
		&dsp_clr_button,230, 30, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&srh_text, 0, (APTR)&srh1_str },

 	srh2_lvl = {
		&srh1_lvl,230, 45, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh2_str },

 	srh3_lvl = {
		&srh2_lvl,230, 60, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh3_str },

 	srh4_lvl = {
		&srh3_lvl,230, 75, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh4_str },

 	srh5_lvl = {
		&srh4_lvl,230, 90, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh5_str },

 	srh6_lvl = {
		&srh5_lvl,230,105, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh6_str },

 	srh7_lvl = {
		&srh6_lvl,230,120, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh7_str },

 	srh8_lvl = {
		&srh7_lvl,230,135, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, NULL, 0, (APTR)&srh8_str },

 	srh_clr_button = {
		&srh8_lvl,230,150, 60,10,
		GADGIMAGE | GADGHIMAGE | GRELWIDTH,
		GADGIMMEDIATE | TOGGLESELECT,
		BOOLGADGET | REQGADGET,
		(APTR)&cbox2_im, (APTR)&cbox1_im , (APTR)&srh_clr_text },
	
 	val_unt  = {
		&sl_box2_button,100,23, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&unt_text, 0, (APTR)&unt_str },

 	val_pwt  = {
		&val_unt,100,60, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&pwt_text, 0, (APTR)&pwt_str },

 	val_mwt  = {
		&val_pwt,100,80, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&mwt_text, 0, (APTR)&mwt_str },

 	val_nwt  = {
		&val_mwt,100,100, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&nwt_text, 0, (APTR)&nwt_str },

 	val_owt  = {
		&val_nwt,100,120, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&owt_text, 0, (APTR)&owt_str },

 	dm_ok_button = {
		NULL, 38,33, 62,19, GADGHCOMP, RELVERIFY | ENDGADGET,
		BOOLGADGET | REQGADGET, (APTR)&ok_bord1, NULL, (APTR)&OK_text },

 	net1_lvl = {
		&sl_stop_button, 220,25, 60,10,
		GADGHCOMP, RELVERIFY | LONGINT,
               STRGADGET | REQGADGET,NULL, NULL,
       	(APTR)&sigs_text, 0, (APTR)&net1_str },

 	net2_lvl = {
		&net1_lvl,220, 37, 60,10,
		GADGHCOMP, RELVERIFY | LONGINT,
       STRGADGET | REQGADGET, NULL, NULL,
		(APTR)&refs_text, 0, (APTR)&net2_str },

 	net3_lvl = {
		&net2_lvl,220,49, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
       (APTR)&pins_text, 0, (APTR)&net3_str },

 	net4_lvl = {
		&net3_lvl,220,61, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL, 
       (APTR)&sour_text, 0, (APTR)&net4_str },

 	net5_lvl = {
		&net4_lvl,220,73, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
       (APTR)&comp_text, 0, (APTR)&net5_str },

 	net6_lvl = {
		&net5_lvl,220,85, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
       (APTR)&draw_text, 0, (APTR)&net6_str },

 	net7_lvl = {
		&net6_lvl,220,97, 60,10, GADGHCOMP, RELVERIFY | LONGINT,
		STRGADGET | REQGADGET, NULL, NULL,
       (APTR)&shet_text, 0, (APTR)&net7_str },

 	net_lin_ask = {
		&net7_lvl, 80,117, 180,11, GADGHCOMP, RELVERIFY,
		STRGADGET | REQGADGET, (APTR)&st_bord2, NULL,(APTR)&cnad_text,
		0, (APTR)&linbuf_str },

 	net_daw_ask = {
		&net_lin_ask, 80,137, 180,11, GADGHCOMP, RELVERIFY,
		STRGADGET | REQGADGET, (APTR)&net_bord1, NULL, (APTR)&drawn_text,
		0, (APTR)&dawbuf_str },

 	net_sht_ask = {
		&net_daw_ask, 80,157, 180,11, GADGHCOMP, RELVERIFY,
		STRGADGET | REQGADGET, (APTR)&net_bord1, NULL, (APTR)&shetn_text,
		0, (APTR)&shtbuf_str };

struct Requester
 	file_in_out_req = { NULL, 10, 10, 282, 160, 0,0, (APTR)&fr_file_str,
								(APTR)&fr_bord1, NULL, NULL, 1 },

 	yesno_req 		= {	NULL, 10, 10, 175,  47, 0,0, (APTR)&yn_stop_button,
								(APTR)&yn_bord1, (APTR)&yn_text1, NULL, 1 },

 	str_req 		= { NULL, 10, 10, 268,  59, 0,0, (APTR)&str_ask,
								(APTR)&st_bord1, (APTR)&st_text1, NULL, 1 },

 	sl_req 			= { NULL, 10, 10, 300, 300, 0,0, NULL,
								(APTR)&sl_bord1, (APTR)&sl_text, NULL, 1 },

 	dm_req 		    = {	NULL, 10, 10, 268,  59, 0,0, (APTR)&dm_ok_button,
								(APTR)&st_bord1, (APTR)&DM_text, NULL, 1 };

/*************************************************************************
					 menu 2 stuff
**************************************************************************/

struct IntuiText
 	in_tx    = { 0,1,JAM2,20,1,NULL,"In" },
 	out_tx   = { 0,1,JAM2,20,1,NULL,"Out" },
 	cler_tx  = { 0,1,JAM2,20,1,NULL,"Clear" },
 	auto_tx  = { 0,1,JAM2,20,1,NULL,"Auto" },
 	net_tx   = { 0,1,JAM2,20,1,NULL,"Net" },
 	quit_tx  = { 0,1,JAM2,20,1,NULL,"Quit" };

struct MenuItem
   in_mi   = { NULL,    0,00,75,10,DEF_FLAGS, NULL, (APTR)&in_tx },
   out_mi  = { &in_mi,  0,10,75,10,DEF_FLAGS, NULL, (APTR)&out_tx },
   cler_mi = { &out_mi, 0,20,75,10,DEF_FLAGS, NULL, (APTR)&cler_tx },
   auto_mi = { &cler_mi,0,30,75,10,DEF_FLAGS, NULL, (APTR)&auto_tx },
   net_mi  = { &auto_mi,0,40,75,10,DEF_FLAGS, NULL, (APTR)&net_tx, },
   quit_mi = { &net_mi, 0,50,75,10,DEF_FLAGS, NULL, (APTR)&quit_tx };

/*************************************************************************
					 menu 1 stuff
*************************************************************************/
struct IntuiText
 	leve_tx = { 0,1,JAM2,20,1,NULL,leve_text },
 	unit_tx = { 0,1,JAM2,20,1,NULL,unit_text },
 	size_tx = { 0,1,JAM2,20,1,NULL,size_text },
 	posi_tx = { 0,1,JAM2,20,1,NULL,posi_text },
 	grid_tx = { 0,1,JAM2,20,1,NULL,grid_text },
 	line_tx = { 0,1,JAM2,20,1,NULL,line_text },
 	alph_tx = { 0,1,JAM2,20,1,NULL,alph_text },
 	ltyp_tx = { 0,1,JAM2,20,1,NULL,letr_text },
 	part_tx = { 0,1,JAM2,20,1,NULL,part_text },
 	offs_tx = { 0,1,JAM2,20,1,NULL,offs_text };

struct MenuItem
 	size_mi = { NULL    ,0,00,260,10,DEF_FLAGS, NULL, (APTR)&size_tx },
 	posi_mi = { &size_mi,0,10,260,10,DEF_FLAGS, NULL, (APTR)&posi_tx },
 	leve_mi = { &posi_mi,0,20,260,10,DEF_FLAGS,	NULL, (APTR)&leve_tx },
 	unit_mi = { &leve_mi,0,30,260,10,DEF_FLAGS, NULL, (APTR)&unit_tx },
 	grid_mi = { &unit_mi,0,40,260,10,DEF_FLAGS, NULL, (APTR)&grid_tx },
 	line_mi = { &grid_mi,0,50,260,10,DEF_FLAGS, NULL, (APTR)&line_tx },
 	alph_mi = { &line_mi,0,60,260,10,DEF_FLAGS, NULL, (APTR)&alph_tx },
 	ltyp_mi = { &alph_mi,0,70,260,10,DEF_FLAGS, NULL, (APTR)&ltyp_tx },
 	part_mi = { &ltyp_mi,0,80,260,10,DEF_FLAGS, NULL, (APTR)&part_tx },
 	offs_mi = { &part_mi,0,90,260,10,DEF_FLAGS, NULL, (APTR)&offs_tx };

/*************************************************************************
						 menu3 stuff
**************************************************************************/

struct IntuiText
   atit1_tx = { 0,1,JAM2,20,1,NULL,"Attitude 1" },
   atit2_tx = { 0,1,JAM2,20,1,NULL,"Attitude 3" };

struct MenuItem
   atit1_mi = { NULL,     118,00,110,10,DEF_FLAGS2,0xfffd, (APTR)&atit1_tx },
   atit2_mi = { &atit1_mi,118,10,110,10,DEF_FLAGS2,0xfffe, (APTR)&atit2_tx };

struct IntuiText
   atit0_tx = { 0,1,JAM2,20,1,NULL,"Attitude   " },
   goplt_tx = { 0,1,JAM2,20,1,NULL,"Go         " };

struct MenuItem
   atit0_mi = { NULL,        118,00,100,10,DEF_FLAGS2,0xfffd, (APTR)&atit0_tx },
   goplt_mi    = { &atit0_mi,118,10,100,10,DEF_FLAGS2,0xfffe, (APTR)&goplt_tx };

struct IntuiText
   scrplota_tx = { 0,1,JAM2,20,1,NULL,"Screen Plot AMIGA" },
   scrplotb_tx = { 0,1,JAM2,20,1,NULL,"Screen Plot DynaCAD" },
   drwplot_tx  = { 0,1,JAM2,20,1,NULL,"Drawing Plot" };

struct MenuItem
   scrplota_mi = { NULL,        118,00,150,10,DEF_FLAGS2,0xfffb, (APTR)&scrplota_tx },
   scrplotb_mi = { &scrplota_mi,118,10,150,10,DEF_FLAGS2,0xfffd, (APTR)&scrplotb_tx },
   drwplot_mi  = { &scrplotb_mi,118,20,150,10,DEF_FLAGS2,0xfffe, (APTR)&drwplot_tx };

struct IntuiText
	sizep_tx = { 0,1,JAM2,20,1,NULL,"Plot Size" },
   savep_tx = { 0,1,JAM2,20,1,NULL,"Save Screen" },
   attit_tx = { 0,1,JAM2,20,1,NULL,"Attitude" },
   plotr_tx = { 0,1,JAM2,20,1,NULL,"Plotter"  },
   linpr_tx = { 0,1,JAM2,20,1,NULL,"Printer" };

struct MenuItem
   sizep_mi = { NULL,     0,00,120,10,DEF_FLAGS2,0xffef, (APTR)&sizep_tx },
   savep_mi = { &sizep_mi,0,10,120,10,DEF_FLAGS2,0xfff7, (APTR)&savep_tx },
   attit_mi = { &savep_mi,0,20,120,10,DEF_FLAGS2,0xfffb,
			(APTR)&attit_tx,NULL,NULL,&atit2_mi },
   plotr_mi = { &attit_mi,0,30,120,10,DEF_FLAGS2,0xfffd,
			(APTR)&plotr_tx,NULL,NULL,&goplt_mi },
   linpr_mi = { &plotr_mi,0,40,120,10,DEF_FLAGS2,0xfffe,
			(APTR)&linpr_tx,NULL,NULL,&drwplot_mi };

struct Menu
  menu1 =
   {    NULL, 1,0,40,10, MENUENABLED | MIDRAWN, "FILE", &quit_mi },

  menu2 =
   {  &menu1, 50,0,90,10, MENUENABLED | MIDRAWN, "PARAMETERS", &offs_mi },

  menu3 =
   {  &menu2, 140,0,90,10, MENUENABLED | MIDRAWN, "PLOT", &linpr_mi };
/**************************************************************************
									pointers
*************************************************************************/
#define NORMAL 1
#define BLANK  2
#define BUSY   3
#define CROSS  4
#define SPRITEON	5
#define SPRITEOFF  6

#define XPOINTER_WIDTH 16
#define XPOINTER_HEIGHT 16
#define XPOINTER_XOFFSET 0
#define XPOINTER_YOFFSET 0

#define XPblank_WIDTH 16
#define XPblank_HEIGHT 16
#define XPblank_XOFFSET 0
#define XPblank_YOFFSET 0

#define XPbusy_WIDTH   7
#define XPbusy_HEIGHT 30
#define XPbusy_XOFFSET 0
#define XPbusy_YOFFSET 0

#define XPcross_WIDTH   9
#define XPcross_HEIGHT  9
#define XPcross_XOFFSET -4
#define XPcross_YOFFSET -4

 USHORT busy_arrow[] = {
 0,0,
 0xFE00, 0x0000, 0xC300, 0x0000, 0xC300, 0x0000,
 0xFE00, 0x0000, 0xC300, 0x0000, 0xC300, 0x0000,
 0xFE00, 0x0000,
 0x0000, 0x0000,
 0xC300, 0x0000, 0xC300, 0x0000, 0xC300, 0x0000,
 0xC300, 0x0000, 0xC300, 0x0000, 0x7E00, 0x0000,
 0x0000, 0x0000,
 0x7E00, 0x0000, 0xC300, 0x0000, 0xC000, 0x0000,
 0x7E00, 0x0000, 0x0300, 0x0000, 0xC300, 0x0000,
 0x7E00, 0x0000,
 0x0000, 0x0000,
 0xC300, 0x0000, 0xC300, 0x0000, 0x4200, 0x0000,
 0x2400, 0x0000, 0x1800, 0x0000, 0x1800, 0x0000,
 0x1800, 0x0000,
 0,0,0,0 };

 USHORT cross_cross[] = {
 0,0,
 0x0800, 0x0800, 0x0800, 0x0800, 0x0000, 0x0800, 0x0000, 0x0000,
 0xC180, 0xE380, 0x0000, 0x0000, 0x0000, 0x0800, 0x0800, 0x0800,
 0x0800, 0x0800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0,0,0,0 },

 byrd[] = {
 0,0,
 0x4000, 0x4300, 0x2000, 0x2600, 0x1000, 0x1E00, 0x0800, 0x1C00,
 0x0400, 0x3C00, 0x0000, 0x7200, 0x0000, 0x4100, 0x0000, 0x0080,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0,0,0,0},

 slant_cross[] = {
 0,0,
 0x8080, 0x8080, 0x4100, 0x4100, 0x2200, 0x2200, 0x0000, 0x1400,
 0x0000, 0x0000, 0x0000, 0x1400, 0x2200, 0x2200, 0x4100, 0x4100,
 0x8080, 0x8080, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0,0,0,0 },

 XPointer[] = {
 0,0,
 0xF800, 0x7C00, 0xC000, 0xFC00, 0xA000, 0xF000, 0x9000, 0xF800,
 0x8800, 0xDC00, 0x0400, 0xCE00, 0x0200, 0x0700, 0x0100, 0x0380,
 0x0080, 0x01C0, 0x0040, 0x00E0, 0x0020, 0x0070, 0x0000, 0x0020,
 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000,
 0,0,0,0};

